@animalabs/agent-framework 0.6.5 → 0.6.6
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/dist/src/agent.d.ts +18 -1
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +201 -2
- package/dist/src/agent.js.map +1 -1
- package/dist/src/framework.d.ts +15 -1
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +423 -86
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +27 -4
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +34 -15
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +299 -67
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/push-handler.d.ts +1 -0
- package/dist/src/mcpl/push-handler.d.ts.map +1 -1
- package/dist/src/mcpl/push-handler.js +1 -0
- package/dist/src/mcpl/push-handler.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +3 -1
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +4 -0
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +43 -12
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js +1 -0
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/types/agent.d.ts +15 -0
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +1 -0
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +2 -0
- package/dist/src/types/trace.d.ts.map +1 -1
- package/dist/test/agent-runtime-settings.test.d.ts +2 -0
- package/dist/test/agent-runtime-settings.test.d.ts.map +1 -0
- package/dist/test/agent-runtime-settings.test.js +120 -0
- package/dist/test/agent-runtime-settings.test.js.map +1 -0
- package/dist/test/channel-registry-routing.test.js +5 -4
- package/dist/test/channel-registry-routing.test.js.map +1 -1
- package/dist/test/conversation-fork-injection-scoping.test.js +12 -1
- package/dist/test/conversation-fork-injection-scoping.test.js.map +1 -1
- package/dist/test/event-gate.test.js +21 -1
- package/dist/test/event-gate.test.js.map +1 -1
- package/dist/test/helpers/mock-membrane.d.ts +13 -1
- package/dist/test/helpers/mock-membrane.d.ts.map +1 -1
- package/dist/test/helpers/mock-membrane.js +8 -1
- package/dist/test/helpers/mock-membrane.js.map +1 -1
- package/dist/test/maintenance-timer.test.js +3 -1
- package/dist/test/maintenance-timer.test.js.map +1 -1
- package/dist/test/mcpl-gate-roundtrip.test.js +138 -6
- package/dist/test/mcpl-gate-roundtrip.test.js.map +1 -1
- package/dist/test/present-while-acting.test.d.ts +18 -0
- package/dist/test/present-while-acting.test.d.ts.map +1 -0
- package/dist/test/present-while-acting.test.js +267 -0
- package/dist/test/present-while-acting.test.js.map +1 -0
- package/dist/test/trunk-channel-routing.test.js +38 -0
- package/dist/test/trunk-channel-routing.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/agent.ts +222 -3
- package/src/framework.ts +468 -92
- package/src/gate/event-gate.ts +38 -4
- package/src/mcpl/channel-registry.ts +372 -76
- package/src/mcpl/push-handler.ts +2 -0
- package/src/mcpl/server-connection.ts +10 -0
- package/src/mcpl/types.ts +49 -12
- package/src/types/agent.ts +18 -0
- package/src/types/events.ts +1 -1
- package/src/types/trace.ts +2 -0
package/src/mcpl/push-handler.ts
CHANGED
|
@@ -35,6 +35,7 @@ export interface McplPushEvent {
|
|
|
35
35
|
eventId: string;
|
|
36
36
|
content: ContentBlock[];
|
|
37
37
|
origin?: Record<string, unknown>;
|
|
38
|
+
tags?: string[];
|
|
38
39
|
timestamp: string;
|
|
39
40
|
inferenceId: string;
|
|
40
41
|
triggerInference?: boolean;
|
|
@@ -217,6 +218,7 @@ export class PushHandler {
|
|
|
217
218
|
eventId: params.eventId,
|
|
218
219
|
content,
|
|
219
220
|
origin: params.origin,
|
|
221
|
+
tags: params.tags,
|
|
220
222
|
timestamp: params.timestamp,
|
|
221
223
|
inferenceId,
|
|
222
224
|
triggerInference,
|
|
@@ -31,6 +31,8 @@ import type {
|
|
|
31
31
|
ChannelsOpenResult,
|
|
32
32
|
ChannelsCloseParams,
|
|
33
33
|
ChannelsCloseResult,
|
|
34
|
+
ChannelsAcknowledgeParams,
|
|
35
|
+
ChannelsAcknowledgeResult,
|
|
34
36
|
ChannelsListResult,
|
|
35
37
|
ChannelsPublishParams,
|
|
36
38
|
ChannelsPublishResult,
|
|
@@ -397,6 +399,14 @@ export class McplServerConnection extends EventEmitter {
|
|
|
397
399
|
return this.sendRequest(McplMethod.ChannelsClose, params as unknown as Record<string, unknown>) as Promise<ChannelsCloseResult>;
|
|
398
400
|
}
|
|
399
401
|
|
|
402
|
+
/** Send `channels/acknowledge` request and await result. */
|
|
403
|
+
sendChannelsAcknowledge(params: ChannelsAcknowledgeParams): Promise<ChannelsAcknowledgeResult> {
|
|
404
|
+
return this.sendRequest(
|
|
405
|
+
McplMethod.ChannelsAcknowledge,
|
|
406
|
+
params as unknown as Record<string, unknown>,
|
|
407
|
+
) as Promise<ChannelsAcknowledgeResult>;
|
|
408
|
+
}
|
|
409
|
+
|
|
400
410
|
/** Send `channels/list` request and await result. */
|
|
401
411
|
sendChannelsList(): Promise<ChannelsListResult> {
|
|
402
412
|
return this.sendRequest(McplMethod.ChannelsList, {}) as Promise<ChannelsListResult>;
|
package/src/mcpl/types.ts
CHANGED
|
@@ -284,18 +284,9 @@ export interface McplServerConfig {
|
|
|
284
284
|
toolPrefix?: string;
|
|
285
285
|
|
|
286
286
|
/**
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
* should listen passively (e.g. a frontdesk clerk).
|
|
291
|
-
* - `'manual'` — registered channels are listed but not opened. The agent
|
|
292
|
-
* must call the `channel_open` tool to start receiving messages. Right
|
|
293
|
-
* for focused agents that should not be flooded with chatter from
|
|
294
|
-
* servers that advertise many public channels (e.g. Zulip's full stream
|
|
295
|
-
* list).
|
|
296
|
-
* - `string[]` — allow-list of channel ids; only matching channels are
|
|
297
|
-
* auto-opened. Ids are server-scoped (the raw id the server registers,
|
|
298
|
-
* e.g. `"zulip:tracker-miner-f"`).
|
|
287
|
+
* @deprecated One-time migration input for an installation's old auto,
|
|
288
|
+
* manual, or allow-list policy. Runtime lifecycle state is persisted in
|
|
289
|
+
* Chronicle and changed with channel_open/channel_close.
|
|
299
290
|
*/
|
|
300
291
|
channelSubscription?: 'auto' | 'manual' | string[];
|
|
301
292
|
}
|
|
@@ -797,6 +788,33 @@ export interface ChannelDescriptor {
|
|
|
797
788
|
|
|
798
789
|
/** Arbitrary metadata */
|
|
799
790
|
metadata?: Record<string, unknown>;
|
|
791
|
+
|
|
792
|
+
/**
|
|
793
|
+
* Server bootstrap preference, consulted only when the host has no durable
|
|
794
|
+
* desired state for this channel.
|
|
795
|
+
*/
|
|
796
|
+
initiallyOpen?: boolean;
|
|
797
|
+
|
|
798
|
+
/** Optional generic capabilities exposed by this channel. */
|
|
799
|
+
capabilities?: ChannelCapabilities;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
export interface ChannelCapabilities {
|
|
803
|
+
history?: {
|
|
804
|
+
maxMessages?: number;
|
|
805
|
+
supportsBeforeMessage?: boolean;
|
|
806
|
+
supportsSinceLastSeen?: boolean;
|
|
807
|
+
};
|
|
808
|
+
acknowledgment?: {
|
|
809
|
+
kind?: string;
|
|
810
|
+
supportsValue?: boolean;
|
|
811
|
+
};
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
export interface ChannelHistoryRequest {
|
|
815
|
+
limit: number;
|
|
816
|
+
beforeMessageId?: string;
|
|
817
|
+
sinceLastSeen?: boolean;
|
|
800
818
|
}
|
|
801
819
|
|
|
802
820
|
/**
|
|
@@ -858,9 +876,12 @@ export interface ChannelsListResult {
|
|
|
858
876
|
* Spec Section 14.3.
|
|
859
877
|
*/
|
|
860
878
|
export interface ChannelsOpenParams {
|
|
879
|
+
/** Exact registered id. Preferred over type/address matching. */
|
|
880
|
+
channelId?: string;
|
|
861
881
|
type: string;
|
|
862
882
|
address?: Record<string, unknown>;
|
|
863
883
|
metadata?: Record<string, unknown>;
|
|
884
|
+
history?: ChannelHistoryRequest;
|
|
864
885
|
}
|
|
865
886
|
|
|
866
887
|
/**
|
|
@@ -868,6 +889,8 @@ export interface ChannelsOpenParams {
|
|
|
868
889
|
*/
|
|
869
890
|
export interface ChannelsOpenResult {
|
|
870
891
|
channel: ChannelDescriptor;
|
|
892
|
+
history?: ChannelIncomingMessage[];
|
|
893
|
+
historyTruncated?: boolean;
|
|
871
894
|
}
|
|
872
895
|
|
|
873
896
|
/**
|
|
@@ -885,6 +908,19 @@ export interface ChannelsCloseResult {
|
|
|
885
908
|
closed: boolean;
|
|
886
909
|
}
|
|
887
910
|
|
|
911
|
+
export interface ChannelsAcknowledgeParams {
|
|
912
|
+
channelId: string;
|
|
913
|
+
messageId: string;
|
|
914
|
+
intent: string;
|
|
915
|
+
value?: string;
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
export interface ChannelsAcknowledgeResult {
|
|
919
|
+
acknowledged: boolean;
|
|
920
|
+
representation?: string;
|
|
921
|
+
reason?: string;
|
|
922
|
+
}
|
|
923
|
+
|
|
888
924
|
/**
|
|
889
925
|
* channels/outgoing/chunk params (Host → Server, Notification).
|
|
890
926
|
* For observers receiving moderated deltas.
|
|
@@ -1046,6 +1082,7 @@ export const McplMethod = {
|
|
|
1046
1082
|
ChannelsList: 'channels/list',
|
|
1047
1083
|
ChannelsOpen: 'channels/open',
|
|
1048
1084
|
ChannelsClose: 'channels/close',
|
|
1085
|
+
ChannelsAcknowledge: 'channels/acknowledge',
|
|
1049
1086
|
ChannelsOutgoingChunk: 'channels/outgoing/chunk',
|
|
1050
1087
|
ChannelsOutgoingComplete: 'channels/outgoing/complete',
|
|
1051
1088
|
ChannelsPublish: 'channels/publish',
|
package/src/types/agent.ts
CHANGED
|
@@ -107,6 +107,24 @@ export interface AgentConfig {
|
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
/** The intentionally small set of agent settings that may change in-process. */
|
|
111
|
+
export interface AgentRuntimeSettingsPatch {
|
|
112
|
+
contextBudgetTokens?: number;
|
|
113
|
+
tailTokens?: number;
|
|
114
|
+
transitionPaceTokens?: number;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface AgentRuntimeSettingsSnapshot {
|
|
118
|
+
contextBudgetTokens: number;
|
|
119
|
+
tailTokens?: number;
|
|
120
|
+
transitionPaceTokens?: number;
|
|
121
|
+
transition: 'stable' | 'converging' | 'blocked';
|
|
122
|
+
transitionReason?: 'transition_pace_too_small' | 'protected_context_exceeds_target';
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** Persisted values differ from recipe defaults; omitted keys inherit config. */
|
|
126
|
+
export type AgentRuntimeSettingsOverrides = AgentRuntimeSettingsPatch;
|
|
127
|
+
|
|
110
128
|
/**
|
|
111
129
|
* Result of running inference.
|
|
112
130
|
*/
|
package/src/types/events.ts
CHANGED
|
@@ -226,6 +226,7 @@ export interface McplPushEvent {
|
|
|
226
226
|
eventId: string;
|
|
227
227
|
content: ContentBlock[];
|
|
228
228
|
origin?: Record<string, unknown>;
|
|
229
|
+
tags?: string[];
|
|
229
230
|
timestamp: string;
|
|
230
231
|
inferenceId: string;
|
|
231
232
|
triggerInference?: boolean;
|
|
@@ -249,4 +250,3 @@ export interface McplChannelIncomingEvent {
|
|
|
249
250
|
triggerInference?: boolean;
|
|
250
251
|
targetAgents?: string[];
|
|
251
252
|
}
|
|
252
|
-
|
package/src/types/trace.ts
CHANGED
|
@@ -109,6 +109,8 @@ export type TraceEvent =
|
|
|
109
109
|
| (TraceEventBase & {
|
|
110
110
|
type: 'inference:stream_resumed';
|
|
111
111
|
agentName: string;
|
|
112
|
+
/** Count of mid-turn messages injected into the resumed round (hear-while-acting). */
|
|
113
|
+
injectedMessages?: number;
|
|
112
114
|
})
|
|
113
115
|
| (TraceEventBase & {
|
|
114
116
|
type: 'inference:stream_restarted';
|