jouzu 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +8 -6
  2. package/dist/args.d.ts +1 -0
  3. package/dist/args.d.ts.map +1 -1
  4. package/dist/args.js +8 -4
  5. package/dist/args.js.map +1 -1
  6. package/dist/cli.js +15 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/doctor.d.ts +29 -0
  9. package/dist/doctor.d.ts.map +1 -1
  10. package/dist/doctor.js +140 -87
  11. package/dist/doctor.js.map +1 -1
  12. package/dist/help.d.ts +3 -0
  13. package/dist/help.d.ts.map +1 -0
  14. package/dist/help.js +42 -0
  15. package/dist/help.js.map +1 -0
  16. package/dist/keybindings.d.ts +1 -1
  17. package/dist/keybindings.d.ts.map +1 -1
  18. package/dist/keybindings.js +109 -28
  19. package/dist/keybindings.js.map +1 -1
  20. package/dist/metadata.d.ts +11 -0
  21. package/dist/metadata.d.ts.map +1 -1
  22. package/dist/metadata.js +54 -0
  23. package/dist/metadata.js.map +1 -1
  24. package/dist/model-picker-ranking.d.ts +37 -0
  25. package/dist/model-picker-ranking.d.ts.map +1 -0
  26. package/dist/model-picker-ranking.js +169 -0
  27. package/dist/model-picker-ranking.js.map +1 -0
  28. package/dist/model-picker-state.d.ts +64 -0
  29. package/dist/model-picker-state.d.ts.map +1 -0
  30. package/dist/model-picker-state.js +319 -0
  31. package/dist/model-picker-state.js.map +1 -0
  32. package/dist/model-picker.d.ts +65 -0
  33. package/dist/model-picker.d.ts.map +1 -0
  34. package/dist/model-picker.js +446 -0
  35. package/dist/model-picker.js.map +1 -0
  36. package/dist/palette.d.ts +36 -0
  37. package/dist/palette.d.ts.map +1 -0
  38. package/dist/palette.js +69 -0
  39. package/dist/palette.js.map +1 -0
  40. package/dist/pi.lock.json +7 -6
  41. package/dist/presentation.d.ts +4 -1
  42. package/dist/presentation.d.ts.map +1 -1
  43. package/dist/presentation.js +30 -31
  44. package/dist/presentation.js.map +1 -1
  45. package/dist/private-fs.d.ts +14 -0
  46. package/dist/private-fs.d.ts.map +1 -1
  47. package/dist/private-fs.js +35 -2
  48. package/dist/private-fs.js.map +1 -1
  49. package/dist/profile-choice.d.ts.map +1 -1
  50. package/dist/profile-choice.js +4 -20
  51. package/dist/profile-choice.js.map +1 -1
  52. package/dist/profile-manager.d.ts.map +1 -1
  53. package/dist/profile-manager.js +4 -22
  54. package/dist/profile-manager.js.map +1 -1
  55. package/dist/session-ui/THIRD_PARTY_NOTICES.md +30 -0
  56. package/dist/session-ui/color.js +76 -0
  57. package/dist/session-ui/color.js.map +1 -0
  58. package/dist/session-ui/contracts.js +4 -0
  59. package/dist/session-ui/contracts.js.map +1 -0
  60. package/dist/session-ui/controller.js +116 -0
  61. package/dist/session-ui/controller.js.map +1 -0
  62. package/dist/session-ui/extension.js +77 -0
  63. package/dist/session-ui/extension.js.map +1 -0
  64. package/dist/session-ui/identity.js +9 -0
  65. package/dist/session-ui/identity.js.map +1 -0
  66. package/dist/session-ui/index.js +15 -0
  67. package/dist/session-ui/index.js.map +1 -0
  68. package/dist/session-ui/layout.js +138 -0
  69. package/dist/session-ui/layout.js.map +1 -0
  70. package/dist/session-ui/prompt-frame.js +107 -0
  71. package/dist/session-ui/prompt-frame.js.map +1 -0
  72. package/dist/session-ui/session-line.js +82 -0
  73. package/dist/session-ui/session-line.js.map +1 -0
  74. package/dist/session-ui/snapshot.js +68 -0
  75. package/dist/session-ui/snapshot.js.map +1 -0
  76. package/dist/session-ui/sources/command.js +2 -0
  77. package/dist/session-ui/sources/command.js.map +1 -0
  78. package/dist/session-ui/sources/git.js +79 -0
  79. package/dist/session-ui/sources/git.js.map +1 -0
  80. package/dist/session-ui/sources/runtime.js +95 -0
  81. package/dist/session-ui/sources/runtime.js.map +1 -0
  82. package/dist/session-ui/status-bar.js +265 -0
  83. package/dist/session-ui/status-bar.js.map +1 -0
  84. package/dist/session-ui/styles.js +91 -0
  85. package/dist/session-ui/styles.js.map +1 -0
  86. package/dist/terminal-layout.d.ts +2 -0
  87. package/dist/terminal-layout.d.ts.map +1 -0
  88. package/dist/terminal-layout.js +2 -0
  89. package/dist/terminal-layout.js.map +1 -0
  90. package/dist/updater.d.ts +1 -0
  91. package/dist/updater.d.ts.map +1 -1
  92. package/dist/updater.js +18 -23
  93. package/dist/updater.js.map +1 -1
  94. package/package.json +5 -3
package/README.md CHANGED
@@ -1,20 +1,20 @@
1
1
  # Jouzu
2
2
 
