@bytetrue/byspace 0.2.0-beta.4 → 0.2.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/dist/commands/daemon/local-daemon.d.ts +2 -0
- package/dist/commands/daemon/local-daemon.js +21 -1
- package/dist/commands/daemon/start.js +11 -1
- package/node_modules/@bytetrue/byspace-client/dist/daemon-client.d.ts +3 -1
- package/node_modules/@bytetrue/byspace-client/dist/daemon-client.js +12 -0
- package/node_modules/@bytetrue/byspace-client/package.json +1 -1
- package/node_modules/@bytetrue/byspace-highlight/package.json +1 -1
- package/node_modules/@bytetrue/byspace-protocol/dist/generated/validation/ws-outbound.aot.js +9447 -9399
- package/node_modules/@bytetrue/byspace-protocol/dist/messages.d.ts +123 -0
- package/node_modules/@bytetrue/byspace-protocol/dist/messages.js +30 -0
- package/node_modules/@bytetrue/byspace-protocol/dist/validation/ws-outbound-schema-metadata.d.ts +20 -0
- package/node_modules/@bytetrue/byspace-protocol/package.json +1 -1
- package/node_modules/@bytetrue/byspace-relay/package.json +1 -1
- package/node_modules/@bytetrue/byspace-server/dist/server/server/config.js +1 -1
- package/node_modules/@bytetrue/byspace-server/dist/server/server/orchestration-skills.d.ts +11 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/server/orchestration-skills.js +197 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-session.d.ts +6 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-session.js +15 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/server/session.js +4 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/server/websocket-server.js +2 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-worker-process.js +8 -1
- package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal.d.ts +1 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal.js +33 -10
- package/node_modules/@bytetrue/byspace-server/dist/server/terminal/worker-terminal-manager.js +3 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/{index-38ca1829d34e8fa57f6076abc4391d37.js → index-ba698ed4743a3ed98c16928de3e54cb1.js} +33 -33
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/index-ba698ed4743a3ed98c16928de3e54cb1.js.br +0 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/index-ba698ed4743a3ed98c16928de3e54cb1.js.gz +0 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/index.html +1 -1
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/index.html.br +0 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/index.html.gz +0 -0
- package/node_modules/@bytetrue/byspace-server/dist/skills/byspace/SKILL.md +147 -0
- package/node_modules/@bytetrue/byspace-server/dist/skills/byspace-advisor/SKILL.md +64 -0
- package/node_modules/@bytetrue/byspace-server/dist/skills/byspace-committee/SKILL.md +83 -0
- package/node_modules/@bytetrue/byspace-server/dist/skills/byspace-handoff/SKILL.md +71 -0
- package/node_modules/@bytetrue/byspace-server/dist/skills/byspace-loop/SKILL.md +45 -0
- package/node_modules/@bytetrue/byspace-server/package.json +3 -2
- package/package.json +6 -6
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/index-38ca1829d34e8fa57f6076abc4391d37.js.br +0 -0
- package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/index-38ca1829d34e8fa57f6076abc4391d37.js.gz +0 -0
|
@@ -576,7 +576,15 @@ export async function createTerminal(options) {
|
|
|
576
576
|
let titleDebounceTimer = null;
|
|
577
577
|
let pendingInput = "";
|
|
578
578
|
let inputFlushImmediate = null;
|
|
579
|
-
|
|
579
|
+
// emitRevision tracks output emission (incremented immediately on PTY data).
|
|
580
|
+
// snapshotRevision tracks the headless xterm state (incremented when the
|
|
581
|
+
// headless xterm write callback fires). Output is emitted to listeners
|
|
582
|
+
// immediately without waiting for the headless xterm, so keystroke echo
|
|
583
|
+
// isn't serialized behind a backlog of TUI writes. Snapshots use
|
|
584
|
+
// snapshotRevision to stay consistent with the headless xterm buffer;
|
|
585
|
+
// drainHeadlessXterm() bridges the gap before on-demand snapshots.
|
|
586
|
+
let emitRevision = 0;
|
|
587
|
+
let snapshotRevision = 0;
|
|
580
588
|
const inputModeTracker = new TerminalInputModeTracker();
|
|
581
589
|
const activityTracker = new TerminalActivityTracker();
|
|
582
590
|
const activityChangeListeners = new Set();
|
|
@@ -797,15 +805,21 @@ export async function createTerminal(options) {
|
|
|
797
805
|
activityChangeListeners.clear();
|
|
798
806
|
}
|
|
799
807
|
function writeOutputToHeadless(data) {
|
|
808
|
+
emitRevision += 1;
|
|
809
|
+
const currentRevision = emitRevision;
|
|
810
|
+
// Write to headless xterm for snapshot fidelity. The callback updates
|
|
811
|
+
// snapshotRevision so getStateSnapshot() stays consistent with the buffer.
|
|
800
812
|
terminal.write(data, () => {
|
|
801
|
-
if (disposed
|
|
802
|
-
|
|
803
|
-
}
|
|
804
|
-
stateRevision += 1;
|
|
805
|
-
for (const listener of listeners) {
|
|
806
|
-
listener({ type: "output", data, revision: stateRevision });
|
|
813
|
+
if (!disposed && !killed) {
|
|
814
|
+
snapshotRevision = currentRevision;
|
|
807
815
|
}
|
|
808
816
|
});
|
|
817
|
+
// Emit to listeners immediately — do not wait for the headless xterm to
|
|
818
|
+
// parse the write. This removes the serialization that delayed keystroke
|
|
819
|
+
// echo behind TUI output backlogs (notably ConPTY + Pi on Windows).
|
|
820
|
+
for (const listener of listeners) {
|
|
821
|
+
listener({ type: "output", data, revision: currentRevision });
|
|
822
|
+
}
|
|
809
823
|
}
|
|
810
824
|
// Pipe PTY output to terminal emulator
|
|
811
825
|
ptyProcess.onData((data) => {
|
|
@@ -887,9 +901,14 @@ export async function createTerminal(options) {
|
|
|
887
901
|
function getStateSnapshot(snapshotOptions) {
|
|
888
902
|
return {
|
|
889
903
|
state: getState(snapshotOptions),
|
|
890
|
-
revision:
|
|
904
|
+
revision: snapshotRevision,
|
|
891
905
|
};
|
|
892
906
|
}
|
|
907
|
+
function drainHeadlessXterm() {
|
|
908
|
+
return new Promise((resolve) => {
|
|
909
|
+
terminal.write("", () => resolve());
|
|
910
|
+
});
|
|
911
|
+
}
|
|
893
912
|
function getSize() {
|
|
894
913
|
return {
|
|
895
914
|
rows: terminal.rows,
|
|
@@ -936,7 +955,10 @@ export async function createTerminal(options) {
|
|
|
936
955
|
flushPendingInput();
|
|
937
956
|
terminal.resize(msg.cols, msg.rows);
|
|
938
957
|
ptyProcess.resize(msg.cols, msg.rows);
|
|
939
|
-
|
|
958
|
+
// Resize affects both headless xterm state and emitted output, so increment
|
|
959
|
+
// both revision counters to keep snapshots consistent.
|
|
960
|
+
emitRevision += 1;
|
|
961
|
+
snapshotRevision += 1;
|
|
940
962
|
break;
|
|
941
963
|
case "mouse":
|
|
942
964
|
// Mouse events can be sent as escape sequences if terminal supports it
|
|
@@ -968,7 +990,7 @@ export async function createTerminal(options) {
|
|
|
968
990
|
// (live restore) can replay it without a separate state fetch.
|
|
969
991
|
listener({
|
|
970
992
|
type: "snapshotReady",
|
|
971
|
-
revision:
|
|
993
|
+
revision: snapshotRevision,
|
|
972
994
|
replayPreamble: getReplayPreamble(),
|
|
973
995
|
});
|
|
974
996
|
}
|
|
@@ -1137,6 +1159,7 @@ export async function createTerminal(options) {
|
|
|
1137
1159
|
getSize,
|
|
1138
1160
|
getState,
|
|
1139
1161
|
getStateSnapshot,
|
|
1162
|
+
drainHeadlessXterm,
|
|
1140
1163
|
getReplayPreamble,
|
|
1141
1164
|
getTitle,
|
|
1142
1165
|
getActivity,
|
package/node_modules/@bytetrue/byspace-server/dist/server/terminal/worker-terminal-manager.js
CHANGED
|
@@ -249,6 +249,9 @@ export function createWorkerTerminalManager(managerOptions = {}) {
|
|
|
249
249
|
revision: 0,
|
|
250
250
|
};
|
|
251
251
|
},
|
|
252
|
+
drainHeadlessXterm() {
|
|
253
|
+
return Promise.resolve();
|
|
254
|
+
},
|
|
252
255
|
getReplayPreamble() {
|
|
253
256
|
// Refreshed from every getTerminalState response, which the controller fetches
|
|
254
257
|
// before every snapshot replay (legacy + visible-snapshot restore). The one
|