@cjhyy/code-shell-server 0.9.48 → 0.9.50

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.
Files changed (36) hide show
  1. package/dist/desktop-web/http-api.d.ts +9 -0
  2. package/dist/desktop-web/http-api.js +17 -1
  3. package/dist/http-byte-range.d.ts +5 -0
  4. package/dist/http-byte-range.js +19 -0
  5. package/dist/hub/files.js +71 -9
  6. package/dist/index.panels.d.ts +1 -0
  7. package/dist/index.panels.js +1 -0
  8. package/dist/mobile-remote/access-passcode.d.ts +5 -0
  9. package/dist/mobile-remote/access-passcode.js +48 -9
  10. package/dist/mobile-remote/mobile-client-event-validator.js +54 -4
  11. package/dist/mobile-remote/pending-approvals.d.ts +13 -1
  12. package/dist/mobile-remote/pending-approvals.js +45 -9
  13. package/dist/mobile-remote/remote-host-manager.d.ts +11 -1
  14. package/dist/mobile-remote/remote-host-manager.js +140 -56
  15. package/dist/mobile-remote/tunnel-manager.d.ts +1 -0
  16. package/dist/mobile-remote/tunnel-manager.js +45 -20
  17. package/dist/panels/background-service-process.d.ts +39 -0
  18. package/dist/panels/background-service-process.js +457 -0
  19. package/dist/panels/background-service-store.d.ts +67 -0
  20. package/dist/panels/background-service-store.js +539 -0
  21. package/dist/panels/background-services.d.ts +193 -0
  22. package/dist/panels/background-services.js +1159 -0
  23. package/dist/panels/bridge-contract.d.ts +1 -1
  24. package/dist/panels/execution-gate.d.ts +7 -1
  25. package/dist/panels/execution-gate.js +26 -0
  26. package/dist/panels/management.js +49 -13
  27. package/dist/panels/process-files.js +28 -3
  28. package/dist/panels/resources/library.d.ts +1 -4
  29. package/dist/panels/resources/library.js +19 -21
  30. package/dist/panels/resources/references.js +21 -8
  31. package/dist/panels/runtime.js +2 -2
  32. package/dist/panels/tool-jobs.d.ts +2 -0
  33. package/dist/panels/tool-jobs.js +1 -1
  34. package/dist/sessions-service.d.ts +4 -0
  35. package/dist/sessions-service.js +17 -0
  36. package/package.json +6 -6
