aicodeman 1.33.3 → 1.35.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 +3 -0
- package/dist/config/cli-registry/schema.d.ts +18 -0
- package/dist/config/cli-registry/schema.d.ts.map +1 -1
- package/dist/config/cli-registry/schema.js +27 -0
- package/dist/config/cli-registry/schema.js.map +1 -1
- package/dist/config/cli-registry/stock.d.ts.map +1 -1
- package/dist/config/cli-registry/stock.js +35 -0
- package/dist/config/cli-registry/stock.js.map +1 -1
- package/dist/config/cli-registry/types.d.ts +33 -0
- package/dist/config/cli-registry/types.d.ts.map +1 -1
- package/dist/config/dependency-registry.d.ts +7 -0
- package/dist/config/dependency-registry.d.ts.map +1 -1
- package/dist/config/dependency-registry.js +15 -0
- package/dist/config/dependency-registry.js.map +1 -1
- package/dist/config/path-probe.d.ts +37 -0
- package/dist/config/path-probe.d.ts.map +1 -0
- package/dist/config/path-probe.js +43 -0
- package/dist/config/path-probe.js.map +1 -0
- package/dist/git-workspace-status.d.ts +220 -0
- package/dist/git-workspace-status.d.ts.map +1 -0
- package/dist/git-workspace-status.js +606 -0
- package/dist/git-workspace-status.js.map +1 -0
- package/dist/hooks-config.d.ts.map +1 -1
- package/dist/hooks-config.js +88 -14
- package/dist/hooks-config.js.map +1 -1
- package/dist/mcp-sync.d.ts +105 -0
- package/dist/mcp-sync.d.ts.map +1 -0
- package/dist/mcp-sync.js +619 -0
- package/dist/mcp-sync.js.map +1 -0
- package/dist/mux-interface.d.ts +4 -0
- package/dist/mux-interface.d.ts.map +1 -1
- package/dist/session-cli-builder.d.ts +20 -1
- package/dist/session-cli-builder.d.ts.map +1 -1
- package/dist/session-cli-builder.js +33 -3
- package/dist/session-cli-builder.js.map +1 -1
- package/dist/session-cli-registry-bridge.d.ts +2 -0
- package/dist/session-cli-registry-bridge.d.ts.map +1 -1
- package/dist/session-cli-registry-bridge.js +15 -8
- package/dist/session-cli-registry-bridge.js.map +1 -1
- package/dist/session.d.ts +19 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +29 -2
- package/dist/session.js.map +1 -1
- package/dist/tmux-manager.d.ts +2 -0
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +4 -2
- package/dist/tmux-manager.js.map +1 -1
- package/dist/types/api.d.ts +7 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp-sync.d.ts +40 -0
- package/dist/types/mcp-sync.d.ts.map +1 -0
- package/dist/types/mcp-sync.js +8 -0
- package/dist/types/mcp-sync.js.map +1 -0
- package/dist/types/push.d.ts +37 -2
- package/dist/types/push.d.ts.map +1 -1
- package/dist/types/push.js +10 -3
- package/dist/types/push.js.map +1 -1
- package/dist/types/session.d.ts +34 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +25 -1
- package/dist/types/session.js.map +1 -1
- package/dist/utils/bounded-path-probe.d.ts +99 -0
- package/dist/utils/bounded-path-probe.d.ts.map +1 -0
- package/dist/utils/bounded-path-probe.js +228 -0
- package/dist/utils/bounded-path-probe.js.map +1 -0
- package/dist/utils/cli-executable-resolver.d.ts +2 -0
- package/dist/utils/cli-executable-resolver.d.ts.map +1 -1
- package/dist/utils/cli-executable-resolver.js +2 -1
- package/dist/utils/cli-executable-resolver.js.map +1 -1
- package/dist/utils/dependency-checker.d.ts +2 -0
- package/dist/utils/dependency-checker.d.ts.map +1 -1
- package/dist/utils/dependency-checker.js +37 -9
- package/dist/utils/dependency-checker.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/web/case-path.d.ts +58 -0
- package/dist/web/case-path.d.ts.map +1 -0
- package/dist/web/case-path.js +182 -0
- package/dist/web/case-path.js.map +1 -0
- package/dist/web/public/admin-ui.js.gz +0 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.b9516c7b.js +43 -0
- package/dist/web/public/app.b9516c7b.js.br +0 -0
- package/dist/web/public/app.b9516c7b.js.gz +0 -0
- package/dist/web/public/approvals-ui.js.gz +0 -0
- package/dist/web/public/constants.d95fade9.js.gz +0 -0
- package/dist/web/public/cron-ui.js.gz +0 -0
- package/dist/web/public/entrance-animations.js.gz +0 -0
- package/dist/web/public/git-status-ui.js +673 -0
- package/dist/web/public/git-status-ui.js.br +0 -0
- package/dist/web/public/git-status-ui.js.gz +0 -0
- package/dist/web/public/home-sessions.js.gz +0 -0
- package/dist/web/public/host-wake-ui.js.gz +0 -0
- package/dist/web/public/i18n.52f5b7cc.js +1 -0
- package/dist/web/public/i18n.52f5b7cc.js.br +0 -0
- package/dist/web/public/i18n.52f5b7cc.js.gz +0 -0
- package/dist/web/public/image-input.a216cf9e.js.gz +0 -0
- package/dist/web/public/index.html +190 -15
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
- package/dist/web/public/keyboard-accessory.c1e7c7b7.js.gz +0 -0
- package/dist/web/public/mobile-handlers.23a85db1.js.gz +0 -0
- package/dist/web/public/mobile-ime-preview.2dbaf262.js +1 -0
- package/dist/web/public/mobile-ime-preview.2dbaf262.js.br +0 -0
- package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
- package/dist/web/public/mobile-overview.js.gz +0 -0
- package/dist/web/public/mobile.1aa4952d.css.gz +0 -0
- package/dist/web/public/notification-manager.50bb87d8.js.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/panels-ui.6a5898d9.js.gz +0 -0
- package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
- package/dist/web/public/{ralph-wizard.13a1831e.js → ralph-wizard.b6c0dd19.js} +2 -0
- package/dist/web/public/ralph-wizard.b6c0dd19.js.br +0 -0
- package/dist/web/public/{ralph-wizard.13a1831e.js.gz → ralph-wizard.b6c0dd19.js.gz} +0 -0
- package/dist/web/public/readmymind-ui.js.gz +0 -0
- package/dist/web/public/reboot-restore-ui.js.gz +0 -0
- package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
- package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
- package/dist/web/public/session-lineage.js +27 -11
- package/dist/web/public/session-lineage.js.br +0 -0
- package/dist/web/public/session-lineage.js.gz +0 -0
- package/dist/web/public/session-ui.6bddf916.js +89 -0
- package/dist/web/public/session-ui.6bddf916.js.br +0 -0
- package/dist/web/public/session-ui.6bddf916.js.gz +0 -0
- package/dist/web/public/settings-ui.6e798b7b.js +97 -0
- package/dist/web/public/settings-ui.6e798b7b.js.br +0 -0
- package/dist/web/public/settings-ui.6e798b7b.js.gz +0 -0
- package/dist/web/public/styles.2d175c60.css +1 -0
- package/dist/web/public/styles.2d175c60.css.br +0 -0
- package/dist/web/public/styles.2d175c60.css.gz +0 -0
- package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
- package/dist/web/public/sw.js +2 -2
- package/dist/web/public/sw.js.br +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/tab-layout-browser.065fcba4.js +1 -0
- package/dist/web/public/tab-layout-browser.065fcba4.js.br +0 -0
- package/dist/web/public/tab-layout-browser.065fcba4.js.gz +0 -0
- package/dist/web/public/{tab-rail-resize.dcdc5772.js → tab-rail-resize.94cd59f0.js} +1 -1
- package/dist/web/public/tab-rail-resize.94cd59f0.js.br +0 -0
- package/dist/web/public/tab-rail-resize.94cd59f0.js.gz +0 -0
- package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js.gz +0 -0
- package/dist/web/public/terminal-split.js +82 -34
- package/dist/web/public/terminal-split.js.br +0 -0
- package/dist/web/public/terminal-split.js.gz +0 -0
- package/dist/web/public/terminal-ui.a4535311.js +2 -0
- package/dist/web/public/terminal-ui.a4535311.js.br +0 -0
- package/dist/web/public/terminal-ui.a4535311.js.gz +0 -0
- package/dist/web/public/ultracode-panel.js.gz +0 -0
- package/dist/web/public/ultracode-windows.js.gz +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
- package/dist/web/public/vendor/marked.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/{xterm-predictive-echo.bd6882b8.js → xterm-predictive-echo.ae5e3d5d.js} +1 -1
- package/dist/web/public/vendor/{xterm-predictive-echo.bd6882b8.js.br → xterm-predictive-echo.ae5e3d5d.js.br} +0 -0
- package/dist/web/public/vendor/{xterm-predictive-echo.bd6882b8.js.gz → xterm-predictive-echo.ae5e3d5d.js.gz} +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js +4 -0
- package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js.br +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/voice-input.c4b51eb6.js.gz +0 -0
- package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
- package/dist/web/public/webview-tabs.js +21 -10
- package/dist/web/public/webview-tabs.js.br +0 -0
- package/dist/web/public/webview-tabs.js.gz +0 -0
- package/dist/web/reboot-restore-registry.d.ts +2 -1
- package/dist/web/reboot-restore-registry.d.ts.map +1 -1
- package/dist/web/reboot-restore-registry.js +2 -1
- package/dist/web/reboot-restore-registry.js.map +1 -1
- package/dist/web/routes/case-routes.d.ts.map +1 -1
- package/dist/web/routes/case-routes.js +136 -18
- package/dist/web/routes/case-routes.js.map +1 -1
- package/dist/web/routes/doctor-routes.d.ts +23 -0
- package/dist/web/routes/doctor-routes.d.ts.map +1 -0
- package/dist/web/routes/doctor-routes.js +83 -0
- package/dist/web/routes/doctor-routes.js.map +1 -0
- package/dist/web/routes/git-status-routes.d.ts +16 -0
- package/dist/web/routes/git-status-routes.d.ts.map +1 -0
- package/dist/web/routes/git-status-routes.js +71 -0
- package/dist/web/routes/git-status-routes.js.map +1 -0
- package/dist/web/routes/index.d.ts +4 -0
- package/dist/web/routes/index.d.ts.map +1 -1
- package/dist/web/routes/index.js +4 -0
- package/dist/web/routes/index.js.map +1 -1
- package/dist/web/routes/mcp-sync-routes.d.ts +29 -0
- package/dist/web/routes/mcp-sync-routes.d.ts.map +1 -0
- package/dist/web/routes/mcp-sync-routes.js +83 -0
- package/dist/web/routes/mcp-sync-routes.js.map +1 -0
- package/dist/web/routes/ralph-routes.d.ts.map +1 -1
- package/dist/web/routes/ralph-routes.js +2 -1
- package/dist/web/routes/ralph-routes.js.map +1 -1
- package/dist/web/routes/reboot-restore-routes.d.ts.map +1 -1
- package/dist/web/routes/reboot-restore-routes.js +2 -0
- package/dist/web/routes/reboot-restore-routes.js.map +1 -1
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +60 -25
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/routes/webhook-routes.d.ts +21 -0
- package/dist/web/routes/webhook-routes.d.ts.map +1 -0
- package/dist/web/routes/webhook-routes.js +87 -0
- package/dist/web/routes/webhook-routes.js.map +1 -0
- package/dist/web/schemas.d.ts +48 -2
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +71 -0
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts +4 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +57 -25
- package/dist/web/server.js.map +1 -1
- package/dist/webhook-notify.d.ts +71 -0
- package/dist/webhook-notify.d.ts.map +1 -0
- package/dist/webhook-notify.js +282 -0
- package/dist/webhook-notify.js.map +1 -0
- package/package.json +2 -1
- package/skills/codeman/SKILL.md +26 -8
- package/skills/codeman/preamble.sh +16 -4
- package/skills/codeman/reference/endpoints.md +11 -3
- package/skills/codeman/reference/recipes.md +1 -1
- package/skills/codeman/reference/verbs.md +3 -0
- package/dist/web/public/app.0879466b.js +0 -43
- package/dist/web/public/app.0879466b.js.br +0 -0
- package/dist/web/public/app.0879466b.js.gz +0 -0
- package/dist/web/public/i18n.7f8be985.js +0 -1
- package/dist/web/public/i18n.7f8be985.js.br +0 -0
- package/dist/web/public/i18n.7f8be985.js.gz +0 -0
- package/dist/web/public/ralph-wizard.13a1831e.js.br +0 -0
- package/dist/web/public/session-ui.7575a231.js +0 -89
- package/dist/web/public/session-ui.7575a231.js.br +0 -0
- package/dist/web/public/session-ui.7575a231.js.gz +0 -0
- package/dist/web/public/settings-ui.c68e7f59.js +0 -95
- package/dist/web/public/settings-ui.c68e7f59.js.br +0 -0
- package/dist/web/public/settings-ui.c68e7f59.js.gz +0 -0
- package/dist/web/public/styles.f2b78b86.css +0 -1
- package/dist/web/public/styles.f2b78b86.css.br +0 -0
- package/dist/web/public/styles.f2b78b86.css.gz +0 -0
- package/dist/web/public/tab-rail-resize.dcdc5772.js.br +0 -0
- package/dist/web/public/tab-rail-resize.dcdc5772.js.gz +0 -0
- package/dist/web/public/terminal-ui.d5223c0e.js +0 -2
- package/dist/web/public/terminal-ui.d5223c0e.js.br +0 -0
- package/dist/web/public/terminal-ui.d5223c0e.js.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.6fee72f2.js +0 -4
- package/dist/web/public/vendor/xterm-zerolag-input.6fee72f2.js.br +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.6fee72f2.js.gz +0 -0
package/dist/types/push.d.ts
CHANGED
|
@@ -6,13 +6,17 @@
|
|
|
6
6
|
* Key exports:
|
|
7
7
|
* - PushSubscriptionRecord — a registered push endpoint with per-event preferences
|
|
8
8
|
* - VapidKeys — VAPID key pair (public + private) for Web Push authentication
|
|
9
|
+
* - WebhookConfig, WebhookStatus, WebhookResult (+ the kind/scope lists): the webhook channel
|
|
10
|
+
* (ntfy, Slack, Discord, generic JSON) that carries the same events as Web Push
|
|
9
11
|
*
|
|
10
12
|
* Persistence:
|
|
11
13
|
* - VAPID keys: `~/.codeman/push-keys.json` (auto-generated on first use)
|
|
12
14
|
* - Subscriptions: `~/.codeman/push-subscriptions.json` (expired auto-cleaned on 410/404)
|
|
15
|
+
* - Webhook: `~/.codeman/webhook.json` (mode 0600; the URL is a bearer secret)
|
|
13
16
|
*
|
|
14
|
-
*
|
|
15
|
-
* `POST /api/push/subscribe`.
|
|
17
|
+
* Push is managed by PushStore (`src/push-store.ts`), served at `GET /api/push/vapid-key`,
|
|
18
|
+
* `POST /api/push/subscribe`. The webhook is managed by `src/webhook-notify.ts`, served at
|
|
19
|
+
* `GET`/`PUT /api/webhook` and `POST /api/webhook/test`. No dependencies on other domain modules.
|
|
16
20
|
*/
|
|
17
21
|
/** A registered push subscription */
|
|
18
22
|
export interface PushSubscriptionRecord {
|
|
@@ -33,4 +37,35 @@ export interface VapidKeys {
|
|
|
33
37
|
privateKey: string;
|
|
34
38
|
generatedAt: number;
|
|
35
39
|
}
|
|
40
|
+
/** Services the webhook channel can format a message for. */
|
|
41
|
+
export declare const WEBHOOK_KINDS: readonly ["ntfy", "slack", "discord", "generic"];
|
|
42
|
+
export type WebhookKind = (typeof WEBHOOK_KINDS)[number];
|
|
43
|
+
/** `attention`: only events that need a human (critical / warning). `all`: also "response complete". */
|
|
44
|
+
export declare const WEBHOOK_SCOPES: readonly ["attention", "all"];
|
|
45
|
+
export type WebhookScope = (typeof WEBHOOK_SCOPES)[number];
|
|
46
|
+
export type WebhookUrgency = 'critical' | 'warning' | 'info';
|
|
47
|
+
/** The stored webhook config (`~/.codeman/webhook.json`). `url` is a secret and is never returned. */
|
|
48
|
+
export interface WebhookConfig {
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
kind: WebhookKind;
|
|
51
|
+
url: string;
|
|
52
|
+
scope: WebhookScope;
|
|
53
|
+
}
|
|
54
|
+
/** One delivery attempt. `error` never contains the URL. */
|
|
55
|
+
export interface WebhookResult {
|
|
56
|
+
ok: boolean;
|
|
57
|
+
status?: number;
|
|
58
|
+
error?: string;
|
|
59
|
+
at: number;
|
|
60
|
+
}
|
|
61
|
+
/** `GET /api/webhook`: the config without its URL, plus the last delivery result. */
|
|
62
|
+
export interface WebhookStatus {
|
|
63
|
+
enabled: boolean;
|
|
64
|
+
kind: WebhookKind;
|
|
65
|
+
scope: WebhookScope;
|
|
66
|
+
hasUrl: boolean;
|
|
67
|
+
/** Scheme + host only; the path and query are the secret. */
|
|
68
|
+
urlMasked: string;
|
|
69
|
+
lastResult: WebhookResult | null;
|
|
70
|
+
}
|
|
36
71
|
//# sourceMappingURL=push.d.ts.map
|
package/dist/types/push.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/types/push.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/types/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,kCAAkC;AAClC,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,6DAA6D;AAC7D,eAAO,MAAM,aAAa,kDAAmD,CAAC;AAC9E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,wGAAwG;AACxG,eAAO,MAAM,cAAc,+BAAgC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D,sGAAsG;AACtG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;CAClC"}
|
package/dist/types/push.js
CHANGED
|
@@ -6,13 +6,20 @@
|
|
|
6
6
|
* Key exports:
|
|
7
7
|
* - PushSubscriptionRecord — a registered push endpoint with per-event preferences
|
|
8
8
|
* - VapidKeys — VAPID key pair (public + private) for Web Push authentication
|
|
9
|
+
* - WebhookConfig, WebhookStatus, WebhookResult (+ the kind/scope lists): the webhook channel
|
|
10
|
+
* (ntfy, Slack, Discord, generic JSON) that carries the same events as Web Push
|
|
9
11
|
*
|
|
10
12
|
* Persistence:
|
|
11
13
|
* - VAPID keys: `~/.codeman/push-keys.json` (auto-generated on first use)
|
|
12
14
|
* - Subscriptions: `~/.codeman/push-subscriptions.json` (expired auto-cleaned on 410/404)
|
|
15
|
+
* - Webhook: `~/.codeman/webhook.json` (mode 0600; the URL is a bearer secret)
|
|
13
16
|
*
|
|
14
|
-
*
|
|
15
|
-
* `POST /api/push/subscribe`.
|
|
17
|
+
* Push is managed by PushStore (`src/push-store.ts`), served at `GET /api/push/vapid-key`,
|
|
18
|
+
* `POST /api/push/subscribe`. The webhook is managed by `src/webhook-notify.ts`, served at
|
|
19
|
+
* `GET`/`PUT /api/webhook` and `POST /api/webhook/test`. No dependencies on other domain modules.
|
|
16
20
|
*/
|
|
17
|
-
|
|
21
|
+
/** Services the webhook channel can format a message for. */
|
|
22
|
+
export const WEBHOOK_KINDS = ['ntfy', 'slack', 'discord', 'generic'];
|
|
23
|
+
/** `attention`: only events that need a human (critical / warning). `all`: also "response complete". */
|
|
24
|
+
export const WEBHOOK_SCOPES = ['attention', 'all'];
|
|
18
25
|
//# sourceMappingURL=push.js.map
|
package/dist/types/push.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/types/push.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/types/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoBH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAG9E,wGAAwG;AACxG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,KAAK,CAAU,CAAC"}
|
package/dist/types/session.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'auto' | 'normal' | 'allowedTools')
|
|
13
13
|
* - SessionColor — visual differentiation color
|
|
14
14
|
* - OpenCodeConfig — OpenCode-specific settings (model, autoAllowTools, continueSession)
|
|
15
|
-
* - CodexConfig — Codex (OpenAI CLI)-specific settings (model, resumeSessionId)
|
|
15
|
+
* - CodexConfig — Codex (OpenAI CLI)-specific settings (model, reasoningEffort, resumeSessionId, bypass, animations, renderMode)
|
|
16
16
|
* - GeminiConfig — Gemini CLI-specific settings (model, approvalMode, resumeSession)
|
|
17
17
|
* - AntigravityConfig — Antigravity CLI (agy) settings (model, dangerouslySkipPermissions, resumeConversationId)
|
|
18
18
|
* - PiConfig — Pi CLI (pi.dev) settings (model, provider, thinking, resume/continue, project trust)
|
|
@@ -327,6 +327,26 @@ export declare const EFFORT_LEVELS: readonly ["low", "medium", "high", "xhigh",
|
|
|
327
327
|
export type EffortLevel = (typeof EFFORT_LEVELS)[number];
|
|
328
328
|
/** Type guard: is the string a valid EffortLevel? */
|
|
329
329
|
export declare function isEffortLevel(value: string | undefined): value is EffortLevel;
|
|
330
|
+
/**
|
|
331
|
+
* Reasoning effort levels codex accepts as `model_reasoning_effort` (codex-cli 0.154.0).
|
|
332
|
+
* Which of them a given model honours is codex's business; Codeman only keeps the value
|
|
333
|
+
* to a known word, since it lands in the launch argv.
|
|
334
|
+
*/
|
|
335
|
+
export declare const CODEX_REASONING_EFFORTS: readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max", "ultra"];
|
|
336
|
+
/** Codex reasoning effort for a session, passed as `--config model_reasoning_effort=<level>` */
|
|
337
|
+
export type CodexReasoningEffort = (typeof CODEX_REASONING_EFFORTS)[number];
|
|
338
|
+
/**
|
|
339
|
+
* Model aliases Claude Code accepts for its advisor tool (a stronger model the session's
|
|
340
|
+
* main model consults at decision points; code.claude.com/docs/en/advisor). Haiku is left
|
|
341
|
+
* out on purpose: it can call an advisor but never act as one.
|
|
342
|
+
*/
|
|
343
|
+
export declare const ADVISOR_MODEL_ALIASES: readonly ["fable", "opus", "sonnet"];
|
|
344
|
+
/**
|
|
345
|
+
* Type guard: is the value an advisor model Codeman will pass to claude? An alias from
|
|
346
|
+
* ADVISOR_MODEL_ALIASES or a full fable/opus/sonnet model id. ⚠️ This allowlist is also the
|
|
347
|
+
* injection guard: the value is rendered inside the single-quoted `--settings` JSON argument.
|
|
348
|
+
*/
|
|
349
|
+
export declare function isAdvisorModel(value: unknown): value is string;
|
|
330
350
|
/** OpenCode session configuration */
|
|
331
351
|
export interface OpenCodeConfig {
|
|
332
352
|
/** Model identifier (e.g., "anthropic/claude-sonnet-4-5", "openai/gpt-5.2", "ollama/codellama") */
|
|
@@ -346,6 +366,8 @@ export type CodexRenderMode = 'hybrid';
|
|
|
346
366
|
export interface CodexConfig {
|
|
347
367
|
/** Model identifier (e.g., "gpt-5", "o4-mini"). Passed via --model. */
|
|
348
368
|
model?: string;
|
|
369
|
+
/** Reasoning effort for this session. Passed via --config model_reasoning_effort=<level>. */
|
|
370
|
+
reasoningEffort?: CodexReasoningEffort;
|
|
349
371
|
/** Resume a previous codex conversation by session id (passed via --resume) */
|
|
350
372
|
resumeSessionId?: string;
|
|
351
373
|
/** Bypass approval prompts (passes --dangerously-bypass-approvals-and-sandbox) */
|
|
@@ -731,6 +753,17 @@ export interface SessionState {
|
|
|
731
753
|
resumeSessionId?: string;
|
|
732
754
|
/** Claude CLI effort level (soft default via --settings, switchable in-session via /effort) */
|
|
733
755
|
effort?: EffortLevel;
|
|
756
|
+
/** Claude advisor model (`advisorModel` in the launch `--settings`, switchable in-session via /advisor) */
|
|
757
|
+
advisorModel?: string;
|
|
758
|
+
/**
|
|
759
|
+
* The model the session was LAUNCHED with (`--model`): the caller's per-session `model`, or
|
|
760
|
+
* the app-wide default when there was none. Persisted so a recovered session relaunches on
|
|
761
|
+
* the same model rather than whatever the default is by then. Not `cliModel`, which is what
|
|
762
|
+
* the CLI's banner reports. Claude sessions only (`cliTakesSessionModel()`): every other CLI
|
|
763
|
+
* keeps its model in its own config object (`codexConfig.model` and so on), and this is
|
|
764
|
+
* absent for them.
|
|
765
|
+
*/
|
|
766
|
+
model?: string;
|
|
734
767
|
/**
|
|
735
768
|
* Custom Model Endpoint Profiles (docs/custom-model-endpoints-plan.md): the custom
|
|
736
769
|
* OpenAI-compatible endpoint (local or cloud) this session's CLI is currently pointed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
|
package/dist/types/session.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'auto' | 'normal' | 'allowedTools')
|
|
13
13
|
* - SessionColor — visual differentiation color
|
|
14
14
|
* - OpenCodeConfig — OpenCode-specific settings (model, autoAllowTools, continueSession)
|
|
15
|
-
* - CodexConfig — Codex (OpenAI CLI)-specific settings (model, resumeSessionId)
|
|
15
|
+
* - CodexConfig — Codex (OpenAI CLI)-specific settings (model, reasoningEffort, resumeSessionId, bypass, animations, renderMode)
|
|
16
16
|
* - GeminiConfig — Gemini CLI-specific settings (model, approvalMode, resumeSession)
|
|
17
17
|
* - AntigravityConfig — Antigravity CLI (agy) settings (model, dangerouslySkipPermissions, resumeConversationId)
|
|
18
18
|
* - PiConfig — Pi CLI (pi.dev) settings (model, provider, thinking, resume/continue, project trust)
|
|
@@ -39,6 +39,30 @@ export const EFFORT_LEVELS = ['low', 'medium', 'high', 'xhigh', 'max', 'ultracod
|
|
|
39
39
|
export function isEffortLevel(value) {
|
|
40
40
|
return value !== undefined && EFFORT_LEVELS.includes(value);
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Reasoning effort levels codex accepts as `model_reasoning_effort` (codex-cli 0.154.0).
|
|
44
|
+
* Which of them a given model honours is codex's business; Codeman only keeps the value
|
|
45
|
+
* to a known word, since it lands in the launch argv.
|
|
46
|
+
*/
|
|
47
|
+
export const CODEX_REASONING_EFFORTS = ['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max', 'ultra'];
|
|
48
|
+
/**
|
|
49
|
+
* Model aliases Claude Code accepts for its advisor tool (a stronger model the session's
|
|
50
|
+
* main model consults at decision points; code.claude.com/docs/en/advisor). Haiku is left
|
|
51
|
+
* out on purpose: it can call an advisor but never act as one.
|
|
52
|
+
*/
|
|
53
|
+
export const ADVISOR_MODEL_ALIASES = ['fable', 'opus', 'sonnet'];
|
|
54
|
+
/** A full model id in one of the advisor-capable families, e.g. `claude-opus-5-5`. */
|
|
55
|
+
const ADVISOR_MODEL_ID_PATTERN = /^claude-(?:fable|opus|sonnet)-[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
56
|
+
/**
|
|
57
|
+
* Type guard: is the value an advisor model Codeman will pass to claude? An alias from
|
|
58
|
+
* ADVISOR_MODEL_ALIASES or a full fable/opus/sonnet model id. ⚠️ This allowlist is also the
|
|
59
|
+
* injection guard: the value is rendered inside the single-quoted `--settings` JSON argument.
|
|
60
|
+
*/
|
|
61
|
+
export function isAdvisorModel(value) {
|
|
62
|
+
if (typeof value !== 'string' || value.length > 64)
|
|
63
|
+
return false;
|
|
64
|
+
return ADVISOR_MODEL_ALIASES.includes(value) || ADVISOR_MODEL_ID_PATTERN.test(value);
|
|
65
|
+
}
|
|
42
66
|
/**
|
|
43
67
|
* Output captured from a session
|
|
44
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA8UH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAK7F,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,OAAO,KAAK,KAAK,SAAS,IAAK,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA8UH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAK7F,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,OAAO,KAAK,KAAK,SAAS,IAAK,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAU,CAAC;AAKtH;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAE1E,sFAAsF;AACtF,MAAM,wBAAwB,GAAG,yDAAyD,CAAC;AAE3F;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IACjE,OAAQ,qBAA2C,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9G,CAAC;AAoeD;;GAEG"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Bounded existence probe for user-chosen paths.
|
|
3
|
+
*
|
|
4
|
+
* A linked case can live on a network mount (NFS, SMB, sshfs). When that mount
|
|
5
|
+
* goes unreachable, a hard mount makes `stat()` wait forever. A synchronous
|
|
6
|
+
* probe (`existsSync`) on such a path blocks the event loop and freezes the
|
|
7
|
+
* whole web server; even an async `stat()` never settles and permanently holds
|
|
8
|
+
* one of libuv's few threadpool workers, which every other `fs`, `dns.lookup`
|
|
9
|
+
* and `crypto` call in the process shares.
|
|
10
|
+
*
|
|
11
|
+
* The probe therefore answers one of THREE things, never two:
|
|
12
|
+
* - `'present'` / `'absent'`: the filesystem answered (ENOENT and ENOTDIR are
|
|
13
|
+
* the only errors that mean absent);
|
|
14
|
+
* - `'unknown'`: it did not answer in `PATH_PROBE_TIMEOUT_MS`, it answered with
|
|
15
|
+
* some other error (EIO from a soft mount that gave up, EACCES), or the probe
|
|
16
|
+
* was refused (below). "Unknown" is NOT "absent": a caller that would create,
|
|
17
|
+
* scaffold or 404 on absence must not do so on unknown.
|
|
18
|
+
*
|
|
19
|
+
* And it keeps a dead mount from draining the threadpool:
|
|
20
|
+
* - one in-flight probe per path, shared by concurrent callers;
|
|
21
|
+
* - a path whose probe timed out is "stalled" until that stat finally settles.
|
|
22
|
+
* Paths NEAR a stalled one are answered "unknown" without a new stat, so one
|
|
23
|
+
* dead mount costs one worker, not one per case and file on it. "Near" means on
|
|
24
|
+
* the same mount when that mount is a network or FUSE filesystem (NFS, SMB,
|
|
25
|
+
* sshfs and the like): under the deepest mount point holding the stalled path,
|
|
26
|
+
* with its type, read from `/proc/self/mounts` (procfs, which never waits on the
|
|
27
|
+
* dead filesystem). Otherwise it narrows to the stalled path and everything under
|
|
28
|
+
* it: when the deepest mount is local (a path typed under a local `/home` can
|
|
29
|
+
* reach a NAS through a symlink, and must not take the rest of `/home` with it),
|
|
30
|
+
* is `/`, or the table is unavailable (not Linux). Unrelated paths are probed
|
|
31
|
+
* normally;
|
|
32
|
+
* - once `MAX_STALLED_PATH_PROBES` stalled stats are pending, new probes are
|
|
33
|
+
* refused process-wide (answered "unknown"), since each would risk another
|
|
34
|
+
* worker. Probes merely in flight do not count, so concurrent healthy probes
|
|
35
|
+
* never get refused. A caller acting on ONE path at a user's explicit request
|
|
36
|
+
* (opening a case, starting a session in it) may pass `{ pastCap: true }`: its
|
|
37
|
+
* probe is still bounded and still recorded as stalled if it hangs (so a dead
|
|
38
|
+
* path costs at most one worker however often it is retried), but it is not
|
|
39
|
+
* refused just because unrelated mounts are dead. Bulk scans (the case list)
|
|
40
|
+
* keep the cap; the per-spawn hook and statusLine helpers retry one refused
|
|
41
|
+
* probe past it and then skip a path that still answers "unknown", rather than
|
|
42
|
+
* touch it with an unbounded call. `pastCap` still stops at
|
|
43
|
+
* `PATH_PROBE_STALL_CEILING` (the threadpool size minus one), so explicit
|
|
44
|
+
* requests against several dead paths can never take the last worker.
|
|
45
|
+
*
|
|
46
|
+
* Both events are logged once (`console.warn`): a path's first stall, and the
|
|
47
|
+
* cap engaging, so "my case vanished" and "hooks stopped firing" leave a trace.
|
|
48
|
+
*
|
|
49
|
+
* Writers should not use this at all: a writer that must tell "missing" apart
|
|
50
|
+
* from "unreachable" wants an ENOENT-aware async `lstat` (see
|
|
51
|
+
* `pathExistsForWrite` in hooks-config.ts).
|
|
52
|
+
*
|
|
53
|
+
* @module utils/bounded-path-probe
|
|
54
|
+
*/
|
|
55
|
+
/** What a probe could establish about a path. */
|
|
56
|
+
export type PathProbeState = 'present' | 'absent' | 'unknown';
|
|
57
|
+
/** Like {@link PathProbeState}, with "present" split by whether it is a directory. */
|
|
58
|
+
export type PathProbeKind = 'directory' | 'file' | 'absent' | 'unknown';
|
|
59
|
+
/**
|
|
60
|
+
* Whether `path` is near a path whose probe is still stalled (see the module
|
|
61
|
+
* comment), i.e. whether the probe would answer "unknown" for it without a stat.
|
|
62
|
+
* Lets a caller tell "this workspace sits on the dead mount" apart from "the
|
|
63
|
+
* probe was refused for capacity".
|
|
64
|
+
*/
|
|
65
|
+
export declare function isNearStalledPath(path: string): boolean;
|
|
66
|
+
/** Options for {@link probePathKind} / {@link probePath}. */
|
|
67
|
+
export interface PathProbeOptions {
|
|
68
|
+
/** Probe even while the stall cap is engaged (see the module comment). */
|
|
69
|
+
pastCap?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Probe `path` without letting an unresponsive filesystem block the caller for
|
|
73
|
+
* longer than `PATH_PROBE_TIMEOUT_MS`. Follows symlinks, like `stat()`.
|
|
74
|
+
*/
|
|
75
|
+
export declare function probePathKind(path: string, options?: PathProbeOptions): Promise<PathProbeKind>;
|
|
76
|
+
/**
|
|
77
|
+
* Why a probe of `path` answers "unknown" right now: its mount is not answering
|
|
78
|
+
* (`'stalled'`, it is near a stalled probe), new probes are refused because enough
|
|
79
|
+
* UNRELATED paths are stalled (`'refused'`; `pastCap` picks which limit applies), or
|
|
80
|
+
* neither, so the filesystem answered with an error such as EACCES or EIO
|
|
81
|
+
* (`'unreadable'`). For messages only: it reads the state now, not at probe time.
|
|
82
|
+
*/
|
|
83
|
+
export declare function unknownPathReason(path: string, options?: PathProbeOptions): 'stalled' | 'refused' | 'unreadable';
|
|
84
|
+
/**
|
|
85
|
+
* User-facing sentence for an "unknown" probe of `path` (`label` names it, e.g.
|
|
86
|
+
* "workingDir"). A refused probe says so, rather than blaming a folder that was never
|
|
87
|
+
* checked: at the ceiling every new folder reads "unknown" until a dead mount answers.
|
|
88
|
+
*/
|
|
89
|
+
export declare function describeUnknownPath(label: string, path: string, options?: PathProbeOptions): string;
|
|
90
|
+
/** Tri-state probe of `path`; see the module comment for what "unknown" means. */
|
|
91
|
+
export declare function probePath(path: string, options?: PathProbeOptions): Promise<PathProbeState>;
|
|
92
|
+
/**
|
|
93
|
+
* `true` only when `path` is known to exist. For DISPLAY decisions only (does a
|
|
94
|
+
* case have a CLAUDE.md): it folds "unknown" into `false`, so never use it to
|
|
95
|
+
* decide that something is absent and may be created, scaffolded or reported
|
|
96
|
+
* missing; use {@link probePath} for that.
|
|
97
|
+
*/
|
|
98
|
+
export declare function boundedPathExists(path: string): Promise<boolean>;
|
|
99
|
+
//# sourceMappingURL=bounded-path-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded-path-probe.d.ts","sourceRoot":"","sources":["../../src/utils/bounded-path-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAOH,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9D,sFAAsF;AACtF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAsExE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgDxG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAIpH;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAKvG;AAED,kFAAkF;AAClF,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAGrG;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtE"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Bounded existence probe for user-chosen paths.
|
|
3
|
+
*
|
|
4
|
+
* A linked case can live on a network mount (NFS, SMB, sshfs). When that mount
|
|
5
|
+
* goes unreachable, a hard mount makes `stat()` wait forever. A synchronous
|
|
6
|
+
* probe (`existsSync`) on such a path blocks the event loop and freezes the
|
|
7
|
+
* whole web server; even an async `stat()` never settles and permanently holds
|
|
8
|
+
* one of libuv's few threadpool workers, which every other `fs`, `dns.lookup`
|
|
9
|
+
* and `crypto` call in the process shares.
|
|
10
|
+
*
|
|
11
|
+
* The probe therefore answers one of THREE things, never two:
|
|
12
|
+
* - `'present'` / `'absent'`: the filesystem answered (ENOENT and ENOTDIR are
|
|
13
|
+
* the only errors that mean absent);
|
|
14
|
+
* - `'unknown'`: it did not answer in `PATH_PROBE_TIMEOUT_MS`, it answered with
|
|
15
|
+
* some other error (EIO from a soft mount that gave up, EACCES), or the probe
|
|
16
|
+
* was refused (below). "Unknown" is NOT "absent": a caller that would create,
|
|
17
|
+
* scaffold or 404 on absence must not do so on unknown.
|
|
18
|
+
*
|
|
19
|
+
* And it keeps a dead mount from draining the threadpool:
|
|
20
|
+
* - one in-flight probe per path, shared by concurrent callers;
|
|
21
|
+
* - a path whose probe timed out is "stalled" until that stat finally settles.
|
|
22
|
+
* Paths NEAR a stalled one are answered "unknown" without a new stat, so one
|
|
23
|
+
* dead mount costs one worker, not one per case and file on it. "Near" means on
|
|
24
|
+
* the same mount when that mount is a network or FUSE filesystem (NFS, SMB,
|
|
25
|
+
* sshfs and the like): under the deepest mount point holding the stalled path,
|
|
26
|
+
* with its type, read from `/proc/self/mounts` (procfs, which never waits on the
|
|
27
|
+
* dead filesystem). Otherwise it narrows to the stalled path and everything under
|
|
28
|
+
* it: when the deepest mount is local (a path typed under a local `/home` can
|
|
29
|
+
* reach a NAS through a symlink, and must not take the rest of `/home` with it),
|
|
30
|
+
* is `/`, or the table is unavailable (not Linux). Unrelated paths are probed
|
|
31
|
+
* normally;
|
|
32
|
+
* - once `MAX_STALLED_PATH_PROBES` stalled stats are pending, new probes are
|
|
33
|
+
* refused process-wide (answered "unknown"), since each would risk another
|
|
34
|
+
* worker. Probes merely in flight do not count, so concurrent healthy probes
|
|
35
|
+
* never get refused. A caller acting on ONE path at a user's explicit request
|
|
36
|
+
* (opening a case, starting a session in it) may pass `{ pastCap: true }`: its
|
|
37
|
+
* probe is still bounded and still recorded as stalled if it hangs (so a dead
|
|
38
|
+
* path costs at most one worker however often it is retried), but it is not
|
|
39
|
+
* refused just because unrelated mounts are dead. Bulk scans (the case list)
|
|
40
|
+
* keep the cap; the per-spawn hook and statusLine helpers retry one refused
|
|
41
|
+
* probe past it and then skip a path that still answers "unknown", rather than
|
|
42
|
+
* touch it with an unbounded call. `pastCap` still stops at
|
|
43
|
+
* `PATH_PROBE_STALL_CEILING` (the threadpool size minus one), so explicit
|
|
44
|
+
* requests against several dead paths can never take the last worker.
|
|
45
|
+
*
|
|
46
|
+
* Both events are logged once (`console.warn`): a path's first stall, and the
|
|
47
|
+
* cap engaging, so "my case vanished" and "hooks stopped firing" leave a trace.
|
|
48
|
+
*
|
|
49
|
+
* Writers should not use this at all: a writer that must tell "missing" apart
|
|
50
|
+
* from "unreachable" wants an ENOENT-aware async `lstat` (see
|
|
51
|
+
* `pathExistsForWrite` in hooks-config.ts).
|
|
52
|
+
*
|
|
53
|
+
* @module utils/bounded-path-probe
|
|
54
|
+
*/
|
|
55
|
+
import { readFileSync } from 'node:fs';
|
|
56
|
+
import fs from 'node:fs/promises';
|
|
57
|
+
import { resolve, sep } from 'node:path';
|
|
58
|
+
import { MAX_STALLED_PATH_PROBES, PATH_PROBE_STALL_CEILING, PATH_PROBE_TIMEOUT_MS } from '../config/path-probe.js';
|
|
59
|
+
const inFlight = new Map();
|
|
60
|
+
/** Stalled path -> the directory whose subtree is answered "unknown" while it stays stalled. */
|
|
61
|
+
const stalled = new Map();
|
|
62
|
+
let capWarned = false;
|
|
63
|
+
async function statKind(path) {
|
|
64
|
+
try {
|
|
65
|
+
return (await fs.stat(path)).isDirectory() ? 'directory' : 'file';
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
const code = err?.code;
|
|
69
|
+
return code === 'ENOENT' || code === 'ENOTDIR' ? 'absent' : 'unknown';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function isWithin(path, root) {
|
|
73
|
+
if (path === root)
|
|
74
|
+
return true;
|
|
75
|
+
return path.startsWith(root.endsWith(sep) ? root : root + sep);
|
|
76
|
+
}
|
|
77
|
+
/** Filesystem types whose stall means the whole mount is gone (network and FUSE). */
|
|
78
|
+
const REMOTE_FS_TYPES = new Set([
|
|
79
|
+
'nfs',
|
|
80
|
+
'nfs4',
|
|
81
|
+
'cifs',
|
|
82
|
+
'smb3',
|
|
83
|
+
'smbfs',
|
|
84
|
+
'9p',
|
|
85
|
+
'ceph',
|
|
86
|
+
'glusterfs',
|
|
87
|
+
'afs',
|
|
88
|
+
'lustre',
|
|
89
|
+
'davfs',
|
|
90
|
+
]);
|
|
91
|
+
function isRemoteFsType(fsType) {
|
|
92
|
+
return REMOTE_FS_TYPES.has(fsType) || fsType.startsWith('fuse.');
|
|
93
|
+
}
|
|
94
|
+
/** Deepest mount holding `abs`, from the kernel's mount table; undefined when unreadable. */
|
|
95
|
+
function mountOf(abs) {
|
|
96
|
+
let table;
|
|
97
|
+
try {
|
|
98
|
+
table = readFileSync('/proc/self/mounts', 'utf-8');
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
let best;
|
|
104
|
+
for (const line of table.split('\n')) {
|
|
105
|
+
const [, field, fsType] = line.split(' ');
|
|
106
|
+
if (!field || !fsType)
|
|
107
|
+
continue;
|
|
108
|
+
// The table octal-escapes space, tab, newline and backslash in mount points.
|
|
109
|
+
const mountPoint = field.replace(/\\([0-7]{3})/g, (_m, oct) => String.fromCharCode(parseInt(oct, 8)));
|
|
110
|
+
if (isWithin(abs, mountPoint) && (!best || mountPoint.length > best.mountPoint.length)) {
|
|
111
|
+
best = { mountPoint, fsType };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return best;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The subtree a stalled path takes down with it (see the module comment): its
|
|
118
|
+
* mount when that is a network or FUSE filesystem, else just the path itself.
|
|
119
|
+
*/
|
|
120
|
+
function stallScope(abs) {
|
|
121
|
+
const mount = mountOf(abs);
|
|
122
|
+
return mount && mount.mountPoint !== '/' && isRemoteFsType(mount.fsType) ? mount.mountPoint : abs;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Whether `path` is near a path whose probe is still stalled (see the module
|
|
126
|
+
* comment), i.e. whether the probe would answer "unknown" for it without a stat.
|
|
127
|
+
* Lets a caller tell "this workspace sits on the dead mount" apart from "the
|
|
128
|
+
* probe was refused for capacity".
|
|
129
|
+
*/
|
|
130
|
+
export function isNearStalledPath(path) {
|
|
131
|
+
const abs = resolve(path);
|
|
132
|
+
for (const scope of stalled.values()) {
|
|
133
|
+
if (isWithin(abs, scope))
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Probe `path` without letting an unresponsive filesystem block the caller for
|
|
140
|
+
* longer than `PATH_PROBE_TIMEOUT_MS`. Follows symlinks, like `stat()`.
|
|
141
|
+
*/
|
|
142
|
+
export async function probePathKind(path, options = {}) {
|
|
143
|
+
const abs = resolve(path);
|
|
144
|
+
if (isNearStalledPath(abs))
|
|
145
|
+
return 'unknown';
|
|
146
|
+
let probe = inFlight.get(abs);
|
|
147
|
+
if (!probe) {
|
|
148
|
+
// pastCap lifts the bulk cap, never the ceiling that keeps one worker free.
|
|
149
|
+
if (stalled.size >= (options.pastCap ? PATH_PROBE_STALL_CEILING : MAX_STALLED_PATH_PROBES)) {
|
|
150
|
+
if (!capWarned) {
|
|
151
|
+
capWarned = true;
|
|
152
|
+
console.warn(`[path-probe] ${stalled.size} path probes are stalled on unresponsive filesystems; ` +
|
|
153
|
+
'not starting new ones until one answers (paths read as unknown meanwhile)');
|
|
154
|
+
}
|
|
155
|
+
return 'unknown';
|
|
156
|
+
}
|
|
157
|
+
probe = statKind(abs);
|
|
158
|
+
const started = probe;
|
|
159
|
+
inFlight.set(abs, started);
|
|
160
|
+
void started.finally(() => {
|
|
161
|
+
inFlight.delete(abs);
|
|
162
|
+
stalled.delete(abs);
|
|
163
|
+
if (stalled.size < MAX_STALLED_PATH_PROBES)
|
|
164
|
+
capWarned = false;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
let timer;
|
|
168
|
+
try {
|
|
169
|
+
return await Promise.race([
|
|
170
|
+
probe,
|
|
171
|
+
new Promise((resolveTimeout) => {
|
|
172
|
+
timer = setTimeout(() => {
|
|
173
|
+
if (inFlight.get(abs) === probe && !stalled.has(abs)) {
|
|
174
|
+
stalled.set(abs, stallScope(abs));
|
|
175
|
+
console.warn(`[path-probe] ${abs} did not answer within ${PATH_PROBE_TIMEOUT_MS} ms ` +
|
|
176
|
+
'(unreachable mount?); treating it and its neighbours as unknown until it does');
|
|
177
|
+
}
|
|
178
|
+
resolveTimeout('unknown');
|
|
179
|
+
}, PATH_PROBE_TIMEOUT_MS);
|
|
180
|
+
timer.unref?.();
|
|
181
|
+
}),
|
|
182
|
+
]);
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
if (timer)
|
|
186
|
+
clearTimeout(timer);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Why a probe of `path` answers "unknown" right now: its mount is not answering
|
|
191
|
+
* (`'stalled'`, it is near a stalled probe), new probes are refused because enough
|
|
192
|
+
* UNRELATED paths are stalled (`'refused'`; `pastCap` picks which limit applies), or
|
|
193
|
+
* neither, so the filesystem answered with an error such as EACCES or EIO
|
|
194
|
+
* (`'unreadable'`). For messages only: it reads the state now, not at probe time.
|
|
195
|
+
*/
|
|
196
|
+
export function unknownPathReason(path, options = {}) {
|
|
197
|
+
if (isNearStalledPath(path))
|
|
198
|
+
return 'stalled';
|
|
199
|
+
if (stalled.size >= (options.pastCap ? PATH_PROBE_STALL_CEILING : MAX_STALLED_PATH_PROBES))
|
|
200
|
+
return 'refused';
|
|
201
|
+
return 'unreadable';
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* User-facing sentence for an "unknown" probe of `path` (`label` names it, e.g.
|
|
205
|
+
* "workingDir"). A refused probe says so, rather than blaming a folder that was never
|
|
206
|
+
* checked: at the ceiling every new folder reads "unknown" until a dead mount answers.
|
|
207
|
+
*/
|
|
208
|
+
export function describeUnknownPath(label, path, options = {}) {
|
|
209
|
+
return unknownPathReason(path, options) === 'refused'
|
|
210
|
+
? `${label} was not checked: folders on other unreachable mounts are still not answering, ` +
|
|
211
|
+
`so Codeman is not checking new folders until one does (see the server log): ${path}`
|
|
212
|
+
: `${label} is not responding or not readable: ${path}`;
|
|
213
|
+
}
|
|
214
|
+
/** Tri-state probe of `path`; see the module comment for what "unknown" means. */
|
|
215
|
+
export async function probePath(path, options = {}) {
|
|
216
|
+
const kind = await probePathKind(path, options);
|
|
217
|
+
return kind === 'directory' || kind === 'file' ? 'present' : kind;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* `true` only when `path` is known to exist. For DISPLAY decisions only (does a
|
|
221
|
+
* case have a CLAUDE.md): it folds "unknown" into `false`, so never use it to
|
|
222
|
+
* decide that something is absent and may be created, scaffolded or reported
|
|
223
|
+
* missing; use {@link probePath} for that.
|
|
224
|
+
*/
|
|
225
|
+
export async function boundedPathExists(path) {
|
|
226
|
+
return (await probePath(path)) === 'present';
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=bounded-path-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded-path-probe.js","sourceRoot":"","sources":["../../src/utils/bounded-path-probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,8 @@ export interface ProductionCliResolverHostOptions {
|
|
|
86
86
|
*/
|
|
87
87
|
allowRealIoUnderVitest?: boolean;
|
|
88
88
|
}
|
|
89
|
+
/** An executable regular file. Exported for `codeman doctor`, which must judge a candidate the same way. */
|
|
90
|
+
export declare function isExecutableRegularFile(path: string): boolean;
|
|
89
91
|
export declare function createProductionCliResolverHost(options?: ProductionCliResolverHostOptions): CliResolverHost;
|
|
90
92
|
/**
|
|
91
93
|
* Forget every cached result — success and negative-cache backoff alike — for these
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-executable-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/cli-executable-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAwBH;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAEtF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,SAAS;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,SAAS;IAClD,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACnC,WAAW,IAAI,wBAAwB,CAAC;CACzC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,UAAU,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,yBAAyB,KAAK,MAAM,CAAC;AAEpH,MAAM,WAAW,gCAAgC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"cli-executable-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/cli-executable-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,8 @@ export function cliResolveRetryDelayMs(failures) {
|
|
|
58
58
|
return 0;
|
|
59
59
|
return Math.min(RESOLVE_RETRY_BASE_MS * 2 ** (failures - 1), RESOLVE_RETRY_MAX_MS);
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
/** An executable regular file. Exported for `codeman doctor`, which must judge a candidate the same way. */
|
|
62
|
+
export function isExecutableRegularFile(path) {
|
|
62
63
|
try {
|
|
63
64
|
if (!statSync(path).isFile())
|
|
64
65
|
return false;
|