@aiwayds/dsh-tui-pi 2.5.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/README.zh-CN.md +1 -2
- package/lib/history-fork.d.ts +83 -0
- package/lib/history-fork.js +182 -0
- package/lib/history-fork.js.map +1 -0
- package/lib/history-turns.d.ts +95 -0
- package/lib/history-turns.js +186 -0
- package/lib/history-turns.js.map +1 -0
- package/lib/history.d.ts +268 -0
- package/lib/history.js +794 -0
- package/lib/history.js.map +1 -0
- package/lib/hotkeys.d.ts +1 -1
- package/lib/hotkeys.js +2 -3
- package/lib/hotkeys.js.map +1 -1
- package/lib/index.js +218 -51
- package/lib/index.js.map +1 -1
- package/lib/keymap.d.ts +0 -5
- package/lib/keymap.js +3 -8
- package/lib/keymap.js.map +1 -1
- package/lib/panels.d.ts +15 -0
- package/lib/panels.js +13 -3
- package/lib/panels.js.map +1 -1
- package/lib/preset-dialog.d.ts +152 -0
- package/lib/preset-dialog.js +254 -0
- package/lib/preset-dialog.js.map +1 -0
- package/lib/preset.d.ts +16 -9
- package/lib/preset.js +18 -11
- package/lib/preset.js.map +1 -1
- package/lib/session.d.ts +41 -0
- package/lib/session.js +82 -25
- package/lib/session.js.map +1 -1
- package/lib/sessions.d.ts +43 -0
- package/lib/sessions.js +9 -5
- package/lib/sessions.js.map +1 -1
- package/lib/tui.js +1 -1
- package/lib/tui.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
|
package/lib/hotkeys.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ import { type TuiTheme } from './theme/index.ts';
|
|
|
25
25
|
export declare const KEYBINDINGS_FILE = "keybindings.json";
|
|
26
26
|
/** Absolute path of the keybindings file under a dsh home directory. */
|
|
27
27
|
export declare function keybindingsPath(home: string): string;
|
|
28
|
-
/** The
|
|
28
|
+
/** The six app-level bindings the file may remap (order = display order). */
|
|
29
29
|
export declare const APP_KEY_FIELDS: readonly (keyof KeyBindings)[];
|
|
30
30
|
/**
|
|
31
31
|
* Conservative check of one pi-tui key id as a user might type it:
|
package/lib/hotkeys.js
CHANGED
|
@@ -29,8 +29,8 @@ export const KEYBINDINGS_FILE = 'keybindings.json';
|
|
|
29
29
|
export function keybindingsPath(home) {
|
|
30
30
|
return join(home, KEYBINDINGS_FILE);
|
|
31
31
|
}
|
|
32
|
-
/** The
|
|
33
|
-
export const APP_KEY_FIELDS = ['escape', 'ctrlC', 'ctrlD', 'modelPicker', 'subagentViewer', 'queuePanel'
|
|
32
|
+
/** The six app-level bindings the file may remap (order = display order). */
|
|
33
|
+
export const APP_KEY_FIELDS = ['escape', 'ctrlC', 'ctrlD', 'modelPicker', 'subagentViewer', 'queuePanel'];
|
|
34
34
|
/** Action descriptions for the `/hotkeys` table. */
|
|
35
35
|
const KEY_ACTIONS = {
|
|
36
36
|
escape: 'stop the current task — requires two presses (1st arms, 2nd within 500ms fires)',
|
|
@@ -39,7 +39,6 @@ const KEY_ACTIONS = {
|
|
|
39
39
|
modelPicker: 'open the model / think picker',
|
|
40
40
|
subagentViewer: 'open the subagent picker / viewer',
|
|
41
41
|
queuePanel: 'open the pending-message queue (d remove · s steer now)',
|
|
42
|
-
presetCycle: 'cycle through agent presets',
|
|
43
42
|
};
|
|
44
43
|
// ------------------------------------------------------------- validation --
|
|
45
44
|
const MODIFIERS = new Set(['ctrl', 'shift', 'alt', 'super']);
|
package/lib/hotkeys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotkeys.js","sourceRoot":"","sources":["../src/hotkeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,SAAS,EAAwC,MAAM,eAAe,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAiB,MAAM,kBAAkB,CAAA;AAErE,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAElD,wEAAwE;AACxE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AACrC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"hotkeys.js","sourceRoot":"","sources":["../src/hotkeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,SAAS,EAAwC,MAAM,eAAe,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAiB,MAAM,kBAAkB,CAAA;AAErE,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAElD,wEAAwE;AACxE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AACrC,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAmC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAA;AAEzI,oDAAoD;AACpD,MAAM,WAAW,GAAsC;IACrD,MAAM,EAAE,iFAAiF;IACzF,KAAK,EAAE,gEAAgE;IACvE,KAAK,EAAE,gCAAgC;IACvC,WAAW,EAAE,+BAA+B;IAC5C,cAAc,EAAE,mCAAmC;IACnD,UAAU,EAAE,yDAAyD;CACtE,CAAA;AAED,8EAA8E;AAE9E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;AAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ;IACzE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IACnE,OAAO,EAAE,OAAO;CACjB,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAA;IACrF,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACnC,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IAC5B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;IAC5C,CAAC;IACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,EAAS;IAClC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK;QAC7C,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;YACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC;AAcD,MAAM,KAAK,GAAsB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAE9E,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,GAAY,CAAA;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,oBAAqB,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC3G,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,8CAA8C,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC3G,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAA;IAC7C,MAAM,QAAQ,GAAyB,EAAE,CAAA;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QACjC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAC9G,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,IAAI,CAAE,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,KAAK,aAAa,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,OAAkE;IAElE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAC5C,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACvC,WAAW,GAAG,IAAI,CAAA;QAClB,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,GAAG,KAAK,+DAA+D,CAAA;QAChF,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW;YAAE,OAAO,GAAG,KAAK,KAAM,KAAe,CAAC,OAAO,uCAAuC,CAAA;QACpG,4BAA4B;IAC9B,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;;YACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;IAC9B,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,oBAAqB,KAAe,CAAC,OAAO,EAAE,CAAA;IAC/D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAC5C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qEAAqE,EAAE,CAAA;IACxG,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC1C,CAAC;AAgBD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAA4B;IACxD,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO;YACL,KAAK;YACL,GAAG,EAAE,UAAU,CAAC,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;YAC1B,MAAM,EAAE,QAAQ,KAAK,SAAS;SAC/B,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAcD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAQ,EACR,KAAe,EACf,OAA8B;IAE9B,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,+DAA+D;IAC/D,IAAI,MAA0B,CAAA;IAC9B,wEAAwE;IACxE,IAAI,MAAyD,CAAA;IAE7D,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;QAC/C,OAAO,CAAC,YAAY,EAAE,CAAA;QACtB,MAAM,EAAE,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,+EAA+E;IAC/E,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAChD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,2DAA2D;IAC3D,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxD,GAAG,EAAE,GAAG,CAAC,KAAK;YACd,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE;YAC3D,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC,CAAA;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;QACvD,MAAM,OAAO,GAAa;YACxB,MAAM,CAAC,MAAM;gBACX,CAAC,CAAC,WAAW,OAAO,CAAC,QAAQ,KAAK,WAAW,YAAY,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;gBACxF,CAAC,CAAC,WAAW,OAAO,CAAC,QAAQ,gCAAgC;YAC/D,oFAAoF;YACpF,wGAAwG;YACxG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC;SAClD,CAAA;QACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,WAAW,GAAG,KAAK;YAChE,OAAO;YACP,MAAM;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM;YACpB,MAAM,EAAE,mCAAmC;YAC3C,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;YACxC,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,OAAO,CAAC,YAAY,EAAE,CAAA;gBACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACvD,CAAC;SACF,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,KAAyB,EAAQ,EAAE;QAClD,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC,CAAA;IAED,0EAA0E;IAC1E,MAAM,IAAI,GAAG,CAAC,KAAwB,EAAQ,EAAE;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE;YAChC,KAAK,EAAE,WAAW,KAAK,cAAc,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE;kBACzE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,QAAQ,EAAE,0DAA0D;YACpE,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAqC,EAAE;gBAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,KAAe,CAAA;oBAClC,yDAAyD;oBACzD,MAAM,KAAK,GAAG,EAAE,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAA;oBAC/C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;oBAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS;wBAAE,OAAO,SAAS,CAAA,CAAC,6BAA6B;oBAChG,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,EAAY,CAAC,CAAC,CAAC,CAAA;oBAC9F,IAAI,KAAK,KAAK,SAAS;wBAAE,OAAO,EAAE,KAAK,EAAE,CAAA;oBACzC,OAAO,GAAG,IAAI,CAAA;oBACd,aAAa,EAAE,CAAA;oBACf,MAAM,GAAG,KAAK;wBACZ,CAAC,CAAC,GAAG,KAAK,eAAe,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,aAAa;wBAC5E,CAAC,CAAC,GAAG,KAAK,MAAM,EAAE,YAAY,CAAA;oBAChC,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;oBAC/C,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS;wBAAE,OAAO,SAAS,CAAA,CAAC,0BAA0B;oBACpF,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;oBACtE,IAAI,KAAK,KAAK,SAAS;wBAAE,OAAO,EAAE,KAAK,EAAE,CAAA;oBACzC,OAAO,GAAG,IAAI,CAAA;oBACd,aAAa,EAAE,CAAA;oBACf,MAAM,GAAG,GAAG,KAAK,eAAe,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,aAAa,CAAA;oBACnF,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,OAAO,CAAC,EAAE;gBACjB,MAAM,GAAG,KAAK,OAAO,EAAE,CAAA;gBACvB,IAAI,EAAE,CAAA;YACR,CAAC;SACF,EAAE,KAAK,CAAC,CAAA;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,OAAO,IAAI,OAAO,CAAqB,OAAO,CAAC,EAAE;QAC/C,MAAM,GAAG,OAAO,CAAA;QAChB,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -41,6 +41,8 @@ import { WriterLockedError } from "./writer-lock.js";
|
|
|
41
41
|
import { emitNotice } from "./notice-bridge.js";
|
|
42
42
|
import { applySubagentPolicy } from "./subagent-policy.js";
|
|
43
43
|
import { openSubagentViewer } from "./subagent-viewer.js";
|
|
44
|
+
import { openHistoryBrowser } from "./history.js";
|
|
45
|
+
import { openForkAtTurnDialog } from "./history-fork.js";
|
|
44
46
|
import { commandUsagePath, CommandUsageTracker } from "./usage.js";
|
|
45
47
|
import { buildUserPrompt, decideSubmitPath, deliverToAgent, promotePending, removeFromInbox, STEER_UNAVAILABLE_NOTICE, TURN_ENDED_QUEUED_NOTICE, } from "./steer-flow.js";
|
|
46
48
|
import { openSubmitRouteDialog } from "./route-dialog.js";
|
|
@@ -53,7 +55,8 @@ import { clipToWidth } from "./text.js";
|
|
|
53
55
|
import {} from "./keymap.js";
|
|
54
56
|
import { keybindingsPath, loadKeyBindings, openHotkeysManager } from "./hotkeys.js";
|
|
55
57
|
import { startTui } from "./tui.js";
|
|
56
|
-
import {
|
|
58
|
+
import { currentPreset, fetchPresetRoster, findPresetByName, formatPresetLabel, initialPresetIndex, peekNextPreset } from "./preset.js";
|
|
59
|
+
import { completedTurnSeed, openPresetConfirmDialog, performPresetSwitch } from "./preset-dialog.js";
|
|
57
60
|
import { registerAskUserProvider } from "./ask-user.js";
|
|
58
61
|
import { checkHostSupport } from "./host-version.js";
|
|
59
62
|
export const name = 'dsh-tui-pi';
|
|
@@ -250,17 +253,17 @@ export function apply(ctx) {
|
|
|
250
253
|
// it. Broken entries surface as notices instead of breaking startup.
|
|
251
254
|
const keyFile = keybindingsPath(dshHome());
|
|
252
255
|
const keyBindings = loadKeyBindings(keyFile);
|
|
253
|
-
// Preset state:
|
|
254
|
-
//
|
|
255
|
-
// api-proxy service; an empty roster (no service / no
|
|
256
|
-
// the feature gracefully (
|
|
257
|
-
// Out of the box the selection starts on the `standard`
|
|
258
|
-
// roster supplies one; otherwise it falls back to the
|
|
259
|
-
// entry (initialPresetIndex). This is a local selection
|
|
260
|
-
// user
|
|
261
|
-
// sent at session create, so the server-side default
|
|
262
|
-
// settings / deployment config) governs; the
|
|
263
|
-
// selection only. We deliberately do NOT seed
|
|
256
|
+
// Preset state: /preset owns the selection (Tab is deliberately unbound —
|
|
257
|
+
// switching is an explicit, confirmed action). The roster is fetched once
|
|
258
|
+
// at startup from the api-proxy service; an empty roster (no service / no
|
|
259
|
+
// presets) disables the feature gracefully (/preset errors, footer shows
|
|
260
|
+
// plain "dsh"). Out of the box the selection starts on the `standard`
|
|
261
|
+
// preset when the roster supplies one; otherwise it falls back to the
|
|
262
|
+
// first-scanned entry (initialPresetIndex). This is a local selection
|
|
263
|
+
// only: before the user switches via /preset, NO `meta.agentPreset` is
|
|
264
|
+
// sent at session create, so the server-side default
|
|
265
|
+
// (`agent-presets.default` settings / deployment config) governs; the
|
|
266
|
+
// footer reflects the local selection only. We deliberately do NOT seed
|
|
264
267
|
// `bridge.setAgentPreset(DEFAULT_PRESET_ID)` at init — that would override
|
|
265
268
|
// the server-side default with a client-side assumption.
|
|
266
269
|
const presetState = { roster: presetRoster, index: initialPresetIndex(presetRoster) };
|
|
@@ -438,18 +441,6 @@ export function apply(ctx) {
|
|
|
438
441
|
});
|
|
439
442
|
break;
|
|
440
443
|
}
|
|
441
|
-
case 'preset-cycle':
|
|
442
|
-
// Tab: cycle through agent presets. The footer label updates
|
|
443
|
-
// immediately; the actual preset is applied on the next session
|
|
444
|
-
// creation (first submit or /new).
|
|
445
|
-
if (presetState.roster.length > 1) {
|
|
446
|
-
cyclePreset(presetState);
|
|
447
|
-
const preset = currentPreset(presetState);
|
|
448
|
-
if (preset)
|
|
449
|
-
bridge.setAgentPreset(preset.id);
|
|
450
|
-
ui.requestRender();
|
|
451
|
-
}
|
|
452
|
-
break;
|
|
453
444
|
default:
|
|
454
445
|
break;
|
|
455
446
|
}
|
|
@@ -931,45 +922,116 @@ export function apply(ctx) {
|
|
|
931
922
|
description: 'Switch the current model\'s think (reasoning) level',
|
|
932
923
|
handler: invocation => thinkHandler(invocation.rawInput, invocation.signal),
|
|
933
924
|
}), 'dsh-tui-pi: /think');
|
|
934
|
-
// /preset:
|
|
935
|
-
//
|
|
936
|
-
//
|
|
925
|
+
// /preset: switch the agent preset — an EXPLICIT action that takes effect
|
|
926
|
+
// immediately by starting a NEW session on the chosen preset. Every entry
|
|
927
|
+
// path (picker Enter, `/preset <name>`, `/preset next`) funnels into
|
|
928
|
+
// performPresetSwitch: with a live session a confirmation dialog gates the
|
|
929
|
+
// switch (the current session stays resumable via /resume; the dialog
|
|
930
|
+
// suggests /handoff for carry-over), without one the selection applies
|
|
931
|
+
// directly (the first submit already creates the session on it).
|
|
937
932
|
const presetHandler = async (rawInput) => {
|
|
938
933
|
if (presetState.roster.length === 0) {
|
|
939
934
|
return { kind: 'error', text: 'No agent presets available.' };
|
|
940
935
|
}
|
|
941
936
|
const arg = rawInput?.trim() ?? '';
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
937
|
+
let target;
|
|
938
|
+
if (arg === '') {
|
|
939
|
+
// Picker overlay — Enter leads into the confirmation flow below.
|
|
940
|
+
const picked = await pickPreset(ui.tui, ui.theme, presetState, refocusEditor);
|
|
941
|
+
if (picked !== undefined)
|
|
942
|
+
target = presetState.roster.find(p => p.id === picked);
|
|
943
|
+
}
|
|
944
|
+
else if (arg.toLowerCase() === 'next') {
|
|
945
|
+
// Nothing to rotate to on a single-entry roster (the switch would
|
|
946
|
+
// re-confirm the same preset) — keep that a quiet no-op.
|
|
947
|
+
target = presetState.roster.length > 1 ? peekNextPreset(presetState) : undefined;
|
|
948
|
+
}
|
|
949
|
+
else {
|
|
950
|
+
target = findPresetByName(presetState, arg);
|
|
952
951
|
if (target === undefined) {
|
|
953
952
|
return { kind: 'error', text: `Unknown preset: ${arg}` };
|
|
954
953
|
}
|
|
955
|
-
presetState.index = presetState.roster.indexOf(target);
|
|
956
|
-
bridge.setAgentPreset(target.id);
|
|
957
|
-
ui.requestRender();
|
|
958
|
-
return { kind: 'success', text: `Preset → ${target.name}` };
|
|
959
954
|
}
|
|
960
|
-
|
|
961
|
-
const picked = await pickPreset(ui.tui, ui.theme, presetState, refocusEditor);
|
|
962
|
-
if (picked === undefined)
|
|
955
|
+
if (target === undefined)
|
|
963
956
|
return { kind: 'success', text: 'Preset unchanged.' };
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
957
|
+
const outcome = await performPresetSwitch(presetState, target, {
|
|
958
|
+
hasLiveSession: () => bridge.getAgent() !== undefined,
|
|
959
|
+
confirmSwitch: (name, restart) => openPresetConfirmDialog(ui.tui, ui.theme, name, restart, refocusEditor)
|
|
960
|
+
.then(outcome => (outcome === 'cancelled' ? 'cancel' : outcome)),
|
|
961
|
+
commit: async (presetId) => {
|
|
962
|
+
bridge.setAgentPreset(presetId);
|
|
963
|
+
await startNewSession();
|
|
964
|
+
ui.requestRender();
|
|
965
|
+
},
|
|
966
|
+
forkCommit: async (presetId) => {
|
|
967
|
+
const liveId = bridge.getSessionId();
|
|
968
|
+
const agent = bridge.getAgent();
|
|
969
|
+
if (agent === undefined) {
|
|
970
|
+
// Raced to no-session while the dialog was up: nothing to carry —
|
|
971
|
+
// degrade to the fresh path.
|
|
972
|
+
await startNewSession();
|
|
973
|
+
bridge.setAgentPreset(presetId);
|
|
974
|
+
ui.requestRender();
|
|
975
|
+
return;
|
|
976
|
+
}
|
|
977
|
+
// Snapshot BEFORE anything tears the binding down — the in-memory
|
|
978
|
+
// log is the stable source (dispose drops the registry handle), and
|
|
979
|
+
// slicing here keeps the running turn out of the seed (the same
|
|
980
|
+
// completed-turn rule /new obeys by cancelling it).
|
|
981
|
+
const seed = completedTurnSeed(agent.session.snapshotEvents());
|
|
982
|
+
if (seed.length === 0) {
|
|
983
|
+
// No completed turn to carry — a fork is indistinguishable from a
|
|
984
|
+
// fresh start.
|
|
985
|
+
await startNewSession();
|
|
986
|
+
bridge.setAgentPreset(presetId);
|
|
987
|
+
ui.requestRender();
|
|
988
|
+
return;
|
|
989
|
+
}
|
|
990
|
+
try {
|
|
991
|
+
// forkCurrentSession tears the old binding down BEFORE creating
|
|
992
|
+
// (the surface service cannot host two live agents) and records
|
|
993
|
+
// the preset only after the create succeeded: a fork failure
|
|
994
|
+
// leaves the old session DETACHED but fully resumable via
|
|
995
|
+
// /resume, the recorded agentPreset untouched, and the selection
|
|
996
|
+
// rolled back by performPresetSwitch.
|
|
997
|
+
const handle = await bridge.forkCurrentSession(seed, agent.session.id, presetId);
|
|
998
|
+
bridge.setAgentPreset(presetId);
|
|
999
|
+
// Switching sessions cancels any in-flight btw — same contract as
|
|
1000
|
+
// /new and /resume (its snapshot belongs to the session left).
|
|
1001
|
+
btwController.cancelAll();
|
|
1002
|
+
refreshPermissionPreset();
|
|
1003
|
+
renderer.clear();
|
|
1004
|
+
liveWidgets.clear();
|
|
1005
|
+
// Replay the carried history (the /resume contract): the fork's
|
|
1006
|
+
// whole point is keeping the conversation visible — an echo line
|
|
1007
|
+
// would make it indistinguishable from /new — and the stats
|
|
1008
|
+
// rebuild rides the same replay. `firstLiveSeq` excludes nothing
|
|
1009
|
+
// published (constructor seeds never emit).
|
|
1010
|
+
const session = handle.agent.session;
|
|
1011
|
+
bridge.replay(session.snapshotEvents().filter(event => event.seq < session.firstLiveSeq));
|
|
1012
|
+
ui.requestRender();
|
|
1013
|
+
}
|
|
1014
|
+
catch (error) {
|
|
1015
|
+
// The recorded-preset guarantee above holds through the create.
|
|
1016
|
+
// A create failure leaves the old binding torn down (teardown
|
|
1017
|
+
// precedes the create): re-attach the previously live session.
|
|
1018
|
+
// A throw AFTER the bind (pure in-memory view work) keeps the
|
|
1019
|
+
// healthy fork session — restoring the old one there would
|
|
1020
|
+
// detach it; noted, not recoverable here.
|
|
1021
|
+
if (liveId !== undefined && bridge.getSessionId() === undefined) {
|
|
1022
|
+
await restoreLiveSession(liveId);
|
|
1023
|
+
}
|
|
1024
|
+
ui.requestRender();
|
|
1025
|
+
throw error;
|
|
1026
|
+
}
|
|
1027
|
+
},
|
|
1028
|
+
});
|
|
1029
|
+
return { kind: 'success', text: outcome.message };
|
|
968
1030
|
};
|
|
969
1031
|
commands.registerLocal('preset', presetHandler);
|
|
970
1032
|
ctx.effect(() => ctx.commands.register({
|
|
971
1033
|
name: 'preset',
|
|
972
|
-
description: '
|
|
1034
|
+
description: 'Switch the agent preset (starts a new session on it; /preset next cycles)',
|
|
973
1035
|
handler: invocation => presetHandler(invocation.rawInput, invocation.signal),
|
|
974
1036
|
}), 'dsh-tui-pi: /preset');
|
|
975
1037
|
// /profile-switch + /profile-cfg: user model profiles — named snapshots
|
|
@@ -1202,6 +1264,77 @@ export function apply(ctx) {
|
|
|
1202
1264
|
description: 'Resume a persisted session',
|
|
1203
1265
|
handler: invocation => resumeHandler(invocation.rawInput, invocation.signal),
|
|
1204
1266
|
}), 'dsh-tui-pi: /resume');
|
|
1267
|
+
// /history: the read-only two-pane look-back (ADR 0003) — left pane lists
|
|
1268
|
+
// the browsed session's completed turns, right pane shows the selected
|
|
1269
|
+
// turn's replies; Enter/c refills the editor with the turn's prompt (a
|
|
1270
|
+
// plain setText, never submitted). Bare /history browses the CURRENT live
|
|
1271
|
+
// session (snapshot at open — no live updates while it stays open);
|
|
1272
|
+
// /history <sessionId> cold-reads a stored log (no writer lock). `s`
|
|
1273
|
+
// swaps the browsed session through a /resume-style picker. Nothing here
|
|
1274
|
+
// writes a session log or takes the writer lock.
|
|
1275
|
+
const historyHandler = async (rawInput) => {
|
|
1276
|
+
const arg = rawInput?.trim() ?? '';
|
|
1277
|
+
const result = await openHistoryBrowser({
|
|
1278
|
+
ctx,
|
|
1279
|
+
tui: ui.tui,
|
|
1280
|
+
theme: ui.theme,
|
|
1281
|
+
getSessionId: () => {
|
|
1282
|
+
const id = bridge.getSessionId();
|
|
1283
|
+
return id === undefined ? undefined : String(id);
|
|
1284
|
+
},
|
|
1285
|
+
getLiveEvents: () => bridge.getAgent()?.session.snapshotEvents(),
|
|
1286
|
+
copyToEditor: text => {
|
|
1287
|
+
ui.editor.setText(text);
|
|
1288
|
+
ui.requestRender();
|
|
1289
|
+
},
|
|
1290
|
+
confirmForkAtTurn: (turnLabel, totalTurns, cold) => {
|
|
1291
|
+
// Cold browse: the fork detaches the LIVE session — the dialog must
|
|
1292
|
+
// name it (short id) instead of hiding its fate.
|
|
1293
|
+
const liveId = bridge.getSessionId();
|
|
1294
|
+
return openForkAtTurnDialog(ui.tui, ui.theme, turnLabel, totalTurns, cold && liveId !== undefined ? clipToWidth(liveId, 8) : undefined, refocusEditor).then(outcome => outcome === 'fork');
|
|
1295
|
+
},
|
|
1296
|
+
forkAtTurn: async (seed, parentSessionId) => {
|
|
1297
|
+
const liveId = bridge.getSessionId();
|
|
1298
|
+
// Cancel the btw context snapshot first — the switch strands it
|
|
1299
|
+
// (the /new contract).
|
|
1300
|
+
btwController.cancelAll();
|
|
1301
|
+
bridge.setAgentPreset(currentPreset(presetState)?.id);
|
|
1302
|
+
try {
|
|
1303
|
+
const handle = await bridge.forkCurrentSession(seed, SessionId(parentSessionId), currentPreset(presetState)?.id);
|
|
1304
|
+
refreshPermissionPreset();
|
|
1305
|
+
renderer.clear();
|
|
1306
|
+
liveWidgets.clear();
|
|
1307
|
+
// Replay the carried history (the /resume contract) — for a fork
|
|
1308
|
+
// the seed IS the point, so it replays in full (`firstLiveSeq`
|
|
1309
|
+
// covers seed + end-seed).
|
|
1310
|
+
const session = handle.agent.session;
|
|
1311
|
+
bridge.replay(session.snapshotEvents().filter(event => event.seq < session.firstLiveSeq));
|
|
1312
|
+
ui.requestRender();
|
|
1313
|
+
}
|
|
1314
|
+
catch (error) {
|
|
1315
|
+
// The bridge tears the live binding down BEFORE the create, so a
|
|
1316
|
+
// failed create leaves no live session: re-attach the previously
|
|
1317
|
+
// live one (a failing re-attach reports itself — never silent).
|
|
1318
|
+
// The selection was never touched (fork keeps the current preset).
|
|
1319
|
+
if (liveId !== undefined && bridge.getSessionId() === undefined) {
|
|
1320
|
+
await restoreLiveSession(liveId);
|
|
1321
|
+
}
|
|
1322
|
+
ui.requestRender();
|
|
1323
|
+
throw error;
|
|
1324
|
+
}
|
|
1325
|
+
},
|
|
1326
|
+
reportError: message => renderer.renderNotice(message, 'error'),
|
|
1327
|
+
restoreFocus: refocusEditor,
|
|
1328
|
+
requestRender: () => ui.requestRender(),
|
|
1329
|
+
}, arg === '' ? undefined : arg);
|
|
1330
|
+
return { kind: result.error ? 'error' : 'success', text: result.text };
|
|
1331
|
+
};
|
|
1332
|
+
commands.registerLocal('history', historyHandler);
|
|
1333
|
+
ctx.effect(() => ctx.commands.register({
|
|
1334
|
+
name: 'history',
|
|
1335
|
+
description: 'Browse past turns of a session (read-only; /history <id> for a stored one)',
|
|
1336
|
+
handler: invocation => historyHandler(invocation.rawInput, invocation.signal),
|
|
1337
|
+
}), 'dsh-tui-pi: /history');
|
|
1205
1338
|
// Auto-resume after a hot-reload: a `/reload` stashes the previously
|
|
1206
1339
|
// current session id before this fiber's teardown, and the freshly
|
|
1207
1340
|
// re-imported module consumes it best-effort here so the next prompt
|
|
@@ -1281,7 +1414,12 @@ export function apply(ctx) {
|
|
|
1281
1414
|
// them" — and any other case where the user wants a clean slate.
|
|
1282
1415
|
// detachCurrent keeps the event subscriptions alive (dispose() would
|
|
1283
1416
|
// splice them away and no future message would ever render again).
|
|
1284
|
-
|
|
1417
|
+
/**
|
|
1418
|
+
* Detach the live session and reset the surfaces — the ONE body /new and
|
|
1419
|
+
* the preset switch share (a preset applies only to a NEW session, so a
|
|
1420
|
+
* confirmed switch runs the same detach/clear path; never a copy of it).
|
|
1421
|
+
*/
|
|
1422
|
+
const startNewSession = async () => {
|
|
1285
1423
|
// A new session strands the btw context snapshot — cancel first (Q5b).
|
|
1286
1424
|
btwController.cancelAll();
|
|
1287
1425
|
try {
|
|
@@ -1295,6 +1433,35 @@ export function apply(ctx) {
|
|
|
1295
1433
|
// The widget's agents already cleared via the bridge's onLive([]); drop
|
|
1296
1434
|
// the previous session's todos too.
|
|
1297
1435
|
liveWidgets.clear();
|
|
1436
|
+
};
|
|
1437
|
+
/**
|
|
1438
|
+
* Best-effort re-attach of a previously live session after a FAILED
|
|
1439
|
+
* fork: the bridge tears the live binding down before the seeded create
|
|
1440
|
+
* (its setup must compose in a clean scope), so a failed fork leaves no
|
|
1441
|
+
* live session. Rebuilds the transcript from the resumed log; a failing
|
|
1442
|
+
* re-attach itself is reported through the buffered notice channel
|
|
1443
|
+
* (never silently swallowed — the user must know the live session is
|
|
1444
|
+
* gone from the keyboard) and resolves anyway: the next prompt starts a
|
|
1445
|
+
* fresh session.
|
|
1446
|
+
*/
|
|
1447
|
+
const restoreLiveSession = async (liveId) => {
|
|
1448
|
+
try {
|
|
1449
|
+
const restored = await bridge.resume(SessionId(liveId));
|
|
1450
|
+
refreshPermissionPreset();
|
|
1451
|
+
renderer.clear();
|
|
1452
|
+
liveWidgets.clear();
|
|
1453
|
+
const session = restored.agent.session;
|
|
1454
|
+
bridge.replay(session.snapshotEvents().filter(event => event.seq < session.firstLiveSeq));
|
|
1455
|
+
}
|
|
1456
|
+
catch (error) {
|
|
1457
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
1458
|
+
renderer.renderNotice('could not re-attach the previous session — it stays resumable via /resume;'
|
|
1459
|
+
+ ` the next prompt starts a fresh one (${detail})`, 'error');
|
|
1460
|
+
}
|
|
1461
|
+
ui.requestRender();
|
|
1462
|
+
};
|
|
1463
|
+
const newHandler = async () => {
|
|
1464
|
+
await startNewSession();
|
|
1298
1465
|
return { kind: 'success', text: 'New session started.' };
|
|
1299
1466
|
};
|
|
1300
1467
|
commands.registerLocal('new', newHandler);
|
|
@@ -1647,7 +1814,7 @@ export function apply(ctx) {
|
|
|
1647
1814
|
* "aborted due to timeout" — those run with a never-aborting signal
|
|
1648
1815
|
* instead.
|
|
1649
1816
|
*/
|
|
1650
|
-
const MODAL_COMMANDS = new Set(['settings', 'model', 'think', 'session', 'resume', 'theme', 'permission', 'agents', 'subagents', 'login', 'logout', 'skills', 'preset', 'profile-switch', 'profile-cfg', 'wiki', 'vault']);
|
|
1817
|
+
const MODAL_COMMANDS = new Set(['settings', 'model', 'think', 'session', 'resume', 'history', 'theme', 'permission', 'agents', 'subagents', 'login', 'logout', 'skills', 'preset', 'profile-switch', 'profile-cfg', 'wiki', 'vault']);
|
|
1651
1818
|
/** Route one submitted line: dsh slash command first, model prompt second. */
|
|
1652
1819
|
const submit = async (text) => {
|
|
1653
1820
|
const line = text.trim();
|