jouzu 0.0.1 → 0.1.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.
- package/README.md +50 -0
- package/dist/args.d.ts +45 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +221 -0
- package/dist/args.js.map +1 -0
- package/dist/cli.js +250 -29
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +36 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +224 -0
- package/dist/doctor.js.map +1 -0
- package/dist/keybindings.d.ts +68 -0
- package/dist/keybindings.d.ts.map +1 -0
- package/dist/keybindings.js +460 -0
- package/dist/keybindings.js.map +1 -0
- package/dist/metadata.d.ts +21 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +22 -0
- package/dist/metadata.js.map +1 -0
- package/dist/paths.d.ts +17 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +65 -0
- package/dist/paths.js.map +1 -0
- package/dist/pi.lock.json +15 -0
- package/dist/presentation.d.ts +45 -0
- package/dist/presentation.d.ts.map +1 -0
- package/dist/presentation.js +202 -0
- package/dist/presentation.js.map +1 -0
- package/dist/private-fs.d.ts +12 -0
- package/dist/private-fs.d.ts.map +1 -0
- package/dist/private-fs.js +64 -0
- package/dist/private-fs.js.map +1 -0
- package/dist/profile-choice.d.ts +14 -0
- package/dist/profile-choice.d.ts.map +1 -0
- package/dist/profile-choice.js +83 -0
- package/dist/profile-choice.js.map +1 -0
- package/dist/profile-manager.d.ts +50 -0
- package/dist/profile-manager.d.ts.map +1 -0
- package/dist/profile-manager.js +364 -0
- package/dist/profile-manager.js.map +1 -0
- package/dist/profiles/core/assets/jouzu-core-skill.md +12 -0
- package/dist/profiles/core/assets/jouzu-review.md +1 -0
- package/dist/profiles/core/manifest.json +17 -0
- package/dist/profiles/ja/assets/APPEND_SYSTEM.md +8 -0
- package/dist/profiles/ja/manifest.json +13 -0
- package/dist/profiles.d.ts +18 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +153 -0
- package/dist/profiles.js.map +1 -0
- package/dist/resume.d.ts +7 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +23 -0
- package/dist/resume.js.map +1 -0
- package/dist/runtime.d.ts +18 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +59 -0
- package/dist/runtime.js.map +1 -0
- package/dist/state-lock.d.ts +39 -0
- package/dist/state-lock.d.ts.map +1 -0
- package/dist/state-lock.js +143 -0
- package/dist/state-lock.js.map +1 -0
- package/dist/updater.d.ts +113 -0
- package/dist/updater.d.ts.map +1 -0
- package/dist/updater.js +698 -0
- package/dist/updater.js.map +1 -0
- package/package.json +7 -4
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { KeybindingPlan } from "./keybindings.js";
|
|
2
|
+
import type { JouzuMetadata } from "./metadata.js";
|
|
3
|
+
import type { JouzuPaths } from "./paths.js";
|
|
4
|
+
import type { ProfileSelection } from "./runtime.js";
|
|
5
|
+
import type { UpdateStatus } from "./updater.js";
|
|
6
|
+
export interface DoctorContext {
|
|
7
|
+
metadata: JouzuMetadata;
|
|
8
|
+
paths: JouzuPaths;
|
|
9
|
+
profile: ProfileSelection;
|
|
10
|
+
piRuntimeVersion: string;
|
|
11
|
+
piRuntimeDiagnostic?: string;
|
|
12
|
+
executable: string;
|
|
13
|
+
env?: NodeJS.ProcessEnv;
|
|
14
|
+
inheritedPiAgentDir?: string;
|
|
15
|
+
inheritedPiSessionDir?: string;
|
|
16
|
+
platform?: NodeJS.Platform;
|
|
17
|
+
architecture?: string;
|
|
18
|
+
nodeVersion?: string;
|
|
19
|
+
locale?: string;
|
|
20
|
+
commandPaths?: {
|
|
21
|
+
git: string | null;
|
|
22
|
+
bash: string | null;
|
|
23
|
+
npm: string | null;
|
|
24
|
+
};
|
|
25
|
+
desiredProfileManifestSha256?: string;
|
|
26
|
+
updateStatus?: UpdateStatus;
|
|
27
|
+
updateDiagnostic?: string;
|
|
28
|
+
keybindingPlan?: KeybindingPlan;
|
|
29
|
+
keybindingDiagnostic?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface DoctorResult {
|
|
32
|
+
text: string;
|
|
33
|
+
healthy: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare function createDoctorReport(context: DoctorContext): DoctorResult;
|
|
36
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { constants, existsSync, readFileSync, statSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { posix, win32 } from "node:path";
|
|
4
|
+
import { describeStateLock, inspectStateLock, STATE_LOCK_STALE_MS } from "./state-lock.js";
|
|
5
|
+
const PROVIDER_ENVIRONMENT_KEYS = [
|
|
6
|
+
"ANTHROPIC_API_KEY",
|
|
7
|
+
"ANT_LING_API_KEY",
|
|
8
|
+
"OPENAI_API_KEY",
|
|
9
|
+
"AZURE_OPENAI_API_KEY",
|
|
10
|
+
"DEEPSEEK_API_KEY",
|
|
11
|
+
"NVIDIA_API_KEY",
|
|
12
|
+
"GEMINI_API_KEY",
|
|
13
|
+
"AWS_BEARER_TOKEN_BEDROCK",
|
|
14
|
+
"AWS_PROFILE",
|
|
15
|
+
"GOOGLE_APPLICATION_CREDENTIALS",
|
|
16
|
+
"OPENROUTER_API_KEY",
|
|
17
|
+
"AI_GATEWAY_API_KEY",
|
|
18
|
+
"ZAI_API_KEY",
|
|
19
|
+
"HF_TOKEN",
|
|
20
|
+
"KIMI_API_KEY",
|
|
21
|
+
"MINIMAX_API_KEY",
|
|
22
|
+
];
|
|
23
|
+
function parseNodeVersion(version) {
|
|
24
|
+
const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split(".");
|
|
25
|
+
return [Number(major), Number(minor), Number(patch)];
|
|
26
|
+
}
|
|
27
|
+
function nodeIsSupported(version) {
|
|
28
|
+
const [major, minor, patch] = parseNodeVersion(version);
|
|
29
|
+
return major > 22 || (major === 22 && (minor > 19 || (minor === 19 && patch >= 0)));
|
|
30
|
+
}
|
|
31
|
+
function executableExists(path, platform) {
|
|
32
|
+
try {
|
|
33
|
+
return statSync(path).isFile() && (platform === "win32" || (statSync(path).mode & constants.S_IXUSR) !== 0);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function findExecutable(name, env, platform) {
|
|
40
|
+
const pathApi = platform === "win32" ? win32 : posix;
|
|
41
|
+
const extensions = platform === "win32" ? (env.PATHEXT ?? ".EXE;.CMD;.BAT").split(";").filter(Boolean) : [""];
|
|
42
|
+
const candidates = (env.PATH ?? "")
|
|
43
|
+
.split(pathApi.delimiter)
|
|
44
|
+
.filter(Boolean)
|
|
45
|
+
.flatMap((directory) => extensions.map((extension) => pathApi.join(directory, `${name}${extension}`)));
|
|
46
|
+
if (platform === "win32" && name === "bash") {
|
|
47
|
+
for (const root of [env.ProgramFiles, env["ProgramFiles(x86)"]]) {
|
|
48
|
+
if (root)
|
|
49
|
+
candidates.push(pathApi.join(root, "Git", "bin", "bash.exe"));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return candidates.find((candidate) => executableExists(candidate, platform));
|
|
53
|
+
}
|
|
54
|
+
function readPackageCount(settingsPath) {
|
|
55
|
+
try {
|
|
56
|
+
const settings = JSON.parse(readFileSync(settingsPath, "utf8"));
|
|
57
|
+
if (settings.packages === undefined)
|
|
58
|
+
return { count: 0 };
|
|
59
|
+
if (!Array.isArray(settings.packages))
|
|
60
|
+
return { count: 0, warning: "settings.json packages is not an array" };
|
|
61
|
+
return { count: settings.packages.length };
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (error instanceof Error && "code" in error && error.code === "ENOENT")
|
|
65
|
+
return { count: 0 };
|
|
66
|
+
return { count: 0, warning: "settings.json could not be parsed" };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function describeInstallChannel(channel) {
|
|
70
|
+
switch (channel) {
|
|
71
|
+
case "global-npm":
|
|
72
|
+
return "global npm install";
|
|
73
|
+
case "local-npm":
|
|
74
|
+
return "local npm install";
|
|
75
|
+
case "ephemeral-npx":
|
|
76
|
+
return "npx install";
|
|
77
|
+
case "source":
|
|
78
|
+
return "source checkout";
|
|
79
|
+
case "other":
|
|
80
|
+
return "other";
|
|
81
|
+
default:
|
|
82
|
+
return "unavailable";
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function userHome(env) {
|
|
86
|
+
return env.HOME ?? env.USERPROFILE ?? homedir();
|
|
87
|
+
}
|
|
88
|
+
export function createDoctorReport(context) {
|
|
89
|
+
const env = context.env ?? process.env;
|
|
90
|
+
const platform = context.platform ?? process.platform;
|
|
91
|
+
const architecture = context.architecture ?? process.arch;
|
|
92
|
+
const nodeVersion = context.nodeVersion ?? process.version;
|
|
93
|
+
const locale = context.locale ?? Intl.DateTimeFormat().resolvedOptions().locale;
|
|
94
|
+
const pathApi = platform === "win32" ? win32 : posix;
|
|
95
|
+
const lines = [];
|
|
96
|
+
const problems = [];
|
|
97
|
+
const warnings = [];
|
|
98
|
+
const settingsPath = pathApi.join(context.paths.agentDir, "settings.json");
|
|
99
|
+
const authPath = pathApi.join(context.paths.agentDir, "auth.json");
|
|
100
|
+
const modelsPath = pathApi.join(context.paths.agentDir, "models.json");
|
|
101
|
+
const sharedSkillsPath = pathApi.resolve(userHome(env), ".agents", "skills");
|
|
102
|
+
const packageState = readPackageCount(settingsPath);
|
|
103
|
+
const gitPath = context.commandPaths ? (context.commandPaths.git ?? undefined) : findExecutable("git", env, platform);
|
|
104
|
+
const bashPath = context.commandPaths
|
|
105
|
+
? (context.commandPaths.bash ?? undefined)
|
|
106
|
+
: findExecutable("bash", env, platform);
|
|
107
|
+
const npmPath = context.commandPaths ? (context.commandPaths.npm ?? undefined) : findExecutable("npm", env, platform);
|
|
108
|
+
const providerEnvironment = PROVIDER_ENVIRONMENT_KEYS.some((key) => Boolean(env[key]));
|
|
109
|
+
const nodeSupported = nodeIsSupported(nodeVersion);
|
|
110
|
+
if (!nodeSupported)
|
|
111
|
+
problems.push(`Node ${nodeVersion} is unsupported; Jouzu requires >=22.19.0`);
|
|
112
|
+
if (!gitPath)
|
|
113
|
+
problems.push("Git was not found on PATH");
|
|
114
|
+
if (!bashPath)
|
|
115
|
+
problems.push("Bash was not found; install Bash or Git Bash");
|
|
116
|
+
if (!npmPath)
|
|
117
|
+
problems.push("npm was not found on PATH; npm is required for Jouzu updates");
|
|
118
|
+
if (context.metadata.piVersion !== context.piRuntimeVersion) {
|
|
119
|
+
problems.push(`Pinned Pi ${context.metadata.piVersion} does not match loaded runtime ${context.piRuntimeVersion}`);
|
|
120
|
+
}
|
|
121
|
+
if (context.piRuntimeDiagnostic) {
|
|
122
|
+
problems.push(`Pi runtime could not be loaded: ${context.piRuntimeDiagnostic}`);
|
|
123
|
+
}
|
|
124
|
+
if (context.metadata.lock.compatibilityStatus !== "qualified") {
|
|
125
|
+
problems.push(`Pi lock status is ${context.metadata.lock.compatibilityStatus}, not qualified`);
|
|
126
|
+
}
|
|
127
|
+
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");
|
|
129
|
+
}
|
|
130
|
+
if (!context.profile.appliedManifestSha256) {
|
|
131
|
+
warnings.push('The selected profile has not been applied; run "jouzu profile apply"');
|
|
132
|
+
}
|
|
133
|
+
else if (context.desiredProfileManifestSha256 &&
|
|
134
|
+
context.profile.appliedManifestSha256 !== context.desiredProfileManifestSha256) {
|
|
135
|
+
warnings.push('The applied profile differs from the bundled manifest; run "jouzu profile plan"');
|
|
136
|
+
}
|
|
137
|
+
if (packageState.warning)
|
|
138
|
+
warnings.push(packageState.warning);
|
|
139
|
+
if (context.updateStatus?.state.lastResult === "failed") {
|
|
140
|
+
warnings.push(`The last Jouzu update operation failed (${context.updateStatus.state.lastErrorCode ?? "unknown"})`);
|
|
141
|
+
}
|
|
142
|
+
if (context.updateDiagnostic)
|
|
143
|
+
warnings.push(`Self-update status is unavailable: ${context.updateDiagnostic}`);
|
|
144
|
+
if (context.keybindingPlan?.actions.some((action) => action.type === "conflict")) {
|
|
145
|
+
warnings.push('Jouzu keybinding defaults conflict with user bindings; run "jouzu keybindings plan"');
|
|
146
|
+
}
|
|
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"}`);
|
|
184
|
+
const now = new Date();
|
|
185
|
+
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") },
|
|
189
|
+
];
|
|
190
|
+
for (const { label, path } of stateLocks) {
|
|
191
|
+
lines.push(`${label}: ${describeStateLock(path, STATE_LOCK_STALE_MS, now)}`);
|
|
192
|
+
const status = inspectStateLock(path, now).status;
|
|
193
|
+
if (status === "held-dead" || status === "owner-unknown" || status === "invalid") {
|
|
194
|
+
problems.push(`A leftover state lock blocks Jouzu operations: ${path} (${status})`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
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 };
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { JouzuPaths } from "./paths.js";
|
|
2
|
+
export type KeyBindingValue = string | string[];
|
|
3
|
+
export type KeybindingPolicy = "applied" | "disabled";
|
|
4
|
+
export type KeybindingStatusKind = "uninitialized" | "converged" | "customized";
|
|
5
|
+
export declare const JOUZU_KEYBINDING_DEFAULTS_VERSION = 1;
|
|
6
|
+
export declare const JOUZU_KEYBINDING_DEFAULTS: Readonly<Record<string, KeyBindingValue>>;
|
|
7
|
+
export interface InsertedBinding {
|
|
8
|
+
action: string;
|
|
9
|
+
binding: KeyBindingValue;
|
|
10
|
+
}
|
|
11
|
+
export interface KeybindingState {
|
|
12
|
+
schemaVersion: 1;
|
|
13
|
+
defaultsVersion: number;
|
|
14
|
+
policy: KeybindingPolicy;
|
|
15
|
+
transactionId: string;
|
|
16
|
+
updatedAt: string;
|
|
17
|
+
createdConfig: boolean;
|
|
18
|
+
insertedBindings: InsertedBinding[];
|
|
19
|
+
}
|
|
20
|
+
export interface KeybindingPlanAction {
|
|
21
|
+
type: "set" | "remove" | "conflict";
|
|
22
|
+
action: string;
|
|
23
|
+
binding?: KeyBindingValue;
|
|
24
|
+
reason: string;
|
|
25
|
+
conflictingAction?: string;
|
|
26
|
+
observed?: KeyBindingValue;
|
|
27
|
+
}
|
|
28
|
+
export interface KeybindingPlan {
|
|
29
|
+
schemaVersion: 1;
|
|
30
|
+
defaultsVersion: number;
|
|
31
|
+
configPath: string;
|
|
32
|
+
statePath: string;
|
|
33
|
+
configExists: boolean;
|
|
34
|
+
policy: KeybindingPolicy | "unset";
|
|
35
|
+
status: KeybindingStatusKind;
|
|
36
|
+
portabilityWarnings: string[];
|
|
37
|
+
actions: KeybindingPlanAction[];
|
|
38
|
+
}
|
|
39
|
+
export interface ApplyKeybindingsResult {
|
|
40
|
+
changed: boolean;
|
|
41
|
+
plan: KeybindingPlan;
|
|
42
|
+
transactionId?: string;
|
|
43
|
+
backupDir?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface BootstrapKeybindingsResult {
|
|
46
|
+
changed: boolean;
|
|
47
|
+
message?: string;
|
|
48
|
+
}
|
|
49
|
+
export declare class KeybindingConfigError extends Error {
|
|
50
|
+
readonly exitCode = 5;
|
|
51
|
+
constructor(message: string);
|
|
52
|
+
}
|
|
53
|
+
export declare class KeybindingConflictError extends KeybindingConfigError {
|
|
54
|
+
readonly plan: KeybindingPlan;
|
|
55
|
+
constructor(plan: KeybindingPlan);
|
|
56
|
+
}
|
|
57
|
+
export declare function keybindingStatePath(paths: JouzuPaths): string;
|
|
58
|
+
export declare function readKeybindingConfig(path: string): Record<string, KeyBindingValue> | undefined;
|
|
59
|
+
export declare function readKeybindingState(path: string): KeybindingState | undefined;
|
|
60
|
+
export declare function planKeybindings(paths: JouzuPaths, options?: {
|
|
61
|
+
platform?: NodeJS.Platform;
|
|
62
|
+
env?: NodeJS.ProcessEnv;
|
|
63
|
+
}): KeybindingPlan;
|
|
64
|
+
export declare function applyKeybindings(paths: JouzuPaths, now?: Date): ApplyKeybindingsResult;
|
|
65
|
+
export declare function resetKeybindings(paths: JouzuPaths, now?: Date): ApplyKeybindingsResult;
|
|
66
|
+
export declare function ensureDefaultKeybindings(paths: JouzuPaths, env?: NodeJS.ProcessEnv): BootstrapKeybindingsResult;
|
|
67
|
+
export declare function formatKeybindingPlan(plan: KeybindingPlan): string;
|
|
68
|
+
//# sourceMappingURL=keybindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keybindings.d.ts","sourceRoot":"","sources":["../src/keybindings.ts"],"names":[],"mappings":"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"}
|