agl 22.0.4 → 23.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 +10 -0
- package/dist_serve/bundle.js +2414 -2407
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.controller.d.ts +2 -0
- package/dist_ts/classes.controller.js +499 -22
- 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/interfaces.flexipc.d.ts +18 -1
- package/dist_ts/interfaces.flexipc.js +42 -8
- package/dist_ts_interfaces/interfaces.d.ts +33 -2
- package/dist_ts_interfaces/interfaces.js +5 -2
- package/package.json +3 -3
- package/readme.md +6 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.controller.ts +589 -22
- package/ts/classes.flexservice.ts +132 -2
- package/ts/classes.opencodeclient.ts +19 -0
- package/ts/interfaces.flexipc.ts +65 -7
- package/ts_interfaces/interfaces.ts +36 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/classes.controllersocketclient.ts +113 -12
- package/ts_web/elements.harnesscontrollerapp.ts +1272 -167
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
|
-
export declare const controllerProtocolVersion:
|
|
2
|
+
export declare const controllerProtocolVersion: 23;
|
|
3
3
|
export declare const controllerUpgradeManagementVersion: 2;
|
|
4
4
|
export declare const controllerPackageName: "agl";
|
|
5
5
|
export declare const controllerMaxToolEventBytes: number;
|
|
6
6
|
export declare const controllerMaxLiveMessageEventBytes: number;
|
|
7
|
+
export declare const controllerLiveMessageDeltaTargetBytes: number;
|
|
7
8
|
export declare const controllerInitialMessageBundleLimit = 20;
|
|
8
9
|
export declare const controllerMaximumMessageBundles = 200;
|
|
9
10
|
export declare const controllerMaximumTranscriptBytes: number;
|
|
@@ -453,6 +454,32 @@ export interface IControllerTextUpdate {
|
|
|
453
454
|
revision: number;
|
|
454
455
|
streamEpoch: number;
|
|
455
456
|
}
|
|
457
|
+
export interface IControllerReasoningDelta {
|
|
458
|
+
sessionId: IControllerRuntimeId;
|
|
459
|
+
messageId: IControllerRuntimeId;
|
|
460
|
+
partId: IControllerRuntimeId;
|
|
461
|
+
delta: string;
|
|
462
|
+
baseTextUtf8Bytes: number;
|
|
463
|
+
textUtf8Bytes: number;
|
|
464
|
+
/** Authoritative source coordinates; required for Flex and absent for OpenCode. */
|
|
465
|
+
order?: IControllerTranscriptOrder;
|
|
466
|
+
sourceUpdatedAt: number;
|
|
467
|
+
revision: number;
|
|
468
|
+
streamEpoch: number;
|
|
469
|
+
}
|
|
470
|
+
export interface IControllerTextDelta {
|
|
471
|
+
sessionId: IControllerRuntimeId;
|
|
472
|
+
messageId: IControllerRuntimeId;
|
|
473
|
+
partId: IControllerRuntimeId;
|
|
474
|
+
delta: string;
|
|
475
|
+
baseTextUtf8Bytes: number;
|
|
476
|
+
textUtf8Bytes: number;
|
|
477
|
+
/** Authoritative source coordinates; required for Flex and absent for OpenCode. */
|
|
478
|
+
order?: IControllerTranscriptOrder;
|
|
479
|
+
sourceUpdatedAt: number;
|
|
480
|
+
revision: number;
|
|
481
|
+
streamEpoch: number;
|
|
482
|
+
}
|
|
456
483
|
export interface IControllerToolStreamCursor {
|
|
457
484
|
streamEpoch: number;
|
|
458
485
|
revision: number;
|
|
@@ -718,7 +745,7 @@ export interface IControllerModelRefreshJob {
|
|
|
718
745
|
* client validates incoming events against this list at runtime, so a type
|
|
719
746
|
* added here is automatically deliverable — the two cannot drift apart.
|
|
720
747
|
*/
|
|
721
|
-
export declare const controllerEventTypes: readonly ["sessions.changed", "session.changed", "session.draft.changed", "session.history.changed", "session.tool.updated", "session.reasoning.updated", "session.text.updated", "permissions.changed", "harness.changed", "projects.changed", "settings.changed", "sessiongroups.changed", "resources.changed", "terminals.changed", "upgrade.changed"];
|
|
748
|
+
export declare const controllerEventTypes: readonly ["sessions.changed", "session.changed", "session.draft.changed", "session.history.changed", "session.tool.updated", "session.reasoning.updated", "session.reasoning.delta", "session.text.updated", "session.text.delta", "permissions.changed", "harness.changed", "projects.changed", "settings.changed", "sessiongroups.changed", "resources.changed", "terminals.changed", "upgrade.changed"];
|
|
722
749
|
export type TControllerEventType = (typeof controllerEventTypes)[number];
|
|
723
750
|
export interface IControllerEvent {
|
|
724
751
|
type: TControllerEventType;
|
|
@@ -733,8 +760,12 @@ export interface IControllerEvent {
|
|
|
733
760
|
toolExecution?: IControllerToolExecution;
|
|
734
761
|
/** Present only on a live OpenCode or Flex reasoning snapshot. */
|
|
735
762
|
reasoningUpdate?: IControllerReasoningUpdate;
|
|
763
|
+
/** Present only on an exact live OpenCode or Flex reasoning delta. */
|
|
764
|
+
reasoningDelta?: IControllerReasoningDelta;
|
|
736
765
|
/** Present only on a live OpenCode or Flex text snapshot. */
|
|
737
766
|
textUpdate?: IControllerTextUpdate;
|
|
767
|
+
/** Present only on an exact live OpenCode or Flex text delta. */
|
|
768
|
+
textDelta?: IControllerTextDelta;
|
|
738
769
|
/** Present only on a session.draft.changed event. */
|
|
739
770
|
sessionDraftUpdate?: IControllerSessionDraftUpdate;
|
|
740
771
|
/** Ordered harness stream barrier carried by harness.changed. */
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
|
-
export const controllerProtocolVersion =
|
|
2
|
+
export const controllerProtocolVersion = 23;
|
|
3
3
|
export const controllerUpgradeManagementVersion = 2;
|
|
4
4
|
export const controllerPackageName = 'agl';
|
|
5
5
|
export const controllerMaxToolEventBytes = 48 * 1024;
|
|
6
6
|
export const controllerMaxLiveMessageEventBytes = 128 * 1024;
|
|
7
|
+
export const controllerLiveMessageDeltaTargetBytes = 16 * 1024;
|
|
7
8
|
export const controllerInitialMessageBundleLimit = 20;
|
|
8
9
|
export const controllerMaximumMessageBundles = 200;
|
|
9
10
|
export const controllerMaximumTranscriptBytes = 512 * 1024;
|
|
@@ -34,7 +35,9 @@ export const controllerEventTypes = [
|
|
|
34
35
|
'session.history.changed',
|
|
35
36
|
'session.tool.updated',
|
|
36
37
|
'session.reasoning.updated',
|
|
38
|
+
'session.reasoning.delta',
|
|
37
39
|
'session.text.updated',
|
|
40
|
+
'session.text.delta',
|
|
38
41
|
'permissions.changed',
|
|
39
42
|
'harness.changed',
|
|
40
43
|
'projects.changed',
|
|
@@ -44,4 +47,4 @@ export const controllerEventTypes = [
|
|
|
44
47
|
'terminals.changed',
|
|
45
48
|
'upgrade.changed',
|
|
46
49
|
];
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2ludGVyZmFjZXMvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxFQUFXLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsQ0FBVSxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEtBQWMsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxFQUFFLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQzFDLDhEQUF1RSxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBVSxDQUFDO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBVSxDQUFDO0FBbUJ6RSw2RUFBNkU7QUFDN0UsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxZQUFrQyxFQUFVLEVBQUUsQ0FDbkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFVbEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVUsQ0FBQztBQWd2QnRGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsaUJBQWlCO0NBQ1QsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agl",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "23.0.0",
|
|
4
4
|
"controllerUpgradeManagementVersion": 2,
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Agent Gateway Layer for OpenCode and FlexHarness sessions",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"@api.global/typedrequest-interfaces": "7.1.0",
|
|
21
21
|
"@api.global/typedserver": "11.1.0",
|
|
22
22
|
"@api.global/typedsocket": "8.0.0",
|
|
23
|
-
"@design.estate/dees-catalog": "6.
|
|
23
|
+
"@design.estate/dees-catalog": "6.12.1",
|
|
24
24
|
"@design.estate/dees-element": "2.4.0",
|
|
25
25
|
"@modelprofile.com/browser-runtime": "3.0.1",
|
|
26
26
|
"@modelprofile.com/crossharness-mcp": "4.1.1",
|
|
27
|
-
"@modelprofile.com/flexharness": "
|
|
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",
|
package/readme.md
CHANGED
|
@@ -43,6 +43,12 @@ OpenCode and FlexHarness are supervised independently. Flex can restart without
|
|
|
43
43
|
|
|
44
44
|
The browser receives normalized AGL data. It never receives the OpenCode server password, provider credentials, private database descriptors, raw provider responses, or Flex private snapshots.
|
|
45
45
|
|
|
46
|
+
### Live Transcript Delivery
|
|
47
|
+
|
|
48
|
+
Controller protocol v23 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
|
+
|
|
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
|
+
|
|
46
52
|
## Requirements
|
|
47
53
|
|
|
48
54
|
- Node.js 24 or newer.
|