3
- Jouzu is an agentic AI environment built on the Pi coding agent, with CJK-safe text and path handling. `jouzu` and `jz` run exact Pi `0.84.2` with isolated Jouzu state, a language-neutral Core fallback, an optional JA preview, and non-mutating diagnostics. Japanese support is optional and first-class.
3
+ Jouzu is an agentic AI environment built on the Pi coding agent, with CJK-safe text and path handling. `jouzu` and `jz` run exact Pi `0.84.3` with isolated Jouzu state, a language-neutral Core fallback, an optional JA preview, and non-mutating diagnostics. The optional JA profile requires explicit selection.
4
4
 
5
5
  ## Install and start
6
6
 
7
7
  Requires Node.js 22.19+, npm, Git, and Bash. Windows requires Git Bash.
8
8
 
9
9
  ```bash
10
- npm install --global jouzu@0.1.0
10
+ npm install --global jouzu@0.1.2
11
11
 
12
12
  jz --version
13
13
  jz doctor
14
14
  jz
15
15
  ```
16
16
 
17
- The first interactive launch asks whether to enable Japanese support. An affirmative answer selects `ja`; declining or pressing Enter selects the provider-neutral `core` profile. Non-interactive first runs safely use Core without recording consent. Preview either profile with:
17
+ The first interactive launch asks whether to enable Japanese support. An affirmative answer selects `ja`; declining or pressing Enter selects the provider-neutral `core` profile. Non-interactive first runs use Core without recording consent. Preview either profile with:
18
18
 
19
19
  ```bash
20
20
  jz profile plan --profile core
@@ -25,15 +25,17 @@ Locale, terminal settings, repository text, and branding never select JA automat
25
25
 
26
26
  Profile planning does not write. Application detects user-file conflicts, retains backups for managed updates/deletions, and never prunes unknown files. Existing unsupported CP932/Shift-JIS profile targets are left unchanged.
27
27
 
28
- Use `/login` to authenticate within Jouzu's agent root. Pi's `/model` or `Ctrl+L` picker remains available. `/status` reports provider-neutral session, model, context, profile, and runtime facts.
28
+ Use `/login` to authenticate within Jouzu's agent root. `/model` or `Ctrl+L` opens the Jouzu Palette Models view without clearing the prompt draft. `Tab`/`Shift+Tab` cycle Recent, Favorite, and All filters. Search exact provider/model identity or display names; `Enter` selects for the session, `Shift+Enter` also stores the user-local project default, and `Ctrl+F`/`Alt+F` toggle global/project favorites. New sessions use the project default unless an explicit model, scoped-model set, or session-resume action takes precedence. Recents update on first request dispatch and remain local. `Ctrl+/` or `Ctrl+?` opens help. `/status` reports provider-neutral session, model, context, profile, and runtime facts.
29
+
30
+ Jouzu's built-in interactive session UI adds a width-safe Prompt Frame, a Session Line with protected model identity and a left hint slot, and a responsive Status Bar for workspace, Git, project runtime, context, and active-branch token facts. It keeps Pi's editor/autocomplete/IME behavior and does not claim provider quota or session cost.
29
31
 
30
32
  Jouzu does not import stock Pi state. Override all roots with `--jouzu-home <path>` or `JOUZU_HOME`. Trusted project `.pi` resources and Pi's cross-harness `~/.agents/skills` read surface still follow Pi behavior. On exit, resume the isolated session with the printed `jz --session SESSION_ID` command; Jouzu resolves its own session root.
31
33
 
32
34
  Use `jz pi ...` or `jz -- ...` for Pi command collisions. Pi runtime self-update is blocked; package/model updates inside Jouzu state remain available.
33
35
 
34
- When the isolated Jouzu agent root has no `keybindings.json`, the first interactive launch seeds `Tab` for Pi's `app.message.followUp` action and `Ctrl+Up` for `app.message.dequeue`. Existing files are never changed automatically. Use `jz keybindings status|plan|apply|reset`; explicit apply merges only missing defaults with conflict checks/backups, while reset removes only Jouzu-recorded entries and disables reseeding. `JOUZU_NO_KEYBINDING_DEFAULTS=1` is a one-run opt-out. Modified-arrow reporting is terminal-dependent; tmux should use `extended-keys-format csi-u`.
36
+ When the isolated Jouzu agent root has no `keybindings.json`, the first interactive launch seeds `Ctrl+Enter` for Pi's `app.message.followUp` action and `Ctrl+Up` for `app.message.dequeue`; `Tab` retains Pi autocomplete and selector behavior. On upgrade from v0.1.0, Jouzu backs up and replaces only an exact Jouzu-owned `Tab` follow-up entry. User-owned or modified bindings remain unchanged. Use `jz keybindings status|plan|apply|reset`; explicit apply merges only missing defaults with conflict checks/backups, while reset removes only Jouzu-recorded entries and disables reseeding. `JOUZU_NO_KEYBINDING_DEFAULTS=1` is a one-run opt-out. Modified-key reporting is terminal-dependent; tmux should use `extended-keys-format csi-u`.
35
37
 
36
- Real global npm installs default to a pre-TUI automatic Jouzu update check/restart on the first eligible launch. Successful checks are cached for 24 hours; failed checks retry no sooner than one hour later. Candidate tarball SHA-512 integrity and the installed Jouzu/Pi tuple are verified; failure restores the locally packed previous version. Source, project-local, and ephemeral `npx` invocations are not rewritten.
38
+ Eligible global npm installs default to a pre-TUI automatic Jouzu update check/restart on the first eligible launch. Successful checks are cached for 24 hours; failed checks retry no sooner than one hour later. Candidate tarball SHA-512 integrity and the installed Jouzu/Pi tuple are verified; failure restores the locally packed previous version. Source, project-local, and ephemeral `npx` invocations are not rewritten.
37
39
 
38
40
  ```bash
