agl 23.0.0 → 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 +11 -0
- package/dist_serve/bundle.js +811 -808
- 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 +35 -5
- package/dist_ts/classes.controller.js +994 -229
- package/dist_ts/classes.validation.d.ts +9 -1
- package/dist_ts/classes.validation.js +62 -7
- 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 +10 -6
- package/dist_ts_interfaces/interfaces.js +2 -3
- package/dist_ts_interfaces/requests.d.ts +20 -21
- package/package.json +5 -5
- package/readme.md +7 -3
- 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 +1367 -279
- package/ts/classes.validation.ts +77 -6
- package/ts_interfaces/browsertransport.ts +126 -0
- package/ts_interfaces/index.ts +1 -0
- package/ts_interfaces/interfaces.ts +11 -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 +6 -17
- package/ts_web/elements.harnesscontrollerapp.ts +450 -115
- package/ts_web/index.ts +1 -0
- package/ts_web/plugins.ts +2 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export const controllerProtocolVersion = 23;
|
|
1
|
+
export const controllerProtocolVersion = 24;
|
|
3
2
|
export const controllerUpgradeManagementVersion = 2;
|
|
4
3
|
export const controllerPackageName = 'agl';
|
|
5
4
|
export const controllerMaxToolEventBytes = 48 * 1024;
|
|
@@ -47,4 +46,4 @@ export const controllerEventTypes = [
|
|
|
47
46
|
'terminals.changed',
|
|
48
47
|
'upgrade.changed',
|
|
49
48
|
];
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2ludGVyZmFjZXMvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxFQUFXLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsQ0FBVSxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEtBQWMsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxFQUFFLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQzFDLDhEQUF1RSxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBVSxDQUFDO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBVSxDQUFDO0FBbUJ6RSw2RUFBNkU7QUFDN0UsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxZQUFrQyxFQUFVLEVBQUUsQ0FDbkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFVbEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVUsQ0FBQztBQWt2QnRGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsaUJBQWlCO0NBQ1QsQ0FBQyJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
|
-
import type { IControllerEvent, IControllerMessageBundle, IControllerMessagePage, TControllerModelChoice, TControllerModelOption, IControllerPathSuggestion, IControllerProject, TControllerResource, TControllerResourceKind, IControllerBrowserViewState,
|
|
2
|
+
import type { IControllerEvent, IControllerMessageBundle, IControllerMessagePage, TControllerModelChoice, TControllerModelOption, IControllerPathSuggestion, IControllerProject, TControllerResource, TControllerResourceKind, IControllerBrowserViewState, IControllerProvider, IControllerProviderAccountRateLimits, IControllerProviderConnection, IControllerProviderLogin, IControllerModelRefreshJob, IControllerRuntimeId, IControllerSession, IControllerSessionDraft, IControllerDraftAttachment, IControllerSessionGroup, IControllerSessionLayout, IControllerTerminal, TControllerTerminalId, IControllerSlashListResult, TControllerSlashExecuteResult, IControllerSessionDetail, IControllerSessionAuxiliary, IControllerSessionScratchpad, IControllerIntelligenceExchange, IControllerSettings, IControllerStatus, IControllerSystemMetrics, TControllerAuthState, TControllerPermissionReply, TControllerSessionHarnessId, TControllerSessionId } from './interfaces.js';
|
|
3
3
|
export interface IReq_ControllerStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ControllerStatus> {
|
|
4
4
|
method: 'controller.status';
|
|
5
5
|
request: Record<string, never>;
|
|
@@ -663,6 +663,9 @@ export interface IReq_ControllerBrowserViewOpen extends plugins.typedrequestInte
|
|
|
663
663
|
viewId: string;
|
|
664
664
|
resourceId: string;
|
|
665
665
|
attachmentRevision: number;
|
|
666
|
+
streamGeneration: number;
|
|
667
|
+
events: plugins.typedrequestInterfaces.TVirtualStream<'receive'>;
|
|
668
|
+
operations: plugins.typedrequestInterfaces.TVirtualStream<'send'>;
|
|
666
669
|
state: IControllerBrowserViewState;
|
|
667
670
|
};
|
|
668
671
|
}
|
|
@@ -670,41 +673,37 @@ export interface IReq_ControllerBrowserViewActivate extends plugins.typedrequest
|
|
|
670
673
|
method: 'controller.browser.view.activate';
|
|
671
674
|
request: {
|
|
672
675
|
viewId: string;
|
|
676
|
+
streamGeneration: number;
|
|
673
677
|
};
|
|
674
678
|
response: {
|
|
675
679
|
activated: true;
|
|
676
680
|
};
|
|
677
681
|
}
|
|
678
|
-
export interface
|
|
679
|
-
method: 'controller.browser.view.
|
|
682
|
+
export interface IReq_ControllerBrowserViewRecover extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ControllerBrowserViewRecover> {
|
|
683
|
+
method: 'controller.browser.view.recover';
|
|
680
684
|
request: {
|
|
681
685
|
viewId: string;
|
|
686
|
+
expectedStreamGeneration: number;
|
|
682
687
|
};
|
|
683
688
|
response: {
|
|
684
|
-
closed: true;
|
|
685
|
-
};
|
|
686
|
-
}
|
|
687
|
-
export interface IReq_ControllerBrowserViewOperate extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ControllerBrowserViewOperate> {
|
|
688
|
-
method: 'controller.browser.view.operate';
|
|
689
|
-
request: {
|
|
690
689
|
viewId: string;
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
690
|
+
resourceId: string;
|
|
691
|
+
attachmentRevision: number;
|
|
692
|
+
streamGeneration: number;
|
|
693
|
+
events: plugins.typedrequestInterfaces.TVirtualStream<'receive'>;
|
|
694
|
+
operations: plugins.typedrequestInterfaces.TVirtualStream<'send'>;
|
|
695
695
|
state: IControllerBrowserViewState;
|
|
696
696
|
};
|
|
697
697
|
}
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
method: 'controller.browser.view.event';
|
|
698
|
+
export interface IReq_ControllerBrowserViewClose extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ControllerBrowserViewClose> {
|
|
699
|
+
method: 'controller.browser.view.close';
|
|
701
700
|
request: {
|
|
702
701
|
viewId: string;
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
702
|
+
expectedStreamGeneration: number;
|
|
703
|
+
};
|
|
704
|
+
response: {
|
|
705
|
+
closed: boolean;
|
|
706
706
|
};
|
|
707
|
-
response: Record<string, never>;
|
|
708
707
|
}
|
|
709
708
|
export interface IReq_ControllerTerminalCreate extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ControllerTerminalCreate> {
|
|
710
709
|
method: 'controller.terminal.create';
|
|
@@ -803,4 +802,4 @@ export interface IReq_ControllerEvent extends plugins.typedrequestInterfaces.imp
|
|
|
803
802
|
received: true;
|
|
804
803
|
};
|
|
805
804
|
}
|
|
806
|
-
export type TControllerRequest = IReq_ControllerStatus | IReq_ControllerUpgradeLaunch | IReq_ControllerUpgradePrepare | IReq_ControllerUpgradePrepareBegin | IReq_ControllerUpgradeFinalize | IReq_ControllerSystemMetrics | IReq_ControllerAuthState | IReq_ControllerSetupBegin | IReq_ControllerSetupFinish | IReq_ControllerAuthenticationBegin | IReq_ControllerAuthenticationFinish | IReq_ControllerTempPasswordLogin | IReq_ControllerAuthResume | IReq_ControllerProjectList | IReq_ControllerProjectCreate | IReq_ControllerProjectRemove | IReq_ControllerProjectSuggest | IReq_ControllerProviderList | IReq_ControllerProviderConnectionList | IReq_ControllerProviderConnectionActivateOpenCode | IReq_ControllerProviderLoginBegin | IReq_ControllerProviderLoginGet | IReq_ControllerProviderLoginCancel | IReq_ControllerProviderConnectionLogout | IReq_ControllerProviderConnectionRateLimitsGet | IReq_ControllerProviderModelRefreshBegin | IReq_ControllerProviderModelRefreshGet | IReq_ControllerSlashList | IReq_ControllerSlashExecute | IReq_ControllerModelList | IReq_ControllerSettingsGet | IReq_ControllerSettingsUpdate | IReq_ControllerSessionList | IReq_ControllerSessionGet | IReq_ControllerSessionAuxiliaryGet | IReq_ControllerSessionModelUpdate | IReq_ControllerSessionScratchpadSave | IReq_ControllerSessionIntelligenceAsk | IReq_ControllerSessionMessagesPage | IReq_ControllerSessionMessageGet | IReq_ControllerSessionCreate | IReq_ControllerSessionDelete | IReq_ControllerSessionDiscardEmpty | IReq_ControllerSessionDraftGet | IReq_ControllerSessionDraftUpdate | IReq_ControllerSessionSend | IReq_ControllerSessionAbort | IReq_ControllerPermissionReply | IReq_ControllerQuestionReply | IReq_ControllerSessionRename | IReq_ControllerSessionArchive | IReq_ControllerSessionGroupsGet | IReq_ControllerSessionGroupsUpdate | IReq_ControllerSessionYolo | IReq_ControllerResourceList | IReq_ControllerResourceCreate | IReq_ControllerResourceRename | IReq_ControllerResourceAttach | IReq_ControllerResourceDetach | IReq_ControllerResourceRetire | IReq_ControllerResourceStart | IReq_ControllerResourceStop | IReq_ControllerBrowserViewOpen | IReq_ControllerBrowserViewActivate |
|
|
805
|
+
export type TControllerRequest = IReq_ControllerStatus | IReq_ControllerUpgradeLaunch | IReq_ControllerUpgradePrepare | IReq_ControllerUpgradePrepareBegin | IReq_ControllerUpgradeFinalize | IReq_ControllerSystemMetrics | IReq_ControllerAuthState | IReq_ControllerSetupBegin | IReq_ControllerSetupFinish | IReq_ControllerAuthenticationBegin | IReq_ControllerAuthenticationFinish | IReq_ControllerTempPasswordLogin | IReq_ControllerAuthResume | IReq_ControllerProjectList | IReq_ControllerProjectCreate | IReq_ControllerProjectRemove | IReq_ControllerProjectSuggest | IReq_ControllerProviderList | IReq_ControllerProviderConnectionList | IReq_ControllerProviderConnectionActivateOpenCode | IReq_ControllerProviderLoginBegin | IReq_ControllerProviderLoginGet | IReq_ControllerProviderLoginCancel | IReq_ControllerProviderConnectionLogout | IReq_ControllerProviderConnectionRateLimitsGet | IReq_ControllerProviderModelRefreshBegin | IReq_ControllerProviderModelRefreshGet | IReq_ControllerSlashList | IReq_ControllerSlashExecute | IReq_ControllerModelList | IReq_ControllerSettingsGet | IReq_ControllerSettingsUpdate | IReq_ControllerSessionList | IReq_ControllerSessionGet | IReq_ControllerSessionAuxiliaryGet | IReq_ControllerSessionModelUpdate | IReq_ControllerSessionScratchpadSave | IReq_ControllerSessionIntelligenceAsk | IReq_ControllerSessionMessagesPage | IReq_ControllerSessionMessageGet | IReq_ControllerSessionCreate | IReq_ControllerSessionDelete | IReq_ControllerSessionDiscardEmpty | IReq_ControllerSessionDraftGet | IReq_ControllerSessionDraftUpdate | IReq_ControllerSessionSend | IReq_ControllerSessionAbort | IReq_ControllerPermissionReply | IReq_ControllerQuestionReply | IReq_ControllerSessionRename | IReq_ControllerSessionArchive | IReq_ControllerSessionGroupsGet | IReq_ControllerSessionGroupsUpdate | IReq_ControllerSessionYolo | IReq_ControllerResourceList | IReq_ControllerResourceCreate | IReq_ControllerResourceRename | IReq_ControllerResourceAttach | IReq_ControllerResourceDetach | IReq_ControllerResourceRetire | IReq_ControllerResourceStart | IReq_ControllerResourceStop | IReq_ControllerBrowserViewOpen | IReq_ControllerBrowserViewActivate | IReq_ControllerBrowserViewRecover | IReq_ControllerBrowserViewClose | IReq_ControllerTerminalList | IReq_ControllerTerminalCreate | IReq_ControllerTerminalRename | IReq_ControllerTerminalRemove | IReq_ControllerTerminalAttach | IReq_ControllerTerminalDetach | IReq_ControllerTerminalInput | IReq_ControllerTerminalResize | IReq_ControllerTerminalOutput | IReq_ControllerEvent;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agl",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "24.0.0",
|
|
4
4
|
"controllerUpgradeManagementVersion": 2,
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Agent Gateway Layer for OpenCode and FlexHarness sessions",
|
|
@@ -19,16 +19,16 @@
|
|
|
19
19
|
"@api.global/typedrequest": "8.0.2",
|
|
20
20
|
"@api.global/typedrequest-interfaces": "7.1.0",
|
|
21
21
|
"@api.global/typedserver": "11.1.0",
|
|
22
|
-
"@api.global/typedsocket": "8.0.
|
|
22
|
+
"@api.global/typedsocket": "8.0.1",
|
|
23
23
|
"@design.estate/dees-catalog": "6.12.1",
|
|
24
24
|
"@design.estate/dees-element": "2.4.0",
|
|
25
|
-
"@modelprofile.com/browser-runtime": "3.
|
|
25
|
+
"@modelprofile.com/browser-runtime": "3.1.1",
|
|
26
26
|
"@modelprofile.com/crossharness-mcp": "4.1.1",
|
|
27
27
|
"@modelprofile.com/flexharness": "5.0.0",
|
|
28
28
|
"@opencode-ai/sdk": "1.18.15",
|
|
29
29
|
"@push.rocks/smartagent": "5.0.1",
|
|
30
30
|
"@push.rocks/smartai": "6.0.0",
|
|
31
|
-
"@push.rocks/smartbrowser": "4.0.
|
|
31
|
+
"@push.rocks/smartbrowser": "4.0.1",
|
|
32
32
|
"@push.rocks/smartcli": "4.3.0",
|
|
33
33
|
"@push.rocks/smartdata": "11.6.1",
|
|
34
34
|
"@push.rocks/smartdb": "5.2.1",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@git.zone/tsbuild": "4.4.2",
|
|
64
|
-
"@git.zone/tsbundle": "2.
|
|
64
|
+
"@git.zone/tsbundle": "2.13.0",
|
|
65
65
|
"@git.zone/tsrun": "2.0.6",
|
|
66
66
|
"@git.zone/tstest": "4.0.0",
|
|
67
67
|
"@types/node": "26.2.0"
|
package/readme.md
CHANGED
|
@@ -45,7 +45,7 @@ The browser receives normalized AGL data. It never receives the OpenCode server
|
|
|
45
45
|
|
|
46
46
|
### Live Transcript Delivery
|
|
47
47
|
|
|
48
|
-
Controller protocol
|
|
48
|
+
Controller protocol v24 sends bounded live Assistant text and reasoning deltas when the browser already owns the exact preceding transcript revision. Every delta carries its stream epoch, revision, and UTF-8 coordinates; Flex deltas also carry the harness's authoritative transcript order. The browser applies only contiguous, correctly sized updates to the canonical transcript; a gap, stale owner, invalid coordinate, or queue overflow blocks further deltas from that epoch and requests authoritative session-detail hydration instead. Only adjacent compatible pending deltas may be coalesced, so interleaved updates retain their original order.
|
|
49
49
|
|
|
50
50
|
Streaming text is rendered without Markdown parsing. AGL refreshes the affected messages and enables normal Markdown rendering after the harness reports terminal state or authoritative hydration settles the transcript. This keeps long responses responsive without creating a second browser-side message graph.
|
|
51
51
|
|
|
@@ -207,7 +207,11 @@ AGL allows at most eight running terminals per project and 32 controller-wide.
|
|
|
207
207
|
|
|
208
208
|
### Browsers
|
|
209
209
|
|
|
210
|
-
A browser resource provides tabs, navigation, viewport control, mouse, keyboard, and text input through a human canvas.
|
|
210
|
+
A browser resource provides tabs, navigation, viewport control, mouse, keyboard, and text input through a human canvas. Protocol v24 opens one authenticated persistent event stream and one paired operation stream for each human view. Every pair is bound to the exact peer, credential, resource authority, attachment revision, view, and stream generation.
|
|
211
|
+
|
|
212
|
+
State and operation results use bounded JSON packets. A frame is sent as one validated metadata packet immediately followed by its raw image bytes, rather than through a public URL or base64 JSON payload. Operation IDs, pending bytes, acknowledgements, event delivery, input rates, and recovery attempts are all bounded. Only adjacent compatible pointer-move or viewport operations can be coalesced, while cancellation retains a separately fenced path to live work.
|
|
213
|
+
|
|
214
|
+
The browser installs its renderer before activating a view. A recoverable stream failure suspends input, retires the old pair, opens and starts the next stream generation, and resumes the renderer's listeners before activating the replacement. Activation refreshes the runtime frame boundary, and input resumes only after that boundary arrives. Stale activation, recovery, cancellation, and close messages cannot act on another generation.
|
|
211
215
|
|
|
212
216
|
When attached to a Flex conversation, the resource can provide permission-gated `navigate`, `snapshot`, `screenshot`, `click`, `fill`, and `press` actions to that exact run. Every channel is bound to the project, resource revision, session, run, actor, and current Flex generation.
|
|
213
217
|
|
|
@@ -323,7 +327,7 @@ Do not move these directories or edit migration and upgrade journals by hand.
|
|
|
323
327
|
|
|
324
328
|
SmartData stores runtime configuration, passkey metadata, projects, layouts, model choices, scratchpads, tasks, goals, resources, Flex public projections, provider metadata, and bounded audit events. Prompt text is not written to audit records.
|
|
325
329
|
|
|
326
|
-
Terminal I/O, active browser views
|
|
330
|
+
Terminal I/O, active browser views and their paired transport streams, composer drafts and their pending attachment state, active capability leases, and running processes remain memory-only. Once a prompt is submitted, attachment files exist only in private operation directories for the lifetime of that exact harness operation.
|
|
327
331
|
|
|
328
332
|
Library consumers can resolve the same home contract:
|
|
329
333
|
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/classes.authstore.ts
CHANGED
|
@@ -1246,7 +1246,7 @@ export class SmartDataAuthStore implements IAuthStore {
|
|
|
1246
1246
|
name: nameArg,
|
|
1247
1247
|
directory: directoryArg,
|
|
1248
1248
|
directoryIdentityState: 'bound',
|
|
1249
|
-
directoryIdentity: structuredClone(identityArg),
|
|
1249
|
+
directoryIdentity: { ancestry: structuredClone(identityArg.ancestry) },
|
|
1250
1250
|
createdAt: new Date(),
|
|
1251
1251
|
};
|
|
1252
1252
|
const result = await ControllerProjectModel.exact.insert(candidate);
|
|
@@ -84,6 +84,7 @@ export interface IControllerBrowserResourceHostOptions {
|
|
|
84
84
|
export interface IControllerBrowserHumanView {
|
|
85
85
|
lease: plugins.browserRuntime.BrowserRuntimeLease;
|
|
86
86
|
activate(listenerArg: (eventArg: plugins.browserRuntime.TBrowserRuntimeEvent) => void): Promise<void>;
|
|
87
|
+
refreshFrameStream(signalArg: AbortSignal): Promise<void>;
|
|
87
88
|
close(): Promise<void>;
|
|
88
89
|
}
|
|
89
90
|
|
|
@@ -854,6 +855,12 @@ export class ControllerBrowserResourceHost implements IControllerResourceRuntime
|
|
|
854
855
|
});
|
|
855
856
|
return activationPromise;
|
|
856
857
|
},
|
|
858
|
+
refreshFrameStream: async (signalArg) => {
|
|
859
|
+
if (closing || !subscription || subscriptionClosed) {
|
|
860
|
+
throw new Error('The active browser frame subscription is unavailable.');
|
|
861
|
+
}
|
|
862
|
+
await lease.refreshFrameStream({ signal: signalArg });
|
|
863
|
+
},
|
|
857
864
|
close: async () => {
|
|
858
865
|
closing = true;
|
|
859
866
|
const deadlineAt = Date.now() + this.cleanupTimeoutMs;
|