@@ -0,0 +1,193 @@
1
+ import { type PanelExecutionScope, type PanelExecutionGate } from "./execution-gate.js";
2
+ import { type CommitBoundary, type ServiceProcessIdentity, type ServiceIdentityInspector } from "./background-service-store.js";
3
+ import { spawnServiceProcess } from "./background-service-process.js";
4
+ export declare const panelBackgroundServiceMethods: readonly ["services.get", "services.setDesired", "services.configure", "services.attach", "services.detach", "services.read", "services.control"];
5
+ export declare const backgroundServiceLimits: {
6
+ maxRunning: number;
7
+ maxPerApp: number;
8
+ maxPerScope: number;
9
+ healthyResetMs: number;
10
+ maxRetainedScopes: number;
11
+ maxChannels: number;
12
+ maxChannelBytes: number;
13
+ maxConfigBytes: number;
14
+ minCommitIntervalMs: number;
15
+ drainTimeoutMs: number;
16
+ maxLifetimeMs: number;
17
+ maxConsecutiveFailures: number;
18
+ maxServices: number;
19
+ };
20
+ export interface BackgroundServiceDefinition {
21
+ entry: string;
22
+ channels: Record<string, {
23
+ maxBytes: number;
24
+ }>;
25
+ maxLifetimeMs: number;
26
+ idleGraceMs: number;
27
+ }
28
+ export interface BackgroundServiceScope {
29
+ appId: string;
30
+ projectPath: string;
31
+ name: string;
32
+ }
33
+ type Desired = "off" | "on-demand" | "always";
34
+ type Phase = "stopped" | "starting" | "running" | "draining" | "backoff" | "failed" | "paused" | "revoked" | "stop-unconfirmed" | "needs-consent";
35
+ interface Channel {
36
+ generation: number;
37
+ seq: number;
38
+ committedAt: number;
39
+ value: unknown;
40
+ }
41
+ interface Control {
42
+ requestKey: string;
43
+ action: string;
44
+ result: string;
45
+ at: number;
46
+ }
47
+ export interface BackgroundServiceState {
48
+ desired: Desired;
49
+ desiredRevision: number;
50
+ configRevision: number;
51
+ phase: Phase;
52
+ generation: number;
53
+ revision: string;
54
+ startedAt: number | null;
55
+ restarts: number;
56
+ lastError: string | null;
57
+ controls: Control[];
58
+ }
59
+ export interface BackgroundServiceDescription {
60
+ revision: string;
61
+ definition: BackgroundServiceDefinition;
62
+ /** Resolve verified Host runtimes only at launch, never during read-only discovery. */
63
+ executable: string | (() => Promise<string>);
64
+ entry: string;
65
+ sha256: string;
66
+ packageRoot: string;
67
+ cwd: string;
68
+ }
69
+ export interface BackgroundServiceOptions {
70
+ rootDir: string;
71
+ describe(scope: BackgroundServiceScope): Promise<BackgroundServiceDescription>;
72
+ onEvent?(scope: BackgroundServiceScope, event: {
73
+ name: string;
74
+ state: BackgroundServiceState;
75
+ generation: number;
76
+ channel?: string;
77
+ seq?: number;
78
+ }): void;
79
+ gate?: PanelExecutionGate;
80
+ now?: () => number;
81
+ fault?: (boundary: CommitBoundary) => void;
82
+ identities?: ServiceIdentityInspector;
83
+ groupStatus?: (identity: ServiceProcessIdentity) => "alive" | "dead" | "unknown";
84
+ spawn?: typeof spawnServiceProcess;
85
+ /** Tests can block exactly at the authoritative publication boundary. */
86
+ beforePublish?: () => Promise<void>;
87
+ afterSpawnBeforeIdentity?: (identity: ServiceProcessIdentity) => Promise<void>;
88
+ }
89
+ /** Host-only coordinator. Package code never receives the authoritative storage path. */
90
+ export declare class PanelBackgroundService {
91
+ private readonly options;
92
+ private readonly store;
93
+ private readonly records;
94
+ private readonly processes;
95
+ private readonly attachments;
96
+ private readonly pending;
97
+ private readonly failedCommits;
98
+ private emergency?;
99
+ private storageRetryAt;
100
+ private readonly publishTimers;
101
+ private readonly idleSince;
102
+ private readonly heldForUpdate;
103
+ private tail;
104
+ private timer?;
105
+ private initialized;
106
+ private initialization?;
107
+ private initializationRetryAt;
108
+ private initializationFailures;
109
+ private initializationError;
110
+ private recoveringStorage;
111
+ private lastAvailability;
112
+ private availabilityRevision;
113
+ private readonly availabilityListeners;
114
+ private stopping;
115
+ private ticking;
116
+ private unregister?;
117
+ private unregisterMutation?;
118
+ private unregisterDrain?;
119
+ private readonly now;
120
+ constructor(options: BackgroundServiceOptions);
121
+ private exclusive;
122
+ isAvailable(): boolean;
123
+ /** Subscribe to transitions; callers read isAvailable() for the initial snapshot. */
124
+ subscribeAvailability(listener: (available: boolean) => void): () => void;
125
+ private notifyAvailability;
126
+ private groupStatus;
127
+ private legacyLocalityDiagnostic;
128
+ private markStopUnconfirmed;
129
+ private startTimer;
130
+ initialize(): Promise<void>;
131
+ private commit;
132
+ private beginEmergencyStop;
133
+ private recoverStorage;
134
+ private emit;
135
+ private ensure;
136
+ private emptyRecord;
137
+ private compactInactive;
138
+ private inspect;
139
+ private receipt;
140
+ private remember;
141
+ get(scope: BackgroundServiceScope): Promise<BackgroundServiceState>;
142
+ read(scope: BackgroundServiceScope, channel: string, afterSeq?: number): Promise<Channel | {
143
+ generation: number;
144
+ seq: number;
145
+ committedAt: null;
146
+ value: null;
147
+ unchanged?: undefined;
148
+ } | {
149
+ unchanged: true;
150
+ generation?: undefined;
151
+ seq?: undefined;
152
+ committedAt?: undefined;
153
+ value?: undefined;
154
+ }>;
155
+ setDesired(scope: BackgroundServiceScope, input: {
156
+ desired: Desired;
157
+ expectedRevision: number;
158
+ requestKey: string;
159
+ }): Promise<BackgroundServiceState>;
160
+ configure(scope: BackgroundServiceScope, input: {
161
+ config: unknown;
162
+ expectedConfigRevision: number;
163
+ requestKey: string;
164
+ }): Promise<{
165
+ configRevision: number;
166
+ }>;
167
+ attach(scope: BackgroundServiceScope, guestId: number): Promise<{
168
+ attachId: string;
169
+ state: BackgroundServiceState;
170
+ }>;
171
+ detach(attachId: string, guestId: number): Promise<{
172
+ detached: boolean;
173
+ }>;
174
+ detachGuest(guestId: number): void;
175
+ control(scope: BackgroundServiceScope, input: {
176
+ action: "poke" | "pause" | "resume" | "stop" | "restart";
177
+ requestKey: string;
178
+ }): Promise<BackgroundServiceState>;
179
+ private stop;
180
+ private assertCapacity;
181
+ private exitedPhase;
182
+ private reconcile;
183
+ private failAttempt;
184
+ private onLine;
185
+ private onExit;
186
+ tick(): Promise<void>;
187
+ drain(matches: (scope: PanelExecutionScope) => boolean): Promise<void>;
188
+ /** Called after the catalog mutation releases its admission barrier, success or rollback. */
189
+ resumeAfterUpdate(): void;
190
+ revoke(appId: string): Promise<void>;
191
+ shutdown(): Promise<void>;
192
+ }
193
+ export {};