@sagmans/dsh-tui 0.8.0 → 0.10.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/.agents/skills/dsh-tui-dogfood/SKILL.md +5 -1
- package/.agents/skills/dsh-tui-dogfood/scripts/run-plugin-from-worktree.sh +34 -2
- package/README.md +75 -40
- package/lib/agent/history.d.ts +0 -2
- package/lib/agent/history.d.ts.map +1 -1
- package/lib/agent/history.js +1 -1
- package/lib/agent/history.js.map +1 -1
- package/lib/agent/host.d.ts +0 -25
- package/lib/agent/host.d.ts.map +1 -1
- package/lib/agent/host.js +2 -2
- package/lib/agent/host.js.map +1 -1
- package/lib/agent/model.d.ts +38 -6
- package/lib/agent/model.d.ts.map +1 -1
- package/lib/agent/model.js +38 -14
- package/lib/agent/model.js.map +1 -1
- package/lib/agent/prompt-history.d.ts +7 -12
- package/lib/agent/prompt-history.d.ts.map +1 -1
- package/lib/agent/prompt-history.js +10 -31
- package/lib/agent/prompt-history.js.map +1 -1
- package/lib/cards/composition.d.ts +1 -1
- package/lib/cards/composition.d.ts.map +1 -1
- package/lib/cards/composition.js +7 -0
- package/lib/cards/composition.js.map +1 -1
- package/lib/cards/presenter.d.ts.map +1 -1
- package/lib/cards/presenter.js +32 -2
- package/lib/cards/presenter.js.map +1 -1
- package/lib/cards.d.ts +27 -2
- package/lib/cards.d.ts.map +1 -1
- package/lib/cards.js +17 -3
- package/lib/cards.js.map +1 -1
- package/lib/compat/probe.js +1 -1
- package/lib/compat/probe.js.map +1 -1
- package/lib/config.d.ts +10 -0
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +18 -0
- package/lib/config.js.map +1 -1
- package/lib/contracts.d.ts +2 -0
- package/lib/contracts.d.ts.map +1 -1
- package/lib/export.d.ts +12 -0
- package/lib/export.d.ts.map +1 -1
- package/lib/export.js +34 -3
- package/lib/export.js.map +1 -1
- package/lib/herdr/client.d.ts +16 -9
- package/lib/herdr/client.d.ts.map +1 -1
- package/lib/herdr/client.js +61 -20
- package/lib/herdr/client.js.map +1 -1
- package/lib/herdr/constants.d.ts +11 -0
- package/lib/herdr/constants.d.ts.map +1 -1
- package/lib/herdr/constants.js +11 -0
- package/lib/herdr/constants.js.map +1 -1
- package/lib/herdr/reporter.d.ts +8 -0
- package/lib/herdr/reporter.d.ts.map +1 -1
- package/lib/herdr/reporter.js +58 -1
- package/lib/herdr/reporter.js.map +1 -1
- package/lib/herdr/state.d.ts +8 -14
- package/lib/herdr/state.d.ts.map +1 -1
- package/lib/herdr/state.js +11 -7
- package/lib/herdr/state.js.map +1 -1
- package/lib/identity.d.ts +0 -2
- package/lib/identity.d.ts.map +1 -1
- package/lib/identity.js +0 -1
- package/lib/identity.js.map +1 -1
- package/lib/index.d.ts +1 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -5
- package/lib/index.js.map +1 -1
- package/lib/input/keymap.d.ts +1 -7
- package/lib/input/keymap.d.ts.map +1 -1
- package/lib/input/keymap.js +3 -11
- package/lib/input/keymap.js.map +1 -1
- package/lib/input/submission.js +2 -2
- package/lib/input/submission.js.map +1 -1
- package/lib/model-list.d.ts.map +1 -1
- package/lib/model-list.js +17 -5
- package/lib/model-list.js.map +1 -1
- package/lib/queue.d.ts +0 -2
- package/lib/queue.d.ts.map +1 -1
- package/lib/queue.js +1 -1
- package/lib/queue.js.map +1 -1
- package/lib/settings-notice.d.ts +10 -1
- package/lib/settings-notice.d.ts.map +1 -1
- package/lib/settings-notice.js +17 -7
- package/lib/settings-notice.js.map +1 -1
- package/lib/spacing.d.ts +40 -0
- package/lib/spacing.d.ts.map +1 -0
- package/lib/spacing.js +54 -0
- package/lib/spacing.js.map +1 -0
- package/lib/stash/paths.d.ts +19 -10
- package/lib/stash/paths.d.ts.map +1 -1
- package/lib/stash/paths.js +52 -23
- package/lib/stash/paths.js.map +1 -1
- package/lib/stash/schema.d.ts +13 -12
- package/lib/stash/schema.d.ts.map +1 -1
- package/lib/stash/schema.js +11 -9
- package/lib/stash/schema.js.map +1 -1
- package/lib/stash/store.d.ts.map +1 -1
- package/lib/stash/store.js +9 -19
- package/lib/stash/store.js.map +1 -1
- package/lib/stash.d.ts +17 -10
- package/lib/stash.d.ts.map +1 -1
- package/lib/stash.js +31 -20
- package/lib/stash.js.map +1 -1
- package/lib/subagents.d.ts +0 -4
- package/lib/subagents.d.ts.map +1 -1
- package/lib/subagents.js +2 -2
- package/lib/subagents.js.map +1 -1
- package/lib/surface/appearance.d.ts +3 -0
- package/lib/surface/appearance.d.ts.map +1 -1
- package/lib/surface/appearance.js +5 -0
- package/lib/surface/appearance.js.map +1 -1
- package/lib/surface/background-work.d.ts.map +1 -1
- package/lib/surface/background-work.js +17 -1
- package/lib/surface/background-work.js.map +1 -1
- package/lib/surface/commands.d.ts.map +1 -1
- package/lib/surface/commands.js +26 -6
- package/lib/surface/commands.js.map +1 -1
- package/lib/surface/modal-input.d.ts.map +1 -1
- package/lib/surface/modal-input.js +11 -0
- package/lib/surface/modal-input.js.map +1 -1
- package/lib/surface/model-choice.d.ts.map +1 -1
- package/lib/surface/model-choice.js +18 -18
- package/lib/surface/model-choice.js.map +1 -1
- package/lib/surface/preset-choice.d.ts.map +1 -1
- package/lib/surface/preset-choice.js +18 -10
- package/lib/surface/preset-choice.js.map +1 -1
- package/lib/surface/prompt-memory.d.ts +3 -1
- package/lib/surface/prompt-memory.d.ts.map +1 -1
- package/lib/surface/prompt-memory.js +10 -11
- package/lib/surface/prompt-memory.js.map +1 -1
- package/lib/surface/session-lifecycle.d.ts +6 -1
- package/lib/surface/session-lifecycle.d.ts.map +1 -1
- package/lib/surface/session-lifecycle.js +27 -8
- package/lib/surface/session-lifecycle.js.map +1 -1
- package/lib/surface/session-view.d.ts.map +1 -1
- package/lib/surface/session-view.js +1 -3
- package/lib/surface/session-view.js.map +1 -1
- package/lib/surface/staged-turns.d.ts +0 -2
- package/lib/surface/staged-turns.d.ts.map +1 -1
- package/lib/surface/staged-turns.js +37 -6
- package/lib/surface/staged-turns.js.map +1 -1
- package/lib/terminal/external-editor.d.ts +16 -0
- package/lib/terminal/external-editor.d.ts.map +1 -1
- package/lib/terminal/external-editor.js +38 -6
- package/lib/terminal/external-editor.js.map +1 -1
- package/lib/terminal/host-writes.d.ts +15 -2
- package/lib/terminal/host-writes.d.ts.map +1 -1
- package/lib/terminal/host-writes.js +10 -1
- package/lib/terminal/host-writes.js.map +1 -1
- package/lib/terminal/restore.d.ts +1 -2
- package/lib/terminal/restore.d.ts.map +1 -1
- package/lib/terminal/restore.js +1 -9
- package/lib/terminal/restore.js.map +1 -1
- package/lib/terminal/signals.d.ts +0 -1
- package/lib/terminal/signals.d.ts.map +1 -1
- package/lib/terminal/signals.js +1 -1
- package/lib/terminal/signals.js.map +1 -1
- package/lib/terminal/title.d.ts.map +1 -1
- package/lib/terminal/title.js +14 -3
- package/lib/terminal/title.js.map +1 -1
- package/lib/terminal/warning-screen.d.ts.map +1 -1
- package/lib/terminal/warning-screen.js +12 -1
- package/lib/terminal/warning-screen.js.map +1 -1
- package/lib/theme-capability.d.ts +0 -2
- package/lib/theme-capability.d.ts.map +1 -1
- package/lib/theme-capability.js +1 -1
- package/lib/theme-capability.js.map +1 -1
- package/lib/theme-defaults.d.ts.map +1 -1
- package/lib/theme-defaults.js +7 -0
- package/lib/theme-defaults.js.map +1 -1
- package/lib/theme-schema.d.ts +6 -6
- package/lib/theme-settings.d.ts +13 -8
- package/lib/theme-settings.d.ts.map +1 -1
- package/lib/theme-settings.js +7 -1
- package/lib/theme-settings.js.map +1 -1
- package/lib/theme-tokens.d.ts +1 -1
- package/lib/theme-tokens.d.ts.map +1 -1
- package/lib/theme-tokens.js +7 -2
- package/lib/theme-tokens.js.map +1 -1
- package/lib/transcript.d.ts +2 -2
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +9 -4
- package/lib/transcript.js.map +1 -1
- package/lib/ui/dock.d.ts +2 -0
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +18 -3
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/gap.d.ts +28 -0
- package/lib/ui/gap.d.ts.map +1 -0
- package/lib/ui/gap.js +47 -0
- package/lib/ui/gap.js.map +1 -0
- package/lib/ui/gutter.d.ts +25 -0
- package/lib/ui/gutter.d.ts.map +1 -0
- package/lib/ui/gutter.js +31 -0
- package/lib/ui/gutter.js.map +1 -0
- package/lib/ui/layout.d.ts +13 -1
- package/lib/ui/layout.d.ts.map +1 -1
- package/lib/ui/layout.js +32 -6
- package/lib/ui/layout.js.map +1 -1
- package/lib/ui/queue.d.ts +0 -4
- package/lib/ui/queue.d.ts.map +1 -1
- package/lib/ui/queue.js +2 -2
- package/lib/ui/queue.js.map +1 -1
- package/lib/ui/rows.d.ts +0 -8
- package/lib/ui/rows.d.ts.map +1 -1
- package/lib/ui/rows.js +1 -9
- package/lib/ui/rows.js.map +1 -1
- package/lib/ui/stash-picker.d.ts +2 -2
- package/lib/ui/stash-picker.d.ts.map +1 -1
- package/lib/ui/stash-picker.js +3 -3
- package/lib/ui/stash-picker.js.map +1 -1
- package/lib/ui/view/gate-card.d.ts.map +1 -1
- package/lib/ui/view/gate-card.js +4 -1
- package/lib/ui/view/gate-card.js.map +1 -1
- package/lib/ui/view/tool-card.d.ts +4 -0
- package/lib/ui/view/tool-card.d.ts.map +1 -1
- package/lib/ui/view/tool-card.js +21 -5
- package/lib/ui/view/tool-card.js.map +1 -1
- package/lib/ui/view/transcript-message.d.ts +3 -0
- package/lib/ui/view/transcript-message.d.ts.map +1 -1
- package/lib/ui/view/transcript-message.js +8 -1
- package/lib/ui/view/transcript-message.js.map +1 -1
- package/lib/ui/view.d.ts +11 -6
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +37 -26
- package/lib/ui/view.js.map +1 -1
- package/package.json +3 -1
- package/themes/deepseek-blue.yaml +9 -4
- package/themes/polar-drift.yaml +194 -0
- package/themes/violet-orbit.yaml +9 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createPromptHistory } from "../agent/prompt-history.js";
|
|
1
|
+
import { BLOCK_DESCRIPTIONS, createPromptHistory } from "../agent/prompt-history.js";
|
|
2
2
|
import { ghostSuffix } from "../input/ghost.js";
|
|
3
3
|
import { PromptStash } from "../stash.js";
|
|
4
4
|
import { resetSequence } from "../theme-resolver.js";
|
|
@@ -11,7 +11,7 @@ const GHOST_CURSOR_PREFIX = '\u001b[7m';
|
|
|
11
11
|
* The memory the prompt keeps of what was typed, and what it offers back.
|
|
12
12
|
*
|
|
13
13
|
* Two stores, one subject: the prompt history is global and written from every
|
|
14
|
-
* submitted line, while the stash parks a draft for the
|
|
14
|
+
* submitted line, while the stash parks a draft for the selected bank. Both
|
|
15
15
|
* are read through the same editor and both answer in a list, so they share the
|
|
16
16
|
* one owner that knows what the reader is looking at.
|
|
17
17
|
*/
|
|
@@ -65,7 +65,7 @@ export function createPromptMemory(ports) {
|
|
|
65
65
|
}
|
|
66
66
|
if (promptHistory.entries().length === 0) {
|
|
67
67
|
const blocked = promptHistory.blockedReason();
|
|
68
|
-
ports.notice(blocked === undefined ? 'no prompt history yet' : 'prompt history is unavailable: ' + blocked);
|
|
68
|
+
ports.notice(blocked === undefined ? 'no prompt history yet' : 'prompt history is unavailable: ' + BLOCK_DESCRIPTIONS[blocked]);
|
|
69
69
|
ports.render();
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
@@ -89,7 +89,7 @@ export function createPromptMemory(ports) {
|
|
|
89
89
|
ports.notice([
|
|
90
90
|
count + (count === 1 ? ' prompt recorded' : ' prompts recorded'),
|
|
91
91
|
promptHistory.path(),
|
|
92
|
-
blocked === undefined ? undefined : 'writes disabled: ' + blocked,
|
|
92
|
+
blocked === undefined ? undefined : 'writes disabled: ' + BLOCK_DESCRIPTIONS[blocked],
|
|
93
93
|
].filter(part => part !== undefined).join(' · '));
|
|
94
94
|
ports.render();
|
|
95
95
|
return;
|
|
@@ -103,7 +103,7 @@ export function createPromptMemory(ports) {
|
|
|
103
103
|
// would describe a successful clear the file never had.
|
|
104
104
|
const blocked = promptHistory.blockedReason();
|
|
105
105
|
if (blocked !== undefined) {
|
|
106
|
-
ports.notice('prompt history is unavailable: ' + blocked);
|
|
106
|
+
ports.notice('prompt history is unavailable: ' + BLOCK_DESCRIPTIONS[blocked]);
|
|
107
107
|
ports.render();
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
@@ -135,17 +135,16 @@ export function createPromptMemory(ports) {
|
|
|
135
135
|
confirm: async (count) => confirmedClear(await ports.openPicker(new StashConfirmPicker(count, () => ports.keymap()))),
|
|
136
136
|
render: () => ports.render(),
|
|
137
137
|
},
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
-
{ sessionId: () => String(ports.activeSession()) });
|
|
138
|
+
// A session switch must never redirect a queued command to another bank;
|
|
139
|
+
// path mode still guards the editor against writing into the next session.
|
|
140
|
+
{ sessionId: () => String(ports.activeSession()), scope: ports.stashScope });
|
|
142
141
|
return stash;
|
|
143
142
|
};
|
|
144
143
|
/**
|
|
145
144
|
* Follow the session the surface has just opened.
|
|
146
145
|
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
146
|
+
* Session banks switch owners here; shared path banks refresh their count
|
|
147
|
+
* because another surface can change the bank between sessions.
|
|
149
148
|
*/
|
|
150
149
|
const sessionOpened = () => {
|
|
151
150
|
void stash?.open();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-memory.js","sourceRoot":"","sources":["../../src/surface/prompt-memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"prompt-memory.js","sourceRoot":"","sources":["../../src/surface/prompt-memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEvF,2FAA2F;AAC3F,MAAM,mBAAmB,GAAG,WAAW,CAAA;AAkEvC;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD;;;;OAIG;IACH,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE;QACpC,IAAI,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACrB,KAAK,CAAC,MAAM,EAAE,CAAA;QAChB,CAAC;KACF,CAAC,CAAA;IACF;;;;;;OAMG;IACH,MAAM,UAAU,GAAe;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QACzH,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAChF,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;YACtD,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,GAAG,MAAM,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;QACpF,CAAC;KACF,CAAA;IACD;;;;;;OAMG;IACH,IAAI,KAA8B,CAAA;IAElC;;;;;OAKG;IACH,MAAM,iBAAiB,GAAG,KAAK,IAAmB,EAAE;QAClD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,gCAAgC,GAAG,sBAAsB,GAAG,WAAW,CAAC,CAAA;YACrF,KAAK,CAAC,MAAM,EAAE,CAAA;YACd,OAAM;QACR,CAAC;QACD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,CAAA;YAC7C,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iCAAiC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;YAC/H,KAAK,CAAC,MAAM,EAAE,CAAA;YACd,OAAM;QACR,CAAC;QACD,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACjI,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,KAAK,CAAC,MAAM,EAAE,CAAA;IAChB,CAAC,CAAA;IAED,oFAAoF;IACpF,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACnD,6EAA6E;QAC7E,4EAA4E;QAC5E,mEAAmE;QACnE,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACnC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,CAAA;gBAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,CAAA;gBAC7C,KAAK,CAAC,MAAM,CAAC;oBACX,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC;oBAChE,aAAa,CAAC,IAAI,EAAE;oBACpB,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,OAAO,CAAC;iBACtF,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;gBACjD,KAAK,CAAC,MAAM,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,KAAK,CAAC,MAAM,CAAC,mFAAmF,CAAC,CAAA;gBACjG,KAAK,CAAC,MAAM,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,uEAAuE;YACvE,wDAAwD;YACxD,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,CAAA;YAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,KAAK,CAAC,MAAM,CAAC,iCAAiC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC7E,KAAK,CAAC,MAAM,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,OAAO,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC1C,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;gBAC5E,KAAK,CAAC,MAAM,EAAE,CAAA;YAChB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,uEAAuE;YACvE,kEAAkE;YAClE,KAAK,CAAC,MAAM,CAAC,kCAAkC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3G,KAAK,CAAC,MAAM,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED;;;;;;OAMG;IACH,MAAM,UAAU,GAAG,GAAgB,EAAE;QACnC,KAAK,GAAG,IAAI,WAAW,CACrB;YACE,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;YACvC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;YAChD,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE;YAChD,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YACxC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACjG,OAAO,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnH,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;SAC7B;QACD,yEAAyE;QACzE,2EAA2E;QAC3E,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAC5E,CAAA;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,KAAK,KAAK,EAAE,IAAI,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,wEAAwE;IACxE,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;QACpC,IAAI,KAAK,CAAC,cAAc,EAAE;YAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC,CAAA;IAED,OAAO;QACL,UAAU;QACV,iBAAiB;QACjB,MAAM;QACN,iBAAiB;QACjB,UAAU;QACV,aAAa;KACd,CAAA;AACH,CAAC"}
|
|
@@ -95,7 +95,12 @@ export interface SessionLifecycle {
|
|
|
95
95
|
readonly disposeOutgoing: () => Promise<void>;
|
|
96
96
|
/** Start the agent for a session, which is what a replacement joins. */
|
|
97
97
|
readonly openAgent: (id: SessionId, resume: boolean, fork?: ForkInheritance) => Promise<TuiAgent>;
|
|
98
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* Move the surface to another stored session without leaving the terminal.
|
|
100
|
+
*
|
|
101
|
+
* The new session settles before the outgoing agent is let go, so a refused
|
|
102
|
+
* switch leaves the session the reader was driving untouched.
|
|
103
|
+
*/
|
|
99
104
|
readonly switchSession: (id: SessionId) => Promise<void>;
|
|
100
105
|
/** Start a fresh session without leaving the terminal. */
|
|
101
106
|
readonly runNewCommand: (title: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-lifecycle.d.ts","sourceRoot":"","sources":["../../src/surface/session-lifecycle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-lifecycle.d.ts","sourceRoot":"","sources":["../../src/surface/session-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,13 @@ export function createSessionLifecycle(ctx, ports) {
|
|
|
65
65
|
// Settled before the transcript is touched, so a refusal leaves neither a
|
|
66
66
|
// half-replayed session nor a half-composed agent behind.
|
|
67
67
|
const preset = await ports.presetFor(id, resume, fork);
|
|
68
|
+
// A session already in service still owns its write handle, and the host refuses
|
|
69
|
+
// a second one: reopening the very session the reader is driving — a reload, or a
|
|
70
|
+
// pick of the session already on screen — has to let that agent go before its
|
|
71
|
+
// replacement is asked for. Every other open settles first, which is what keeps a
|
|
72
|
+
// refusal from taking the reader's agent away with it.
|
|
73
|
+
if (agent !== undefined && agent.sessionId === id)
|
|
74
|
+
await disposeOutgoing();
|
|
68
75
|
const handle = await startAgent(ctx, {
|
|
69
76
|
sessionId: id,
|
|
70
77
|
resume,
|
|
@@ -79,6 +86,13 @@ export function createSessionLifecycle(ctx, ports) {
|
|
|
79
86
|
},
|
|
80
87
|
...(fork === undefined ? {} : { fork }),
|
|
81
88
|
});
|
|
89
|
+
// The new session's agent is accepted before the outgoing one is let go:
|
|
90
|
+
// the settled questions above are where an open is refused, and a refusal
|
|
91
|
+
// has to find the reader's own agent still driving an untouched screen.
|
|
92
|
+
// The paths that already let it go — /new, /fork, a staged branch — arrive
|
|
93
|
+
// with none installed.
|
|
94
|
+
if (agent !== undefined)
|
|
95
|
+
await disposeOutgoing();
|
|
82
96
|
sessionOpened = true;
|
|
83
97
|
activeSession = id;
|
|
84
98
|
ports.setViewed(id);
|
|
@@ -128,7 +142,8 @@ export function createSessionLifecycle(ctx, ports) {
|
|
|
128
142
|
return handle;
|
|
129
143
|
};
|
|
130
144
|
const switchSession = async (id) => {
|
|
131
|
-
|
|
145
|
+
// The open owns the handover: settling the new session first is what keeps
|
|
146
|
+
// a refused switch from taking the reader's agent away with it.
|
|
132
147
|
await openAgent(id, true);
|
|
133
148
|
};
|
|
134
149
|
const runNewCommand = (title) => {
|
|
@@ -138,9 +153,10 @@ export function createSessionLifecycle(ctx, ports) {
|
|
|
138
153
|
return;
|
|
139
154
|
}
|
|
140
155
|
void (async () => {
|
|
156
|
+
// The `agent === undefined` return above is the only way in without a
|
|
157
|
+
// handle, so the one this transition lets go of is always there to stop.
|
|
141
158
|
const previous = letGoOfOutgoing(false);
|
|
142
|
-
|
|
143
|
-
await previous.dispose();
|
|
159
|
+
await previous.dispose();
|
|
144
160
|
await openAgent(SessionId(`tui-session-${randomUUID()}`), false);
|
|
145
161
|
if (title !== '')
|
|
146
162
|
runRenameCommand(title);
|
|
@@ -158,9 +174,11 @@ export function createSessionLifecycle(ctx, ports) {
|
|
|
158
174
|
* the reader keeps the conversation they were reading.
|
|
159
175
|
*/
|
|
160
176
|
const runReloadCommand = () => {
|
|
161
|
-
// A failed reload
|
|
162
|
-
//
|
|
163
|
-
//
|
|
177
|
+
// A failed reload keeps the outgoing agent driving, and a failed /new or
|
|
178
|
+
// /fork is the case that leaves none: the command has to stay usable in
|
|
179
|
+
// both, because the retry is what makes a broken composition file
|
|
180
|
+
// recoverable, while a surface that has opened no session yet is still
|
|
181
|
+
// starting.
|
|
164
182
|
if (agent === undefined && !sessionOpened) {
|
|
165
183
|
ports.notice('the agent is still starting; try again in a moment');
|
|
166
184
|
ports.render();
|
|
@@ -207,9 +225,10 @@ export function createSessionLifecycle(ctx, ports) {
|
|
|
207
225
|
return;
|
|
208
226
|
}
|
|
209
227
|
const childId = SessionId(`tui-session-${randomUUID()}`);
|
|
228
|
+
// The driven session's log is read from memory, so no other command can
|
|
229
|
+
// have let the outgoing agent go since the guard that refused an absent one.
|
|
210
230
|
const previous = letGoOfOutgoing(false);
|
|
211
|
-
|
|
212
|
-
await previous.dispose();
|
|
231
|
+
await previous.dispose();
|
|
213
232
|
await openAgent(childId, false, { from: source, events: events.slice(0, point.inheritedEvents) });
|
|
214
233
|
if (title !== '')
|
|
215
234
|
runRenameCommand(title);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-lifecycle.js","sourceRoot":"","sources":["../../src/surface/session-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAuC,MAAM,kBAAkB,CAAA;AAElF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD;;;;;GAKG;AAEH,uEAAuE;AACvE,MAAM,cAAc,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"session-lifecycle.js","sourceRoot":"","sources":["../../src/surface/session-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/surface/session-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIjD,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/surface/session-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIjD,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAErD,iEAAiE;AACjE,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,MAAoE,CAAA;AAE3G;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAA;IAClC,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,CAAA;IACvC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAC/C,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,KAAK,GAAG,SAAS,CAAA;IACzD,mFAAmF;IACnF,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,SAAS,SAAS,EAAE,GAAG,SAAS,CAAA;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,CAAA;IACnC,uEAAuE;IACvE,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAA;IACxE,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5D;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAA;IACtC,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,OAAO,CAAA;IACnC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3C,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5F,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3D;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;CACvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,WAAW,CA8LpF"}
|
|
@@ -4,10 +4,8 @@ import { FoldCursor, ViewGeneration, replayIfCurrent } from "../fold-cursor.js";
|
|
|
4
4
|
import { hintKeys } from "../input/actions.js";
|
|
5
5
|
import { TranscriptModel } from "../transcript.js";
|
|
6
6
|
import { WorkFold } from "../work.js";
|
|
7
|
-
/** What the back hint names when the reader has unbound the key it would advertise. */
|
|
8
|
-
const BACK_HINT_FALLBACK = 'ctrl+b';
|
|
9
7
|
/** What the reader presses to leave a view they did not open. */
|
|
10
|
-
export const backHint = (map) => `${hintKeys(map, 'surface.back')
|
|
8
|
+
export const backHint = (map) => `${hintKeys(map, 'surface.back')} returns to this session`;
|
|
11
9
|
/**
|
|
12
10
|
* The transcript on screen: what is drawn, and never which agent is driven.
|
|
13
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/surface/session-view.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAA;AAErD,
|
|
1
|
+
{"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/surface/session-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,8 +60,6 @@ export interface StagedTurns {
|
|
|
60
60
|
readonly stagedCutoff: () => number | undefined;
|
|
61
61
|
/** The cursor over this session's closed turns. */
|
|
62
62
|
readonly cursor: () => UndoState;
|
|
63
|
-
/** Whether an undo is settling an interrupt, so a second press cannot race it. */
|
|
64
|
-
readonly pending: () => boolean;
|
|
65
63
|
/**
|
|
66
64
|
* The cursor at the tip of the session just opened.
|
|
67
65
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staged-turns.d.ts","sourceRoot":"","sources":["../../src/surface/staged-turns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EASL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAA;AAEzB;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAA;IACpC,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,CAAA;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAA;IACxE,wEAAwE;IACxE,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAA;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACxF,qFAAqF;IACrF,QAAQ,CAAC,YAAY,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAA;IACjD;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnG,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,MAAM,EAAE,CAAA;IAC/C,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAA;IACnC,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAC/C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,CAAA;IAChC
|
|
1
|
+
{"version":3,"file":"staged-turns.d.ts","sourceRoot":"","sources":["../../src/surface/staged-turns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EASL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAA;AAEzB;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAA;IACpC,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,CAAA;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAA;IACxE,wEAAwE;IACxE,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAA;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACxF,qFAAqF;IACrF,QAAQ,CAAC,YAAY,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAA;IACjD;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnG,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,MAAM,EAAE,CAAA;IAC/C,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAA;IACnC,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAC/C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,CAAA;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;IACzB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAA;CACjC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAsOrE"}
|
|
@@ -39,8 +39,9 @@ export function createStagedTurns(ports) {
|
|
|
39
39
|
* turn/end; queued prompts are parked first because cancelling drops them.
|
|
40
40
|
*
|
|
41
41
|
* Returns undefined when the reader's words cannot be kept: a queue with no
|
|
42
|
-
* bank to park it in, or a turn that will not close.
|
|
43
|
-
* untouched, so the transcript keeps showing what the model
|
|
42
|
+
* bank to park it in, a park that fails, or a turn that will not close. All
|
|
43
|
+
* leave the cursor untouched, so the transcript keeps showing what the model
|
|
44
|
+
* actually saw; a
|
|
44
45
|
* number is how many queued prompts were parked before the turn was stopped.
|
|
45
46
|
*/
|
|
46
47
|
const settleForUndo = async () => {
|
|
@@ -52,9 +53,19 @@ export function createStagedTurns(ports) {
|
|
|
52
53
|
ports.render();
|
|
53
54
|
return undefined;
|
|
54
55
|
}
|
|
56
|
+
// Park before the interrupt: cancelling the turn drops the queue, so a
|
|
57
|
+
// park that fails must refuse the undo while the words are still queued.
|
|
58
|
+
if (queued.length > 0) {
|
|
59
|
+
try {
|
|
60
|
+
await parkQueued(queued);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
ports.notice('could not park the queued prompts; undo cancelled');
|
|
64
|
+
ports.render();
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
55
68
|
ports.drivingAgent()?.interrupt();
|
|
56
|
-
if (queued.length > 0)
|
|
57
|
-
await parkQueued(queued);
|
|
58
69
|
if (ports.turnRunning() && !(await waitForTurnEnd(UNDO_TURN_SETTLE_MS))) {
|
|
59
70
|
ports.notice('could not stop the turn; undo cancelled');
|
|
60
71
|
ports.render();
|
|
@@ -66,6 +77,10 @@ export function createStagedTurns(ports) {
|
|
|
66
77
|
if (pending)
|
|
67
78
|
return;
|
|
68
79
|
pending = true;
|
|
80
|
+
// A cursor counts one session's turns, so an undo that outlives a session
|
|
81
|
+
// switch must not write the old session's step into the new session's bar.
|
|
82
|
+
const pressedFor = ports.activeSession();
|
|
83
|
+
const overtaken = () => ports.activeSession() !== pressedFor;
|
|
69
84
|
void (async () => {
|
|
70
85
|
if (ports.viewingChild()) {
|
|
71
86
|
ports.notice('undo works on the session this terminal drives · ctrl+b comes back');
|
|
@@ -73,6 +88,8 @@ export function createStagedTurns(ports) {
|
|
|
73
88
|
return;
|
|
74
89
|
}
|
|
75
90
|
const turns = await currentTurns();
|
|
91
|
+
if (overtaken())
|
|
92
|
+
return;
|
|
76
93
|
if (cursor.hidden >= turns.length && !ports.turnRunning()) {
|
|
77
94
|
ports.notice('nothing to undo');
|
|
78
95
|
ports.render();
|
|
@@ -90,7 +107,11 @@ export function createStagedTurns(ports) {
|
|
|
90
107
|
const parked = await settleForUndo();
|
|
91
108
|
if (parked === undefined)
|
|
92
109
|
return;
|
|
110
|
+
if (overtaken())
|
|
111
|
+
return;
|
|
93
112
|
const settledTurns = await currentTurns();
|
|
113
|
+
if (overtaken())
|
|
114
|
+
return;
|
|
94
115
|
const next = undoStep(cursor, settledTurns);
|
|
95
116
|
if (next === undefined) {
|
|
96
117
|
ports.notice('nothing to undo');
|
|
@@ -99,11 +120,15 @@ export function createStagedTurns(ports) {
|
|
|
99
120
|
}
|
|
100
121
|
if (holdsDraft) {
|
|
101
122
|
await ports.parkPrompt(draft);
|
|
123
|
+
if (overtaken())
|
|
124
|
+
return;
|
|
102
125
|
ports.notice('the draft in the bar was parked in the stash');
|
|
103
126
|
}
|
|
104
127
|
cursor = next;
|
|
105
128
|
cut = hiddenTail(next, settledTurns)?.seedCount;
|
|
106
129
|
await redrawStaged();
|
|
130
|
+
if (overtaken())
|
|
131
|
+
return;
|
|
107
132
|
ports.writeDraft(next.lastRestored);
|
|
108
133
|
// The parking count rides the undo notice: a notice of its own would be
|
|
109
134
|
// replaced before the frame could show it.
|
|
@@ -120,6 +145,11 @@ export function createStagedTurns(ports) {
|
|
|
120
145
|
});
|
|
121
146
|
};
|
|
122
147
|
const runRedoCommand = () => {
|
|
148
|
+
// An undo that is still settling owns the cursor; a redo now would step
|
|
149
|
+
// the state that undo is about to replace, so it is dropped like a second
|
|
150
|
+
// undo press.
|
|
151
|
+
if (pending)
|
|
152
|
+
return;
|
|
123
153
|
void (async () => {
|
|
124
154
|
if (ports.viewingChild()) {
|
|
125
155
|
ports.notice('redo works on the session this terminal drives · ctrl+b comes back');
|
|
@@ -173,8 +203,10 @@ export function createStagedTurns(ports) {
|
|
|
173
203
|
const source = ports.activeSession();
|
|
174
204
|
const events = await ports.sessionEvents(source);
|
|
175
205
|
const turns = turnsOf(events);
|
|
206
|
+
// hidden > 0 was settled above, and the driven session's log is read from
|
|
207
|
+
// memory, so the cursor still names a turn this list holds.
|
|
176
208
|
const tail = hiddenTail(cursor, turns);
|
|
177
|
-
const seed =
|
|
209
|
+
const seed = events.slice(0, tail.seedCount);
|
|
178
210
|
const childId = SessionId(`tui-session-${randomUUID()}`);
|
|
179
211
|
await ports.disposeOutgoing();
|
|
180
212
|
const opened = await ports.openSession(childId, false, seed.length === 0 ? undefined : { from: source, events: seed });
|
|
@@ -189,7 +221,6 @@ export function createStagedTurns(ports) {
|
|
|
189
221
|
return {
|
|
190
222
|
stagedCutoff: () => cut,
|
|
191
223
|
cursor: () => cursor,
|
|
192
|
-
pending: () => pending,
|
|
193
224
|
sessionOpened: id => {
|
|
194
225
|
cursor = resetUndo(id);
|
|
195
226
|
cut = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staged-turns.js","sourceRoot":"","sources":["../../src/surface/staged-turns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGpD,OAAO,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,mBAAmB,EACnB,QAAQ,GAGT,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"staged-turns.js","sourceRoot":"","sources":["../../src/surface/staged-turns.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
export declare const EDITOR_ENV_KEYS: readonly ["VISUAL", "EDITOR"];
|
|
9
9
|
/** A draft larger than this is left where it is rather than handed to the bar. */
|
|
10
10
|
export declare const MAX_DRAFT_BYTES = 1048576;
|
|
11
|
+
/**
|
|
12
|
+
* How long the reader's editor may hold the terminal before it is stopped.
|
|
13
|
+
*
|
|
14
|
+
* A child that never exits is the one failure this handoff cannot report its way
|
|
15
|
+
* out of: the screen is already given up, so nothing can draw, no key is read,
|
|
16
|
+
* and the session ends with the terminal left in the editor's state. Thirty
|
|
17
|
+
* minutes is far past a draft anyone is still writing and firmly inside a
|
|
18
|
+
* morning, which is the line between a slow reader and a stuck process.
|
|
19
|
+
*/
|
|
20
|
+
export declare const EDITOR_TIMEOUT_MS: number;
|
|
11
21
|
/**
|
|
12
22
|
* One configured command line as argv, or undefined when it names nothing.
|
|
13
23
|
*
|
|
@@ -38,6 +48,7 @@ export interface EditorTerminalHost {
|
|
|
38
48
|
export interface EditorChild {
|
|
39
49
|
on(event: 'error', listener: (error: Error) => void): void;
|
|
40
50
|
on(event: 'exit', listener: (code: number | null, signal: string | null) => void): void;
|
|
51
|
+
kill(signal?: NodeJS.Signals): boolean;
|
|
41
52
|
}
|
|
42
53
|
export interface EditorSpawnOptions {
|
|
43
54
|
readonly stdio: 'inherit';
|
|
@@ -87,6 +98,11 @@ export declare class ExternalEditor {
|
|
|
87
98
|
* already told the reader why, and whatever it did save is what they meant to
|
|
88
99
|
* keep. A child that never started emits `error` and no `exit`, so either one
|
|
89
100
|
* settling the wait is the answer.
|
|
101
|
+
*
|
|
102
|
+
* A child that never exits is stopped at the timeout and reported through the
|
|
103
|
+
* host, because it cannot report for itself; its exit still settles this wait,
|
|
104
|
+
* so the draft it left on disk is read back exactly as an editor's own bad
|
|
105
|
+
* exit is — a stuck editor must not become a way to lose the draft.
|
|
90
106
|
*/
|
|
91
107
|
private run;
|
|
92
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-editor.d.ts","sourceRoot":"","sources":["../../src/terminal/external-editor.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+BAAgC,CAAA;AAS5D,kFAAkF;AAClF,eAAO,MAAM,eAAe,UAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"external-editor.d.ts","sourceRoot":"","sources":["../../src/terminal/external-editor.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+BAAgC,CAAA;AAS5D,kFAAkF;AAClF,eAAO,MAAM,eAAe,UAAY,CAAA;AAQxC;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,QAAiB,CAAA;AAwB/C;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CA2B/E;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAQxG;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,IAAI,CAAA;IACf,MAAM,IAAI,IAAI,CAAA;IACd,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAC1D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAA;IACvF,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAChC;AAED,yFAAyF;AACzF,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,KAAK,WAAW,CAAA;AAiB7G,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAA;IAC5C,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACzC;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IAQvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,gFAAgF;IAChF,OAAO,CAAC,OAAO,CAAQ;gBAGJ,IAAI,EAAE,kBAAkB,EACzC,OAAO,GAAE,qBAA0B;IAOrC,mGAAmG;IAC7F,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA0ErD;;;;;;;;OAQG;YACW,SAAS;IAkBvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,GAAG;CA4BZ"}
|