aicodeman 1.33.2 → 1.34.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/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/hooks-config.d.ts.map +1 -1
- package/dist/hooks-config.js +5 -1
- 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/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/web/public/admin-ui.js.gz +0 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.cf0db8ce.js +43 -0
- package/dist/web/public/app.cf0db8ce.js.br +0 -0
- package/dist/web/public/app.cf0db8ce.js.gz +0 -0
- package/dist/web/public/approvals-ui.js.gz +0 -0
- package/dist/web/public/{constants.cc927eb8.js → constants.d95fade9.js} +19 -2
- package/dist/web/public/constants.d95fade9.js.br +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/home-sessions.js.gz +0 -0
- package/dist/web/public/host-wake-ui.js.gz +0 -0
- package/dist/web/public/i18n.398b8331.js +1 -0
- package/dist/web/public/i18n.398b8331.js.br +0 -0
- package/dist/web/public/i18n.398b8331.js.gz +0 -0
- package/dist/web/public/image-input.a216cf9e.js.gz +0 -0
- package/dist/web/public/index.html +125 -14
- 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.67646701.js → panels-ui.6a5898d9.js} +69 -67
- package/dist/web/public/panels-ui.6a5898d9.js.br +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 +1 -0
- package/dist/web/public/sanitize-html.e7147e76.js.br +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.7575a231.js → session-ui.bf66c13b.js} +4 -4
- package/dist/web/public/session-ui.bf66c13b.js.br +0 -0
- package/dist/web/public/session-ui.bf66c13b.js.gz +0 -0
- package/dist/web/public/{settings-ui.c68e7f59.js → settings-ui.331d3b1d.js} +12 -10
- package/dist/web/public/settings-ui.331d3b1d.js.br +0 -0
- package/dist/web/public/settings-ui.331d3b1d.js.gz +0 -0
- package/dist/web/public/styles.8c485d26.css +1 -0
- package/dist/web/public/styles.8c485d26.css.br +0 -0
- package/dist/web/public/styles.8c485d26.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.4e0ed50c.js +1 -0
- package/dist/web/public/tab-layout-browser.4e0ed50c.js.br +0 -0
- package/dist/web/public/tab-layout-browser.4e0ed50c.js.gz +0 -0
- package/dist/web/public/tab-rail-resize.dcdc5772.js.gz +0 -0
- package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js.gz +0 -0
- package/dist/web/public/terminal-split.js +248 -15
- 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 +36 -14
- 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/file-routes.d.ts.map +1 -1
- package/dist/web/routes/file-routes.js +2 -1
- package/dist/web/routes/file-routes.js.map +1 -1
- package/dist/web/routes/index.d.ts +2 -0
- package/dist/web/routes/index.d.ts.map +1 -1
- package/dist/web/routes/index.js +2 -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 +40 -17
- 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 +47 -2
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +64 -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 +55 -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/dist/web/public/app.91131d2c.js +0 -43
- package/dist/web/public/app.91131d2c.js.br +0 -0
- package/dist/web/public/app.91131d2c.js.gz +0 -0
- package/dist/web/public/constants.cc927eb8.js.br +0 -0
- package/dist/web/public/constants.cc927eb8.js.gz +0 -0
- package/dist/web/public/i18n.f094d01f.js +0 -1
- package/dist/web/public/i18n.f094d01f.js.br +0 -0
- package/dist/web/public/i18n.f094d01f.js.gz +0 -0
- package/dist/web/public/panels-ui.67646701.js.br +0 -0
- package/dist/web/public/panels-ui.67646701.js.gz +0 -0
- package/dist/web/public/ralph-wizard.13a1831e.js.br +0 -0
- package/dist/web/public/sanitize-html.bc7078d6.js +0 -1
- package/dist/web/public/sanitize-html.bc7078d6.js.br +0 -0
- package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
- 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.br +0 -0
- package/dist/web/public/settings-ui.c68e7f59.js.gz +0 -0
- package/dist/web/public/styles.3fe3312d.css +0 -1
- package/dist/web/public/styles.3fe3312d.css.br +0 -0
- package/dist/web/public/styles.3fe3312d.css.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
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Webhook notification settings (src/webhook-notify.ts).
|
|
3
|
+
*
|
|
4
|
+
* GET /api/webhook — the config WITHOUT its URL (scheme + host only), and the last delivery result
|
|
5
|
+
* PUT /api/webhook — change enabled / kind / url / scope; an empty `url` clears it
|
|
6
|
+
* POST /api/webhook/test — send one test message with the saved config
|
|
7
|
+
*
|
|
8
|
+
* The URL is a bearer secret (anyone holding a Slack/Discord webhook URL can post as it), so it is
|
|
9
|
+
* stored in its own 0600 file and never returned. In multi-user mode all three routes are admin only:
|
|
10
|
+
* the channel receives every session's events, the same reach an admin's own Web Push has.
|
|
11
|
+
*/
|
|
12
|
+
import type { FastifyInstance } from 'fastify';
|
|
13
|
+
import { type WebhookNotifier } from '../../webhook-notify.js';
|
|
14
|
+
export interface WebhookRouteDeps {
|
|
15
|
+
notifier: WebhookNotifier;
|
|
16
|
+
configDir: string;
|
|
17
|
+
/** The instance's window title, so a test message says which machine sent it. */
|
|
18
|
+
hostTitle: () => string;
|
|
19
|
+
}
|
|
20
|
+
export declare function registerWebhookRoutes(app: FastifyInstance, deps: WebhookRouteDeps): void;
|
|
21
|
+
//# sourceMappingURL=webhook-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-routes.d.ts","sourceRoot":"","sources":["../../../src/web/routes/webhook-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAY7E,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,SAAS,EAAE,MAAM,MAAM,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAqExF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Webhook notification settings (src/webhook-notify.ts).
|
|
3
|
+
*
|
|
4
|
+
* GET /api/webhook — the config WITHOUT its URL (scheme + host only), and the last delivery result
|
|
5
|
+
* PUT /api/webhook — change enabled / kind / url / scope; an empty `url` clears it
|
|
6
|
+
* POST /api/webhook/test — send one test message with the saved config
|
|
7
|
+
*
|
|
8
|
+
* The URL is a bearer secret (anyone holding a Slack/Discord webhook URL can post as it), so it is
|
|
9
|
+
* stored in its own 0600 file and never returned. In multi-user mode all three routes are admin only:
|
|
10
|
+
* the channel receives every session's events, the same reach an admin's own Web Push has.
|
|
11
|
+
*/
|
|
12
|
+
import { ApiErrorCode, createErrorResponse, getErrorMessage, } from '../../types.js';
|
|
13
|
+
import { isAdmin, parseBody } from '../route-helpers.js';
|
|
14
|
+
import { isMultiUserMode } from '../../config/multiuser.js';
|
|
15
|
+
import { WebhookUpdateSchema } from '../schemas.js';
|
|
16
|
+
import { maskWebhookUrl, readWebhookConfig, webhookUrlProblem, writeWebhookConfig, } from '../../webhook-notify.js';
|
|
17
|
+
export function registerWebhookRoutes(app, deps) {
|
|
18
|
+
const denied = (req, reply) => {
|
|
19
|
+
if (isMultiUserMode() && !isAdmin(req)) {
|
|
20
|
+
reply.code(403);
|
|
21
|
+
return createErrorResponse(ApiErrorCode.FORBIDDEN, 'Admin only in multi-user mode');
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
};
|
|
25
|
+
const status = async () => {
|
|
26
|
+
const cfg = await readWebhookConfig(deps.configDir);
|
|
27
|
+
return {
|
|
28
|
+
enabled: cfg.enabled,
|
|
29
|
+
kind: cfg.kind,
|
|
30
|
+
scope: cfg.scope,
|
|
31
|
+
hasUrl: cfg.url !== '',
|
|
32
|
+
urlMasked: maskWebhookUrl(cfg.url),
|
|
33
|
+
lastResult: deps.notifier.lastResult,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
app.get('/api/webhook', async (req, reply) => {
|
|
37
|
+
const no = denied(req, reply);
|
|
38
|
+
if (no)
|
|
39
|
+
return no;
|
|
40
|
+
return { success: true, data: await status() };
|
|
41
|
+
});
|
|
42
|
+
app.put('/api/webhook', async (req, reply) => {
|
|
43
|
+
const no = denied(req, reply);
|
|
44
|
+
if (no)
|
|
45
|
+
return no;
|
|
46
|
+
const patch = parseBody(WebhookUpdateSchema, req.body, 'Invalid webhook settings');
|
|
47
|
+
const current = await readWebhookConfig(deps.configDir);
|
|
48
|
+
const next = {
|
|
49
|
+
enabled: patch.enabled ?? current.enabled,
|
|
50
|
+
kind: patch.kind ?? current.kind,
|
|
51
|
+
scope: patch.scope ?? current.scope,
|
|
52
|
+
url: patch.url !== undefined ? patch.url.trim() : current.url,
|
|
53
|
+
};
|
|
54
|
+
if (next.url) {
|
|
55
|
+
const problem = webhookUrlProblem(next.url);
|
|
56
|
+
if (problem) {
|
|
57
|
+
reply.code(400);
|
|
58
|
+
return createErrorResponse(ApiErrorCode.INVALID_INPUT, problem);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (next.enabled && !next.url) {
|
|
62
|
+
reply.code(400);
|
|
63
|
+
return createErrorResponse(ApiErrorCode.INVALID_INPUT, 'Add a webhook URL before enabling notifications');
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
await writeWebhookConfig(deps.configDir, next);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
reply.code(500);
|
|
70
|
+
return createErrorResponse(ApiErrorCode.OPERATION_FAILED, getErrorMessage(err));
|
|
71
|
+
}
|
|
72
|
+
return { success: true, data: await status() };
|
|
73
|
+
});
|
|
74
|
+
app.post('/api/webhook/test', async (req, reply) => {
|
|
75
|
+
const no = denied(req, reply);
|
|
76
|
+
if (no)
|
|
77
|
+
return no;
|
|
78
|
+
const cfg = await readWebhookConfig(deps.configDir);
|
|
79
|
+
if (!cfg.url) {
|
|
80
|
+
reply.code(400);
|
|
81
|
+
return createErrorResponse(ApiErrorCode.INVALID_INPUT, 'Save a webhook URL first');
|
|
82
|
+
}
|
|
83
|
+
// 200 even when delivery failed: the request to Codeman worked, `data.ok` says whether the webhook did.
|
|
84
|
+
return { success: true, data: await deps.notifier.sendTest(cfg, deps.hostTitle()) };
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=webhook-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-routes.js","sourceRoot":"","sources":["../../../src/web/routes/webhook-routes.ts"],"names":[],"mappings":"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"}
|
package/dist/web/schemas.d.ts
CHANGED
|
@@ -96,7 +96,9 @@ export declare const CreateSessionSchema: z.ZodObject<{
|
|
|
96
96
|
max: "max";
|
|
97
97
|
ultracode: "ultracode";
|
|
98
98
|
}>>;
|
|
99
|
+
advisorModel: z.ZodOptional<z.ZodString>;
|
|
99
100
|
modelOverride: z.ZodOptional<z.ZodString>;
|
|
101
|
+
model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
|
|
100
102
|
openCodeConfig: z.ZodOptional<z.ZodObject<{
|
|
101
103
|
model: z.ZodOptional<z.ZodString>;
|
|
102
104
|
autoAllowTools: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -106,6 +108,16 @@ export declare const CreateSessionSchema: z.ZodObject<{
|
|
|
106
108
|
}, z.core.$strip>>;
|
|
107
109
|
codexConfig: z.ZodOptional<z.ZodObject<{
|
|
108
110
|
model: z.ZodOptional<z.ZodString>;
|
|
111
|
+
reasoningEffort: z.ZodOptional<z.ZodEnum<{
|
|
112
|
+
none: "none";
|
|
113
|
+
low: "low";
|
|
114
|
+
medium: "medium";
|
|
115
|
+
high: "high";
|
|
116
|
+
xhigh: "xhigh";
|
|
117
|
+
max: "max";
|
|
118
|
+
minimal: "minimal";
|
|
119
|
+
ultra: "ultra";
|
|
120
|
+
}>>;
|
|
109
121
|
resumeSessionId: z.ZodOptional<z.ZodString>;
|
|
110
122
|
dangerouslyBypassApprovals: z.ZodOptional<z.ZodBoolean>;
|
|
111
123
|
animations: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -138,8 +150,8 @@ export declare const CreateSessionSchema: z.ZodObject<{
|
|
|
138
150
|
high: "high";
|
|
139
151
|
xhigh: "xhigh";
|
|
140
152
|
max: "max";
|
|
141
|
-
off: "off";
|
|
142
153
|
minimal: "minimal";
|
|
154
|
+
off: "off";
|
|
143
155
|
}>>;
|
|
144
156
|
continueSession: z.ZodOptional<z.ZodBoolean>;
|
|
145
157
|
resumeSessionId: z.ZodOptional<z.ZodString>;
|
|
@@ -397,6 +409,16 @@ export declare const QuickStartSchema: z.ZodObject<{
|
|
|
397
409
|
}, z.core.$strip>>;
|
|
398
410
|
codexConfig: z.ZodOptional<z.ZodObject<{
|
|
399
411
|
model: z.ZodOptional<z.ZodString>;
|
|
412
|
+
reasoningEffort: z.ZodOptional<z.ZodEnum<{
|
|
413
|
+
none: "none";
|
|
414
|
+
low: "low";
|
|
415
|
+
medium: "medium";
|
|
416
|
+
high: "high";
|
|
417
|
+
xhigh: "xhigh";
|
|
418
|
+
max: "max";
|
|
419
|
+
minimal: "minimal";
|
|
420
|
+
ultra: "ultra";
|
|
421
|
+
}>>;
|
|
400
422
|
resumeSessionId: z.ZodOptional<z.ZodString>;
|
|
401
423
|
dangerouslyBypassApprovals: z.ZodOptional<z.ZodBoolean>;
|
|
402
424
|
animations: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -429,8 +451,8 @@ export declare const QuickStartSchema: z.ZodObject<{
|
|
|
429
451
|
high: "high";
|
|
430
452
|
xhigh: "xhigh";
|
|
431
453
|
max: "max";
|
|
432
|
-
off: "off";
|
|
433
454
|
minimal: "minimal";
|
|
455
|
+
off: "off";
|
|
434
456
|
}>>;
|
|
435
457
|
continueSession: z.ZodOptional<z.ZodBoolean>;
|
|
436
458
|
resumeSessionId: z.ZodOptional<z.ZodString>;
|
|
@@ -467,6 +489,7 @@ export declare const QuickStartSchema: z.ZodObject<{
|
|
|
467
489
|
max: "max";
|
|
468
490
|
ultracode: "ultracode";
|
|
469
491
|
}>>;
|
|
492
|
+
advisorModel: z.ZodOptional<z.ZodString>;
|
|
470
493
|
agentOrigin: z.ZodOptional<z.ZodString>;
|
|
471
494
|
customModel: z.ZodOptional<z.ZodObject<{
|
|
472
495
|
endpointId: z.ZodString;
|
|
@@ -627,6 +650,7 @@ export declare const SettingsUpdateSchema: z.ZodObject<{
|
|
|
627
650
|
readMyMindEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
628
651
|
customModelEndpointsEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
629
652
|
cliManagementEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
653
|
+
mcpSyncEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
630
654
|
readMyMindModel: z.ZodOptional<z.ZodString>;
|
|
631
655
|
tunnelEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
632
656
|
acknowledgeUnauthTunnel: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -655,6 +679,7 @@ export declare const SettingsUpdateSchema: z.ZodObject<{
|
|
|
655
679
|
opusContext1mEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
656
680
|
remoteAutoReconnect: z.ZodOptional<z.ZodBoolean>;
|
|
657
681
|
thinkingEffort: z.ZodOptional<z.ZodString>;
|
|
682
|
+
claudeAdvisorModel: z.ZodOptional<z.ZodString>;
|
|
658
683
|
showFontControls: z.ZodOptional<z.ZodBoolean>;
|
|
659
684
|
showSystemStats: z.ZodOptional<z.ZodBoolean>;
|
|
660
685
|
showTokenCount: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1139,6 +1164,25 @@ export declare const PushSubscribeSchema: z.ZodObject<{
|
|
|
1139
1164
|
export declare const PushPreferencesUpdateSchema: z.ZodObject<{
|
|
1140
1165
|
pushPreferences: z.ZodRecord<z.ZodString, z.ZodBoolean>;
|
|
1141
1166
|
}, z.core.$strip>;
|
|
1167
|
+
/**
|
|
1168
|
+
* PUT /api/webhook. `.strict()` like every settings-shaped schema; `url` is optional so a change of
|
|
1169
|
+
* kind or scope never needs the secret re-sent, and an empty string clears it. The kind and scope
|
|
1170
|
+
* lists are the store's own, so the schema can never accept a value the store would coerce away.
|
|
1171
|
+
*/
|
|
1172
|
+
export declare const WebhookUpdateSchema: z.ZodObject<{
|
|
1173
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1174
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
1175
|
+
ntfy: "ntfy";
|
|
1176
|
+
slack: "slack";
|
|
1177
|
+
discord: "discord";
|
|
1178
|
+
generic: "generic";
|
|
1179
|
+
}>>;
|
|
1180
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
1181
|
+
attention: "attention";
|
|
1182
|
+
all: "all";
|
|
1183
|
+
}>>;
|
|
1184
|
+
url: z.ZodOptional<z.ZodString>;
|
|
1185
|
+
}, z.core.$strict>;
|
|
1142
1186
|
/** POST /api/ralph-loop/start */
|
|
1143
1187
|
export declare const RalphLoopStartSchema: z.ZodObject<{
|
|
1144
1188
|
caseName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
@@ -1155,6 +1199,7 @@ export declare const RalphLoopStartSchema: z.ZodObject<{
|
|
|
1155
1199
|
max: "max";
|
|
1156
1200
|
ultracode: "ultracode";
|
|
1157
1201
|
}>>;
|
|
1202
|
+
advisorModel: z.ZodOptional<z.ZodString>;
|
|
1158
1203
|
planItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1159
1204
|
content: z.ZodString;
|
|
1160
1205
|
priority: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/web/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/web/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/web/schemas.js
CHANGED
|
@@ -12,10 +12,13 @@ import { isValidWebviewUrl } from './webview-proxy.js';
|
|
|
12
12
|
import { isBlockedWebviewUrl } from './webview-egress-policy.js';
|
|
13
13
|
import { MAX_TERMINAL_BUFFER_BYTES, MAX_TERMINAL_SCROLLBACK_LINES, MIN_TERMINAL_BUFFER_BYTES, MIN_TERMINAL_SCROLLBACK_LINES, } from '../config/terminal-history.js';
|
|
14
14
|
import { MAX_EDITABLE_BYTES } from '../config/file-editing.js';
|
|
15
|
+
import { CODEX_REASONING_EFFORTS } from '../types/session.js';
|
|
16
|
+
import { WEBHOOK_KINDS, WEBHOOK_SCOPES } from '../types/push.js';
|
|
15
17
|
import { MIN_MATCH_LENGTH, MAX_MATCH_LENGTH } from '../config/agent-wait.js';
|
|
16
18
|
import { MAX_WAKE_MACS } from '../config/remote-wake-limits.js';
|
|
17
19
|
import { MAX_INPUT_LENGTH } from '../config/terminal-limits.js';
|
|
18
20
|
import { enabledCliIds, enabledClis } from '../config/cli-registry/registry.js';
|
|
21
|
+
import { isAdvisorModel } from '../types/session.js';
|
|
19
22
|
// ========== Path Validation ==========
|
|
20
23
|
/** Validate a path string: no shell metacharacters, no traversal, must be absolute */
|
|
21
24
|
export function isValidWorkingDir(p) {
|
|
@@ -222,6 +225,19 @@ const safeEnvOverridesSchema = z
|
|
|
222
225
|
* block in-session `/effort` switching). `ultracode` enables dynamic workflow orchestration.
|
|
223
226
|
*/
|
|
224
227
|
const effortLevelSchema = z.enum(['low', 'medium', 'high', 'xhigh', 'max', 'ultracode']).optional();
|
|
228
|
+
/**
|
|
229
|
+
* Claude advisor model for new sessions: `fable`/`opus`/`sonnet` or a full model id in one of
|
|
230
|
+
* those families (isAdvisorModel). Merged into the launch `--settings` JSON as `advisorModel`,
|
|
231
|
+
* a soft default that /advisor still switches in-session. The allowlist is also the injection
|
|
232
|
+
* guard for the single-quoted `--settings` argument.
|
|
233
|
+
*/
|
|
234
|
+
const advisorModelSchema = z
|
|
235
|
+
.string()
|
|
236
|
+
.max(64)
|
|
237
|
+
.refine((value) => isAdvisorModel(value), {
|
|
238
|
+
message: 'advisorModel must be fable, opus, sonnet or a full claude-fable/opus/sonnet model id',
|
|
239
|
+
})
|
|
240
|
+
.optional();
|
|
225
241
|
// ========== Session Routes ==========
|
|
226
242
|
/**
|
|
227
243
|
* Schema for POST /api/sessions
|
|
@@ -265,6 +281,7 @@ const CodexConfigSchema = z
|
|
|
265
281
|
.max(100)
|
|
266
282
|
.regex(/^[a-zA-Z0-9._\-/]+$/)
|
|
267
283
|
.optional(),
|
|
284
|
+
reasoningEffort: z.enum(CODEX_REASONING_EFFORTS).optional(),
|
|
268
285
|
resumeSessionId: z
|
|
269
286
|
.string()
|
|
270
287
|
.max(100)
|
|
@@ -481,8 +498,25 @@ export const CreateSessionSchema = z.object({
|
|
|
481
498
|
envOverrides: safeEnvOverridesSchema,
|
|
482
499
|
/** Claude CLI effort level (soft default via --settings, switchable in-session via /effort) */
|
|
483
500
|
effort: effortLevelSchema,
|
|
501
|
+
/** Claude advisor model (soft default via --settings, switchable in-session via /advisor) */
|
|
502
|
+
advisorModel: advisorModelSchema,
|
|
484
503
|
/** Model override to write to .claude/settings.local.json (e.g., "opus[1m]"). Empty string clears. */
|
|
485
504
|
modelOverride: z.string().max(50).optional(),
|
|
505
|
+
/**
|
|
506
|
+
* Claude model for THIS session only, passed as `claude --model <id>`; nothing is written to
|
|
507
|
+
* disk. Wins over the app-wide default model. A subset of the registry's `model-claude`
|
|
508
|
+
* pattern, so a value accepted here is never rejected at launch. The first character must be
|
|
509
|
+
* a letter or digit: the value lands in argv, and no model id opens with `-`, so a
|
|
510
|
+
* flag-shaped value is refused here rather than left to the launch quoting. An empty string
|
|
511
|
+
* means no per-session model, as it does for `modelOverride`. Claude only: the route refuses
|
|
512
|
+
* it for any other CLI and on a remote attach.
|
|
513
|
+
*/
|
|
514
|
+
model: z
|
|
515
|
+
.string()
|
|
516
|
+
.max(100)
|
|
517
|
+
.regex(/^[a-zA-Z0-9][a-zA-Z0-9._\-[\]]*$/)
|
|
518
|
+
.or(z.literal(''))
|
|
519
|
+
.optional(),
|
|
486
520
|
openCodeConfig: OpenCodeConfigSchema,
|
|
487
521
|
codexConfig: CodexConfigSchema,
|
|
488
522
|
geminiConfig: GeminiConfigSchema,
|
|
@@ -975,6 +1009,8 @@ export const QuickStartSchema = z.object({
|
|
|
975
1009
|
envOverrides: safeEnvOverridesSchema,
|
|
976
1010
|
/** Claude CLI effort level (soft default via --settings, switchable in-session via /effort) */
|
|
977
1011
|
effort: effortLevelSchema,
|
|
1012
|
+
/** Claude advisor model (soft default via --settings, switchable in-session via /advisor) */
|
|
1013
|
+
advisorModel: advisorModelSchema,
|
|
978
1014
|
/**
|
|
979
1015
|
* Who is spawning this worker (`codeman-skill` from the packaged agent skill), or,
|
|
980
1016
|
* equivalently, the `X-Codeman-Agent-Origin` header; the body wins when both are
|
|
@@ -1232,6 +1268,13 @@ export const SettingsUpdateSchema = z
|
|
|
1232
1268
|
* endpoints (PUT/POST/DELETE /api/clis...) answer instead of refusing outright.
|
|
1233
1269
|
*/
|
|
1234
1270
|
cliManagementEnabled: z.boolean().optional(),
|
|
1271
|
+
/**
|
|
1272
|
+
* MCP server sync (src/mcp-sync.ts): copies each enabled CLI's user-level MCP servers into
|
|
1273
|
+
* the other CLIs' own config files. SYNCED, default OFF: it writes other tools' config in
|
|
1274
|
+
* the server user's home (including any env values and headers on the servers), so it is
|
|
1275
|
+
* opt-in. While OFF, GET/POST /api/mcp-sync answer 403 and the Settings controls are hidden.
|
|
1276
|
+
*/
|
|
1277
|
+
mcpSyncEnabled: z.boolean().optional(),
|
|
1235
1278
|
/**
|
|
1236
1279
|
* Read My Mind predictor model override. Empty/absent = the AI-checker
|
|
1237
1280
|
* default (opus: prediction quality is the product and it runs only on an
|
|
@@ -1279,6 +1322,12 @@ export const SettingsUpdateSchema = z
|
|
|
1279
1322
|
// auto-reattached.
|
|
1280
1323
|
remoteAutoReconnect: z.boolean().optional(),
|
|
1281
1324
|
thinkingEffort: z.string().max(20).optional(),
|
|
1325
|
+
/** Advisor model for new Claude sessions ('' = leave it to the CLI's own /advisor choice). */
|
|
1326
|
+
claudeAdvisorModel: z
|
|
1327
|
+
.string()
|
|
1328
|
+
.max(64)
|
|
1329
|
+
.refine((value) => value === '' || isAdvisorModel(value), { message: 'Invalid advisor model' })
|
|
1330
|
+
.optional(),
|
|
1282
1331
|
// UI visibility
|
|
1283
1332
|
showFontControls: z.boolean().optional(),
|
|
1284
1333
|
showSystemStats: z.boolean().optional(),
|
|
@@ -1701,6 +1750,19 @@ export const PushSubscribeSchema = z.object({
|
|
|
1701
1750
|
export const PushPreferencesUpdateSchema = z.object({
|
|
1702
1751
|
pushPreferences: z.record(z.string(), z.boolean()),
|
|
1703
1752
|
});
|
|
1753
|
+
/**
|
|
1754
|
+
* PUT /api/webhook. `.strict()` like every settings-shaped schema; `url` is optional so a change of
|
|
1755
|
+
* kind or scope never needs the secret re-sent, and an empty string clears it. The kind and scope
|
|
1756
|
+
* lists are the store's own, so the schema can never accept a value the store would coerce away.
|
|
1757
|
+
*/
|
|
1758
|
+
export const WebhookUpdateSchema = z
|
|
1759
|
+
.object({
|
|
1760
|
+
enabled: z.boolean().optional(),
|
|
1761
|
+
kind: z.enum(WEBHOOK_KINDS).optional(),
|
|
1762
|
+
scope: z.enum(WEBHOOK_SCOPES).optional(),
|
|
1763
|
+
url: z.string().max(2048).optional(),
|
|
1764
|
+
})
|
|
1765
|
+
.strict();
|
|
1704
1766
|
// ========== Ralph Loop ==========
|
|
1705
1767
|
/** POST /api/ralph-loop/start */
|
|
1706
1768
|
export const RalphLoopStartSchema = z.object({
|
|
@@ -1716,6 +1778,8 @@ export const RalphLoopStartSchema = z.object({
|
|
|
1716
1778
|
envOverrides: safeEnvOverridesSchema,
|
|
1717
1779
|
/** Claude CLI effort level (soft default via --settings, switchable in-session via /effort) */
|
|
1718
1780
|
effort: effortLevelSchema,
|
|
1781
|
+
/** Claude advisor model (soft default via --settings, switchable in-session via /advisor) */
|
|
1782
|
+
advisorModel: advisorModelSchema,
|
|
1719
1783
|
planItems: z
|
|
1720
1784
|
.array(z.object({
|
|
1721
1785
|
content: z.string(),
|