mthds 0.6.3 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/binaries.js +2 -2
- package/dist/agent/commands/bootstrap.js +2 -10
- package/dist/agent/commands/bootstrap.js.map +1 -1
- package/dist/agent/commands/codex-config.d.ts +29 -15
- package/dist/agent/commands/codex-config.js +206 -127
- package/dist/agent/commands/codex-config.js.map +1 -1
- package/dist/agent/commands/codex-hook.d.ts +4 -6
- package/dist/agent/commands/codex-hook.js +6 -8
- package/dist/agent/commands/codex-hook.js.map +1 -1
- package/dist/agent/commands/codex.d.ts +32 -19
- package/dist/agent/commands/codex.js +87 -134
- package/dist/agent/commands/codex.js.map +1 -1
- package/dist/agent/commands/doctor.js +49 -13
- package/dist/agent/commands/doctor.js.map +1 -1
- package/dist/agent/commands/update-check.js +1 -30
- package/dist/agent/commands/update-check.js.map +1 -1
- package/dist/agent/commands/upgrade.js +3 -12
- package/dist/agent/commands/upgrade.js.map +1 -1
- package/dist/agent/plugin-version.d.ts +19 -17
- package/dist/agent/plugin-version.js +21 -20
- package/dist/agent/plugin-version.js.map +1 -1
- package/dist/agent/snooze.d.ts +30 -4
- package/dist/agent/snooze.js +99 -35
- package/dist/agent/snooze.js.map +1 -1
- package/dist/agent/update-cache.d.ts +59 -15
- package/dist/agent/update-cache.js +178 -24
- package/dist/agent/update-cache.js.map +1 -1
- package/dist/agent-cli.js +2 -10
- package/dist/agent-cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { BINARY_RECOVERY, buildInstallCommand } from "../binaries.js";
|
|
|
7
7
|
import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
|
|
8
8
|
import { listConfig } from "../../config/config.js";
|
|
9
9
|
import { inspectCodexConfig } from "./codex-config.js";
|
|
10
|
+
import { inspectLegacyCodexHook } from "./codex.js";
|
|
10
11
|
// ── Output format ───────────────────────────────────────────────────
|
|
11
12
|
export const OutputFormat = {
|
|
12
13
|
MARKDOWN: "markdown",
|
|
@@ -27,7 +28,7 @@ function getBinaryPath(bin) {
|
|
|
27
28
|
function escapeCell(value) {
|
|
28
29
|
return value.replace(/\|/g, "\\|");
|
|
29
30
|
}
|
|
30
|
-
function formatDoctorMarkdown(healthy, dependencies, config, issues, codex) {
|
|
31
|
+
function formatDoctorMarkdown(healthy, dependencies, config, issues, codex, legacyHook) {
|
|
31
32
|
const lines = [];
|
|
32
33
|
lines.push(`# Doctor Report`);
|
|
33
34
|
lines.push("");
|
|
@@ -64,21 +65,33 @@ function formatDoctorMarkdown(healthy, dependencies, config, issues, codex) {
|
|
|
64
65
|
lines.push("## Codex");
|
|
65
66
|
lines.push("");
|
|
66
67
|
if (!codex.exists) {
|
|
67
|
-
lines.push(`- No ~/.codex/config.toml found. Run \`mthds-agent codex apply-config\` to create one
|
|
68
|
+
lines.push(`- No ~/.codex/config.toml found. Run \`mthds-agent codex apply-config\` to create one.`);
|
|
68
69
|
}
|
|
69
70
|
else if (codex.parse_error) {
|
|
70
71
|
lines.push(`- [ERROR] Could not parse ${codex.config_file}: ${codex.parse_error}`);
|
|
71
72
|
}
|
|
72
73
|
else {
|
|
73
|
-
if (codex.
|
|
74
|
-
|
|
74
|
+
if (codex.needs_changes.length > 0) {
|
|
75
|
+
const keys = codex.needs_changes
|
|
76
|
+
.map((change) => `[${change.table}] ${change.key} = ${change.value}`)
|
|
77
|
+
.join(", ");
|
|
78
|
+
lines.push(`- [WARN] Required config not set (${keys}). Run \`mthds-agent codex apply-config\`.`);
|
|
75
79
|
}
|
|
76
80
|
else {
|
|
77
|
-
lines.push(`-
|
|
81
|
+
lines.push(`- Required config: ok`);
|
|
78
82
|
}
|
|
79
|
-
for (const
|
|
80
|
-
lines.push(`- [
|
|
83
|
+
for (const conflict of codex.conflicts) {
|
|
84
|
+
lines.push(`- [ERROR] [${conflict.table}] ${conflict.key} = ${conflict.current} conflicts with the mthds plugin (needs ${conflict.required}). Fix it by hand.`);
|
|
81
85
|
}
|
|
86
|
+
for (const warning of codex.warnings) {
|
|
87
|
+
lines.push(`- [WARN] ${warning.message}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (legacyHook.parse_error) {
|
|
91
|
+
lines.push(`- [WARN] Could not read ${legacyHook.hooks_file}: ${legacyHook.parse_error}`);
|
|
92
|
+
}
|
|
93
|
+
else if (legacyHook.has_legacy_entry) {
|
|
94
|
+
lines.push(`- [WARN] Obsolete mthds hook entry in ${legacyHook.hooks_file}. Run \`mthds-agent codex apply-config\` to remove it — the hook now ships with the plugin.`);
|
|
82
95
|
}
|
|
83
96
|
lines.push("");
|
|
84
97
|
// Issues
|
|
@@ -177,16 +190,25 @@ export async function agentDoctor(format = OutputFormat.MARKDOWN) {
|
|
|
177
190
|
});
|
|
178
191
|
}
|
|
179
192
|
}
|
|
180
|
-
// Codex
|
|
193
|
+
// Codex config + hooks (read-only inspection — doctor never writes).
|
|
181
194
|
const codex = inspectCodexConfig();
|
|
182
|
-
if (codex.
|
|
195
|
+
if (codex.needs_changes.length > 0) {
|
|
196
|
+
const keys = codex.needs_changes
|
|
197
|
+
.map((change) => `[${change.table}] ${change.key} = ${change.value}`)
|
|
198
|
+
.join(", ");
|
|
183
199
|
issues.push({
|
|
184
200
|
severity: "warning",
|
|
185
|
-
message: `Codex
|
|
201
|
+
message: `Codex config missing required keys (${keys}) in ${codex.config_file}. Run \`mthds-agent codex apply-config\`.`,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
for (const conflict of codex.conflicts) {
|
|
205
|
+
issues.push({
|
|
206
|
+
severity: "error",
|
|
207
|
+
message: `Codex config conflict: [${conflict.table}] ${conflict.key} = ${conflict.current} (the mthds plugin needs ${conflict.required}). Fix it by hand in ${codex.config_file}.`,
|
|
186
208
|
});
|
|
187
209
|
}
|
|
188
|
-
for (const
|
|
189
|
-
issues.push({ severity: "warning", message: `Codex: ${
|
|
210
|
+
for (const warning of codex.warnings) {
|
|
211
|
+
issues.push({ severity: "warning", message: `Codex: ${warning.message}` });
|
|
190
212
|
}
|
|
191
213
|
if (codex.parse_error) {
|
|
192
214
|
issues.push({
|
|
@@ -194,6 +216,19 @@ export async function agentDoctor(format = OutputFormat.MARKDOWN) {
|
|
|
194
216
|
message: `Codex config parse error in ${codex.config_file}: ${codex.parse_error}`,
|
|
195
217
|
});
|
|
196
218
|
}
|
|
219
|
+
const legacyHook = inspectLegacyCodexHook();
|
|
220
|
+
if (legacyHook.has_legacy_entry) {
|
|
221
|
+
issues.push({
|
|
222
|
+
severity: "warning",
|
|
223
|
+
message: `Obsolete mthds hook entry in ${legacyHook.hooks_file}. Run \`mthds-agent codex apply-config\` to remove it — the hook now ships with the plugin.`,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
if (legacyHook.parse_error) {
|
|
227
|
+
issues.push({
|
|
228
|
+
severity: "warning",
|
|
229
|
+
message: `Could not read ${legacyHook.hooks_file} to check for an obsolete mthds hook entry: ${legacyHook.parse_error}`,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
197
232
|
const hasErrors = issues.some((issue) => issue.severity === "error");
|
|
198
233
|
const healthy = !hasErrors;
|
|
199
234
|
if (format === OutputFormat.JSON) {
|
|
@@ -203,10 +238,11 @@ export async function agentDoctor(format = OutputFormat.MARKDOWN) {
|
|
|
203
238
|
config: configEntries,
|
|
204
239
|
issues,
|
|
205
240
|
codex,
|
|
241
|
+
legacy_hook: legacyHook,
|
|
206
242
|
});
|
|
207
243
|
}
|
|
208
244
|
else {
|
|
209
|
-
process.stdout.write(formatDoctorMarkdown(healthy, dependencies, configEntries, issues, codex));
|
|
245
|
+
process.stdout.write(formatDoctorMarkdown(healthy, dependencies, configEntries, issues, codex, legacyHook));
|
|
210
246
|
}
|
|
211
247
|
}
|
|
212
248
|
//# sourceMappingURL=doctor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/agent/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/agent/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,20 +9,17 @@
|
|
|
9
9
|
* The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
|
|
10
10
|
* and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
|
|
11
11
|
*/
|
|
12
|
-
import { readFileSync, unlinkSync } from "node:fs";
|
|
13
|
-
import { join } from "node:path";
|
|
14
12
|
import { createRequire } from "node:module";
|
|
15
13
|
import { agentSuccess } from "../output.js";
|
|
16
14
|
import { BINARY_RECOVERY } from "../binaries.js";
|
|
17
15
|
import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
|
|
18
16
|
import { loadConfig } from "../../config/config.js";
|
|
19
17
|
import { Runners } from "../../runners/types.js";
|
|
20
|
-
import { readCache, writeCache, clearCache, computeAggregate,
|
|
18
|
+
import { readCache, writeCache, clearCache, computeAggregate, readAndClearUpgradeMarker, } from "../update-cache.js";
|
|
21
19
|
import { isSnoozed, writeSnooze, clearSnooze, computeVersionKey, } from "../snooze.js";
|
|
22
20
|
import { checkPluginVersion, detectHost } from "../plugin-version.js";
|
|
23
21
|
const require = createRequire(import.meta.url);
|
|
24
22
|
const pkg = require("../../../package.json");
|
|
25
|
-
const JUST_UPGRADED_PATH = join(STATE_DIR, "just-upgraded-from");
|
|
26
23
|
// ── Main ───────────────────────────────────────────────────────────
|
|
27
24
|
export async function agentUpdateCheck(options) {
|
|
28
25
|
// Let errors propagate to non-zero exit so the preamble's
|
|
@@ -153,32 +150,6 @@ function getOrRefreshPayload(runner) {
|
|
|
153
150
|
writeCache({ aggregate, payload });
|
|
154
151
|
return payload;
|
|
155
152
|
}
|
|
156
|
-
function readAndClearUpgradeMarker() {
|
|
157
|
-
let content;
|
|
158
|
-
try {
|
|
159
|
-
content = readFileSync(JUST_UPGRADED_PATH, "utf-8");
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
return null; // File doesn't exist or unreadable
|
|
163
|
-
}
|
|
164
|
-
// Delete marker before parsing — even corrupt markers should be consumed
|
|
165
|
-
try {
|
|
166
|
-
unlinkSync(JUST_UPGRADED_PATH);
|
|
167
|
-
}
|
|
168
|
-
catch {
|
|
169
|
-
// ignore
|
|
170
|
-
}
|
|
171
|
-
try {
|
|
172
|
-
const parsed = JSON.parse(content);
|
|
173
|
-
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
return parsed;
|
|
177
|
-
}
|
|
178
|
-
catch {
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
153
|
function payloadVersions(payload) {
|
|
183
154
|
const result = {
|
|
184
155
|
mthds_agent: payload.mthds_agent.v,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,13 +14,11 @@
|
|
|
14
14
|
* depends on the configured runner: always plxt; add pipelex-agent when
|
|
15
15
|
* runner === "pipelex".
|
|
16
16
|
*/
|
|
17
|
-
import { writeFileSync } from "node:fs";
|
|
18
|
-
import { join } from "node:path";
|
|
19
17
|
import { requireUv, uvToolInstallSync } from "../../installer/runtime/installer.js";
|
|
20
18
|
import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
|
|
21
19
|
import { BINARY_RECOVERY } from "../binaries.js";
|
|
22
20
|
import { agentError, AGENT_ERROR_DOMAINS } from "../output.js";
|
|
23
|
-
import { clearCache,
|
|
21
|
+
import { clearCache, writeUpgradeMarker } from "../update-cache.js";
|
|
24
22
|
import { clearSnooze } from "../snooze.js";
|
|
25
23
|
import { loadConfig } from "../../config/config.js";
|
|
26
24
|
import { Runners } from "../../runners/types.js";
|
|
@@ -128,15 +126,8 @@ export async function agentUpgrade() {
|
|
|
128
126
|
const allSucceeded = failed.size === 0;
|
|
129
127
|
const allFailed = succeeded.size === 0;
|
|
130
128
|
if (allSucceeded) {
|
|
131
|
-
// Write marker, clear cache + snooze
|
|
132
|
-
|
|
133
|
-
ensureStateDir();
|
|
134
|
-
writeFileSync(join(STATE_DIR, "just-upgraded-from"), JSON.stringify(markerData), "utf-8");
|
|
135
|
-
}
|
|
136
|
-
catch (err) {
|
|
137
|
-
// Marker write failure should not prevent reporting success
|
|
138
|
-
process.stderr.write(`Warning: could not write upgrade marker: ${errorMsg(err)}.\n`);
|
|
139
|
-
}
|
|
129
|
+
// Write marker (sandbox-aware via $TMPDIR fallback), clear cache + snooze
|
|
130
|
+
writeUpgradeMarker(markerData);
|
|
140
131
|
clearCache();
|
|
141
132
|
clearSnooze();
|
|
142
133
|
process.stdout.write("UPGRADE_COMPLETE " + JSON.stringify({ upgraded: upgradedEntries }) + "\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/agent/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/agent/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import type { BinaryCheckEntry } from "./update-cache.js";
|
|
13
13
|
/** Minimum plugin version this mthds-agent release requires. */
|
|
14
|
-
export declare const MIN_PLUGIN_VERSION = ">=0.
|
|
14
|
+
export declare const MIN_PLUGIN_VERSION = ">=0.11.0";
|
|
15
15
|
/** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
|
|
16
16
|
export declare const PLUGIN_KEYS: readonly ["mthds@mthds-plugins", "mthds-dev@mthds-plugins"];
|
|
17
17
|
/** Path to Claude Code's installed plugins registry. */
|
|
@@ -21,25 +21,27 @@ export type PluginHost = "claude" | "codex";
|
|
|
21
21
|
/**
|
|
22
22
|
* Detect the host that this mthds-agent process is running under.
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
24
|
+
* `CLAUDECODE=1` is the strongest signal: it's set by Claude Code at runtime
|
|
25
|
+
* (not something users would export in a shell profile), so if it's present
|
|
26
|
+
* we are definitively running inside Claude Code. We trust it even when the
|
|
27
|
+
* Claude registry file is absent — that just means no plugin is installed
|
|
28
|
+
* yet (fresh Claude Code install, or a session that never installed
|
|
29
|
+
* anything). In that case `checkPluginVersion("claude")` returns null and
|
|
30
|
+
* nothing is emitted; importantly we avoid falling through to "codex" and
|
|
31
|
+
* surfacing the wrong upgrade command (e.g. "/plugins install mthds") to a
|
|
32
|
+
* Claude Code user just because a leftover Codex cache dir happens to exist
|
|
33
|
+
* on disk.
|
|
29
34
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* tiebreaker. Codex doesn't have an equivalent runtime-only env var we
|
|
35
|
-
* can trust the same way, so absence of `CLAUDECODE` falls back to the
|
|
36
|
-
* filesystem-based preference (Codex cache wins).
|
|
35
|
+
* `$CODEX_HOME` alone is not enough to claim Codex — a user might export it
|
|
36
|
+
* in their shell profile for customization. We require the cache directory
|
|
37
|
+
* to exist as corroborating evidence (Codex creates it on first plugin
|
|
38
|
+
* install).
|
|
37
39
|
*
|
|
38
40
|
* Order of checks:
|
|
39
|
-
* 1. CLAUDECODE=1
|
|
40
|
-
* 2. ~/.codex/plugins/cache/ exists (honoring $CODEX_HOME)
|
|
41
|
-
* 3. ~/.claude/plugins/installed_plugins.json exists
|
|
42
|
-
* 4.
|
|
41
|
+
* 1. CLAUDECODE=1 → "claude"
|
|
42
|
+
* 2. ~/.codex/plugins/cache/ exists (honoring $CODEX_HOME) → "codex"
|
|
43
|
+
* 3. ~/.claude/plugins/installed_plugins.json exists → "claude"
|
|
44
|
+
* 4. none of the above → null
|
|
43
45
|
*/
|
|
44
46
|
export declare function detectHost(): PluginHost | null;
|
|
45
47
|
/** Command to run inside the host to install / upgrade the plugin. */
|
|
@@ -15,7 +15,7 @@ import { homedir } from "node:os";
|
|
|
15
15
|
import semver from "semver";
|
|
16
16
|
// ── Constants ──────────────────────────────────────────────────────
|
|
17
17
|
/** Minimum plugin version this mthds-agent release requires. */
|
|
18
|
-
export const MIN_PLUGIN_VERSION = ">=0.
|
|
18
|
+
export const MIN_PLUGIN_VERSION = ">=0.11.0";
|
|
19
19
|
/** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
|
|
20
20
|
export const PLUGIN_KEYS = [
|
|
21
21
|
"mthds@mthds-plugins",
|
|
@@ -39,33 +39,34 @@ function codexCacheDir() {
|
|
|
39
39
|
/**
|
|
40
40
|
* Detect the host that this mthds-agent process is running under.
|
|
41
41
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
42
|
+
* `CLAUDECODE=1` is the strongest signal: it's set by Claude Code at runtime
|
|
43
|
+
* (not something users would export in a shell profile), so if it's present
|
|
44
|
+
* we are definitively running inside Claude Code. We trust it even when the
|
|
45
|
+
* Claude registry file is absent — that just means no plugin is installed
|
|
46
|
+
* yet (fresh Claude Code install, or a session that never installed
|
|
47
|
+
* anything). In that case `checkPluginVersion("claude")` returns null and
|
|
48
|
+
* nothing is emitted; importantly we avoid falling through to "codex" and
|
|
49
|
+
* surfacing the wrong upgrade command (e.g. "/plugins install mthds") to a
|
|
50
|
+
* Claude Code user just because a leftover Codex cache dir happens to exist
|
|
51
|
+
* on disk.
|
|
47
52
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* tiebreaker. Codex doesn't have an equivalent runtime-only env var we
|
|
53
|
-
* can trust the same way, so absence of `CLAUDECODE` falls back to the
|
|
54
|
-
* filesystem-based preference (Codex cache wins).
|
|
53
|
+
* `$CODEX_HOME` alone is not enough to claim Codex — a user might export it
|
|
54
|
+
* in their shell profile for customization. We require the cache directory
|
|
55
|
+
* to exist as corroborating evidence (Codex creates it on first plugin
|
|
56
|
+
* install).
|
|
55
57
|
*
|
|
56
58
|
* Order of checks:
|
|
57
|
-
* 1. CLAUDECODE=1
|
|
58
|
-
* 2. ~/.codex/plugins/cache/ exists (honoring $CODEX_HOME)
|
|
59
|
-
* 3. ~/.claude/plugins/installed_plugins.json exists
|
|
60
|
-
* 4.
|
|
59
|
+
* 1. CLAUDECODE=1 → "claude"
|
|
60
|
+
* 2. ~/.codex/plugins/cache/ exists (honoring $CODEX_HOME) → "codex"
|
|
61
|
+
* 3. ~/.claude/plugins/installed_plugins.json exists → "claude"
|
|
62
|
+
* 4. none of the above → null
|
|
61
63
|
*/
|
|
62
64
|
export function detectHost() {
|
|
63
|
-
|
|
64
|
-
if (process.env.CLAUDECODE === "1" && claudeInstalled)
|
|
65
|
+
if (process.env.CLAUDECODE === "1")
|
|
65
66
|
return "claude";
|
|
66
67
|
if (existsSync(codexCacheDir()))
|
|
67
68
|
return "codex";
|
|
68
|
-
if (
|
|
69
|
+
if (existsSync(INSTALLED_PLUGINS_PATH))
|
|
69
70
|
return "claude";
|
|
70
71
|
return null;
|
|
71
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-version.js","sourceRoot":"","sources":["../../src/agent/plugin-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,sEAAsE;AAEtE,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,kFAAkF;AAClF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,qBAAqB;IACrB,yBAAyB;CACjB,CAAC;AAEX,iFAAiF;AACjF,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAC1C,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,WAAW,CAAU,CAAC;AAE3D,iEAAiE;AACjE,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAEpC,wDAAwD;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CACxC,OAAO,EAAE,EACT,SAAS,EACT,SAAS,EACT,wBAAwB,CACzB,CAAC;AAuBF,sEAAsE;AAEtE,oDAAoD;AACpD,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"plugin-version.js","sourceRoot":"","sources":["../../src/agent/plugin-version.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/snooze.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Snooze state for update-check upgrade prompts.
|
|
3
3
|
*
|
|
4
|
-
* Manages
|
|
4
|
+
* Manages a single-line file:
|
|
5
5
|
* <versionKey> <level> <epoch>
|
|
6
6
|
*
|
|
7
|
+
* Primary location: ~/.mthds/state/update-snoozed.
|
|
8
|
+
* Fallback location: $TMPDIR/mthds-agent/update-snoozed — used when the
|
|
9
|
+
* primary location is not writable (Codex `workspaceWrite` sandbox permits
|
|
10
|
+
* writes only under cwd / configured roots / $TMPDIR, not under the user's
|
|
11
|
+
* home dir). Same dual-path policy as the update-check cache and the
|
|
12
|
+
* just-upgraded marker — see update-cache.ts.
|
|
13
|
+
*
|
|
14
|
+
* Reads consult both paths and prefer the newer mtime, so escalation
|
|
15
|
+
* (level 1 → 2 → 3+) stays correct as sessions move between sandboxed and
|
|
16
|
+
* non-sandboxed contexts.
|
|
17
|
+
*
|
|
7
18
|
* Version key is a plain concatenation of binary statuses (human-readable).
|
|
8
19
|
* Escalating backoff: level 1 = 24h, level 2 = 48h, level 3+ = 7d.
|
|
9
20
|
* Snooze resets when the version key changes (any binary constraint updated).
|
|
@@ -20,13 +31,28 @@ export interface SnoozeState {
|
|
|
20
31
|
* Changes whenever any binary's status or constraint changes.
|
|
21
32
|
*/
|
|
22
33
|
export declare function computeVersionKey(payload: CachePayload): string;
|
|
23
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Read current snooze state. Returns null if missing or corrupt.
|
|
36
|
+
*
|
|
37
|
+
* Inspects both the primary and the fallback path; when both have valid
|
|
38
|
+
* contents, the one with the newer mtime wins. This keeps escalation
|
|
39
|
+
* correct when a session moves between sandboxed and non-sandboxed contexts:
|
|
40
|
+
* the older file is a stale snapshot from before the redirect happened.
|
|
41
|
+
*/
|
|
24
42
|
export declare function readSnooze(): SnoozeState | null;
|
|
25
43
|
/**
|
|
26
|
-
* Write snooze state. Escalates level if same versionKey, resets if
|
|
44
|
+
* Write snooze state. Escalates level if same versionKey, resets to 1 if
|
|
45
|
+
* different. Sandbox-aware: falls back to $TMPDIR when ~/.mthds/state/ is
|
|
46
|
+
* not writable. Write failures emit a one-shot stderr warning per process.
|
|
27
47
|
*/
|
|
28
48
|
export declare function writeSnooze(versionKey: string): void;
|
|
29
49
|
/** Check if snooze is active for the given versionKey. */
|
|
30
50
|
export declare function isSnoozed(versionKey: string): boolean;
|
|
31
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Clear snooze. Hits both primary and fallback paths. When unlink is blocked
|
|
53
|
+
* (sandbox EPERM), overwrites with empty content so the next read parses as
|
|
54
|
+
* null. Warns at most once per process when a present file cannot be cleared
|
|
55
|
+
* by either route. Silent when both paths were absent to begin with — no
|
|
56
|
+
* spurious 0-byte file is created in that case.
|
|
57
|
+
*/
|
|
32
58
|
export declare function clearSnooze(): void;
|