39
41
  jz self-update status
package/dist/args.d.ts CHANGED
@@ -15,6 +15,7 @@ export type ParsedCommand = {
15
15
  } | {
16
16
  kind: "doctor";
17
17
  options: JouzuOptions;
18
+ json: boolean;
18
19
  } | {
19
20
  kind: "version";
20
21
  options: JouzuOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,yBAA0B,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,qBAAa,UAAW,SAAQ,KAAK;IACpC,QAAQ,CAAC,QAAQ,KAAK;gBAEV,OAAO,EAAE,MAAM;CAI3B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GACtB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACvC;IACA,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC1C,GACD;IACA,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,IAAI,EAAE,OAAO,CAAC;CACb,GACD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACb,CAAC;AAsFL,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CA8C5D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAgC7D;AAED,wBAAgB,UAAU,IAAI,MAAM,CAmCnC"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,yBAA0B,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,qBAAa,UAAW,SAAQ,KAAK;IACpC,QAAQ,CAAC,QAAQ,KAAK;gBAEV,OAAO,EAAE,MAAM;CAI3B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GACtB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACvC;IACA,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC1C,GACD;IACA,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,IAAI,EAAE,OAAO,CAAC;CACb,GACD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACb,CAAC;AAsFL,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAkD5D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAgC7D;AAED,wBAAgB,UAAU,IAAI,MAAM,CAmCnC"}
