@agi-fans/dsh-tui 0.16.0 → 0.18.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/lib/CHANGELOG.md +53 -1
- package/lib/chrome/status-config.d.ts +4 -1
- package/lib/chrome/status-config.js.map +1 -1
- package/lib/chrome/tool-args.d.ts +9 -0
- package/lib/chrome/tool-args.js +20 -0
- package/lib/chrome/tool-args.js.map +1 -0
- package/lib/chrome/tool-renderers.js +4 -15
- package/lib/chrome/tool-renderers.js.map +1 -1
- package/lib/commands/auth.js +4 -2
- package/lib/commands/auth.js.map +1 -1
- package/lib/commands/jobs.d.ts +2 -2
- package/lib/commands/jobs.js +2 -2
- package/lib/commands/jobs.js.map +1 -1
- package/lib/commands/session.js +2 -4
- package/lib/commands/session.js.map +1 -1
- package/lib/definition.d.ts +3 -0
- package/lib/definition.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/runtime/composer-images.d.ts +44 -0
- package/lib/runtime/composer-images.js +149 -0
- package/lib/runtime/composer-images.js.map +1 -0
- package/lib/runtime/herdr-agent.d.ts +95 -0
- package/lib/runtime/herdr-agent.js +258 -0
- package/lib/runtime/herdr-agent.js.map +1 -0
- package/lib/runtime/plain-tui.d.ts +34 -0
- package/lib/runtime/plain-tui.js +119 -0
- package/lib/runtime/plain-tui.js.map +1 -0
- package/lib/runtime/provider-local.d.ts +46 -7
- package/lib/runtime/provider-local.js +181 -299
- package/lib/runtime/provider-local.js.map +1 -1
- package/lib/runtime/session-runtime.d.ts +9 -1
- package/lib/runtime/session-runtime.js +2 -2
- package/lib/runtime/session-runtime.js.map +1 -1
- package/lib/runtime/startup-notices.js +6 -9
- package/lib/runtime/startup-notices.js.map +1 -1
- package/lib/runtime/tool-presentation.js +18 -3
- package/lib/runtime/tool-presentation.js.map +1 -1
- package/lib/session/content-text.d.ts +12 -0
- package/lib/session/content-text.js +13 -0
- package/lib/session/content-text.js.map +1 -0
- package/lib/session/history-store.js.map +1 -0
- package/lib/session/job-notice.d.ts +2 -2
- package/lib/session/job-notice.js.map +1 -1
- package/lib/session/json-file.d.ts +5 -0
- package/lib/session/json-file.js +21 -0
- package/lib/session/json-file.js.map +1 -0
- package/lib/session/model-favorites.js +15 -25
- package/lib/session/model-favorites.js.map +1 -1
- package/lib/session/release-notes.js +1 -18
- package/lib/session/release-notes.js.map +1 -1
- package/lib/session/session-configuration.d.ts +0 -3
- package/lib/session/session-configuration.js +0 -4
- package/lib/session/session-configuration.js.map +1 -1
- package/lib/session/session-controller.d.ts +6 -4
- package/lib/session/session-controller.js +160 -182
- package/lib/session/session-controller.js.map +1 -1
- package/lib/session/session-library.d.ts +20 -0
- package/lib/session/session-library.js +55 -13
- package/lib/session/session-library.js.map +1 -1
- package/lib/session/subagent-roster.js +16 -46
- package/lib/session/subagent-roster.js.map +1 -1
- package/lib/session/subagent-tracker.d.ts +51 -0
- package/lib/session/subagent-tracker.js +128 -0
- package/lib/session/subagent-tracker.js.map +1 -0
- package/lib/session/tui-settings.d.ts +41 -18
- package/lib/session/tui-settings.js +57 -39
- package/lib/session/tui-settings.js.map +1 -1
- package/lib/session/update-check.js +2 -15
- package/lib/session/update-check.js.map +1 -1
- package/lib/session/version-compare.d.ts +3 -0
- package/lib/session/version-compare.js +21 -0
- package/lib/session/version-compare.js.map +1 -0
- package/lib/views/at-complete.d.ts +2 -0
- package/lib/views/at-complete.js +2 -2
- package/lib/views/at-complete.js.map +1 -1
- package/lib/views/event-views.d.ts +11 -270
- package/lib/views/event-views.js +21 -976
- package/lib/views/event-views.js.map +1 -1
- package/lib/views/settings-list.d.ts +2 -2
- package/lib/views/settings-list.js +12 -11
- package/lib/views/settings-list.js.map +1 -1
- package/lib/views/transcript-export.js +0 -2
- package/lib/views/transcript-export.js.map +1 -1
- package/lib/views/transcript-render.d.ts +179 -0
- package/lib/views/transcript-render.js +916 -0
- package/lib/views/transcript-render.js.map +1 -0
- package/lib/views/transcript-types.d.ts +104 -0
- package/lib/views/transcript-types.js +53 -0
- package/lib/views/transcript-types.js.map +1 -0
- package/package.json +39 -37
- package/lib/views/history-store.js.map +0 -1
- /package/lib/{views → session}/history-store.d.ts +0 -0
- /package/lib/{views → session}/history-store.js +0 -0
|
@@ -11,10 +11,24 @@ function parsedArguments(raw) {
|
|
|
11
11
|
}
|
|
12
12
|
class HarnessToolPresentation {
|
|
13
13
|
#ctx;
|
|
14
|
+
/**
|
|
15
|
+
* Per-session live tool/call index. Live events arrive in log order through
|
|
16
|
+
* `event()`, so each tool/result resolves its call in O(1) instead of
|
|
17
|
+
* rescanning the growing session log the way `findLast` did.
|
|
18
|
+
*/
|
|
19
|
+
#liveCalls = new WeakMap();
|
|
14
20
|
constructor(ctx) {
|
|
15
21
|
this.#ctx = ctx;
|
|
16
22
|
}
|
|
17
23
|
event(agent, event) {
|
|
24
|
+
if (event.type === 'tool/call') {
|
|
25
|
+
let calls = this.#liveCalls.get(agent.session);
|
|
26
|
+
if (calls === undefined) {
|
|
27
|
+
calls = new Map();
|
|
28
|
+
this.#liveCalls.set(agent.session, calls);
|
|
29
|
+
}
|
|
30
|
+
calls.set(event.data.callId, event);
|
|
31
|
+
}
|
|
18
32
|
return this.#event(agent, event, undefined);
|
|
19
33
|
}
|
|
20
34
|
#event(agent, event, callIndex) {
|
|
@@ -34,6 +48,7 @@ class HarnessToolPresentation {
|
|
|
34
48
|
return undefined;
|
|
35
49
|
const callId = event.data.message.source.callId;
|
|
36
50
|
const callEvent = callIndex?.get(callId)
|
|
51
|
+
?? this.#liveCalls.get(agent.session)?.get(callId)
|
|
37
52
|
?? agent.session.snapshotEvents().findLast(candidate => candidate.type === 'tool/call' && candidate.data.callId === callId);
|
|
38
53
|
if (callEvent?.type !== 'tool/call')
|
|
39
54
|
return undefined;
|
|
@@ -48,10 +63,10 @@ class HarnessToolPresentation {
|
|
|
48
63
|
call = undefined;
|
|
49
64
|
}
|
|
50
65
|
try {
|
|
51
|
-
const block = event.data.message.content[0];
|
|
52
66
|
result = definition?.presentResult?.(args, {
|
|
53
|
-
content
|
|
54
|
-
|
|
67
|
+
// The harness freezes message content; `ToolResult` declares a mutable array.
|
|
68
|
+
content: [...event.data.message.content],
|
|
69
|
+
isError: event.data.message.isError === true,
|
|
55
70
|
...(event.data.meta === undefined ? {} : { meta: event.data.meta }),
|
|
56
71
|
});
|
|
57
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-presentation.js","sourceRoot":"","sources":["../../src/runtime/tool-presentation.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAQ7E,MAAM,CAAC,MAAM,IAAI,GAAG,yBAAyB,CAAA;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;AAc/B,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAED,MAAM,uBAAuB;IAClB,IAAI,CAAS;
|
|
1
|
+
{"version":3,"file":"tool-presentation.js","sourceRoot":"","sources":["../../src/runtime/tool-presentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Shared text extraction from message content blocks. */
|
|
2
|
+
import type { ContentBlock } from '@deepseek-ai/dsh-llm';
|
|
3
|
+
export interface ContentTextOptions {
|
|
4
|
+
/** Block `type` values whose `text` contributes; defaults to `['text']`. */
|
|
5
|
+
readonly kinds?: readonly ContentBlock['type'][];
|
|
6
|
+
/** Segment separator; defaults to `'\n'`. */
|
|
7
|
+
readonly join?: string;
|
|
8
|
+
/** Collapse whitespace runs into single spaces and trim the joined result. */
|
|
9
|
+
readonly collapse?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/** Flatten the text of selected content blocks into one string. */
|
|
12
|
+
export declare function blocksText(content: readonly ContentBlock[], options?: ContentTextOptions): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Shared text extraction from message content blocks. */
|
|
2
|
+
/** Flatten the text of selected content blocks into one string. */
|
|
3
|
+
export function blocksText(content, options = {}) {
|
|
4
|
+
const kinds = new Set(options.kinds ?? ['text']);
|
|
5
|
+
const parts = [];
|
|
6
|
+
for (const block of content) {
|
|
7
|
+
if (kinds.has(block.type) && 'text' in block)
|
|
8
|
+
parts.push(block.text);
|
|
9
|
+
}
|
|
10
|
+
const text = parts.join(options.join ?? '\n');
|
|
11
|
+
return options.collapse === true ? text.replace(/\s+/gu, ' ').trim() : text;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=content-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-text.js","sourceRoot":"","sources":["../../src/session/content-text.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAa1D,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,OAAgC,EAAE,UAA8B,EAAE;IAC3F,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAChD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IAC7C,OAAO,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-store.js","sourceRoot":"","sources":["../../src/session/history-store.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,YAAY;IACF;IAAuB;IAA5C,YAAqB,IAAY,EAAW,QAAQ,IAAI;QAAnC,SAAI,GAAJ,IAAI,CAAQ;QAAW,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE5D,IAAI;QACF,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;iBAC/D,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBACxC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACnD,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,EAAE,CAAA;gBAAC,CAAC;YACvB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAA;QAAC,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAClD,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3F,CAAC;QAAC,MAAM,CAAC,CAAC,gEAAgE,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module @agi-fans/dsh-tui/job-notice
|
|
5
5
|
*/
|
|
6
6
|
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
7
|
-
import type {
|
|
7
|
+
import type { JobStatus, JobView } from '@deepseek-ai/dsh-jobs';
|
|
8
8
|
/** Past- or present-tense word for one lifecycle status. */
|
|
9
9
|
export declare const JOB_STATUS_WORD: Record<JobStatus, string>;
|
|
10
10
|
/** One human-facing completion line for a background job. */
|
|
@@ -20,7 +20,7 @@ export declare function formatJobNotice(snapshot: {
|
|
|
20
20
|
* owned by another session is not this terminal's business.
|
|
21
21
|
*/
|
|
22
22
|
export declare function jobNoticeFor(snapshot: {
|
|
23
|
-
readonly kind:
|
|
23
|
+
readonly kind: JobView['kind'];
|
|
24
24
|
readonly id: string;
|
|
25
25
|
readonly label: string;
|
|
26
26
|
readonly status: JobStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-notice.js","sourceRoot":"","sources":["../../src/session/job-notice.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAA8B;IACxD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,QAAQ;CACjB,CAAA;AAED,6DAA6D;AAC7D,MAAM,UAAU,eAAe,CAAC,QAK/B;IACC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1E,OAAO,kBAAkB,QAAQ,CAAC,EAAE,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;UACtE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC;UACnC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,
|
|
1
|
+
{"version":3,"file":"job-notice.js","sourceRoot":"","sources":["../../src/session/job-notice.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAA8B;IACxD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,QAAQ;CACjB,CAAA;AAED,6DAA6D;AAC7D,MAAM,UAAU,eAAe,CAAC,QAK/B;IACC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1E,OAAO,kBAAkB,QAAQ,CAAC,EAAE,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;UACtE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC;UACnC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,QAA+I,EAC/I,KAAwB,EACxB,MAAyB;IAEzB,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7D,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Small JSON-document persistence shared by product-owned state files. */
|
|
2
|
+
/** Read and parse a JSON document, or undefined when it is missing or malformed. */
|
|
3
|
+
export declare function readJsonFile(path: string): unknown;
|
|
4
|
+
/** Write a JSON document atomically through a temporary sibling with private permissions. */
|
|
5
|
+
export declare function writeJsonAtomic(path: string, value: unknown): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Small JSON-document persistence shared by product-owned state files. */
|
|
2
|
+
import { chmodSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { dirname } from 'node:path';
|
|
4
|
+
/** Read and parse a JSON document, or undefined when it is missing or malformed. */
|
|
5
|
+
export function readJsonFile(path) {
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(readFileSync(path, 'utf8'));
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Write a JSON document atomically through a temporary sibling with private permissions. */
|
|
14
|
+
export function writeJsonAtomic(path, value) {
|
|
15
|
+
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
16
|
+
const temp = `${path}.${process.pid}.${Date.now()}.tmp`;
|
|
17
|
+
writeFileSync(temp, JSON.stringify(value, null, 2) + '\n', { encoding: 'utf8', mode: 0o600 });
|
|
18
|
+
chmodSync(temp, 0o600);
|
|
19
|
+
renameSync(temp, path);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=json-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-file.js","sourceRoot":"","sources":["../../src/session/json-file.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAA;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAc;IAC1D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;IACvD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7F,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACxB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/** Durable, product-owned model favorites used by keyboard model cycling. */
|
|
2
|
-
import {
|
|
3
|
-
import { dirname } from 'node:path';
|
|
2
|
+
import { readJsonFile, writeJsonAtomic } from "./json-file.js";
|
|
4
3
|
const MAX_FAVORITES = 16;
|
|
5
4
|
function favorite(value) {
|
|
6
5
|
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
@@ -22,33 +21,24 @@ function key(value) {
|
|
|
22
21
|
return `${value.provider}\0${value.model}`;
|
|
23
22
|
}
|
|
24
23
|
export function readModelFavorites(path) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (!Array.isArray(parsed))
|
|
28
|
-
return [];
|
|
29
|
-
const seen = new Set();
|
|
30
|
-
const result = [];
|
|
31
|
-
for (const value of parsed) {
|
|
32
|
-
const entry = favorite(value);
|
|
33
|
-
if (entry === undefined || seen.has(key(entry)))
|
|
34
|
-
continue;
|
|
35
|
-
seen.add(key(entry));
|
|
36
|
-
result.push(entry);
|
|
37
|
-
if (result.length >= MAX_FAVORITES)
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
24
|
+
const parsed = readJsonFile(path);
|
|
25
|
+
if (!Array.isArray(parsed))
|
|
43
26
|
return [];
|
|
27
|
+
const seen = new Set();
|
|
28
|
+
const result = [];
|
|
29
|
+
for (const value of parsed) {
|
|
30
|
+
const entry = favorite(value);
|
|
31
|
+
if (entry === undefined || seen.has(key(entry)))
|
|
32
|
+
continue;
|
|
33
|
+
seen.add(key(entry));
|
|
34
|
+
result.push(entry);
|
|
35
|
+
if (result.length >= MAX_FAVORITES)
|
|
36
|
+
break;
|
|
44
37
|
}
|
|
38
|
+
return result;
|
|
45
39
|
}
|
|
46
40
|
export function writeModelFavorites(path, favorites) {
|
|
47
|
-
|
|
48
|
-
mkdirSync(dirname(path), { recursive: true });
|
|
49
|
-
const temporary = `${path}.${process.pid}.${Date.now()}.tmp`;
|
|
50
|
-
writeFileSync(temporary, JSON.stringify(normalized, null, 2) + '\n', { encoding: 'utf8', mode: 0o600 });
|
|
51
|
-
renameSync(temporary, path);
|
|
41
|
+
writeJsonAtomic(path, readDistinct(favorites));
|
|
52
42
|
}
|
|
53
43
|
export function addModelFavorite(favorites, entry) {
|
|
54
44
|
return [...favorites.filter(item => key(item) !== key(entry)), entry].slice(-MAX_FAVORITES);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-favorites.js","sourceRoot":"","sources":["../../src/session/model-favorites.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"model-favorites.js","sourceRoot":"","sources":["../../src/session/model-favorites.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,6 @@
|
|
|
1
1
|
/** Keep a Changelog parsing and startup release-note selection. */
|
|
2
|
+
import { compareVersions } from "./version-compare.js";
|
|
2
3
|
export const STARTUP_CHANGELOG_MODES = ['summary', 'expanded', 'hidden'];
|
|
3
|
-
function versionParts(version) {
|
|
4
|
-
const match = /^(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/u.exec(version);
|
|
5
|
-
if (match?.[1] === undefined || match[2] === undefined || match[3] === undefined)
|
|
6
|
-
return undefined;
|
|
7
|
-
return [Number(match[1]), Number(match[2]), Number(match[3])];
|
|
8
|
-
}
|
|
9
|
-
function compareVersions(left, right) {
|
|
10
|
-
const a = versionParts(left);
|
|
11
|
-
const b = versionParts(right);
|
|
12
|
-
if (a === undefined || b === undefined)
|
|
13
|
-
return 0;
|
|
14
|
-
for (let index = 0; index < a.length; index += 1) {
|
|
15
|
-
const difference = (a[index] ?? 0) - (b[index] ?? 0);
|
|
16
|
-
if (difference !== 0)
|
|
17
|
-
return difference;
|
|
18
|
-
}
|
|
19
|
-
return 0;
|
|
20
|
-
}
|
|
21
4
|
function countCategories(markdown) {
|
|
22
5
|
const counts = {};
|
|
23
6
|
let category;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-notes.js","sourceRoot":"","sources":["../../src/session/release-notes.ts"],"names":[],"mappings":"AAAA,mEAAmE;
|
|
1
|
+
{"version":3,"file":"release-notes.js","sourceRoot":"","sources":["../../src/session/release-notes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
/** Agent-preset configuration and composition guards for one session. */
|
|
2
2
|
import { type Session } from '@deepseek-ai/dsh-session';
|
|
3
|
-
import type { ToolPresentationMode } from '@deepseek-ai/dsh-tools';
|
|
4
|
-
/** PTC uses Code presentation; every other preset exposes native functions. */
|
|
5
|
-
export declare function toolPresentationForPreset(agentPreset: string): ToolPresentationMode;
|
|
6
3
|
/** Agent composition may change only before any model-visible history exists. */
|
|
7
4
|
export declare function isBlankSession(session: Session): boolean;
|
|
8
5
|
export declare function formatAgentPreset(id: string): string;
|
|
@@ -8,10 +8,6 @@ function registerLegacyOmdshSessionEvents() {
|
|
|
8
8
|
KNOWN_SESSION_EVENT_TYPES.add('omdsh/tools-selected');
|
|
9
9
|
}
|
|
10
10
|
registerLegacyOmdshSessionEvents();
|
|
11
|
-
/** PTC uses Code presentation; every other preset exposes native functions. */
|
|
12
|
-
export function toolPresentationForPreset(agentPreset) {
|
|
13
|
-
return agentPreset === 'code' ? 'ptc' : 'native';
|
|
14
|
-
}
|
|
15
11
|
/** Agent composition may change only before any model-visible history exists. */
|
|
16
12
|
export function isBlankSession(session) {
|
|
17
13
|
if (session.deriveMessages().length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-configuration.js","sourceRoot":"","sources":["../../src/session/session-configuration.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,yBAAyB,EAAgB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"session-configuration.js","sourceRoot":"","sources":["../../src/session/session-configuration.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,yBAAyB,EAAgB,MAAM,0BAA0B,CAAA;AAElF;;;GAGG;AACH,SAAS,gCAAgC;IACtC,yBAAyC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACxE,CAAC;AAED,gCAAgC,EAAE,CAAA;AAElC,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACrD,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB;WACzE,KAAK,CAAC,IAAI,KAAK,iBAAiB;WAChC,KAAK,CAAC,IAAI,KAAK,YAAY;WAC3B,KAAK,CAAC,IAAI,KAAK,YAAY;WAC3B,KAAK,CAAC,IAAI,KAAK,mBAAmB;WAClC,KAAK,CAAC,IAAI,KAAK,WAAW;WAC1B,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,UAAU,CAAA;IACxC,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IAC/B,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACtC,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IACpC,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { Context } from '@deepseek-ai/cordis';
|
|
10
10
|
import { type Agent, type ModelSelection } from '@deepseek-ai/dsh-agent';
|
|
11
|
-
import type { AgentPreset } from '@deepseek-ai/dsh-agent-
|
|
11
|
+
import type { AgentPreset } from '@deepseek-ai/dsh-agent-preset-registry';
|
|
12
12
|
import { type LlmResolvedModelInfo, type UserMessage } from '@deepseek-ai/dsh-llm';
|
|
13
13
|
import type { ImageAttachmentRef, SaveImageAttachment, StoredImageAttachment } from '@deepseek-ai/dsh-attachment';
|
|
14
14
|
import type { CommandSubmitAttachment } from '@deepseek-ai/dsh-commands';
|
|
15
|
-
import type {
|
|
15
|
+
import type { PermissionSelection } from '@deepseek-ai/dsh-permission-presets/types';
|
|
16
16
|
import type { PlanProjection } from '@deepseek-ai/dsh-plan-mode/types';
|
|
17
17
|
import { type SkillSummary } from '@deepseek-ai/dsh-skill';
|
|
18
18
|
import type { SessionStatsProjection } from '@deepseek-ai/dsh-session-stats/types';
|
|
@@ -28,7 +28,7 @@ export interface TuiStatsProjection {
|
|
|
28
28
|
contextPressure?: ContextPressureProjection;
|
|
29
29
|
contextBreakdown?: ContextBreakdownProjection;
|
|
30
30
|
plan?: PlanProjection;
|
|
31
|
-
permissions?:
|
|
31
|
+
permissions?: PermissionSelection;
|
|
32
32
|
goal?: GoalProjection | null;
|
|
33
33
|
/** Last logged sandbox-mode override, or null before one; outranks the preset while set. */
|
|
34
34
|
sandboxMode?: 'read-only' | 'workspace-write' | 'danger-full-access' | null;
|
|
@@ -101,7 +101,9 @@ export declare function restoreSubmissionMessage(message: UserMessage, attachmen
|
|
|
101
101
|
/** Own one switchable top-level Agent and project it onto a TuiService. */
|
|
102
102
|
export declare class SessionRuntime {
|
|
103
103
|
#private;
|
|
104
|
-
constructor(ctx: Context, tui: TuiService
|
|
104
|
+
constructor(ctx: Context, tui: TuiService, options?: {
|
|
105
|
+
stateDir?: string;
|
|
106
|
+
});
|
|
105
107
|
get agent(): Agent | undefined;
|
|
106
108
|
/**
|
|
107
109
|
* Interrupt the visible continuable child when one is inspected.
|