agl 41.0.1 → 41.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/changelog.md +24 -0
- package/dist_serve/bundle.js +1448 -1448
- package/dist_serve/bundle.js.map +2 -2
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/aglapi/aglapisurface.document.js +7 -3
- package/dist_ts/classes.authmodels.d.ts +15 -0
- package/dist_ts/classes.authmodels.js +78 -7
- package/dist_ts/classes.authstore.js +23 -6
- package/dist_ts/classes.cli.js +8 -3
- package/dist_ts/classes.controller.d.ts +13 -0
- package/dist_ts/classes.controller.js +51 -14
- package/dist_ts/classes.controllermanagement.d.ts +53 -6
- package/dist_ts/classes.controllermanagement.js +180 -72
- package/dist_ts/classes.inferencegateway.d.ts +6 -6
- package/dist_ts/classes.inferencegateway.js +28 -15
- package/dist_ts/classes.inferenceusage.d.ts +19 -7
- package/dist_ts/classes.inferenceusage.js +49 -13
- package/dist_ts/classes.inferenceusagetap.d.ts +15 -3
- package/dist_ts/classes.inferenceusagetap.js +16 -9
- package/dist_ts/classes.processinspection.d.ts +3 -1
- package/dist_ts/classes.processinspection.js +4 -2
- package/dist_ts/classes.proxycontrol.d.ts +22 -7
- package/dist_ts/classes.proxycontrol.js +5 -3
- package/dist_ts/classes.proxycontrolclient.d.ts +4 -3
- package/dist_ts/classes.proxycontrolclient.js +7 -5
- package/dist_ts/classes.proxydaemon.d.ts +6 -4
- package/dist_ts/classes.proxydaemon.js +42 -17
- package/dist_ts/classes.proxyleaseholder.d.ts +11 -2
- package/dist_ts/classes.proxyleaseholder.js +25 -2
- package/dist_ts/classes.proxystore.d.ts +3 -2
- package/dist_ts/classes.proxystore.js +5 -2
- package/dist_ts/classes.upgradecoordinator.d.ts +2 -1
- package/dist_ts/classes.upgradecoordinator.js +13 -10
- package/dist_ts/classes.upgradetransaction.d.ts +6 -0
- package/dist_ts/classes.upgradetransaction.js +38 -13
- package/dist_ts/classes.usagefeed.js +3 -2
- package/dist_ts/functions.controllermanagementsurface.d.ts +37 -0
- package/dist_ts/functions.controllermanagementsurface.js +110 -0
- package/dist_ts/functions.inferencecli.d.ts +6 -3
- package/dist_ts/functions.inferencecli.js +9 -5
- package/dist_ts/functions.inferencecliarguments.d.ts +1 -1
- package/dist_ts/functions.inferencecliarguments.js +19 -7
- package/dist_ts/functions.inferencelaunch.d.ts +30 -9
- package/dist_ts/functions.inferencelaunch.js +49 -23
- package/dist_ts/interfaces.auth.d.ts +14 -3
- package/dist_ts/interfaces.auth.js +4 -3
- package/dist_ts_interfaces/index.d.ts +1 -0
- package/dist_ts_interfaces/index.js +2 -1
- package/dist_ts_interfaces/interfaces.d.ts +6 -1
- package/dist_ts_interfaces/interfaces.js +2 -2
- package/dist_ts_interfaces/management.d.ts +33 -0
- package/dist_ts_interfaces/management.js +35 -0
- package/dist_ts_interfaces/metrics.d.ts +29 -7
- package/dist_ts_interfaces/metrics.js +14 -1
- package/package.json +6 -5
- package/readme.md +123 -28
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/aglapi/aglapisurface.document.ts +6 -2
- package/ts/classes.authmodels.ts +74 -5
- package/ts/classes.authstore.ts +24 -4
- package/ts/classes.cli.ts +9 -2
- package/ts/classes.controller.ts +98 -59
- package/ts/classes.controllermanagement.ts +284 -107
- package/ts/classes.inferencegateway.ts +31 -19
- package/ts/classes.inferenceusage.ts +58 -19
- package/ts/classes.inferenceusagetap.ts +27 -8
- package/ts/classes.processinspection.ts +2 -1
- package/ts/classes.proxycontrol.ts +25 -9
- package/ts/classes.proxycontrolclient.ts +7 -4
- package/ts/classes.proxydaemon.ts +43 -17
- package/ts/classes.proxyleaseholder.ts +36 -7
- package/ts/classes.proxystore.ts +8 -3
- package/ts/classes.upgradecoordinator.ts +20 -11
- package/ts/classes.upgradetransaction.ts +53 -2
- package/ts/classes.usagefeed.ts +2 -1
- package/ts/functions.controllermanagementsurface.ts +149 -0
- package/ts/functions.inferencecli.ts +15 -7
- package/ts/functions.inferencecliarguments.ts +16 -6
- package/ts/functions.inferencelaunch.ts +57 -23
- package/ts/interfaces.auth.ts +14 -3
- package/ts_interfaces/index.ts +1 -0
- package/ts_interfaces/interfaces.ts +6 -1
- package/ts_interfaces/management.ts +52 -0
- package/ts_interfaces/metrics.ts +34 -7
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/classes.controllersocketclient.ts +5 -2
- package/ts_web/elements.metricsboard.ts +68 -18
package/ts/classes.controller.ts
CHANGED
|
@@ -17,6 +17,7 @@ import { ControllerBrowserPaintTransport } from './classes.browserpainttransport
|
|
|
17
17
|
import { ControllerBrowserAudioTransport } from './classes.browseraudiotransport.js';
|
|
18
18
|
import { createBrowserDevToolsAssets, createBrowserDevToolsSurface } from './functions.browserdevtools.js';
|
|
19
19
|
import { createControllerSecurityHeaders } from './functions.controllersecurityheaders.js';
|
|
20
|
+
import { createControllerManagementSurface } from './functions.controllermanagementsurface.js';
|
|
20
21
|
import { createMonacoAssetsSurface } from './functions.monacoassets.js';
|
|
21
22
|
import * as devToolsProtocol from '../ts_interfaces/devtools.js';
|
|
22
23
|
import type {
|
|
@@ -120,6 +121,7 @@ import {
|
|
|
120
121
|
controllerLiveToolExecutionIsCovered,
|
|
121
122
|
controllerProtocolVersion,
|
|
122
123
|
controllerUpgradeManagementVersion,
|
|
124
|
+
controllerManagementProtocolVersion,
|
|
123
125
|
controllerLayoutItemRefKey,
|
|
124
126
|
controllerRuntimeIdKey,
|
|
125
127
|
controllerAgentMessageMaxTextBytes,
|
|
@@ -4169,6 +4171,7 @@ export class OpenCodeController {
|
|
|
4169
4171
|
packageVersion: commitinfo.version,
|
|
4170
4172
|
protocolVersion: controllerProtocolVersion,
|
|
4171
4173
|
upgradeManagementVersion: controllerUpgradeManagementVersion,
|
|
4174
|
+
managementProtocolVersion: controllerManagementProtocolVersion,
|
|
4172
4175
|
controllerPid: process.pid,
|
|
4173
4176
|
processGroupId: this.processGroupId,
|
|
4174
4177
|
processFingerprint: this.processFingerprint,
|
|
@@ -10151,6 +10154,11 @@ export class OpenCodeController {
|
|
|
10151
10154
|
),
|
|
10152
10155
|
},
|
|
10153
10156
|
surfaces: [
|
|
10157
|
+
// The CLI's and the upgrade worker's management calls: loopback HTTP, independent of the browser's socket.
|
|
10158
|
+
createControllerManagementSurface({
|
|
10159
|
+
port: runtimeConfig.controllerPort,
|
|
10160
|
+
router: this.createManagementRouter(),
|
|
10161
|
+
}),
|
|
10154
10162
|
createBrowserDevToolsSurface(hostnames, browserDevToolsAssets),
|
|
10155
10163
|
createMonacoAssetsSurface(hostnames, securityHeaders),
|
|
10156
10164
|
...browserViewerAssets.surfaces(hostnames, securityHeaders),
|
|
@@ -13590,13 +13598,7 @@ export class OpenCodeController {
|
|
|
13590
13598
|
|
|
13591
13599
|
/** Public scope: a browser reads the status before it holds a passkey session. */
|
|
13592
13600
|
private registerStatusHandlers(publicRouterArg: plugins.typedrequest.TypedRouter): void {
|
|
13593
|
-
publicRouterArg.addTypedHandler(
|
|
13594
|
-
'controller.status',
|
|
13595
|
-
async (requestArg) => {
|
|
13596
|
-
validateRequest(() => assertEmptyRequest(requestArg));
|
|
13597
|
-
return this.statusForPrincipal('browser');
|
|
13598
|
-
},
|
|
13599
|
-
));
|
|
13601
|
+
publicRouterArg.addTypedHandler(this.createStatusHandler());
|
|
13600
13602
|
}
|
|
13601
13603
|
|
|
13602
13604
|
/**
|
|
@@ -13604,7 +13606,39 @@ export class OpenCodeController {
|
|
|
13604
13606
|
* Every handler here authorises itself against the upgrade token it is handed.
|
|
13605
13607
|
*/
|
|
13606
13608
|
private registerUpgradeHandlers(publicRouterArg: plugins.typedrequest.TypedRouter): void {
|
|
13607
|
-
publicRouterArg.addTypedHandler(
|
|
13609
|
+
publicRouterArg.addTypedHandler(this.createUpgradeLaunchHandler());
|
|
13610
|
+
publicRouterArg.addTypedHandler(this.createUpgradePrepareHandler());
|
|
13611
|
+
publicRouterArg.addTypedHandler(this.createUpgradePrepareBeginHandler());
|
|
13612
|
+
publicRouterArg.addTypedHandler(this.createUpgradeFinalizeHandler());
|
|
13613
|
+
}
|
|
13614
|
+
|
|
13615
|
+
/**
|
|
13616
|
+
* The router of the loopback management endpoint (`controllerManagementMethods`): the status read and the upgrade
|
|
13617
|
+
* methods the CLI and an upgrade worker of this or another release call. Each handler comes from the factory its
|
|
13618
|
+
* controller socket handler comes from, so it authorises itself exactly as it does there; the endpoint's admission
|
|
13619
|
+
* grants a request only its own peer. No other method is reachable through it.
|
|
13620
|
+
*/
|
|
13621
|
+
private createManagementRouter(): plugins.typedrequest.TypedRouter {
|
|
13622
|
+
const router = new plugins.typedrequest.TypedRouter();
|
|
13623
|
+
router.addTypedHandler(this.createStatusHandler());
|
|
13624
|
+
router.addTypedHandler(this.createUpgradeLaunchHandler());
|
|
13625
|
+
router.addTypedHandler(this.createUpgradePrepareBeginHandler());
|
|
13626
|
+
router.addTypedHandler(this.createUpgradeFinalizeHandler());
|
|
13627
|
+
return router;
|
|
13628
|
+
}
|
|
13629
|
+
|
|
13630
|
+
private createStatusHandler(): plugins.typedrequest.TypedHandler<IReq_ControllerStatus> {
|
|
13631
|
+
return new plugins.typedrequest.TypedHandler<IReq_ControllerStatus>(
|
|
13632
|
+
'controller.status',
|
|
13633
|
+
async (requestArg) => {
|
|
13634
|
+
validateRequest(() => assertEmptyRequest(requestArg));
|
|
13635
|
+
return this.statusForPrincipal('browser');
|
|
13636
|
+
},
|
|
13637
|
+
);
|
|
13638
|
+
}
|
|
13639
|
+
|
|
13640
|
+
private createUpgradeLaunchHandler(): plugins.typedrequest.TypedHandler<IReq_ControllerUpgradeLaunch> {
|
|
13641
|
+
return new plugins.typedrequest.TypedHandler<IReq_ControllerUpgradeLaunch>(
|
|
13608
13642
|
'controller.upgrade.launch',
|
|
13609
13643
|
async (requestArg, toolsArg) => {
|
|
13610
13644
|
const peer = peerFromLocalData(toolsArg?.localData);
|
|
@@ -13690,9 +13724,12 @@ export class OpenCodeController {
|
|
|
13690
13724
|
}
|
|
13691
13725
|
});
|
|
13692
13726
|
},
|
|
13693
|
-
)
|
|
13727
|
+
);
|
|
13728
|
+
}
|
|
13694
13729
|
|
|
13695
|
-
|
|
13730
|
+
/** The synchronous preparation an upgrade worker of an earlier release asks for; served on the socket only. */
|
|
13731
|
+
private createUpgradePrepareHandler(): plugins.typedrequest.TypedHandler<IReq_ControllerUpgradePrepare> {
|
|
13732
|
+
return new plugins.typedrequest.TypedHandler<IReq_ControllerUpgradePrepare>(
|
|
13696
13733
|
'controller.upgrade.prepare',
|
|
13697
13734
|
async (requestArg, toolsArg) => {
|
|
13698
13735
|
const peer = peerFromLocalData(toolsArg?.localData);
|
|
@@ -13733,59 +13770,61 @@ export class OpenCodeController {
|
|
|
13733
13770
|
})
|
|
13734
13771
|
));
|
|
13735
13772
|
},
|
|
13736
|
-
)
|
|
13773
|
+
);
|
|
13774
|
+
}
|
|
13737
13775
|
|
|
13738
|
-
|
|
13739
|
-
|
|
13740
|
-
|
|
13741
|
-
|
|
13742
|
-
|
|
13743
|
-
|
|
13744
|
-
|
|
13745
|
-
|
|
13746
|
-
|
|
13747
|
-
|
|
13748
|
-
|
|
13749
|
-
|
|
13750
|
-
|
|
13751
|
-
|
|
13752
|
-
|
|
13753
|
-
|
|
13754
|
-
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13759
|
-
|
|
13760
|
-
|
|
13761
|
-
|
|
13762
|
-
|
|
13763
|
-
|
|
13764
|
-
pid: status.controllerPid,
|
|
13765
|
-
processGroupId: status.processGroupId,
|
|
13766
|
-
processFingerprint: status.processFingerprint,
|
|
13767
|
-
},
|
|
13768
|
-
});
|
|
13769
|
-
await coordinator.recordController(requestArg.token, {
|
|
13776
|
+
private createUpgradePrepareBeginHandler(): plugins.typedrequest.TypedHandler<IReq_ControllerUpgradePrepareBegin> {
|
|
13777
|
+
return new plugins.typedrequest.TypedHandler<IReq_ControllerUpgradePrepareBegin>(
|
|
13778
|
+
'controller.upgrade.prepare.begin',
|
|
13779
|
+
async (requestArg, toolsArg) => {
|
|
13780
|
+
const peer = peerFromLocalData(toolsArg?.localData);
|
|
13781
|
+
this.recordUnauthenticatedPreflightOperation(peer.id);
|
|
13782
|
+
assertControllerUpgradePreparationRequest(requestArg);
|
|
13783
|
+
return this.runOperation(peer, async () => (
|
|
13784
|
+
this.runUpgradePreparationAdmission(async () => {
|
|
13785
|
+
const installation = await resolveCurrentPnpmGlobalInstallation();
|
|
13786
|
+
const coordinator = this.coordinatorForUpgradeToken(
|
|
13787
|
+
requestArg.token,
|
|
13788
|
+
installation.globalRoot,
|
|
13789
|
+
);
|
|
13790
|
+
if (await this.upgradePreparationReplayIsAccepted(
|
|
13791
|
+
coordinator,
|
|
13792
|
+
requestArg.token,
|
|
13793
|
+
requestArg.targetVersion,
|
|
13794
|
+
requestArg.gracePeriodMs,
|
|
13795
|
+
)) return { accepted: true as const };
|
|
13796
|
+
const status = this.getStatus();
|
|
13797
|
+
await coordinator.consumeControllerActionGrant({
|
|
13798
|
+
token: requestArg.token,
|
|
13799
|
+
action: 'prepare',
|
|
13800
|
+
packageVersion: commitinfo.version,
|
|
13801
|
+
controller: {
|
|
13770
13802
|
pid: status.controllerPid,
|
|
13771
13803
|
processGroupId: status.processGroupId,
|
|
13772
|
-
|
|
13773
|
-
|
|
13774
|
-
|
|
13775
|
-
|
|
13776
|
-
|
|
13777
|
-
|
|
13778
|
-
|
|
13779
|
-
|
|
13780
|
-
|
|
13781
|
-
|
|
13782
|
-
|
|
13783
|
-
|
|
13784
|
-
|
|
13785
|
-
|
|
13804
|
+
processFingerprint: status.processFingerprint,
|
|
13805
|
+
},
|
|
13806
|
+
});
|
|
13807
|
+
await coordinator.recordController(requestArg.token, {
|
|
13808
|
+
pid: status.controllerPid,
|
|
13809
|
+
processGroupId: status.processGroupId,
|
|
13810
|
+
fingerprint: status.processFingerprint,
|
|
13811
|
+
cliPath: installation.cliPath,
|
|
13812
|
+
command: this.options.processMode === 'detached' ? '__serve' : 'foreground',
|
|
13813
|
+
});
|
|
13814
|
+
return await this.beginUpgradePreparation(
|
|
13815
|
+
coordinator,
|
|
13816
|
+
requestArg.token,
|
|
13817
|
+
requestArg.targetVersion,
|
|
13818
|
+
requestArg.gracePeriodMs,
|
|
13819
|
+
);
|
|
13820
|
+
})
|
|
13821
|
+
));
|
|
13822
|
+
},
|
|
13786
13823
|
);
|
|
13824
|
+
}
|
|
13787
13825
|
|
|
13788
|
-
|
|
13826
|
+
private createUpgradeFinalizeHandler(): plugins.typedrequest.TypedHandler<IReq_ControllerUpgradeFinalize> {
|
|
13827
|
+
return new plugins.typedrequest.TypedHandler<IReq_ControllerUpgradeFinalize>(
|
|
13789
13828
|
'controller.upgrade.finalize',
|
|
13790
13829
|
async (requestArg, toolsArg) => {
|
|
13791
13830
|
const peer = peerFromLocalData(toolsArg?.localData);
|
|
@@ -13826,7 +13865,7 @@ export class OpenCodeController {
|
|
|
13826
13865
|
return await this.finalizeUpgrade(coordinator, requestArg.token, requestArg.mode);
|
|
13827
13866
|
});
|
|
13828
13867
|
},
|
|
13829
|
-
)
|
|
13868
|
+
);
|
|
13830
13869
|
}
|
|
13831
13870
|
|
|
13832
13871
|
/**
|