tmux-ide 2.9.11 → 2.9.13
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/bin/cli.js +6036 -3047
- package/package.json +1 -1
- package/packages/contracts/src/index.ts +6 -0
- package/packages/contracts/src/pane-stream.ts +77 -0
- package/packages/contracts/src/terminal-delivery-binary-chunk.ts +55 -0
- package/packages/contracts/src/terminal-delivery.ts +19 -3
- package/packages/contracts/src/terminal-graphics-compressed.ts +66 -0
- package/packages/contracts/src/terminal-graphics.ts +73 -0
- package/packages/contracts/src/terminal-projection.ts +153 -0
- package/packages/contracts/src/terminal-surfaces.ts +137 -0
- package/packages/core/src/fixtures/terminal-projection-vectors.json +585 -0
- package/packages/core/src/index.ts +2 -0
- package/packages/core/src/terminal-delivery-binary.ts +160 -0
- package/packages/core/src/terminal-delivery.ts +377 -16
- package/packages/core/src/terminal-projection-vectors.mjs +82 -0
- package/packages/core/src/terminal-projection.ts +476 -0
- package/packages/core/src/terminal-replica.ts +34 -1
- package/packages/daemon/dist/command-center/resources/saved-machine-route.js +2 -0
- package/packages/daemon/dist/command-center/resources/saved-machine-watch.js +117 -0
- package/packages/daemon/dist/command-center/server.js +13 -0
- package/packages/daemon/dist/command-center/tmux-servers.js +9 -0
- package/packages/daemon/dist/lib/daemon-embed.js +71 -4
- package/packages/daemon/dist/lib/embedded-tmux-server-owners.js +1 -0
- package/packages/daemon/dist/lib/native-surface-context.js +96 -0
- package/packages/daemon/dist/lib/tmux-server-owner.js +10 -0
- package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/Info.plist +2 -2
- package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/MacOS/tmux-ide-notifier +0 -0
- package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/Resources/Assets.car +0 -0
- package/packages/daemon/dist/native/TmuxIdeNotifier.app/Contents/_CodeSignature/CodeResources +2 -2
- package/packages/daemon/dist/server/native-surface-provider-upgrade.js +88 -0
- package/packages/daemon/dist/terminal/graphics/compress-chunk.js +40 -0
- package/packages/daemon/dist/terminal/graphics/local-image-owner.js +330 -0
- package/packages/daemon/dist/terminal/graphics/local-image-store.js +255 -0
- package/packages/daemon/dist/terminal/graphics/native-surface-demand.js +99 -0
- package/packages/daemon/dist/terminal/graphics/native-surface-provider-channel.js +162 -0
- package/packages/daemon/dist/terminal/graphics/native-surface-provider.js +275 -0
- package/packages/daemon/dist/terminal/graphics/native-surface-viewer.js +146 -0
- package/packages/daemon/dist/terminal/mirror/mirror-service.js +3 -0
- package/packages/daemon/dist/terminal/mirror/session-channel.js +32 -9
- package/packages/daemon/dist/terminal/pane-stream/pane-stream-websocket.js +369 -16
- package/packages/daemon/dist/terminal/pane-stream/runtime.js +10 -0
- package/packages/daemon/dist/terminal/session-runtime/registry.js +2 -0
- package/packages/daemon/dist/terminal/session-runtime/terminal-delivery-hub.js +146 -16
- package/packages/daemon/dist/terminal/session-runtime/terminal-projection-delivery.js +32 -0
- package/packages/daemon/dist/terminal/session-runtime/terminal-replica-owner.js +3 -4
- package/packages/daemon/dist/tui/mirror/open-tui-workspace-runtime-port.js +4 -0
- package/packages/daemon/dist/tui/mirror/runtime/application-terminal-interaction-controller.js +28 -3
- package/packages/daemon/dist/tui/mirror/runtime/application-terminal-workspace.jsx +13 -1
- package/packages/daemon/dist/tui/mirror/runtime/renderer-probe.js +195 -0
- package/packages/daemon/dist/tui/mirror/runtime/terminal-fast-lane-renderer-adapter.js +6 -0
- package/packages/daemon/dist/tui/mirror/semantic-pane-render-source.js +4 -0
- package/packages/daemon/src/command-center/resources/saved-machine-route.ts +4 -0
- package/packages/daemon/src/command-center/resources/saved-machine-watch.ts +132 -0
- package/packages/daemon/src/command-center/server.ts +18 -0
- package/packages/daemon/src/command-center/tmux-servers.ts +14 -0
- package/packages/daemon/src/lib/daemon-embed.ts +81 -3
- package/packages/daemon/src/lib/embedded-tmux-server-owners.ts +3 -0
- package/packages/daemon/src/lib/native-surface-context.ts +123 -0
- package/packages/daemon/src/lib/tmux-server-owner.ts +12 -0
- package/packages/daemon/src/server/native-surface-provider-upgrade.ts +103 -0
- package/packages/daemon/src/terminal/graphics/compress-chunk.ts +49 -0
- package/packages/daemon/src/terminal/graphics/local-image-owner.ts +346 -0
- package/packages/daemon/src/terminal/graphics/local-image-store.ts +286 -0
- package/packages/daemon/src/terminal/graphics/native-surface-demand.ts +88 -0
- package/packages/daemon/src/terminal/graphics/native-surface-provider-channel.ts +161 -0
- package/packages/daemon/src/terminal/graphics/native-surface-provider.ts +308 -0
- package/packages/daemon/src/terminal/graphics/native-surface-viewer.ts +154 -0
- package/packages/daemon/src/terminal/mirror/mirror-service.ts +5 -0
- package/packages/daemon/src/terminal/mirror/session-channel.ts +31 -10
- package/packages/daemon/src/terminal/pane-stream/pane-stream-websocket.ts +446 -15
- package/packages/daemon/src/terminal/pane-stream/runtime.ts +14 -1
- package/packages/daemon/src/terminal/session-runtime/registry.ts +2 -0
- package/packages/daemon/src/terminal/session-runtime/runtime-observability.ts +1 -1
- package/packages/daemon/src/terminal/session-runtime/terminal-delivery-hub.ts +216 -22
- package/packages/daemon/src/terminal/session-runtime/terminal-delivery-observation-identity.ts +7 -4
- package/packages/daemon/src/terminal/session-runtime/terminal-projection-delivery.ts +59 -0
- package/packages/daemon/src/terminal/session-runtime/terminal-replica-owner.ts +3 -4
- package/packages/daemon/src/tui/mirror/open-tui-workspace-runtime-port.ts +4 -0
- package/packages/daemon/src/tui/mirror/runtime/application-terminal-interaction-controller.ts +26 -4
- package/packages/daemon/src/tui/mirror/runtime/application-terminal-workspace.tsx +20 -1
- package/packages/daemon/src/tui/mirror/runtime/renderer-probe.ts +257 -0
- package/packages/daemon/src/tui/mirror/runtime/terminal-fast-lane-renderer-adapter.ts +15 -0
- package/packages/daemon/src/tui/mirror/semantic-pane-render-source.ts +4 -0
- package/packages/daemon-client/src/pane-stream-client.ts +75 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { TerminalAttachmentSemanticPaneIdSchemaZ } from "./semantic-identity.ts";
|
|
3
|
+
import { SessionRuntimeGenerationSchemaZ } from "./session-runtime.ts";
|
|
4
|
+
|
|
5
|
+
/** Native surface control only: no pixel bytes, filesystem paths or raw Mach names.
|
|
6
|
+
* These schemas do not authenticate a peer or advertise support. They are valid
|
|
7
|
+
* for native delivery only after explicit negotiation and verified same-host
|
|
8
|
+
* authentication. A receiver request may instead get an unsupported fallback;
|
|
9
|
+
* that never authorizes endpoint lookup. SSH/unsupported peers retain the
|
|
10
|
+
* existing graphics transport.
|
|
11
|
+
*/
|
|
12
|
+
export const TERMINAL_SURFACE_MAX_BYTES = 64 * 1024 * 1024;
|
|
13
|
+
/** Additive opt-in; does not replace binary/kitty fallback capability bundles. */
|
|
14
|
+
export const TERMINAL_SURFACE_CAPABILITY_VERSION = 116;
|
|
15
|
+
export const TERMINAL_SURFACE_MAX_OUTSTANDING = 8;
|
|
16
|
+
export const TERMINAL_SURFACE_MAX_CONTROL_BYTES = 16 * 1024;
|
|
17
|
+
const NonNilUuid = z.uuid().refine((value) => value !== "00000000-0000-0000-0000-000000000000");
|
|
18
|
+
const Sequence = z.number().int().min(1).max(Number.MAX_SAFE_INTEGER);
|
|
19
|
+
/** Opaque full kernel audit identity, including incarnation. Values from control
|
|
20
|
+
* must still match the kernel trailer; numeric PID alone is never proof. */
|
|
21
|
+
export const TerminalSurfaceAuditTokenSchemaZ = z
|
|
22
|
+
.array(z.number().int().min(0).max(0xffff_ffff))
|
|
23
|
+
.length(8)
|
|
24
|
+
.refine((token) => token.some((word) => word !== 0));
|
|
25
|
+
const scope = {
|
|
26
|
+
version: z.literal(1),
|
|
27
|
+
generation: SessionRuntimeGenerationSchemaZ,
|
|
28
|
+
connectionNonce: NonNilUuid,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const TerminalSurfaceWatchSchemaZ = z
|
|
32
|
+
.object({
|
|
33
|
+
type: z.literal("terminal-surface-watch"),
|
|
34
|
+
version: z.literal(1),
|
|
35
|
+
generation: SessionRuntimeGenerationSchemaZ,
|
|
36
|
+
})
|
|
37
|
+
.strict();
|
|
38
|
+
export type TerminalSurfaceWatch = z.infer<typeof TerminalSurfaceWatchSchemaZ>;
|
|
39
|
+
|
|
40
|
+
export const TerminalSurfaceAvailableSchemaZ = z
|
|
41
|
+
.object({
|
|
42
|
+
type: z.literal("terminal-surface-available"),
|
|
43
|
+
version: z.literal(1),
|
|
44
|
+
generation: SessionRuntimeGenerationSchemaZ,
|
|
45
|
+
connectionNonce: NonNilUuid.nullable(),
|
|
46
|
+
})
|
|
47
|
+
.strict();
|
|
48
|
+
export type TerminalSurfaceAvailable = z.infer<typeof TerminalSurfaceAvailableSchemaZ>;
|
|
49
|
+
|
|
50
|
+
export const TerminalSurfaceReceiverSchemaZ = z
|
|
51
|
+
.object({
|
|
52
|
+
type: z.literal("terminal-surface-receiver"),
|
|
53
|
+
...scope,
|
|
54
|
+
pid: z.number().int().min(1).max(0x7fff_ffff),
|
|
55
|
+
slot: z.number().int().min(0).max(31),
|
|
56
|
+
auditToken: TerminalSurfaceAuditTokenSchemaZ,
|
|
57
|
+
challenge: NonNilUuid,
|
|
58
|
+
})
|
|
59
|
+
.strict();
|
|
60
|
+
export type TerminalSurfaceReceiver = z.infer<typeof TerminalSurfaceReceiverSchemaZ>;
|
|
61
|
+
|
|
62
|
+
export const TerminalSurfacePeerSchemaZ = z
|
|
63
|
+
.object({
|
|
64
|
+
type: z.literal("terminal-surface-peer"),
|
|
65
|
+
...scope,
|
|
66
|
+
auditToken: TerminalSurfaceAuditTokenSchemaZ,
|
|
67
|
+
})
|
|
68
|
+
.strict();
|
|
69
|
+
export type TerminalSurfacePeer = z.infer<typeof TerminalSurfacePeerSchemaZ>;
|
|
70
|
+
|
|
71
|
+
/** Mirrors the Rust admission envelope. Admission additionally checks the exact
|
|
72
|
+
* retained committed pane identity before reservation and again before import.
|
|
73
|
+
* A storage ticket correlates a separately transferred capability, never a path.
|
|
74
|
+
*/
|
|
75
|
+
/** Rectangle in the committed pane's visible cell grid. History and pane
|
|
76
|
+
* replacement never inherit this placement; the canonical identity fences it. */
|
|
77
|
+
export const TerminalSurfacePlacementSchemaZ = z
|
|
78
|
+
.object({
|
|
79
|
+
row: z.number().int().min(0).max(16383),
|
|
80
|
+
column: z.number().int().min(0).max(16383),
|
|
81
|
+
rows: z.number().int().min(1).max(16384),
|
|
82
|
+
columns: z.number().int().min(1).max(16384),
|
|
83
|
+
})
|
|
84
|
+
.strict()
|
|
85
|
+
.refine((rect) => rect.row + rect.rows <= 16384 && rect.column + rect.columns <= 16384);
|
|
86
|
+
export type TerminalSurfacePlacement = z.infer<typeof TerminalSurfacePlacementSchemaZ>;
|
|
87
|
+
|
|
88
|
+
export const TerminalSurfaceOfferSchemaZ = z
|
|
89
|
+
.object({
|
|
90
|
+
type: z.literal("terminal-surface-offer"),
|
|
91
|
+
version: z.literal(1),
|
|
92
|
+
pane: TerminalAttachmentSemanticPaneIdSchemaZ,
|
|
93
|
+
generation: SessionRuntimeGenerationSchemaZ,
|
|
94
|
+
incarnation: z.string().min(1).max(256),
|
|
95
|
+
deliveryNonce: NonNilUuid,
|
|
96
|
+
canonicalRevision: z.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
|
|
97
|
+
canonicalStateHash: z.string().regex(/^[0-9a-f]{16}$/u),
|
|
98
|
+
sequence: Sequence,
|
|
99
|
+
surfaceId: NonNilUuid,
|
|
100
|
+
placement: TerminalSurfacePlacementSchemaZ,
|
|
101
|
+
storageTicket: NonNilUuid,
|
|
102
|
+
format: z.literal("bgra8-straight"),
|
|
103
|
+
width: z.number().int().min(1).max(16384),
|
|
104
|
+
height: z.number().int().min(1).max(16384),
|
|
105
|
+
stride: z.number().int().min(4).max(TERMINAL_SURFACE_MAX_BYTES),
|
|
106
|
+
allocationBytes: z.number().int().min(4).max(TERMINAL_SURFACE_MAX_BYTES),
|
|
107
|
+
})
|
|
108
|
+
.strict()
|
|
109
|
+
.refine(
|
|
110
|
+
(offer) =>
|
|
111
|
+
offer.stride % 4 === 0 &&
|
|
112
|
+
offer.stride >= offer.width * 4 &&
|
|
113
|
+
offer.stride * offer.height <= offer.allocationBytes,
|
|
114
|
+
);
|
|
115
|
+
export type TerminalSurfaceOffer = z.infer<typeof TerminalSurfaceOfferSchemaZ>;
|
|
116
|
+
|
|
117
|
+
/** Sent on the original connection only after final backing/GPU ownership drops.
|
|
118
|
+
* Receipt, import, CPU decode or submission to Metal is not retirement. */
|
|
119
|
+
export const TerminalSurfaceRetiredSchemaZ = z
|
|
120
|
+
.object({
|
|
121
|
+
type: z.literal("terminal-surface-retired"),
|
|
122
|
+
...scope,
|
|
123
|
+
sequence: Sequence,
|
|
124
|
+
})
|
|
125
|
+
.strict();
|
|
126
|
+
export type TerminalSurfaceRetired = z.infer<typeof TerminalSurfaceRetiredSchemaZ>;
|
|
127
|
+
|
|
128
|
+
/** Ends this connection's native negotiation. A replacement connection starts
|
|
129
|
+
* fresh; no native storage is freed merely because fallback was requested. */
|
|
130
|
+
export const TerminalSurfaceFallbackSchemaZ = z
|
|
131
|
+
.object({
|
|
132
|
+
type: z.literal("terminal-surface-fallback"),
|
|
133
|
+
...scope,
|
|
134
|
+
reason: z.enum(["unsupported", "timeout", "identity", "budget", "storage"]),
|
|
135
|
+
})
|
|
136
|
+
.strict();
|
|
137
|
+
export type TerminalSurfaceFallback = z.infer<typeof TerminalSurfaceFallbackSchemaZ>;
|