@sagmans/dsh-tui 0.8.0 → 0.9.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 +26 -2
- package/README.md +63 -32
- 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 +0 -9
- package/lib/herdr/client.d.ts.map +1 -1
- package/lib/herdr/client.js +1 -1
- package/lib/herdr/client.js.map +1 -1
- package/lib/herdr/state.d.ts +0 -10
- package/lib/herdr/state.d.ts.map +1 -1
- package/lib/herdr/state.js +1 -1
- 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 +3 -0
- package/themes/violet-orbit.yaml +9 -4
package/lib/input/keymap.js
CHANGED
|
@@ -106,12 +106,6 @@ export function promptKeys(map) {
|
|
|
106
106
|
enterBreaksLine: newLine.includes(ENTER_KEY),
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
|
-
const SYSTEM_TIMERS = {
|
|
110
|
-
schedule: (run, delayMs) => setTimeout(run, delayMs),
|
|
111
|
-
cancel: handle => {
|
|
112
|
-
clearTimeout(handle);
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
109
|
/**
|
|
116
110
|
* The two keys between a prefix and an action.
|
|
117
111
|
*
|
|
@@ -124,15 +118,13 @@ export class ChordReader {
|
|
|
124
118
|
bindings;
|
|
125
119
|
windowMs;
|
|
126
120
|
onExpire;
|
|
127
|
-
timers;
|
|
128
121
|
armed;
|
|
129
122
|
expiry;
|
|
130
|
-
constructor(prefixes, bindings, windowMs, onExpire
|
|
123
|
+
constructor(prefixes, bindings, windowMs, onExpire) {
|
|
131
124
|
this.prefixes = prefixes;
|
|
132
125
|
this.bindings = bindings;
|
|
133
126
|
this.windowMs = windowMs;
|
|
134
127
|
this.onExpire = onExpire;
|
|
135
|
-
this.timers = timers;
|
|
136
128
|
}
|
|
137
129
|
/** Whether a chord is waiting for its next key, which is what the footer says. */
|
|
138
130
|
get pending() {
|
|
@@ -153,7 +145,7 @@ export class ChordReader {
|
|
|
153
145
|
this.armed = undefined;
|
|
154
146
|
if (this.expiry === undefined)
|
|
155
147
|
return;
|
|
156
|
-
|
|
148
|
+
clearTimeout(this.expiry);
|
|
157
149
|
this.expiry = undefined;
|
|
158
150
|
}
|
|
159
151
|
/** Apply one key press; only a press that started or finished a chord is consumed. */
|
|
@@ -169,7 +161,7 @@ export class ChordReader {
|
|
|
169
161
|
// A window of zero is the reader asking for a sticky chord: nothing but
|
|
170
162
|
// the next key ends it.
|
|
171
163
|
if (windowMs > 0) {
|
|
172
|
-
this.expiry =
|
|
164
|
+
this.expiry = setTimeout(() => {
|
|
173
165
|
this.armed = undefined;
|
|
174
166
|
this.expiry = undefined;
|
|
175
167
|
this.onExpire();
|
package/lib/input/keymap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"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"}
|
package/lib/input/submission.js
CHANGED
|
@@ -28,9 +28,9 @@ export const LOCAL_COMMAND_DESCRIPTIONS = {
|
|
|
28
28
|
'/stash': 'store the draft typed after it; ctrl+x then s parks the editor',
|
|
29
29
|
'/stash-pop': 'put a stashed draft (newest by default) into the editor and remove it',
|
|
30
30
|
'/stash-apply': 'put a stashed draft (newest by default) into the editor and keep it',
|
|
31
|
-
'/stash-list':
|
|
31
|
+
'/stash-list': 'open the current stash bank; enter pops one',
|
|
32
32
|
'/stash-drop': 'delete a stashed draft (newest by default) without using it',
|
|
33
|
-
'/stash-clear': 'delete every draft
|
|
33
|
+
'/stash-clear': 'delete every draft in the current stash bank after a confirmation',
|
|
34
34
|
'/quit': 'leave and print the resume command',
|
|
35
35
|
'/exit': 'leave and print the resume command',
|
|
36
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/input/submission.ts"],"names":[],"mappings":"AA6CA,iEAAiE;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;IAC1N,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc;CAC5E,CAAA;AAEV,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAqC;IAC1E,OAAO,EAAE,oCAAoC;IAC7C,SAAS,EAAE,mDAAmD;IAC9D,QAAQ,EAAE,qFAAqF;IAC/F,SAAS,EAAE,kDAAkD;IAC7D,OAAO,EAAE,6CAA6C;IACtD,YAAY,EAAE,uFAAuF;IACrG,OAAO,EAAE,6CAA6C;IACtD,QAAQ,EAAE,oHAAoH;IAC9H,OAAO,EAAE,oEAAoE;IAC7E,OAAO,EAAE,qDAAqD;IAC9D,MAAM,EAAE,oDAAoD;IAC5D,SAAS,EAAE,kEAAkE;IAC7E,OAAO,EAAE,0EAA0E;IACnF,OAAO,EAAE,kCAAkC;IAC3C,OAAO,EAAE,4DAA4D;IACrE,UAAU,EAAE,wEAAwE;IACpF,SAAS,EAAE,gDAAgD;IAC3D,SAAS,EAAE,iDAAiD;IAC5D,QAAQ,EAAE,8BAA8B;IACxC,SAAS,EAAE,6BAA6B;IACxC,QAAQ,EAAE,gEAAgE;IAC1E,YAAY,EAAE,uEAAuE;IACrF,cAAc,EAAE,qEAAqE;IACrF,aAAa,EAAE,6CAA6C;IAC5D,aAAa,EAAE,6DAA6D;IAC5E,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/input/submission.ts"],"names":[],"mappings":"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"}
|
package/lib/model-list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-list.d.ts","sourceRoot":"","sources":["../src/model-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"model-list.d.ts","sourceRoot":"","sources":["../src/model-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AA2BlD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,IAAI,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACtE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAA;CAC9F;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQjF;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB5F"}
|
package/lib/model-list.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MODEL_CATALOG_GAP_CAUSE, readModelCatalog } from "./agent/model.js";
|
|
2
2
|
/**
|
|
3
3
|
* Column separator between the route and the display name.
|
|
4
4
|
*
|
|
@@ -8,6 +8,18 @@ import { createModelCatalog } from "./agent/model.js";
|
|
|
8
8
|
const FIELD_SEPARATOR = '\t';
|
|
9
9
|
/** Prefix every refusal carries, so a piped run names the command that failed. */
|
|
10
10
|
const FAILURE_PREFIX = 'dsh --profile tui list-models: ';
|
|
11
|
+
/**
|
|
12
|
+
* One refusal per cause of an absent catalog.
|
|
13
|
+
*
|
|
14
|
+
* The reader acts on this line, and the two causes ask for opposite things: an
|
|
15
|
+
* absent service is a plugin to mount, while one that cannot list providers is
|
|
16
|
+
* already mounted and only older than the model directory this command reads.
|
|
17
|
+
*/
|
|
18
|
+
const CATALOG_GAP_MESSAGES = {
|
|
19
|
+
no_llm_service: `${MODEL_CATALOG_GAP_CAUSE.no_llm_service}, so models cannot be listed`,
|
|
20
|
+
llm_without_provider_listing: `${MODEL_CATALOG_GAP_CAUSE.llm_without_provider_listing}, so models cannot be listed; `
|
|
21
|
+
+ 'it predates the model directory this command reads',
|
|
22
|
+
};
|
|
11
23
|
/**
|
|
12
24
|
* Format one line per reachable route, in the picker's own order.
|
|
13
25
|
*
|
|
@@ -37,14 +49,14 @@ export async function runModelList(ctx, exit) {
|
|
|
37
49
|
process.stderr.write(`${FAILURE_PREFIX}${message}\n`);
|
|
38
50
|
exit(1);
|
|
39
51
|
};
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
fail(
|
|
52
|
+
const reading = readModelCatalog(ctx);
|
|
53
|
+
if (reading.kind === 'gap') {
|
|
54
|
+
fail(CATALOG_GAP_MESSAGES[reading.gap]);
|
|
43
55
|
return;
|
|
44
56
|
}
|
|
45
57
|
let lines;
|
|
46
58
|
try {
|
|
47
|
-
lines = await modelListLines(catalog);
|
|
59
|
+
lines = await modelListLines(reading.catalog);
|
|
48
60
|
}
|
|
49
61
|
catch (error) {
|
|
50
62
|
fail(`could not list models: ${error instanceof Error ? error.message : String(error)}`);
|
package/lib/model-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-list.js","sourceRoot":"","sources":["../src/model-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"model-list.js","sourceRoot":"","sources":["../src/model-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAwB,MAAM,kBAAkB,CAAA;AAElG;;;;;GAKG;AACH,MAAM,eAAe,GAAG,IAAI,CAAA;AAE5B,kFAAkF;AAClF,MAAM,cAAc,GAAG,iCAAiC,CAAA;AAExD;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAoC;IAC5D,cAAc,EAAE,GAAG,uBAAuB,CAAC,cAAc,8BAA8B;IACvF,4BAA4B,EAAE,GAAG,uBAAuB,CAAC,4BAA4B,gCAAgC;UACjH,oDAAoD;CACzD,CAAA;AAeD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAyB;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,eAAe,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QACrF,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,IAA4B;IAC3E,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,GAAG,OAAO,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,CAAC,CAAC,CAAA;IACT,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QACvC,OAAM;IACR,CAAC;IACD,IAAI,KAAe,CAAA;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACxF,OAAM;IACR,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,2CAA2C,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,CAAC,CAAC,CAAC,CAAA;AACT,CAAC"}
|
package/lib/queue.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
-
/** The reader's own prompts still waiting in one inbox projection state. */
|
|
3
|
-
export declare function promptsOf(state: unknown): readonly string[];
|
|
4
2
|
/** The prompts one session's agent has not taken yet. */
|
|
5
3
|
export declare function pendingPrompts(ctx: Context, session: unknown): readonly string[];
|
|
6
4
|
//# sourceMappingURL=queue.d.ts.map
|
package/lib/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAoElD,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAEhF"}
|
package/lib/queue.js
CHANGED
|
@@ -43,7 +43,7 @@ function textOf(message) {
|
|
|
43
43
|
return texts.length === 0 ? NO_TEXT : texts.join('\n');
|
|
44
44
|
}
|
|
45
45
|
/** The reader's own prompts still waiting in one inbox projection state. */
|
|
46
|
-
|
|
46
|
+
function promptsOf(state) {
|
|
47
47
|
const inbox = asRecord(state);
|
|
48
48
|
if (inbox === undefined)
|
|
49
49
|
return [];
|
package/lib/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD;;;;;;;;;GASG;AAEH,2FAA2F;AAC3F,MAAM,OAAO,GAAG,WAAW,CAAA;AAE3B;;;;;GAKG;AACH,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,CAAU,CAAA;AAEnD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,SAAS,CAAA;AACnG,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,OAAgC;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,MAAM,CAAA;AAClD,CAAC;AAED,8FAA8F;AAC9F,SAAS,MAAM,CAAC,OAAgC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAQ;QACxE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxD,CAAC;AAED,4EAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD;;;;;;;;;GASG;AAEH,2FAA2F;AAC3F,MAAM,OAAO,GAAG,WAAW,CAAA;AAE3B;;;;;GAKG;AACH,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,CAAU,CAAA;AAEnD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,SAAS,CAAA;AACnG,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,OAAgC;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,MAAM,CAAA;AAClD,CAAC;AAED,8FAA8F;AAC9F,SAAS,MAAM,CAAC,OAAgC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAQ;QACxE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxD,CAAC;AAED,4EAA4E;AAC5E,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAQ;QACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAAE,SAAQ;YAC1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,OAAgB;IAC3D,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;AACvF,CAAC"}
|
package/lib/settings-notice.d.ts
CHANGED
|
@@ -4,7 +4,11 @@ export type NoticeSink = (message: string) => void;
|
|
|
4
4
|
export interface DeferredNotice {
|
|
5
5
|
/** Print through `sink` from now on, starting with anything held back. */
|
|
6
6
|
open(sink: NoticeSink): void;
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Print the notice now, or hold it until {@link DeferredNotice.open}.
|
|
9
|
+
*
|
|
10
|
+
* A message the notice just carried is dropped rather than posted again.
|
|
11
|
+
*/
|
|
8
12
|
post(message: string): void;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
@@ -19,6 +23,11 @@ export interface DeferredNotice {
|
|
|
19
23
|
* wrong at once — a refused section and the themes beside it — and showing one of
|
|
20
24
|
* them would leave the reader fixing what they were told about while the rest
|
|
21
25
|
* waited for a restart.
|
|
26
|
+
*
|
|
27
|
+
* A message repeating the one before it is dropped, because one write can be read
|
|
28
|
+
* twice: the settings service reports a section and the document it came from
|
|
29
|
+
* separately, and the reader watching a broken file would otherwise watch the same
|
|
30
|
+
* refusal collect a row per read until the transcript had nothing else on it.
|
|
22
31
|
*/
|
|
23
32
|
export declare function createDeferredNotice(): DeferredNotice;
|
|
24
33
|
//# sourceMappingURL=settings-notice.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-notice.d.ts","sourceRoot":"","sources":["../src/settings-notice.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;AAElD,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IAC5B
|
|
1
|
+
{"version":3,"file":"settings-notice.d.ts","sourceRoot":"","sources":["../src/settings-notice.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;AAElD,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IAC5B;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAoBrD"}
|
package/lib/settings-notice.js
CHANGED
|
@@ -10,23 +10,33 @@
|
|
|
10
10
|
* wrong at once — a refused section and the themes beside it — and showing one of
|
|
11
11
|
* them would leave the reader fixing what they were told about while the rest
|
|
12
12
|
* waited for a restart.
|
|
13
|
+
*
|
|
14
|
+
* A message repeating the one before it is dropped, because one write can be read
|
|
15
|
+
* twice: the settings service reports a section and the document it came from
|
|
16
|
+
* separately, and the reader watching a broken file would otherwise watch the same
|
|
17
|
+
* refusal collect a row per read until the transcript had nothing else on it.
|
|
13
18
|
*/
|
|
14
19
|
export function createDeferredNotice() {
|
|
15
20
|
let sink;
|
|
16
21
|
const held = [];
|
|
22
|
+
let last;
|
|
23
|
+
const post = (message) => {
|
|
24
|
+
if (message === last)
|
|
25
|
+
return;
|
|
26
|
+
last = message;
|
|
27
|
+
if (sink === undefined) {
|
|
28
|
+
held.push(message);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
sink(message);
|
|
32
|
+
};
|
|
17
33
|
return {
|
|
18
34
|
open(next) {
|
|
19
35
|
sink = next;
|
|
20
36
|
for (const message of held.splice(0))
|
|
21
37
|
next(message);
|
|
22
38
|
},
|
|
23
|
-
post
|
|
24
|
-
if (sink === undefined) {
|
|
25
|
-
held.push(message);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
sink(message);
|
|
29
|
-
},
|
|
39
|
+
post,
|
|
30
40
|
};
|
|
31
41
|
}
|
|
32
42
|
//# sourceMappingURL=settings-notice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-notice.js","sourceRoot":"","sources":["../src/settings-notice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings-notice.js","sourceRoot":"","sources":["../src/settings-notice.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,IAA4B,CAAA;IAChC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,IAAwB,CAAA;IAC5B,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAM;QAC5B,IAAI,GAAG,OAAO,CAAA;QACd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,CAAA;IACf,CAAC,CAAA;IACD,OAAO;QACL,IAAI,CAAC,IAAI;YACP,IAAI,GAAG,IAAI,CAAA;YACX,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACrD,CAAC;QACD,IAAI;KACL,CAAA;AACH,CAAC"}
|
package/lib/spacing.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The air the surface keeps around what it shows.
|
|
3
|
+
*
|
|
4
|
+
* A token names a shade or a glyph, so how much room a message is given is not
|
|
5
|
+
* something a theme can carry: it is layout the reader tunes once for their own
|
|
6
|
+
* terminal, and the same read feeds the surface's own edges and every gap
|
|
7
|
+
* between the things it draws.
|
|
8
|
+
*/
|
|
9
|
+
/** What one gap or edge may ask for, in rows or columns. */
|
|
10
|
+
export interface Spacing {
|
|
11
|
+
/** Columns of air at the surface's left and right edges. */
|
|
12
|
+
readonly padding: number;
|
|
13
|
+
/** Blank rows above and below a prompt or a reply card. */
|
|
14
|
+
readonly messages: number;
|
|
15
|
+
/** Blank rows where a step of a turn opens, so a thought and the calls it made read as one group. */
|
|
16
|
+
readonly steps: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The widest gap or edge the reader may ask for.
|
|
20
|
+
*
|
|
21
|
+
* Past a few rows the break stops reading as air between two things and starts
|
|
22
|
+
* reading as a hole the reader has to scroll past on every message.
|
|
23
|
+
*/
|
|
24
|
+
export declare const MAX_SPACING = 3;
|
|
25
|
+
/**
|
|
26
|
+
* The shipped spacing: one column at the edges and one row at a break.
|
|
27
|
+
*
|
|
28
|
+
* Framed objects that touch the terminal's edge, or each other, read as one
|
|
29
|
+
* wall of rows; a single column and a single row are what separate them
|
|
30
|
+
* without spending the rows a message needs to be read in.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEFAULT_SPACING: Spacing;
|
|
33
|
+
/**
|
|
34
|
+
* The `spacing:` block as the reader wrote it.
|
|
35
|
+
*
|
|
36
|
+
* Absent fields keep the shipped value, so a reader who wants only the gaps
|
|
37
|
+
* turned off writes one line rather than the whole block.
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseSpacing(raw: unknown): Spacing;
|
|
40
|
+
//# sourceMappingURL=spacing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../src/spacing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,WAAW,OAAO;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,qGAAqG;IACrG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,IAAI,CAAA;AAE5B;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,OAA+C,CAAA;AAa7E;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWlD"}
|
package/lib/spacing.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The air the surface keeps around what it shows.
|
|
3
|
+
*
|
|
4
|
+
* A token names a shade or a glyph, so how much room a message is given is not
|
|
5
|
+
* something a theme can carry: it is layout the reader tunes once for their own
|
|
6
|
+
* terminal, and the same read feeds the surface's own edges and every gap
|
|
7
|
+
* between the things it draws.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* The widest gap or edge the reader may ask for.
|
|
11
|
+
*
|
|
12
|
+
* Past a few rows the break stops reading as air between two things and starts
|
|
13
|
+
* reading as a hole the reader has to scroll past on every message.
|
|
14
|
+
*/
|
|
15
|
+
export const MAX_SPACING = 3;
|
|
16
|
+
/**
|
|
17
|
+
* The shipped spacing: one column at the edges and one row at a break.
|
|
18
|
+
*
|
|
19
|
+
* Framed objects that touch the terminal's edge, or each other, read as one
|
|
20
|
+
* wall of rows; a single column and a single row are what separate them
|
|
21
|
+
* without spending the rows a message needs to be read in.
|
|
22
|
+
*/
|
|
23
|
+
export const DEFAULT_SPACING = { padding: 1, messages: 1, steps: 1 };
|
|
24
|
+
/** The fields the `spacing:` block declares, so a misspelling is refused rather than ignored. */
|
|
25
|
+
const SPACING_FIELDS = new Set(['padding', 'messages', 'steps']);
|
|
26
|
+
/** One count as the reader wrote it. */
|
|
27
|
+
function count(value, field) {
|
|
28
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0 || value > MAX_SPACING) {
|
|
29
|
+
throw new Error('spacing.' + field + ' must be an integer between 0 and ' + MAX_SPACING);
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The `spacing:` block as the reader wrote it.
|
|
35
|
+
*
|
|
36
|
+
* Absent fields keep the shipped value, so a reader who wants only the gaps
|
|
37
|
+
* turned off writes one line rather than the whole block.
|
|
38
|
+
*/
|
|
39
|
+
export function parseSpacing(raw) {
|
|
40
|
+
if (raw === undefined)
|
|
41
|
+
return DEFAULT_SPACING;
|
|
42
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
|
|
43
|
+
throw new Error('spacing must be a mapping of counts');
|
|
44
|
+
const block = raw;
|
|
45
|
+
const stray = Object.keys(block).filter(field => !SPACING_FIELDS.has(field));
|
|
46
|
+
if (stray.length > 0)
|
|
47
|
+
throw new Error('unknown spacing field' + (stray.length === 1 ? '' : 's') + ': ' + stray.join(', '));
|
|
48
|
+
return {
|
|
49
|
+
padding: block.padding === undefined ? DEFAULT_SPACING.padding : count(block.padding, 'padding'),
|
|
50
|
+
messages: block.messages === undefined ? DEFAULT_SPACING.messages : count(block.messages, 'messages'),
|
|
51
|
+
steps: block.steps === undefined ? DEFAULT_SPACING.steps : count(block.steps, 'steps'),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=spacing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.js","sourceRoot":"","sources":["../src/spacing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAE7E,iGAAiG;AACjG,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;AAErF,wCAAwC;AACxC,SAAS,KAAK,CAAC,KAAc,EAAE,KAAa;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,WAAW,EAAE,CAAC;QAClG,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,GAAG,oCAAoC,GAAG,WAAW,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,eAAe,CAAA;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACzH,MAAM,KAAK,GAAG,GAA8B,CAAA;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1H,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;QAChG,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;QACrG,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;KACvF,CAAA;AACH,CAAC"}
|
package/lib/stash/paths.d.ts
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** Environment variable that moves the harness home, matching the launcher. */
|
|
2
|
+
export declare const DSH_HOME_ENV = "DSH_HOME";
|
|
3
|
+
/** A bank follows the current directory by default; session mode keeps drafts private to one session. */
|
|
4
|
+
export declare const DEFAULT_STASH_SCOPE: "path";
|
|
5
|
+
export declare const STASH_SCOPES: readonly ["path", "session"];
|
|
6
|
+
export type StashScope = typeof STASH_SCOPES[number];
|
|
7
|
+
/** The stash file for one scope owner. */
|
|
2
8
|
export interface StashPaths {
|
|
3
|
-
/**
|
|
9
|
+
/** Exact scope owner, retained in the on-disk sessionId field. */
|
|
4
10
|
readonly sessionId: string;
|
|
5
|
-
/** Flattened
|
|
11
|
+
/** Flattened owner id, used as the on-disk key. */
|
|
6
12
|
readonly key: string;
|
|
7
|
-
/** JSON file holding this
|
|
13
|
+
/** JSON file holding this bank's stash entries. */
|
|
8
14
|
readonly file: string;
|
|
9
15
|
}
|
|
10
|
-
export declare function sanitizeSessionId(sessionId: string): string;
|
|
16
|
+
export declare function sanitizeSessionId(sessionId: string, version?: string): string;
|
|
11
17
|
/**
|
|
12
18
|
* The directory the harness keeps its own state in.
|
|
13
19
|
*
|
|
14
|
-
* DSH_HOME is the one thing that moves that directory,
|
|
15
|
-
*
|
|
16
|
-
* out of a reader's real home
|
|
20
|
+
* DSH_HOME is the one thing that moves that directory, so every reader resolves it
|
|
21
|
+
* here: the stash bank, the themes, and the prompt history all write under the
|
|
22
|
+
* answer, and a scratch home only keeps state out of a reader's real home while
|
|
23
|
+
* they agree on it. A blank override is treated as unset, because resolving to the
|
|
24
|
+
* working directory would scatter private state into whatever tree the reader
|
|
25
|
+
* happened to start from.
|
|
17
26
|
*/
|
|
18
27
|
export declare function dshHomeDir(env?: NodeJS.ProcessEnv, home?: string): string;
|
|
19
|
-
/** The root every
|
|
28
|
+
/** The root every bank's stash file sits under. */
|
|
20
29
|
export declare function stashBaseDir(env?: NodeJS.ProcessEnv, home?: string): string;
|
|
21
|
-
export declare function resolveStashPaths(sessionId: string, baseDir?: string): StashPaths;
|
|
30
|
+
export declare function resolveStashPaths(sessionId: string, baseDir?: string, scope?: StashScope): StashPaths;
|
|
22
31
|
//# sourceMappingURL=paths.d.ts.map
|
package/lib/stash/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/stash/paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/stash/paths.ts"],"names":[],"mappings":"AAgBA,+EAA+E;AAC/E,eAAO,MAAM,YAAY,aAAa,CAAA;AAKtC,yGAAyG;AACzG,eAAO,MAAM,mBAAmB,EAAG,MAAe,CAAA;AAClD,eAAO,MAAM,YAAY,8BAA4C,CAAA;AACrE,MAAM,MAAM,UAAU,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;AA4BpD,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAuBD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAmC,GAAG,MAAM,CAOzG;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAIjG;AAkBD,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAEnG;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAuB,EAAE,KAAK,GAAE,UAAsB,GAAG,UAAU,CAGhI"}
|
package/lib/stash/paths.js
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
// Disk layout for prompt stashes.
|
|
2
2
|
//
|
|
3
|
-
// A bank
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// flattened into a filename-safe key that stays human-readable in the agent
|
|
7
|
-
// directory.
|
|
3
|
+
// A bank follows either the absolute working directory or one session. The
|
|
4
|
+
// distinct key versions prevent an absolute directory from ever colliding with
|
|
5
|
+
// a session id, while both identifiers stay readable under the stash directory.
|
|
8
6
|
//
|
|
9
7
|
// Readability cannot be bought with injectivity: a separator made of hyphens
|
|
10
|
-
// cannot be told apart from a hyphen inside
|
|
11
|
-
// id can land on a name a shorter id already owns. Two
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
// ids collide in the label, never in the file.
|
|
8
|
+
// cannot be told apart from a hyphen inside an owner id, and truncating a long
|
|
9
|
+
// id can land on a name a shorter id already owns. Two distinct owners sharing
|
|
10
|
+
// one bank would expose drafts, so every key ends with a digest of the exact id. The readable part is then only a label: two distinct
|
|
11
|
+
// identifiers collide in the label, never in the file.
|
|
15
12
|
import { createHash } from 'node:crypto';
|
|
16
13
|
import { homedir } from 'node:os';
|
|
17
14
|
import path from 'node:path';
|
|
15
|
+
/** Environment variable that moves the harness home, matching the launcher. */
|
|
16
|
+
export const DSH_HOME_ENV = 'DSH_HOME';
|
|
18
17
|
/** The directory `DSH_HOME` points at when the environment names none. */
|
|
19
18
|
const DEFAULT_DSH_HOME_DIR = '.dsh';
|
|
19
|
+
/** A bank follows the current directory by default; session mode keeps drafts private to one session. */
|
|
20
|
+
export const DEFAULT_STASH_SCOPE = 'path';
|
|
21
|
+
export const STASH_SCOPES = [DEFAULT_STASH_SCOPE, 'session'];
|
|
22
|
+
/** The character a hand-written `DSH_HOME` leads with when it names the OS home. */
|
|
23
|
+
const HOME_TILDE = '~';
|
|
24
|
+
/** What may follow that character and still mean a home directory, on either platform. */
|
|
25
|
+
const HOME_TILDE_SEPARATORS = ['/', '\\'];
|
|
20
26
|
/** The subtree of `DSH_HOME` this surface owns. */
|
|
21
27
|
const STASH_DIR_NAME = 'tui-stash';
|
|
22
28
|
// POSIX filenames may not contain "/" or NUL, and everything else is legal, so
|
|
@@ -25,8 +31,8 @@ const STASH_DIR_NAME = 'tui-stash';
|
|
|
25
31
|
// common 255-byte filename limit.
|
|
26
32
|
const SANITIZE_MAX_LENGTH = 200;
|
|
27
33
|
const SEPARATOR = '--';
|
|
28
|
-
const
|
|
29
|
-
const
|
|
34
|
+
const SESSION_KEY_FORMAT_VERSION = 'v2';
|
|
35
|
+
const PATH_KEY_FORMAT_VERSION = 'v3';
|
|
30
36
|
const ESCAPE_CHARACTER = '%';
|
|
31
37
|
const ESCAPED_ESCAPE_CHARACTER = '%25';
|
|
32
38
|
const ESCAPED_SEPARATOR = '%2D%2D';
|
|
@@ -55,30 +61,53 @@ function truncateToUtf8Bytes(value, maxBytes) {
|
|
|
55
61
|
}
|
|
56
62
|
return result;
|
|
57
63
|
}
|
|
58
|
-
export function sanitizeSessionId(sessionId) {
|
|
64
|
+
export function sanitizeSessionId(sessionId, version = SESSION_KEY_FORMAT_VERSION) {
|
|
65
|
+
const keyPrefix = `${version}${SEPARATOR}`;
|
|
59
66
|
const readable = sessionId.split('/').filter(Boolean).map(escapeSegment).join(SEPARATOR);
|
|
60
67
|
const digest = createHash(HASH_ALGORITHM).update(sessionId, 'utf8').digest('hex').slice(0, HASH_LENGTH);
|
|
61
68
|
const suffix = `${SEPARATOR}${digest}`;
|
|
62
|
-
const budget = SANITIZE_MAX_LENGTH - Buffer.byteLength(
|
|
63
|
-
return `${
|
|
69
|
+
const budget = SANITIZE_MAX_LENGTH - Buffer.byteLength(keyPrefix) - Buffer.byteLength(suffix);
|
|
70
|
+
return `${keyPrefix}${truncateToUtf8Bytes(readable, Math.max(budget, 0))}${suffix}`;
|
|
64
71
|
}
|
|
65
72
|
/**
|
|
66
73
|
* The directory the harness keeps its own state in.
|
|
67
74
|
*
|
|
68
|
-
* DSH_HOME is the one thing that moves that directory,
|
|
69
|
-
*
|
|
70
|
-
* out of a reader's real home
|
|
75
|
+
* DSH_HOME is the one thing that moves that directory, so every reader resolves it
|
|
76
|
+
* here: the stash bank, the themes, and the prompt history all write under the
|
|
77
|
+
* answer, and a scratch home only keeps state out of a reader's real home while
|
|
78
|
+
* they agree on it. A blank override is treated as unset, because resolving to the
|
|
79
|
+
* working directory would scatter private state into whatever tree the reader
|
|
80
|
+
* happened to start from.
|
|
71
81
|
*/
|
|
72
82
|
export function dshHomeDir(env = process.env, home = homedir()) {
|
|
73
|
-
const configured = env
|
|
74
|
-
|
|
83
|
+
const configured = env[DSH_HOME_ENV]?.trim();
|
|
84
|
+
if (configured === undefined || configured === '')
|
|
85
|
+
return path.join(home, DEFAULT_DSH_HOME_DIR);
|
|
86
|
+
return expandHome(configured, home);
|
|
75
87
|
}
|
|
76
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Expand a hand-written leading `~` into the caller's home.
|
|
90
|
+
*
|
|
91
|
+
* The value arrives from the environment rather than from a shell, so nothing has
|
|
92
|
+
* expanded it yet. `~user` and an interior `~` are ordinary path text everywhere
|
|
93
|
+
* but a shell, and rewriting them would move a directory the reader named exactly;
|
|
94
|
+
* with no home to expand into the value stays as written, because joining a blank
|
|
95
|
+
* home would land the state in the process's working directory by accident.
|
|
96
|
+
*/
|
|
97
|
+
function expandHome(value, home) {
|
|
98
|
+
if (home === '')
|
|
99
|
+
return value;
|
|
100
|
+
if (value === HOME_TILDE)
|
|
101
|
+
return home;
|
|
102
|
+
const separator = HOME_TILDE_SEPARATORS.find(candidate => value.startsWith(HOME_TILDE + candidate));
|
|
103
|
+
return separator === undefined ? value : path.join(home, value.slice(HOME_TILDE.length + separator.length));
|
|
104
|
+
}
|
|
105
|
+
/** The root every bank's stash file sits under. */
|
|
77
106
|
export function stashBaseDir(env = process.env, home = homedir()) {
|
|
78
107
|
return path.join(dshHomeDir(env, home), STASH_DIR_NAME);
|
|
79
108
|
}
|
|
80
|
-
export function resolveStashPaths(sessionId, baseDir = stashBaseDir()) {
|
|
81
|
-
const key = sanitizeSessionId(sessionId);
|
|
109
|
+
export function resolveStashPaths(sessionId, baseDir = stashBaseDir(), scope = 'session') {
|
|
110
|
+
const key = sanitizeSessionId(sessionId, scope === 'path' ? PATH_KEY_FORMAT_VERSION : SESSION_KEY_FORMAT_VERSION);
|
|
82
111
|
return { sessionId, key, file: path.join(baseDir, `${key}.json`) };
|
|
83
112
|
}
|
|
84
113
|
//# sourceMappingURL=paths.js.map
|
package/lib/stash/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/stash/paths.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/stash/paths.ts"],"names":[],"mappings":"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"}
|