aicodeman 1.25.0 → 1.26.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-case-marker.d.ts +91 -0
- package/dist/agent-case-marker.d.ts.map +1 -0
- package/dist/agent-case-marker.js +151 -0
- package/dist/agent-case-marker.js.map +1 -0
- package/dist/hooks-config.d.ts +25 -0
- package/dist/hooks-config.d.ts.map +1 -1
- package/dist/hooks-config.js +67 -3
- package/dist/hooks-config.js.map +1 -1
- package/dist/types/api.d.ts +32 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.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.3a89ac57.js.gz +0 -0
- package/dist/web/public/approvals-ui.js.gz +0 -0
- package/dist/web/public/constants.7a635e34.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/i18n.9db8c4e0.js.gz +0 -0
- package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
- package/dist/web/public/index.html +2 -2
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/input-cjk.87f14251.js.gz +0 -0
- package/dist/web/public/keyboard-accessory.daf18302.js.gz +0 -0
- package/dist/web/public/mobile-handlers.0f83a608.js.gz +0 -0
- package/dist/web/public/mobile-overview.js.gz +0 -0
- package/dist/web/public/mobile.7112f27d.css.gz +0 -0
- package/dist/web/public/notification-manager.36ea4624.js.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/panels-ui.db4785bf.js.gz +0 -0
- package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
- package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
- package/dist/web/public/readmymind-ui.js.gz +0 -0
- package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
- package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
- package/dist/web/public/session-lineage.js.gz +0 -0
- package/dist/web/public/{session-ui.58116fce.js → session-ui.a9c126c6.js} +32 -23
- package/dist/web/public/session-ui.a9c126c6.js.br +0 -0
- package/dist/web/public/session-ui.a9c126c6.js.gz +0 -0
- package/dist/web/public/settings-ui.554f9cdd.js.gz +0 -0
- package/dist/web/public/styles.298f81f2.css +1 -0
- package/dist/web/public/styles.298f81f2.css.br +0 -0
- package/dist/web/public/{styles.2a35729d.css.gz → styles.298f81f2.css.gz} +0 -0
- package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/tab-rail-resize.42c24949.js.gz +0 -0
- package/dist/web/public/terminal-ui.70445f81.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.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.6fee72f2.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.gz +0 -0
- package/dist/web/route-helpers.d.ts +18 -0
- package/dist/web/route-helpers.d.ts.map +1 -1
- package/dist/web/route-helpers.js +23 -0
- package/dist/web/route-helpers.js.map +1 -1
- package/dist/web/routes/case-routes.d.ts.map +1 -1
- package/dist/web/routes/case-routes.js +73 -2
- package/dist/web/routes/case-routes.js.map +1 -1
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +23 -3
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/schemas.d.ts +1 -0
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +10 -0
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +20 -1
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
- package/skills/codeman/SKILL.md +14 -10
- package/skills/codeman/preamble.sh +6 -3
- package/skills/codeman/reference/endpoints.md +9 -0
- package/skills/codeman/reference/recipes.md +1 -1
- package/skills/codeman/reference/verbs.md +15 -0
- package/dist/web/public/session-ui.58116fce.js.br +0 -0
- package/dist/web/public/session-ui.58116fce.js.gz +0 -0
- package/dist/web/public/styles.2a35729d.css +0 -1
- package/dist/web/public/styles.2a35729d.css.br +0 -0
|
@@ -19,7 +19,8 @@ import { ownerLayoutKey } from '../../tab-layout-persistence.js';
|
|
|
19
19
|
import { TabLayoutValidationError } from '../../tab-layout.js';
|
|
20
20
|
import { sessionWaits, resolveWaitSignals, sessionHookOptions, signalForStatus, WaitCapacityError, } from '../session-wait-registry.js';
|
|
21
21
|
import { clampWaitMs, MAX_BUFFER_SCAN_BYTES } from '../../config/agent-wait.js';
|
|
22
|
-
import { autoConfigureRalph, canAccessOwned, CASES_DIR, findPersistedSessionOrFail, findSessionOrFail, getAuthUser, isAdmin, isWorkingDirAllowed, ownerFor, parseBody, persistAndBroadcastSession, resolveCasesDir, resolveParentSessionId, sessionCapacityMessage, SETTINGS_PATH, validatePathWithinBase, } from '../route-helpers.js';
|
|
22
|
+
import { autoConfigureRalph, canAccessOwned, CASES_DIR, findPersistedSessionOrFail, findSessionOrFail, getAuthUser, isAdmin, isWorkingDirAllowed, ownerFor, parseBody, persistAndBroadcastSession, resolveAgentCaseOrigin, resolveCasesDir, resolveParentSessionId, sessionCapacityMessage, SETTINGS_PATH, validatePathWithinBase, } from '../route-helpers.js';
|
|
23
|
+
import { buildAgentCaseMarker, writeAgentCaseMarker } from '../../agent-case-marker.js';
|
|
23
24
|
import { canUsernameRunPrivilegedCommands, resolveClaudeModeForUsername } from '../../user-store.js';
|
|
24
25
|
import { enabledClis, getCli } from '../../config/cli-registry/registry.js';
|
|
25
26
|
import { resolveCliLaunchError } from '../../utils/cli-launcher.js';
|
|
@@ -2566,7 +2567,10 @@ export function registerSessionRoutes(app, ctx) {
|
|
|
2566
2567
|
const capMsg = sessionCapacityMessage(ctx.sessions, owner);
|
|
2567
2568
|
if (capMsg)
|
|
2568
2569
|
return createErrorResponse(ApiErrorCode.SESSION_BUSY, capMsg);
|
|
2569
|
-
const { caseName = 'testcase', sessionName, mode = 'claude', modelOverride, openCodeConfig, codexConfig, geminiConfig, antigravityConfig, piConfig, grokConfig, deepSeekConfig, ompConfig, envOverrides, effort, parentSessionId, } = parseBody(QuickStartSchema, req.body);
|
|
2570
|
+
const { caseName = 'testcase', sessionName, mode = 'claude', modelOverride, openCodeConfig, codexConfig, geminiConfig, antigravityConfig, piConfig, grokConfig, deepSeekConfig, ompConfig, envOverrides, effort, parentSessionId, agentOrigin, } = parseBody(QuickStartSchema, req.body);
|
|
2571
|
+
// Resolved ONCE here: the same value labels a case directory this request creates
|
|
2572
|
+
// (agent-case-marker.ts) and draws the tab lineage line on the session below.
|
|
2573
|
+
const qsParentSessionId = resolveParentSessionId(ctx, req, parentSessionId, owner);
|
|
2570
2574
|
// Multi-user: shell mode is arbitrary host-account execution, gated by the grant.
|
|
2571
2575
|
// Resolve the owner's grant from the store so a GRANTED regular user is not wrongly denied.
|
|
2572
2576
|
if (getCli(mode)?.capabilities.privilegedCommandGate && !(await canUsernameRunPrivilegedCommands(owner))) {
|
|
@@ -2776,6 +2780,22 @@ export function registerSessionRoutes(app, ctx) {
|
|
|
2776
2780
|
mode !== 'omp') {
|
|
2777
2781
|
await writeHooksConfig(resolvedCasePath);
|
|
2778
2782
|
}
|
|
2783
|
+
// Label a directory an AGENT asked us to create, so the scratch workspaces a
|
|
2784
|
+
// long orchestration leaves behind can be told apart from the user's real
|
|
2785
|
+
// projects later (see agent-case-marker.ts). This is the only branch that may
|
|
2786
|
+
// write it: it is the only one that creates the directory, and a pre-existing
|
|
2787
|
+
// case must never be labelled. Best-effort — a failed marker must not fail the
|
|
2788
|
+
// spawn it decorates.
|
|
2789
|
+
const qsAgentOrigin = resolveAgentCaseOrigin(req, agentOrigin, qsParentSessionId);
|
|
2790
|
+
if (qsAgentOrigin) {
|
|
2791
|
+
await writeAgentCaseMarker(resolvedCasePath, buildAgentCaseMarker({
|
|
2792
|
+
createdBy: qsAgentOrigin,
|
|
2793
|
+
parentSessionId: qsParentSessionId,
|
|
2794
|
+
parentSessionName: qsParentSessionId ? ctx.sessions.get(qsParentSessionId)?.name : undefined,
|
|
2795
|
+
mode,
|
|
2796
|
+
owner,
|
|
2797
|
+
}));
|
|
2798
|
+
}
|
|
2779
2799
|
ctx.broadcast(SseEvent.CaseCreated, { name: caseName, path: resolvedCasePath });
|
|
2780
2800
|
}
|
|
2781
2801
|
catch (err) {
|
|
@@ -2893,7 +2913,7 @@ export function registerSessionRoutes(app, ctx) {
|
|
|
2893
2913
|
docker,
|
|
2894
2914
|
resumeSessionId: dockerResumeId,
|
|
2895
2915
|
tmuxHistoryLimit: qsTerminalHistoryConfig.tmuxHistoryLimit,
|
|
2896
|
-
parentSessionId:
|
|
2916
|
+
parentSessionId: qsParentSessionId,
|
|
2897
2917
|
});
|
|
2898
2918
|
// Auto-detect completion phrase from CLAUDE.md BEFORE broadcasting
|
|
2899
2919
|
// so the initial state already has the phrase configured (only if globally enabled)
|