aicodeman 1.25.0 → 1.26.1
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/codex-transcript.d.ts +84 -0
- package/dist/codex-transcript.d.ts.map +1 -0
- package/dist/codex-transcript.js +341 -0
- package/dist/codex-transcript.js.map +1 -0
- package/dist/config/cli-registry/schema.d.ts +4 -0
- package/dist/config/cli-registry/schema.d.ts.map +1 -1
- package/dist/config/cli-registry/schema.js +15 -1
- 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 +12 -0
- package/dist/config/cli-registry/stock.js.map +1 -1
- package/dist/config/cli-registry/types.d.ts +23 -0
- package/dist/config/cli-registry/types.d.ts.map +1 -1
- 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/services/unified-session-service.d.ts +28 -10
- package/dist/services/unified-session-service.d.ts.map +1 -1
- package/dist/services/unified-session-service.js +11 -6
- package/dist/services/unified-session-service.js.map +1 -1
- package/dist/session.d.ts +11 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +90 -41
- package/dist/session.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 +4 -4
- 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 +12 -1
- package/dist/web/public/mobile-overview.js.br +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 → panels-ui.9eb5b235.js} +1 -1
- package/dist/web/public/panels-ui.9eb5b235.js.br +0 -0
- package/dist/web/public/panels-ui.9eb5b235.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.cd222710.js} +32 -23
- package/dist/web/public/session-ui.cd222710.js.br +0 -0
- package/dist/web/public/session-ui.cd222710.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 → terminal-ui.a39b5aa7.js} +2 -2
- package/dist/web/public/terminal-ui.a39b5aa7.js.br +0 -0
- package/dist/web/public/terminal-ui.a39b5aa7.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 +76 -4
- 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/panels-ui.db4785bf.js.br +0 -0
- package/dist/web/public/panels-ui.db4785bf.js.gz +0 -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
- package/dist/web/public/terminal-ui.70445f81.js.br +0 -0
- package/dist/web/public/terminal-ui.70445f81.js.gz +0 -0
package/dist/types/api.d.ts
CHANGED
|
@@ -88,6 +88,20 @@ export interface CaseInfo {
|
|
|
88
88
|
location?: 'local' | 'linked-local' | 'remote' | 'docker';
|
|
89
89
|
/** Whether this is a linked local folder */
|
|
90
90
|
linked?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Present when Codeman scaffolded this case directory for an AGENT-spawned session
|
|
93
|
+
* (the packaged skill's workers, or any spawn naming a parent session), read back
|
|
94
|
+
* from the case's own marker file — see `src/agent-case-marker.ts`. Absent for every
|
|
95
|
+
* case a human created, linked or cloned, which is what makes it usable as the
|
|
96
|
+
* "safe to clean up" signal in the Manage tab.
|
|
97
|
+
*/
|
|
98
|
+
agentCreated?: {
|
|
99
|
+
createdAt: string;
|
|
100
|
+
createdBy: string;
|
|
101
|
+
parentSessionId?: string;
|
|
102
|
+
parentSessionName?: string;
|
|
103
|
+
mode?: string;
|
|
104
|
+
};
|
|
91
105
|
/** Remote case metadata for display and session creation */
|
|
92
106
|
remote?: {
|
|
93
107
|
hostId: string;
|
|
@@ -122,6 +136,24 @@ export interface CaseInfo {
|
|
|
122
136
|
owned?: boolean;
|
|
123
137
|
};
|
|
124
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* One agent-created case as `GET /api/cases/agent-created` reports it: the cleanup
|
|
141
|
+
* view over `CaseInfo.agentCreated`, with the two facts a human needs before deleting
|
|
142
|
+
* a directory — whether an agent is still working in it, and when it was last touched.
|
|
143
|
+
*/
|
|
144
|
+
export interface AgentCaseSummary {
|
|
145
|
+
name: string;
|
|
146
|
+
path: string;
|
|
147
|
+
createdAt: string;
|
|
148
|
+
createdBy: string;
|
|
149
|
+
parentSessionId?: string;
|
|
150
|
+
parentSessionName?: string;
|
|
151
|
+
mode?: string;
|
|
152
|
+
/** A live session's working directory is this case — deleting it would pull the rug. */
|
|
153
|
+
inUse: boolean;
|
|
154
|
+
/** Directory mtime, so "nothing has touched this in a week" is answerable. */
|
|
155
|
+
modifiedAt?: string;
|
|
156
|
+
}
|
|
125
157
|
/**
|
|
126
158
|
* Safely extracts an error message from an unknown caught value.
|
|
127
159
|
* Handles the TypeScript 4.4+ unknown error type in catch blocks.
|
package/dist/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;GAEG;AACH,oBAAY,YAAY;IACtB,yBAAyB;IACzB,SAAS,cAAc;IACvB,6BAA6B;IAC7B,aAAa,kBAAkB;IAC/B,wCAAwC;IACxC,YAAY,iBAAiB;IAC7B,gCAAgC;IAChC,YAAY,iBAAiB;IAC7B,kEAAkE;IAClE,QAAQ,aAAa;IACrB,8BAA8B;IAC9B,cAAc,mBAAmB;IACjC,uCAAuC;IACvC,YAAY,iBAAiB;IAC7B,uEAAuE;IACvE,gBAAgB,qBAAqB;IACrC,8EAA8E;IAC9E,SAAS,cAAc;IACvB,2EAA2E;IAC3E,wBAAwB,6BAA6B;IACrD,wDAAwD;IACxD,WAAW,gBAAgB;IAC3B,0CAA0C;IAC1C,cAAc,mBAAmB;IACjC,4EAA4E;IAC5E,UAAU,eAAe;IACzB,4BAA4B;IAC5B,cAAc,mBAAmB;CAClC;AA4CD,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,MAAM,GACN,eAAe,GACf,gBAAgB,GAIhB,kBAAkB,GAIlB,eAAe,CAAC;AAIpB;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE,GAC3B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAAE,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAM5F;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1D,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,4DAA4D;IAC5D,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;;;;WAKG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B;;;;;;;;;WASG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAaD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWtD"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
|
package/dist/types/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="manifest" href="manifest.json">
|
|
17
17
|
<title>Codeman</title>
|
|
18
18
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2360a5fa'/%3E%3Cstop offset='100%25' stop-color='%233b82f6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='32' height='32' rx='6' fill='%230a0a0a'/%3E%3Cpath d='M18 4L8 18h6l-2 10 10-14h-6z' fill='url(%23g)'/%3E%3C/svg%3E">
|
|
19
|
-
<link rel="stylesheet" href="styles.
|
|
19
|
+
<link rel="stylesheet" href="styles.298f81f2.css">
|
|
20
20
|
<link rel="stylesheet" href="mobile.7112f27d.css" media="(max-width: 1023px)">
|
|
21
21
|
<!-- xterm.css loaded async — terminal won't display until xterm.js runs anyway -->
|
|
22
22
|
<link rel="preload" href="vendor/xterm.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
|
@@ -3462,18 +3462,18 @@
|
|
|
3462
3462
|
<script defer src="sanitize-html.bc7078d6.js"></script>
|
|
3463
3463
|
<script defer src="app.3a89ac57.js"></script>
|
|
3464
3464
|
<script defer src="tab-rail-resize.42c24949.js"></script>
|
|
3465
|
-
<script defer src="terminal-ui.
|
|
3465
|
+
<script defer src="terminal-ui.a39b5aa7.js"></script>
|
|
3466
3466
|
<script defer src="respawn-ui.ff0dae4c.js"></script>
|
|
3467
3467
|
<script defer src="ralph-panel.6de2d0f8.js"></script>
|
|
3468
3468
|
<script defer src="orchestrator-panel.js"></script>
|
|
3469
3469
|
<script defer src="cron-ui.js"></script>
|
|
3470
3470
|
<script defer src="settings-ui.554f9cdd.js"></script>
|
|
3471
|
-
<script defer src="panels-ui.
|
|
3471
|
+
<script defer src="panels-ui.9eb5b235.js"></script>
|
|
3472
3472
|
<script defer src="readmymind-ui.js"></script>
|
|
3473
3473
|
<script defer src="ultracode-panel.js"></script>
|
|
3474
3474
|
<script defer src="approvals-ui.js"></script>
|
|
3475
3475
|
<script defer src="admin-ui.js"></script>
|
|
3476
|
-
<script defer src="session-ui.
|
|
3476
|
+
<script defer src="session-ui.cd222710.js"></script>
|
|
3477
3477
|
<script defer src="webview-tabs.js"></script>
|
|
3478
3478
|
<script defer src="mobile-overview.js"></script>
|
|
3479
3479
|
<script defer src="home-sessions.js"></script>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -228,6 +228,11 @@ Object.assign(CodemanApp.prototype, {
|
|
|
228
228
|
name: item.name || '',
|
|
229
229
|
title: title || item.name || dir.split('/').pop() || item.sessionId.slice(0, 8),
|
|
230
230
|
mode: item.mode || 'claude',
|
|
231
|
+
// Only the scanner sets this, and only for a codex rollout. Dropping it here
|
|
232
|
+
// is not cosmetic: resumeMobileOverviewSession() passes row.resumeId on to
|
|
233
|
+
// resumeHistorySession(), so without it a tapped Codex row starts a FRESH
|
|
234
|
+
// session on a thread that is already on disk.
|
|
235
|
+
resumeId: item.resumeId || undefined,
|
|
231
236
|
caseName: matched ? matched.name : '',
|
|
232
237
|
dir: this._shortenHomePath ? this._shortenHomePath(dir) : dir,
|
|
233
238
|
at: item.lastActivityAt || item.createdAt || 0,
|
|
@@ -389,7 +394,13 @@ Object.assign(CodemanApp.prototype, {
|
|
|
389
394
|
async resumeMobileOverviewSession(sessionId) {
|
|
390
395
|
const row = (this._mobileOverviewPastRows || []).find((r) => r.id === sessionId);
|
|
391
396
|
if (!row || !row.workingDir) return;
|
|
392
|
-
await this.resumeHistorySession(
|
|
397
|
+
await this.resumeHistorySession(
|
|
398
|
+
row.claudeSessionId || row.id,
|
|
399
|
+
row.workingDir,
|
|
400
|
+
row.name || undefined,
|
|
401
|
+
row.mode,
|
|
402
|
+
row.resumeId
|
|
403
|
+
);
|
|
393
404
|
},
|
|
394
405
|
|
|
395
406
|
// ═══════════════════════════════════════════════════════════════
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<span class="command-palette-subtitle">${escapeHtml(i.subtitle||"")}</span>
|
|
7
7
|
</span>
|
|
8
8
|
</button>
|
|
9
|
-
`}).join("")},moveCommandPaletteSelection(e){const t=this.commandPaletteItems||this.buildCommandPaletteItems(document.getElementById("commandPaletteSearch")?.value||"");t.length&&(this.commandPaletteActiveIndex=(this.commandPaletteActiveIndex+e+t.length)%t.length,this.renderCommandPalette())},async activateCommandPaletteItem(e=this.commandPaletteActiveIndex||0){const t=(this.commandPaletteItems||[])[e];if(t){if(this.closeCommandPalette(),t.type==="session"&&t.sessionId){await this.selectSession(t.sessionId);return}if(t.type==="browse-sessions"){this.openSessionManager();return}if(t.type==="new-session"){const s=document.getElementById("quickStartCase");if(s&&t.caseName){if(s.tagName==="SELECT"&&typeof s.appendChild=="function"&&!Array.from(s.options||[]).some(n=>n.value===t.caseName)){const n=document.createElement("option");n.value=t.caseName,n.textContent=t.caseName,s.appendChild(n)}typeof this.selectQuickStartCase=="function"?this.selectQuickStartCase(t.caseName):s.value=t.caseName}await this.run()}}},async openSessionManager(){const e=document.getElementById("sessionManagerModal");if(e&&(e.classList.add("active"),this._sessionManagerEscWired||(this._sessionManagerEscWired=!0,e.addEventListener("keydown",s=>{s.key==="Escape"&&(s.preventDefault(),s.stopPropagation(),this.closeSessionManager())}))),!Array.isArray(this.cases)||this.cases.length===0)try{const s=await fetch("/api/cases"),n=s.ok?await s.json():null;this.cases=n?.data||[]}catch{this.cases=this.cases||[]}const t=document.getElementById("sessionManagerSearch");t&&(this._sessionManagerSearchWired||(this._sessionManagerSearchWired=!0,t.addEventListener("input",()=>{const s=t.value.trim();this._debouncedCall("sessionManagerSearch",()=>this._loadSessionManagerList(s),200)})),t.value="",t.focus()),await this._loadSessionManagerList("")},closeSessionManager(){const e=document.getElementById("sessionManagerModal");e&&e.classList.remove("active")},_setSessionManagerMessage(e,t){e.replaceChildren();const s=document.createElement("p");s.className="empty-message",s.textContent=t,e.appendChild(s)},async _loadSessionManagerList(e=""){this._sessionManagerQuery=e;const t=document.getElementById("sessionManagerList");if(t)try{const s="/api/sessions/unified?limit=200"+(e?"&q="+encodeURIComponent(e):""),n=await fetch(s),i=await n.json().catch(()=>null);if(!n.ok||!i||i.success===!1||!i.data){this._setSessionManagerMessage(t,i?.error||`Failed to load sessions (HTTP ${n.status})`);return}const a=i.data.sessions||[];if(t.replaceChildren(),a.length===0){this._setSessionManagerMessage(t,e?"No sessions match your search":"No sessions found");return}for(const r of a){const o={sessionId:r.sessionId,workingDir:r.workingDir||"",sizeBytes:r.sizeBytes??0,lastModified:new Date(r.lastActivityAt??r.createdAt??Date.now()).toISOString(),firstPrompt:r.firstPrompt||r.name||"",gitBranch:r.gitBranch,worktreeName:r.worktreeName,worktreeRepo:r.worktreeRepo},l=!!this.sessions?.has?.(r.sessionId),c=this._buildHistoryItem(o,this.cases,{showViewAll:!1,onActivate:()=>{this.closeSessionManager(),l?this.selectSession(r.sessionId):o.workingDir&&this.resumeHistorySession(r.claudeSessionId||r.sessionId,o.workingDir,void 0,r.mode)}});t.appendChild(c)}}catch(s){console.error("[_loadSessionManagerList]",s),this._setSessionManagerMessage(t,"Failed to load sessions")}},async openAwayDigest(e="since-last-visit"){this.awayDigestRange=e,this._awayDigestLoadedSuccessfully=!1,this._awayDigestSinceLastVisitGeneratedAt=void 0;const t=document.getElementById("awayDigestModal");t&&t.classList.add("active"),this.updateAwayDigestRangeControls(),await this.loadAwayDigest()},closeAwayDigest(){const e=document.getElementById("awayDigestModal"),t=this._awayDigestSinceLastVisitGeneratedAt;if(Number.isFinite(t))try{localStorage.setItem(AWAY_DIGEST_LAST_VIEWED_KEY,String(t))}catch(s){console.warn("Failed to save away digest last-viewed marker:",s)}e&&e.classList.remove("active")},_onSessionListMaybeChanged(){const e=document.getElementById("sessionManagerModal");e&&e.classList.contains("active")&&this._debouncedCall("sessionManagerRefresh",()=>this._loadSessionManagerList(this._sessionManagerQuery||""),400);const t=document.getElementById("welcomeOverlay");t&&t.classList.contains("visible")&&this._debouncedCall("welcomeHistoryRefresh",()=>this.loadHistorySessions(),600)},setAwayDigestRange(e){this.awayDigestRange=e,this._awayDigestLoadedSuccessfully=!1,this.updateAwayDigestRangeControls(),this.loadAwayDigest()},updateAwayDigestRangeControls(){const e=this.awayDigestRange||"since-last-visit";document.querySelectorAll("[data-away-range]").forEach(s=>{s.classList.toggle("active",s.dataset.awayRange===e)});const t=document.getElementById("awayDigestCustomRange");t&&t.classList.toggle("active",e==="custom"),e==="custom"&&this.ensureAwayDigestCustomDefaults()},ensureAwayDigestCustomDefaults(){const e=document.getElementById("awayDigestCustomSince"),t=document.getElementById("awayDigestCustomUntil");if(!e||!t)return;const s=new Date;if(t.value||(t.value=this.formatAwayDigestDateTimeLocal(s)),!e.value){const n=new Date(s.getTime()-36e5);e.value=this.formatAwayDigestDateTimeLocal(n)}},formatAwayDigestDateTimeLocal(e){const t=s=>String(s).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}`},async loadAwayDigest(){const e=document.getElementById("awayDigestSummary"),t=document.getElementById("awayDigestFreshness"),s=document.getElementById("awayDigestSections");e&&(e.innerHTML='<div class="away-digest-loading">Loading digest...</div>'),t&&(t.textContent=""),s&&(s.innerHTML="");try{const n=this.awayDigestRange||"since-last-visit",i=new URLSearchParams({range:n});if(n==="since-last-visit"){const o=this.readAwayDigestLastViewed();Number.isFinite(o)&&i.set("lastViewed",String(o))}if(n==="custom"){this.ensureAwayDigestCustomDefaults();const o=this.readAwayDigestDateTimeInput("awayDigestCustomSince"),l=this.readAwayDigestDateTimeInput("awayDigestCustomUntil");if(!Number.isFinite(o))throw new Error("Choose a custom start time");i.set("since",String(o)),Number.isFinite(l)&&i.set("until",String(l))}const a=await fetch(`/api/away-digest?${i.toString()}`),r=await a.json();if(!a.ok||!r.success)throw new Error(r.error||"Failed to load away digest");this._awayDigestLoadedSuccessfully=!0,this._awayDigestGeneratedAt=r.digest.generatedAt,n==="since-last-visit"&&(this._awayDigestSinceLastVisitGeneratedAt=r.digest.generatedAt),this.renderAwayDigest(r.digest)}catch(n){const i=n instanceof Error?n.message:"Failed to load away digest";console.error("Failed to fetch away digest:",n),e&&(e.innerHTML='<div class="away-digest-load-error">Failed to load away digest</div>'),s&&(s.innerHTML=`<div class="empty-message">${escapeHtml(i)}</div>`),this.showToast(i,"error")}},readAwayDigestLastViewed(){try{const e=localStorage.getItem(AWAY_DIGEST_LAST_VIEWED_KEY),t=Number(e);return Number.isFinite(t)?t:void 0}catch{return}},readAwayDigestDateTimeInput(e){const t=document.getElementById(e);if(!t||!t.value)return;const s=Date.parse(t.value);return Number.isFinite(s)?s:void 0},renderAwayDigest(e){const t=document.getElementById("awayDigestSummary"),s=document.getElementById("awayDigestFreshness"),n=document.getElementById("awayDigestSections");if(!t||!s||!n)return;const i=e.totals.inputTokens||0,a=e.totals.outputTokens||0,r=e.totals.estimatedCost||0;t.innerHTML=`
|
|
9
|
+
`}).join("")},moveCommandPaletteSelection(e){const t=this.commandPaletteItems||this.buildCommandPaletteItems(document.getElementById("commandPaletteSearch")?.value||"");t.length&&(this.commandPaletteActiveIndex=(this.commandPaletteActiveIndex+e+t.length)%t.length,this.renderCommandPalette())},async activateCommandPaletteItem(e=this.commandPaletteActiveIndex||0){const t=(this.commandPaletteItems||[])[e];if(t){if(this.closeCommandPalette(),t.type==="session"&&t.sessionId){await this.selectSession(t.sessionId);return}if(t.type==="browse-sessions"){this.openSessionManager();return}if(t.type==="new-session"){const s=document.getElementById("quickStartCase");if(s&&t.caseName){if(s.tagName==="SELECT"&&typeof s.appendChild=="function"&&!Array.from(s.options||[]).some(n=>n.value===t.caseName)){const n=document.createElement("option");n.value=t.caseName,n.textContent=t.caseName,s.appendChild(n)}typeof this.selectQuickStartCase=="function"?this.selectQuickStartCase(t.caseName):s.value=t.caseName}await this.run()}}},async openSessionManager(){const e=document.getElementById("sessionManagerModal");if(e&&(e.classList.add("active"),this._sessionManagerEscWired||(this._sessionManagerEscWired=!0,e.addEventListener("keydown",s=>{s.key==="Escape"&&(s.preventDefault(),s.stopPropagation(),this.closeSessionManager())}))),!Array.isArray(this.cases)||this.cases.length===0)try{const s=await fetch("/api/cases"),n=s.ok?await s.json():null;this.cases=n?.data||[]}catch{this.cases=this.cases||[]}const t=document.getElementById("sessionManagerSearch");t&&(this._sessionManagerSearchWired||(this._sessionManagerSearchWired=!0,t.addEventListener("input",()=>{const s=t.value.trim();this._debouncedCall("sessionManagerSearch",()=>this._loadSessionManagerList(s),200)})),t.value="",t.focus()),await this._loadSessionManagerList("")},closeSessionManager(){const e=document.getElementById("sessionManagerModal");e&&e.classList.remove("active")},_setSessionManagerMessage(e,t){e.replaceChildren();const s=document.createElement("p");s.className="empty-message",s.textContent=t,e.appendChild(s)},async _loadSessionManagerList(e=""){this._sessionManagerQuery=e;const t=document.getElementById("sessionManagerList");if(t)try{const s="/api/sessions/unified?limit=200"+(e?"&q="+encodeURIComponent(e):""),n=await fetch(s),i=await n.json().catch(()=>null);if(!n.ok||!i||i.success===!1||!i.data){this._setSessionManagerMessage(t,i?.error||`Failed to load sessions (HTTP ${n.status})`);return}const a=i.data.sessions||[];if(t.replaceChildren(),a.length===0){this._setSessionManagerMessage(t,e?"No sessions match your search":"No sessions found");return}for(const r of a){const o={sessionId:r.sessionId,workingDir:r.workingDir||"",sizeBytes:r.sizeBytes??0,lastModified:new Date(r.lastActivityAt??r.createdAt??Date.now()).toISOString(),firstPrompt:r.firstPrompt||r.name||"",gitBranch:r.gitBranch,worktreeName:r.worktreeName,worktreeRepo:r.worktreeRepo},l=!!this.sessions?.has?.(r.sessionId),c=this._buildHistoryItem(o,this.cases,{showViewAll:!1,onActivate:()=>{this.closeSessionManager(),l?this.selectSession(r.sessionId):o.workingDir&&this.resumeHistorySession(r.claudeSessionId||r.sessionId,o.workingDir,void 0,r.mode,r.resumeId)}});t.appendChild(c)}}catch(s){console.error("[_loadSessionManagerList]",s),this._setSessionManagerMessage(t,"Failed to load sessions")}},async openAwayDigest(e="since-last-visit"){this.awayDigestRange=e,this._awayDigestLoadedSuccessfully=!1,this._awayDigestSinceLastVisitGeneratedAt=void 0;const t=document.getElementById("awayDigestModal");t&&t.classList.add("active"),this.updateAwayDigestRangeControls(),await this.loadAwayDigest()},closeAwayDigest(){const e=document.getElementById("awayDigestModal"),t=this._awayDigestSinceLastVisitGeneratedAt;if(Number.isFinite(t))try{localStorage.setItem(AWAY_DIGEST_LAST_VIEWED_KEY,String(t))}catch(s){console.warn("Failed to save away digest last-viewed marker:",s)}e&&e.classList.remove("active")},_onSessionListMaybeChanged(){const e=document.getElementById("sessionManagerModal");e&&e.classList.contains("active")&&this._debouncedCall("sessionManagerRefresh",()=>this._loadSessionManagerList(this._sessionManagerQuery||""),400);const t=document.getElementById("welcomeOverlay");t&&t.classList.contains("visible")&&this._debouncedCall("welcomeHistoryRefresh",()=>this.loadHistorySessions(),600)},setAwayDigestRange(e){this.awayDigestRange=e,this._awayDigestLoadedSuccessfully=!1,this.updateAwayDigestRangeControls(),this.loadAwayDigest()},updateAwayDigestRangeControls(){const e=this.awayDigestRange||"since-last-visit";document.querySelectorAll("[data-away-range]").forEach(s=>{s.classList.toggle("active",s.dataset.awayRange===e)});const t=document.getElementById("awayDigestCustomRange");t&&t.classList.toggle("active",e==="custom"),e==="custom"&&this.ensureAwayDigestCustomDefaults()},ensureAwayDigestCustomDefaults(){const e=document.getElementById("awayDigestCustomSince"),t=document.getElementById("awayDigestCustomUntil");if(!e||!t)return;const s=new Date;if(t.value||(t.value=this.formatAwayDigestDateTimeLocal(s)),!e.value){const n=new Date(s.getTime()-36e5);e.value=this.formatAwayDigestDateTimeLocal(n)}},formatAwayDigestDateTimeLocal(e){const t=s=>String(s).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}`},async loadAwayDigest(){const e=document.getElementById("awayDigestSummary"),t=document.getElementById("awayDigestFreshness"),s=document.getElementById("awayDigestSections");e&&(e.innerHTML='<div class="away-digest-loading">Loading digest...</div>'),t&&(t.textContent=""),s&&(s.innerHTML="");try{const n=this.awayDigestRange||"since-last-visit",i=new URLSearchParams({range:n});if(n==="since-last-visit"){const o=this.readAwayDigestLastViewed();Number.isFinite(o)&&i.set("lastViewed",String(o))}if(n==="custom"){this.ensureAwayDigestCustomDefaults();const o=this.readAwayDigestDateTimeInput("awayDigestCustomSince"),l=this.readAwayDigestDateTimeInput("awayDigestCustomUntil");if(!Number.isFinite(o))throw new Error("Choose a custom start time");i.set("since",String(o)),Number.isFinite(l)&&i.set("until",String(l))}const a=await fetch(`/api/away-digest?${i.toString()}`),r=await a.json();if(!a.ok||!r.success)throw new Error(r.error||"Failed to load away digest");this._awayDigestLoadedSuccessfully=!0,this._awayDigestGeneratedAt=r.digest.generatedAt,n==="since-last-visit"&&(this._awayDigestSinceLastVisitGeneratedAt=r.digest.generatedAt),this.renderAwayDigest(r.digest)}catch(n){const i=n instanceof Error?n.message:"Failed to load away digest";console.error("Failed to fetch away digest:",n),e&&(e.innerHTML='<div class="away-digest-load-error">Failed to load away digest</div>'),s&&(s.innerHTML=`<div class="empty-message">${escapeHtml(i)}</div>`),this.showToast(i,"error")}},readAwayDigestLastViewed(){try{const e=localStorage.getItem(AWAY_DIGEST_LAST_VIEWED_KEY),t=Number(e);return Number.isFinite(t)?t:void 0}catch{return}},readAwayDigestDateTimeInput(e){const t=document.getElementById(e);if(!t||!t.value)return;const s=Date.parse(t.value);return Number.isFinite(s)?s:void 0},renderAwayDigest(e){const t=document.getElementById("awayDigestSummary"),s=document.getElementById("awayDigestFreshness"),n=document.getElementById("awayDigestSections");if(!t||!s||!n)return;const i=e.totals.inputTokens||0,a=e.totals.outputTokens||0,r=e.totals.estimatedCost||0;t.innerHTML=`
|
|
10
10
|
<div class="away-digest-card">
|
|
11
11
|
<span class="away-digest-card-label">Needs Attention</span>
|
|
12
12
|
<span class="away-digest-card-value">${e.totals.needsAttention}</span>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|