agl 22.0.4 → 24.0.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/changelog.md +21 -0
- package/dist_serve/bundle.js +2418 -2408
- package/dist_serve/bundle.js.map +1 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.authstore.js +2 -2
- package/dist_ts/classes.browserresourcehost.d.ts +1 -0
- package/dist_ts/classes.browserresourcehost.js +7 -1
- package/dist_ts/classes.controller.d.ts +37 -5
- package/dist_ts/classes.controller.js +1491 -249
- package/dist_ts/classes.flexservice.d.ts +5 -0
- package/dist_ts/classes.flexservice.js +131 -4
- package/dist_ts/classes.opencodeclient.d.ts +2 -0
- package/dist_ts/classes.opencodeclient.js +23 -1
- package/dist_ts/classes.validation.d.ts +9 -1
- package/dist_ts/classes.validation.js +62 -7
- package/dist_ts/interfaces.flexipc.d.ts +18 -1
- package/dist_ts/interfaces.flexipc.js +42 -8
- package/dist_ts_interfaces/browsertransport.d.ts +72 -0
- package/dist_ts_interfaces/browsertransport.js +47 -0
- package/dist_ts_interfaces/index.d.ts +1 -0
- package/dist_ts_interfaces/index.js +2 -1
- package/dist_ts_interfaces/interfaces.d.ts +42 -7
- package/dist_ts_interfaces/interfaces.js +5 -3
- package/dist_ts_interfaces/requests.d.ts +20 -21
- package/package.json +7 -7
- package/readme.md +12 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.authstore.ts +1 -1
- package/ts/classes.browserresourcehost.ts +7 -0
- package/ts/classes.controller.ts +1960 -305
- package/ts/classes.flexservice.ts +132 -2
- package/ts/classes.opencodeclient.ts +19 -0
- package/ts/classes.validation.ts +77 -6
- package/ts/interfaces.flexipc.ts +65 -7
- package/ts_interfaces/browsertransport.ts +126 -0
- package/ts_interfaces/index.ts +1 -0
- package/ts_interfaces/interfaces.ts +46 -11
- package/ts_interfaces/requests.ts +23 -30
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/classes.browserviewtransport.ts +532 -0
- package/ts_web/classes.controllersocketclient.ts +119 -29
- package/ts_web/elements.harnesscontrollerapp.ts +1727 -287
- package/ts_web/index.ts +1 -0
- package/ts_web/plugins.ts +2 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export const controllerProtocolVersion = 22 as const;
|
|
1
|
+
export const controllerProtocolVersion = 24 as const;
|
|
4
2
|
export const controllerUpgradeManagementVersion = 2 as const;
|
|
5
3
|
export const controllerPackageName = 'agl' as const;
|
|
6
4
|
export const controllerMaxToolEventBytes = 48 * 1024;
|
|
7
5
|
export const controllerMaxLiveMessageEventBytes = 128 * 1024;
|
|
6
|
+
export const controllerLiveMessageDeltaTargetBytes = 16 * 1024;
|
|
8
7
|
export const controllerInitialMessageBundleLimit = 20;
|
|
9
8
|
export const controllerMaximumMessageBundles = 200;
|
|
10
9
|
export const controllerMaximumTranscriptBytes = 512 * 1024;
|
|
@@ -222,6 +221,8 @@ export interface IControllerBrowserTabState {
|
|
|
222
221
|
}
|
|
223
222
|
|
|
224
223
|
export interface IControllerBrowserViewState {
|
|
224
|
+
/** Monotonic for the complete lifetime of one browser view. */
|
|
225
|
+
revision: number;
|
|
225
226
|
status: 'stopped' | 'starting' | 'running' | 'stopping';
|
|
226
227
|
activeTabId: string | null;
|
|
227
228
|
viewportRevision: number;
|
|
@@ -230,9 +231,7 @@ export interface IControllerBrowserViewState {
|
|
|
230
231
|
lastError?: { code: string; message: string; fatal: boolean; tabId?: string };
|
|
231
232
|
}
|
|
232
233
|
|
|
233
|
-
export interface
|
|
234
|
-
TDirection extends plugins.typedrequestInterfaces.TVirtualStreamDirection,
|
|
235
|
-
> {
|
|
234
|
+
export interface IControllerBrowserFrameMetadata {
|
|
236
235
|
tabId: string;
|
|
237
236
|
sequence: number;
|
|
238
237
|
generation: number;
|
|
@@ -251,14 +250,16 @@ export interface IControllerBrowserFrame<
|
|
|
251
250
|
scrollOffsetY: number;
|
|
252
251
|
timestamp?: number;
|
|
253
252
|
};
|
|
254
|
-
|
|
253
|
+
dataByteLength: number;
|
|
255
254
|
}
|
|
256
255
|
|
|
257
|
-
export
|
|
258
|
-
|
|
259
|
-
|
|
256
|
+
export interface IControllerBrowserFrame extends Omit<IControllerBrowserFrameMetadata, 'dataByteLength'> {
|
|
257
|
+
data: Uint8Array;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export type TControllerBrowserViewEvent =
|
|
260
261
|
| { type: 'state'; state: IControllerBrowserViewState }
|
|
261
|
-
| { type: 'frame'; frame: IControllerBrowserFrame
|
|
262
|
+
| { type: 'frame'; frame: IControllerBrowserFrame }
|
|
262
263
|
| { type: 'error'; error: { code: string; message: string; fatal: boolean; tabId?: string } };
|
|
263
264
|
|
|
264
265
|
export interface IControllerBrowserFrameAcknowledgement {
|
|
@@ -475,6 +476,34 @@ export interface IControllerTextUpdate {
|
|
|
475
476
|
streamEpoch: number;
|
|
476
477
|
}
|
|
477
478
|
|
|
479
|
+
export interface IControllerReasoningDelta {
|
|
480
|
+
sessionId: IControllerRuntimeId;
|
|
481
|
+
messageId: IControllerRuntimeId;
|
|
482
|
+
partId: IControllerRuntimeId;
|
|
483
|
+
delta: string;
|
|
484
|
+
baseTextUtf8Bytes: number;
|
|
485
|
+
textUtf8Bytes: number;
|
|
486
|
+
/** Authoritative source coordinates; required for Flex and absent for OpenCode. */
|
|
487
|
+
order?: IControllerTranscriptOrder;
|
|
488
|
+
sourceUpdatedAt: number;
|
|
489
|
+
revision: number;
|
|
490
|
+
streamEpoch: number;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
export interface IControllerTextDelta {
|
|
494
|
+
sessionId: IControllerRuntimeId;
|
|
495
|
+
messageId: IControllerRuntimeId;
|
|
496
|
+
partId: IControllerRuntimeId;
|
|
497
|
+
delta: string;
|
|
498
|
+
baseTextUtf8Bytes: number;
|
|
499
|
+
textUtf8Bytes: number;
|
|
500
|
+
/** Authoritative source coordinates; required for Flex and absent for OpenCode. */
|
|
501
|
+
order?: IControllerTranscriptOrder;
|
|
502
|
+
sourceUpdatedAt: number;
|
|
503
|
+
revision: number;
|
|
504
|
+
streamEpoch: number;
|
|
505
|
+
}
|
|
506
|
+
|
|
478
507
|
export interface IControllerToolStreamCursor {
|
|
479
508
|
streamEpoch: number;
|
|
480
509
|
revision: number;
|
|
@@ -788,7 +817,9 @@ export const controllerEventTypes = [
|
|
|
788
817
|
'session.history.changed',
|
|
789
818
|
'session.tool.updated',
|
|
790
819
|
'session.reasoning.updated',
|
|
820
|
+
'session.reasoning.delta',
|
|
791
821
|
'session.text.updated',
|
|
822
|
+
'session.text.delta',
|
|
792
823
|
'permissions.changed',
|
|
793
824
|
'harness.changed',
|
|
794
825
|
'projects.changed',
|
|
@@ -813,8 +844,12 @@ export interface IControllerEvent {
|
|
|
813
844
|
toolExecution?: IControllerToolExecution;
|
|
814
845
|
/** Present only on a live OpenCode or Flex reasoning snapshot. */
|
|
815
846
|
reasoningUpdate?: IControllerReasoningUpdate;
|
|
847
|
+
/** Present only on an exact live OpenCode or Flex reasoning delta. */
|
|
848
|
+
reasoningDelta?: IControllerReasoningDelta;
|
|
816
849
|
/** Present only on a live OpenCode or Flex text snapshot. */
|
|
817
850
|
textUpdate?: IControllerTextUpdate;
|
|
851
|
+
/** Present only on an exact live OpenCode or Flex text delta. */
|
|
852
|
+
textDelta?: IControllerTextDelta;
|
|
818
853
|
/** Present only on a session.draft.changed event. */
|
|
819
854
|
sessionDraftUpdate?: IControllerSessionDraftUpdate;
|
|
820
855
|
/** Ordered harness stream barrier carried by harness.changed. */
|
|
@@ -10,8 +10,6 @@ import type {
|
|
|
10
10
|
TControllerResource,
|
|
11
11
|
TControllerResourceKind,
|
|
12
12
|
IControllerBrowserViewState,
|
|
13
|
-
TControllerBrowserViewEvent,
|
|
14
|
-
TControllerBrowserViewOperation,
|
|
15
13
|
IControllerProvider,
|
|
16
14
|
IControllerProviderAccountRateLimits,
|
|
17
15
|
IControllerProviderConnection,
|
|
@@ -927,6 +925,9 @@ export interface IReq_ControllerBrowserViewOpen extends plugins.typedrequestInte
|
|
|
927
925
|
viewId: string;
|
|
928
926
|
resourceId: string;
|
|
929
927
|
attachmentRevision: number;
|
|
928
|
+
streamGeneration: number;
|
|
929
|
+
events: plugins.typedrequestInterfaces.TVirtualStream<'receive'>;
|
|
930
|
+
operations: plugins.typedrequestInterfaces.TVirtualStream<'send'>;
|
|
930
931
|
state: IControllerBrowserViewState;
|
|
931
932
|
};
|
|
932
933
|
}
|
|
@@ -936,41 +937,34 @@ export interface IReq_ControllerBrowserViewActivate extends plugins.typedrequest
|
|
|
936
937
|
IReq_ControllerBrowserViewActivate
|
|
937
938
|
> {
|
|
938
939
|
method: 'controller.browser.view.activate';
|
|
939
|
-
request: { viewId: string };
|
|
940
|
+
request: { viewId: string; streamGeneration: number };
|
|
940
941
|
response: { activated: true };
|
|
941
942
|
}
|
|
942
943
|
|
|
943
|
-
export interface
|
|
944
|
-
plugins.typedrequestInterfaces.ITypedRequest,
|
|
945
|
-
IReq_ControllerBrowserViewClose
|
|
946
|
-
> {
|
|
947
|
-
method: 'controller.browser.view.close';
|
|
948
|
-
request: { viewId: string };
|
|
949
|
-
response: { closed: true };
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
export interface IReq_ControllerBrowserViewOperate extends plugins.typedrequestInterfaces.implementsTR<
|
|
953
|
-
plugins.typedrequestInterfaces.ITypedRequest,
|
|
954
|
-
IReq_ControllerBrowserViewOperate
|
|
955
|
-
> {
|
|
956
|
-
method: 'controller.browser.view.operate';
|
|
957
|
-
request: { viewId: string; operation: TControllerBrowserViewOperation };
|
|
958
|
-
response: { accepted: boolean; state: IControllerBrowserViewState };
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
/** Server to client push for one exact human browser view. */
|
|
962
|
-
export interface IReq_ControllerBrowserViewEvent extends plugins.typedrequestInterfaces.implementsTR<
|
|
944
|
+
export interface IReq_ControllerBrowserViewRecover extends plugins.typedrequestInterfaces.implementsTR<
|
|
963
945
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
964
|
-
|
|
946
|
+
IReq_ControllerBrowserViewRecover
|
|
965
947
|
> {
|
|
966
|
-
method: 'controller.browser.view.
|
|
967
|
-
request: {
|
|
948
|
+
method: 'controller.browser.view.recover';
|
|
949
|
+
request: { viewId: string; expectedStreamGeneration: number };
|
|
950
|
+
response: {
|
|
968
951
|
viewId: string;
|
|
969
952
|
resourceId: string;
|
|
970
953
|
attachmentRevision: number;
|
|
971
|
-
|
|
954
|
+
streamGeneration: number;
|
|
955
|
+
events: plugins.typedrequestInterfaces.TVirtualStream<'receive'>;
|
|
956
|
+
operations: plugins.typedrequestInterfaces.TVirtualStream<'send'>;
|
|
957
|
+
state: IControllerBrowserViewState;
|
|
972
958
|
};
|
|
973
|
-
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
export interface IReq_ControllerBrowserViewClose extends plugins.typedrequestInterfaces.implementsTR<
|
|
962
|
+
plugins.typedrequestInterfaces.ITypedRequest,
|
|
963
|
+
IReq_ControllerBrowserViewClose
|
|
964
|
+
> {
|
|
965
|
+
method: 'controller.browser.view.close';
|
|
966
|
+
request: { viewId: string; expectedStreamGeneration: number };
|
|
967
|
+
response: { closed: boolean };
|
|
974
968
|
}
|
|
975
969
|
|
|
976
970
|
export interface IReq_ControllerTerminalCreate extends plugins.typedrequestInterfaces.implementsTR<
|
|
@@ -1171,8 +1165,8 @@ export type TControllerRequest =
|
|
|
1171
1165
|
| IReq_ControllerResourceStop
|
|
1172
1166
|
| IReq_ControllerBrowserViewOpen
|
|
1173
1167
|
| IReq_ControllerBrowserViewActivate
|
|
1168
|
+
| IReq_ControllerBrowserViewRecover
|
|
1174
1169
|
| IReq_ControllerBrowserViewClose
|
|
1175
|
-
| IReq_ControllerBrowserViewOperate
|
|
1176
1170
|
| IReq_ControllerTerminalList
|
|
1177
1171
|
| IReq_ControllerTerminalCreate
|
|
1178
1172
|
| IReq_ControllerTerminalRename
|
|
@@ -1182,5 +1176,4 @@ export type TControllerRequest =
|
|
|
1182
1176
|
| IReq_ControllerTerminalInput
|
|
1183
1177
|
| IReq_ControllerTerminalResize
|
|
1184
1178
|
| IReq_ControllerTerminalOutput
|
|
1185
|
-
| IReq_ControllerBrowserViewEvent
|
|
1186
1179
|
| IReq_ControllerEvent;
|