package/dist/args.js CHANGED
@@ -125,9 +125,13 @@ export function parseJouzuArgs(args) {
125
125
  if (command === "pi" || command === "--")
126
126
  return { kind: "pi", options, args: rest };
127
127
  if (command === "doctor") {
128
- if (rest.length > 0)
129
- throw new UsageError("doctor does not accept arguments");
130
- return { kind: "doctor", options };
128
+ let json = false;
129
+ for (const token of rest) {
130
+ if (token !== "--json" || json)
131
+ throw new UsageError(`doctor does not accept ${token}`);
132
+ json = true;
133
+ }
134
+ return { kind: "doctor", options, json };
131
135
  }
132
136
  if (command === "profile")
133
137
  return parseProfileCommand(options, rest);
@@ -190,7 +194,7 @@ Usage:
190
194
  jouzu --session <id> [Pi arguments...]
191
195
  jouzu [Jouzu options] pi [Pi arguments...]
192
196
  jouzu [Jouzu options] -- [Pi arguments...]
193
- jouzu [Jouzu options] doctor
197
+ jouzu [Jouzu options] doctor [--json]
194
198
  jouzu profile plan [--profile <core|ja>] [--json]
195
199
  jouzu profile apply [--profile <core|ja>]
196
200
  jouzu keybindings status [--json]
package/dist/args.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -3,8 +3,11 @@ import { join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { formatHelp, isBlockedPiSelfUpdate, parseJouzuArgs, UsageError } from "./args.js";
5
5
  import { createDoctorReport } from "./doctor.js";
6
+ import { createJouzuHelpExtension } from "./help.js";
6
7
  import { applyKeybindings, ensureDefaultKeybindings, formatKeybindingPlan, KeybindingConfigError, KeybindingConflictError, planKeybindings, resetKeybindings, } from "./keybindings.js";
7
8
  import { loadMetadata } from "./metadata.js";
9
+ import { createJouzuModelPicker } from "./model-picker.js";
10
+ import { projectDefaultAppliesAtStartup } from "./model-picker-state.js";
8
11
  import { resolveJouzuPaths } from "./paths.js";
9
12
  import { clearInteractiveStartup, createJouzuPresentationExtension, isInteractivePiStartup } from "./presentation.js";
10
13
  import { promptForJapaneseSupport, writeProfileChoice } from "./profile-choice.js";
@@ -12,6 +15,7 @@ import { applyProfile, formatProfilePlan, ProfileConflictError, ProfileStateErro
12
15
  import { loadBundledProfile } from "./profiles.js";
13
16
  import { withJouzuResumeHint } from "./resume.js";
14
17
  import { configurePiProcess, resolveProfileSelection } from "./runtime.js";
18
+ import { createSessionUiExtension } from "./session-ui/index.js";
15
19
  import { formatUpdateStatus, JouzuUpdater, relaunchUpdatedJouzu, UpdateError } from "./updater.js";
16
20
  async function loadPiRuntime() {
17
21
  return import("@earendil-works/pi-coding-agent");
@@ -152,7 +156,7 @@ async function runCli(args) {
152
156
  if (piRuntimeVersion !== metadata.piVersion) {
153
157
  throw new Error(`loaded Pi ${piRuntimeVersion} does not match Jouzu's exact pin ${metadata.piVersion}`);
154
158
  }
155
- console.log(`jouzu ${metadata.jouzuVersion}`);
159
+ console.log(`jouzu ${metadata.displayVersion}`);
156
160
  console.log(`pi ${piRuntimeVersion}`);
157
161
  console.log(`profile schema ${metadata.profileSchemaVersion}`);
158
162
  return;
@@ -190,7 +194,7 @@ async function runCli(args) {
190
194
  ...(keybindingPlan ? { keybindingPlan } : {}),
191
195
  ...(keybindingDiagnostic ? { keybindingDiagnostic } : {}),
192
196
  });
193
- console.log(result.text);
197
+ console.log(parsed.json ? JSON.stringify(result.report, null, 2) : result.text);
194
198
  if (!result.healthy)
195
199
  process.exitCode = 1;
196
200
  return;
@@ -208,8 +212,16 @@ async function runCli(args) {
208
212
  if (piRuntimeVersion !== metadata.piVersion) {
209
213
  throw new Error(`loaded Pi ${piRuntimeVersion} does not match Jouzu's exact pin ${metadata.piVersion}`);
210
214
  }
215
+ const modelPicker = createJouzuModelPicker(paths, {
216
+ applyProjectDefaultAtStartup: interactiveStartup && projectDefaultAppliesAtStartup(parsed.args),
217
+ });
218
+ const help = createJouzuHelpExtension();
219
+ const sessionUi = createSessionUiExtension({
220
+ getHints: () => [{ id: "palette.shortcuts", text: "Ctrl+L models · Ctrl+/ help", priority: 10, role: "muted" }],
221
+ onModelPicker: (query) => modelPicker.open({ source: query ? "command" : "action", ...(query ? { initialSearchInput: query } : {}) }),
222
+ });
211
223
  await withJouzuResumeHint(() => pi.main(parsed.args, {
212
- extensionFactories: [createJouzuPresentationExtension(metadata, profile)],
224
+ extensionFactories: [createJouzuPresentationExtension(metadata, profile), sessionUi, modelPicker.extension, help],
213
225
  }));
214
226
  }
215
227
  runCli(process.argv.slice(2)).catch((error) => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EACN,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAyB,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnG,KAAK,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAc;IACnC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1B,OAAO;IACR,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,UAAU,CACnB,yJAAyJ,CACzJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;QAChC,KAAK;QACL,cAAc,EAAE,QAAQ,CAAC,YAAY;QACrC,UAAU;QACV,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACzC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAClE,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpF,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CACV,MAAM,CAAC,OAAO;YACb,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,4BAA4B,MAAM,CAAC,aAAa,EAAE;YACzG,CAAC,CAAC,+BAA+B,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,CAC5F,CAAC;QACF,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjE,OAAO;IACR,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO;QACR,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;iBACzD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,OAAO,4BAA4B,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,gBAAgB,uBAAuB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YACvF,CAAC;YACD,OAAO;QACR,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CACV,MAAM,CAAC,OAAO;gBACb,CAAC,CAAC,oBAAoB,MAAM,CAAC,OAAO,yCAAyC;gBAC7E,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,sBAAsB,CAChD,CAAC;YACF,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,OAAO;IACR,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;QACnD,IAAI,aAAa,CAAC,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,YAAY,MAAM,aAAa,CAAC,OAAO,eAAe,CAAC,CAAC;YAC9F,OAAO,CAAC,QAAQ,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAChF,OAAO;QACR,CAAC;IACF,CAAC;IAED,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC5D,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACtE,IAAI,OAAO,GAAqB,uBAAuB,CAAC,KAAK,EAAE;QAC9D,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;QACvC,gBAAgB,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS;QAC3C,kBAAkB;KAClB,CAAC,CAAC;IACH,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO,GAAG;YACT,EAAE,EAAE,MAAM,wBAAwB,EAAE;YACpC,MAAM,EAAE,kBAAkB;YAC1B,kBAAkB,EAAE,KAAK;SACzB,CAAC;QACF,cAAc,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpF,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnE,kBAAkB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;QAC3G,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClE,OAAO;IACR,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,EAAgE,CAAC;IACrE,IAAI,gBAAoC,CAAC;IACzC,IAAI,kBAAsC,CAAC;IAC3C,IAAI,CAAC;QACJ,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;QAC3B,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,kBAAkB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,kBAAkB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,+CAA+C,kBAAkB,IAAI,aAAa,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,gBAAgB,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,aAAa,gBAAgB,qCAAqC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC/D,OAAO;IACR,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,YAA4D,CAAC;QACjE,IAAI,gBAAoC,CAAC;QACzC,IAAI,cAA8D,CAAC;QACnE,IAAI,oBAAwC,CAAC;QAC7C,IAAI,CAAC;YACJ,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC;YACJ,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,oBAAoB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC;YACjC,QAAQ;YACR,KAAK;YACL,OAAO;YACP,gBAAgB,EAAE,gBAAgB,IAAI,aAAa;YACnD,mBAAmB,EAAE,kBAAkB;YACvC,UAAU;YACV,mBAAmB;YACnB,qBAAqB;YACrB,4BAA4B,EAAE,cAAc,CAAC,cAAc;YAC3D,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC1C,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACpB,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC;IACtG,CAAC;IACD,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,kBAAkB,IAAI,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,+CAA+C,kBAAkB,IAAI,aAAa,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,gBAAgB,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,aAAa,gBAAgB,qCAAqC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,mBAAmB,CAAC,GAAG,EAAE,CAC9B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACpB,kBAAkB,EAAE,CAAC,gCAAgC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACzE,CAAC,CACF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACtD,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACxF,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO;IACR,CAAC;IACD,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO;IACR,CAAC;IACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO;IACR,CAAC;IACD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CACZ,mHAAmH,CACnH,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACR,CAAC;IACD,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO;IACR,CAAC;IACD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACvF,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO;IACR,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/doctor.d.ts CHANGED
@@ -28,9 +28,38 @@ export interface DoctorContext {
28
28
  keybindingPlan?: KeybindingPlan;
29
29
  keybindingDiagnostic?: string;
30
30
  }
31
+ export type DoctorSeverity = "warning" | "problem";
32
+ export type DoctorSectionId = "runtime" | "platform" | "roots" | "profile";
33
+ /** One observed fact. Schema 1 IDs are machine keys, but remain experimental through v0.1.x. */
34
+ export interface DoctorField {
35
+ id: string;
36
+ section: DoctorSectionId;
37
+ label: string;
38
+ value: string;
39
+ }
40
+ /** One diagnosis. Several issues may attach to the same observed field. */
41
+ export interface DoctorIssue {
42
+ id: string;
43
+ severity: DoctorSeverity;
44
+ message: string;
45
+ }
46
+ export interface DoctorReport {
47
+ schemaVersion: 1;
48
+ experimental: true;
49
+ healthy: boolean;
50
+ fields: DoctorField[];
51
+ issues: DoctorIssue[];
52
+ notes: string[];
53
+ }
31
54
  export interface DoctorResult {
32
55
  text: string;
33
56
  healthy: boolean;
57
+ report: DoctorReport;
34
58
  }
59
+ /**
60
+ * Render the human report. Sections are emitted in a fixed order and separated
61
+ * by one blank line, so adding a field never changes unrelated output.
62
+ */
63
+ export declare function formatDoctorReport(report: DoctorReport): string;
35
64
  export declare function createDoctorReport(context: DoctorContext): DoctorResult;
36
65
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,cAAc,CAAC;AAqBvE,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/E,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACjB;AAoED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CA6IvE"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,cAAc,CAAC;AAqBvE,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/E,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3E,gGAAgG;AAChG,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,aAAa,EAAE,CAAC,CAAC;IACjB,YAAY,EAAE,IAAI,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAyB/D;AAoED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CA0NvE"}
package/dist/doctor.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { constants, existsSync, readFileSync, statSync } from "node:fs";
2
2
  import { homedir } from "node:os";
3
3
  import { posix, win32 } from "node:path";
4
+ import { loadModelPickerState } from "./model-picker-state.js";
4
5
  import { describeStateLock, inspectStateLock, STATE_LOCK_STALE_MS } from "./state-lock.js";
5
6
  const PROVIDER_ENVIRONMENT_KEYS = [
6
7
  "ANTHROPIC_API_KEY",
@@ -20,6 +21,41 @@ const PROVIDER_ENVIRONMENT_KEYS = [
20
21
  "KIMI_API_KEY",
21
22
  "MINIMAX_API_KEY",
22
23
  ];
24
+ const DOCTOR_SECTION_ORDER = ["runtime", "platform", "roots", "profile"];
25
+ /**
26
+ * Render the human report. Sections are emitted in a fixed order and separated
27
+ * by one blank line, so adding a field never changes unrelated output.
28
+ */
29
+ export function formatDoctorReport(report) {
30
+ const lines = ["Jouzu doctor"];
31
+ for (const section of DOCTOR_SECTION_ORDER) {
32
+ const fields = report.fields.filter((field) => field.section === section);
33
+ if (fields.length === 0)
34
+ continue;
35
+ lines.push("");
36
+ for (const field of fields)
37
+ lines.push(`${field.label}: ${field.value}`);
38
+ }
39
+ for (const note of report.notes) {
40
+ lines.push("");
41
+ lines.push(note);
42
+ }
43
+ for (const [heading, severity] of [
44
+ ["Warnings", "warning"],
45
+ ["Problems", "problem"],
46
+ ]) {
47
+ const matching = report.issues.filter((issue) => issue.severity === severity);
48
+ if (matching.length === 0)
49
+ continue;
50
+ lines.push("");
51
+ lines.push(`${heading}:`);
52
+ for (const issue of matching)
53
+ lines.push(`- ${issue.message}`);
54
+ }
55
+ lines.push("");
56
+ lines.push(report.healthy ? "Result: ready for Jouzu v0.1 preview" : "Result: action required");
57
+ return lines.join("\n");
58
+ }
23
59
  function parseNodeVersion(version) {
24
60
  const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split(".");
25
61
  return [Number(major), Number(minor), Number(patch)];
@@ -92,12 +128,22 @@ export function createDoctorReport(context) {
92
128
  const nodeVersion = context.nodeVersion ?? process.version;
93
129
  const locale = context.locale ?? Intl.DateTimeFormat().resolvedOptions().locale;
94
130
  const pathApi = platform === "win32" ? win32 : posix;
95
- const lines = [];
96
- const problems = [];
97
- const warnings = [];
131
+ const fields = [];
132
+ const issues = [];
133
+ const notes = [];
134
+ const field = (section, id, label, value) => {
135
+ fields.push({ id, section, label, value });
136
+ };
137
+ const problem = (id, message) => {
138
+ issues.push({ id, severity: "problem", message });
139
+ };
140
+ const warning = (id, message) => {
141
+ issues.push({ id, severity: "warning", message });
142
+ };
98
143
  const settingsPath = pathApi.join(context.paths.agentDir, "settings.json");
99
144
  const authPath = pathApi.join(context.paths.agentDir, "auth.json");
100
145
  const modelsPath = pathApi.join(context.paths.agentDir, "models.json");
146
+ const modelPickerStatePath = pathApi.join(context.paths.stateDir, "model-picker.json");
101
147
  const sharedSkillsPath = pathApi.resolve(userHome(env), ".agents", "skills");
102
148
  const packageState = readPackageCount(settingsPath);
103
149
  const gitPath = context.commandPaths ? (context.commandPaths.git ?? undefined) : findExecutable("git", env, platform);
@@ -108,117 +154,124 @@ export function createDoctorReport(context) {
108
154
  const providerEnvironment = PROVIDER_ENVIRONMENT_KEYS.some((key) => Boolean(env[key]));
109
155
  const nodeSupported = nodeIsSupported(nodeVersion);
110
156
  if (!nodeSupported)
111
- problems.push(`Node ${nodeVersion} is unsupported; Jouzu requires >=22.19.0`);
157
+ problem("node.unsupported", `Node ${nodeVersion} is unsupported; Jouzu requires >=22.19.0`);
112
158
  if (!gitPath)
113
- problems.push("Git was not found on PATH");
159
+ problem("git.missing", "Git was not found on PATH");
114
160
  if (!bashPath)
115
- problems.push("Bash was not found; install Bash or Git Bash");
161
+ problem("bash.missing", "Bash was not found; install Bash or Git Bash");
116
162
  if (!npmPath)
117
- problems.push("npm was not found on PATH; npm is required for Jouzu updates");
163
+ problem("npm.missing", "npm was not found on PATH; npm is required for Jouzu updates");
118
164
  if (context.metadata.piVersion !== context.piRuntimeVersion) {
119
- problems.push(`Pinned Pi ${context.metadata.piVersion} does not match loaded runtime ${context.piRuntimeVersion}`);
165
+ problem("pi.versionMismatch", `Pinned Pi ${context.metadata.piVersion} does not match loaded runtime ${context.piRuntimeVersion}`);
120
166
  }
121
167
  if (context.piRuntimeDiagnostic) {
122
- problems.push(`Pi runtime could not be loaded: ${context.piRuntimeDiagnostic}`);
168
+ problem("pi.runtimeUnavailable", `Pi runtime could not be loaded: ${context.piRuntimeDiagnostic}`);
123
169
  }
124
170
  if (context.metadata.lock.compatibilityStatus !== "qualified") {
125
- problems.push(`Pi lock status is ${context.metadata.lock.compatibilityStatus}, not qualified`);
171
+ problem("pi.lockUnqualified", `Pi lock status is ${context.metadata.lock.compatibilityStatus}, not qualified`);
126
172
  }
127
173
  if (!existsSync(authPath) && !providerEnvironment && !existsSync(modelsPath)) {
128
- warnings.push("No obvious provider credential or custom model configuration was found; use /login or provider environment variables");
174
+ warning("provider.unconfigured", "No obvious provider credential or custom model configuration was found; use /login or provider environment variables");
129
175
  }
130
176
  if (!context.profile.appliedManifestSha256) {
131
- warnings.push('The selected profile has not been applied; run "jouzu profile apply"');
177
+ warning("profile.notApplied", 'The selected profile has not been applied; run "jouzu profile apply"');
132
178
  }
133
179
  else if (context.desiredProfileManifestSha256 &&
134
180
  context.profile.appliedManifestSha256 !== context.desiredProfileManifestSha256) {
135
- warnings.push('The applied profile differs from the bundled manifest; run "jouzu profile plan"');
181
+ warning("profile.drift", 'The applied profile differs from the bundled manifest; run "jouzu profile plan"');
136
182
  }
137
183
  if (packageState.warning)
138
- warnings.push(packageState.warning);
184
+ warning("packages.invalid", packageState.warning);
139
185
  if (context.updateStatus?.state.lastResult === "failed") {
140
- warnings.push(`The last Jouzu update operation failed (${context.updateStatus.state.lastErrorCode ?? "unknown"})`);
186
+ warning("update.lastFailed", `The last Jouzu update operation failed (${context.updateStatus.state.lastErrorCode ?? "unknown"})`);
187
+ }
188
+ if (context.updateDiagnostic) {
189
+ warning("update.statusUnavailable", `Self-update status is unavailable: ${context.updateDiagnostic}`);
141
190
  }
142
- if (context.updateDiagnostic)
143
- warnings.push(`Self-update status is unavailable: ${context.updateDiagnostic}`);
144
191
  if (context.keybindingPlan?.actions.some((action) => action.type === "conflict")) {
145
- warnings.push('Jouzu keybinding defaults conflict with user bindings; run "jouzu keybindings plan"');
192
+ warning("keybindings.conflict", 'Jouzu keybinding defaults conflict with user bindings; run "jouzu keybindings plan"');
146
193
  }
147
- if (context.keybindingDiagnostic)
148
- warnings.push(`Keybinding status is unavailable: ${context.keybindingDiagnostic}`);
149
- lines.push("Jouzu doctor");
150
- lines.push("");
151
- lines.push(`Jouzu version: ${context.metadata.jouzuVersion}`);
152
- lines.push(`Pi runtime: ${context.piRuntimeVersion}`);
153
- lines.push(`Pi upstream: ${context.metadata.lock.tag} (${context.metadata.lock.commit})`);
154
- lines.push(`Pi qualification: ${context.metadata.lock.compatibilityStatus}; deviations=${context.metadata.lock.deviations.length}`);
155
- lines.push(`Profile schema: ${context.metadata.profileSchemaVersion}`);
156
- lines.push(`Install channel: ${describeInstallChannel(context.updateStatus?.installChannel)}`);
157
- lines.push(`Executable: ${context.executable}`);
158
- lines.push(`Self-update policy: ${context.updateStatus?.policy ?? "unavailable"}`);
159
- lines.push(`Self-update channel: ${context.updateStatus?.installChannel ?? "unavailable"}`);
160
- lines.push(`Automatic startup update: ${context.updateStatus ? (context.updateStatus.startupEligible ? "eligible" : "not eligible") : "unavailable"}`);
161
- lines.push(`Last update check: ${context.updateStatus?.state.lastCheckedAt ?? "never"}`);
162
- lines.push(`Latest observed Jouzu: ${context.updateStatus?.state.latestVersion ?? "not checked"}`);
163
- lines.push(`Keybinding defaults: ${context.keybindingPlan?.status ?? "unavailable"}`);
164
- lines.push(`Keybinding policy: ${context.keybindingPlan?.policy ?? "unavailable"}`);
165
- lines.push(`Jouzu default follow-up key: tab`);
166
- lines.push(`Jouzu default dequeue key: ctrl+up`);
167
- lines.push(`Keybinding config: ${context.keybindingPlan?.configPath ?? "unavailable"}`);
168
- lines.push("");
169
- lines.push(`Platform: ${platform} ${architecture}`);
170
- lines.push(`Node: ${nodeVersion} (${nodeSupported ? "supported" : "unsupported"})`);
171
- lines.push(`Locale: ${locale}`);
172
- lines.push(`Git: ${gitPath ?? "not found"}`);
173
- lines.push(`Bash: ${bashPath ?? "not found"}`);
174
- lines.push(`npm: ${npmPath ?? "not found"}`);
175
- lines.push(`Proxy configured: ${env.HTTP_PROXY || env.HTTPS_PROXY ? "yes" : "no"}`);
176
- lines.push(`Additional CA configured: ${env.NODE_EXTRA_CA_CERTS ? "yes" : "no"}`);
177
- lines.push("");
178
- lines.push(`Agent/config root: ${context.paths.agentDir}`);
179
- lines.push(`State root: ${context.paths.stateDir}`);
180
- lines.push(`Session root: ${context.paths.sessionDir}`);
181
- lines.push(`Cache root: ${context.paths.cacheDir}`);
182
- lines.push(`Inherited Pi agent root replaced: ${context.inheritedPiAgentDir ? "yes" : "not set"}`);
183
- lines.push(`Inherited Pi session root replaced: ${context.inheritedPiSessionDir ? "yes" : "not set"}`);
194
+ if (context.keybindingDiagnostic) {
195
+ warning("keybindings.statusUnavailable", `Keybinding status is unavailable: ${context.keybindingDiagnostic}`);
196
+ }
197
+ let modelPickerState = "absent";
198
+ if (existsSync(modelPickerStatePath)) {
199
+ try {
200
+ const state = loadModelPickerState(context.paths, { recover: false }).state;
201
+ modelPickerState = `${Object.keys(state.defaults.projects).length} project defaults; ${state.favorites.length} favorites; ${state.recents.global.length} global recents; ${Object.keys(state.recents.projects).length} project scopes`;
202
+ }
203
+ catch (error) {
204
+ modelPickerState = "unreadable";
205
+ warning("modelPicker.unreadable", `Model picker state is unreadable: ${error instanceof Error ? error.message : String(error)}`);
206
+ }
207
+ }
208
+ field("runtime", "jouzu.version", "Jouzu version", context.metadata.displayVersion);
209
+ field("runtime", "pi.runtime", "Pi runtime", context.piRuntimeVersion);
210
+ field("runtime", "pi.upstream", "Pi upstream", `${context.metadata.lock.tag} (${context.metadata.lock.tagCommit})`);
211
+ if (context.metadata.lock.commit !== context.metadata.lock.tagCommit) {
212
+ field("runtime", "pi.packageSource", "Pi package source", context.metadata.lock.commit);
213
+ }
214
+ field("runtime", "pi.qualification", "Pi qualification", `${context.metadata.lock.compatibilityStatus}; deviations=${context.metadata.lock.deviations.length}`);
215
+ field("runtime", "profile.schema", "Profile schema", String(context.metadata.profileSchemaVersion));
216
+ field("runtime", "update.installChannel", "Install channel", describeInstallChannel(context.updateStatus?.installChannel));
217
+ field("runtime", "executable", "Executable", context.executable);
218
+ field("runtime", "update.policy", "Self-update policy", context.updateStatus?.policy ?? "unavailable");
219
+ field("runtime", "update.channel", "Self-update channel", context.updateStatus?.installChannel ?? "unavailable");
220
+ field("runtime", "update.startupEligible", "Automatic startup update", context.updateStatus ? (context.updateStatus.startupEligible ? "eligible" : "not eligible") : "unavailable");
221
+ field("runtime", "update.lastCheckedAt", "Last update check", context.updateStatus?.state.lastCheckedAt ?? "never");
222
+ field("runtime", "update.latestVersion", "Latest observed Jouzu", context.updateStatus?.state.latestVersion ?? "not checked");
223
+ field("runtime", "keybindings.status", "Keybinding defaults", context.keybindingPlan?.status ?? "unavailable");
224
+ field("runtime", "keybindings.policy", "Keybinding policy", context.keybindingPlan?.policy ?? "unavailable");
225
+ field("runtime", "keybindings.followUpKey", "Jouzu default follow-up key", "ctrl+enter");
226
+ field("runtime", "keybindings.dequeueKey", "Jouzu default dequeue key", "ctrl+up");
227
+ field("runtime", "keybindings.configPath", "Keybinding config", context.keybindingPlan?.configPath ?? "unavailable");
228
+ field("platform", "platform", "Platform", `${platform} ${architecture}`);
229
+ field("platform", "node", "Node", `${nodeVersion} (${nodeSupported ? "supported" : "unsupported"})`);
230
+ field("platform", "locale", "Locale", locale);
231
+ field("platform", "git", "Git", gitPath ?? "not found");
232
+ field("platform", "bash", "Bash", bashPath ?? "not found");
233
+ field("platform", "npm", "npm", npmPath ?? "not found");
234
+ field("platform", "proxy", "Proxy configured", env.HTTP_PROXY || env.HTTPS_PROXY ? "yes" : "no");
235
+ field("platform", "extraCaCerts", "Additional CA configured", env.NODE_EXTRA_CA_CERTS ? "yes" : "no");
236
+ field("roots", "paths.agentDir", "Agent/config root", context.paths.agentDir);
237
+ field("roots", "paths.stateDir", "State root", context.paths.stateDir);
238
+ field("roots", "paths.sessionDir", "Session root", context.paths.sessionDir);
239
+ field("roots", "paths.cacheDir", "Cache root", context.paths.cacheDir);
240
+ field("roots", "modelPicker.state", "Model picker state", modelPickerState);
241
+ field("roots", "isolation.piAgentDir", "Inherited Pi agent root replaced", context.inheritedPiAgentDir ? "yes" : "not set");
242
+ field("roots", "isolation.piSessionDir", "Inherited Pi session root replaced", context.inheritedPiSessionDir ? "yes" : "not set");
184
243
  const now = new Date();
185
244
  const stateLocks = [
186
- { label: "Profile lock", path: pathApi.join(context.paths.stateDir, "profile.lock") },
187
- { label: "Keybinding lock", path: pathApi.join(context.paths.stateDir, "keybindings.lock") },
188
- { label: "Update lock", path: pathApi.join(context.paths.stateDir, "self-update.lock") },
245
+ { id: "lock.profile", label: "Profile lock", file: "profile.lock" },
246
+ { id: "lock.keybindings", label: "Keybinding lock", file: "keybindings.lock" },
247
+ { id: "lock.modelPicker", label: "Model picker lock", file: "model-picker.lock" },
248
+ { id: "lock.update", label: "Update lock", file: "self-update.lock" },
189
249
  ];
190
- for (const { label, path } of stateLocks) {
191
- lines.push(`${label}: ${describeStateLock(path, STATE_LOCK_STALE_MS, now)}`);
250
+ for (const { id, label, file } of stateLocks) {
251
+ const path = pathApi.join(context.paths.stateDir, file);
252
+ field("roots", id, label, describeStateLock(path, STATE_LOCK_STALE_MS, now));
192
253
  const status = inspectStateLock(path, now).status;
193
254
  if (status === "held-dead" || status === "owner-unknown" || status === "invalid") {
194
- problems.push(`A leftover state lock blocks Jouzu operations: ${path} (${status})`);
255
+ problem(`${id}.stale`, `A leftover state lock blocks Jouzu operations: ${path} (${status})`);
195
256
  }
196
257
  }
197
- lines.push(`Shared cross-harness skills: ${sharedSkillsPath} (${existsSync(sharedSkillsPath) ? "present" : "absent"})`);
198
- lines.push("");
199
- lines.push(`Selected profile: ${context.profile.id} (${context.profile.source})`);
200
- lines.push(`Bundled profile manifest: ${context.desiredProfileManifestSha256 ?? "unavailable"}`);
201
- lines.push(`Applied profile manifest: ${context.profile.appliedManifestSha256 ?? "not applied"}`);
202
- lines.push(`Configured Pi packages: ${packageState.count}`);
203
- lines.push(`Provider auth file: ${existsSync(authPath) ? "present" : "absent"}`);
204
- lines.push(`Custom models file: ${existsSync(modelsPath) ? "present" : "absent"}`);
205
- lines.push(`Provider environment: ${providerEnvironment ? "present" : "not detected"}`);
206
- lines.push("");
207
- lines.push("Isolation: stock Pi global config, auth, packages, and sessions are not imported. Project resources and ~/.agents/skills remain shared Pi compatibility surfaces.");
208
- if (warnings.length > 0) {
209
- lines.push("");
210
- lines.push("Warnings:");
211
- for (const warning of warnings)
212
- lines.push(`- ${warning}`);
213
- }
214
- if (problems.length > 0) {
215
- lines.push("");
216
- lines.push("Problems:");
217
- for (const problem of problems)
218
- lines.push(`- ${problem}`);
219
- }
220
- lines.push("");
221
- lines.push(problems.length === 0 ? "Result: ready for Jouzu v0.1 preview" : "Result: action required");
222
- return { text: lines.join("\n"), healthy: problems.length === 0 };
258
+ field("roots", "skills.shared", "Shared cross-harness skills", `${sharedSkillsPath} (${existsSync(sharedSkillsPath) ? "present" : "absent"})`);
259
+ field("profile", "profile.selected", "Selected profile", `${context.profile.id} (${context.profile.source})`);
260
+ field("profile", "profile.bundledManifest", "Bundled profile manifest", context.desiredProfileManifestSha256 ?? "unavailable");
261
+ field("profile", "profile.appliedManifest", "Applied profile manifest", context.profile.appliedManifestSha256 ?? "not applied");
262
+ field("profile", "packages.count", "Configured Pi packages", String(packageState.count));
263
+ field("profile", "provider.authFile", "Provider auth file", existsSync(authPath) ? "present" : "absent");
264
+ field("profile", "provider.modelsFile", "Custom models file", existsSync(modelsPath) ? "present" : "absent");
265
+ field("profile", "provider.environment", "Provider environment", providerEnvironment ? "present" : "not detected");
266
+ notes.push("Isolation: stock Pi global config, auth, packages, and sessions are not imported. Project resources and ~/.agents/skills remain shared Pi compatibility surfaces.");
267
+ const report = {
268
+ schemaVersion: 1,
269
+ experimental: true,
270
+ healthy: !issues.some((issue) => issue.severity === "problem"),
271
+ fields,
272
+ issues,
273
+ notes,
274
+ };
275
+ return { text: formatDoctorReport(report), healthy: report.healthy, report };
223
276
  }
224
277
  //# sourceMappingURL=doctor.js.map