@animalabs/agent-framework 0.1.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/LICENSE +21 -0
- package/README.md +233 -0
- package/dist/src/agent.d.ts +130 -0
- package/dist/src/agent.d.ts.map +1 -0
- package/dist/src/agent.js +406 -0
- package/dist/src/agent.js.map +1 -0
- package/dist/src/api/mcp-server.d.ts +37 -0
- package/dist/src/api/mcp-server.d.ts.map +1 -0
- package/dist/src/api/mcp-server.js +598 -0
- package/dist/src/api/mcp-server.js.map +1 -0
- package/dist/src/api/server.d.ts +83 -0
- package/dist/src/api/server.d.ts.map +1 -0
- package/dist/src/api/server.js +785 -0
- package/dist/src/api/server.js.map +1 -0
- package/dist/src/api/types.d.ts +395 -0
- package/dist/src/api/types.d.ts.map +1 -0
- package/dist/src/api/types.js +5 -0
- package/dist/src/api/types.js.map +1 -0
- package/dist/src/framework.d.ts +309 -0
- package/dist/src/framework.d.ts.map +1 -0
- package/dist/src/framework.js +2309 -0
- package/dist/src/framework.js.map +1 -0
- package/dist/src/gate/event-gate.d.ts +75 -0
- package/dist/src/gate/event-gate.d.ts.map +1 -0
- package/dist/src/gate/event-gate.js +503 -0
- package/dist/src/gate/event-gate.js.map +1 -0
- package/dist/src/gate/index.d.ts +3 -0
- package/dist/src/gate/index.d.ts.map +1 -0
- package/dist/src/gate/index.js +2 -0
- package/dist/src/gate/index.js.map +1 -0
- package/dist/src/gate/types.d.ts +82 -0
- package/dist/src/gate/types.d.ts.map +1 -0
- package/dist/src/gate/types.js +9 -0
- package/dist/src/gate/types.js.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +18 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcpl/channel-registry.d.ts +141 -0
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -0
- package/dist/src/mcpl/channel-registry.js +647 -0
- package/dist/src/mcpl/channel-registry.js.map +1 -0
- package/dist/src/mcpl/checkpoint-manager.d.ts +79 -0
- package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -0
- package/dist/src/mcpl/checkpoint-manager.js +430 -0
- package/dist/src/mcpl/checkpoint-manager.js.map +1 -0
- package/dist/src/mcpl/errors.d.ts +52 -0
- package/dist/src/mcpl/errors.d.ts.map +1 -0
- package/dist/src/mcpl/errors.js +93 -0
- package/dist/src/mcpl/errors.js.map +1 -0
- package/dist/src/mcpl/feature-set-manager.d.ts +91 -0
- package/dist/src/mcpl/feature-set-manager.d.ts.map +1 -0
- package/dist/src/mcpl/feature-set-manager.js +250 -0
- package/dist/src/mcpl/feature-set-manager.js.map +1 -0
- package/dist/src/mcpl/hook-orchestrator.d.ts +51 -0
- package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -0
- package/dist/src/mcpl/hook-orchestrator.js +217 -0
- package/dist/src/mcpl/hook-orchestrator.js.map +1 -0
- package/dist/src/mcpl/index.d.ts +14 -0
- package/dist/src/mcpl/index.d.ts.map +1 -0
- package/dist/src/mcpl/index.js +21 -0
- package/dist/src/mcpl/index.js.map +1 -0
- package/dist/src/mcpl/inference-router.d.ts +67 -0
- package/dist/src/mcpl/inference-router.d.ts.map +1 -0
- package/dist/src/mcpl/inference-router.js +249 -0
- package/dist/src/mcpl/inference-router.js.map +1 -0
- package/dist/src/mcpl/push-handler.d.ts +60 -0
- package/dist/src/mcpl/push-handler.d.ts.map +1 -0
- package/dist/src/mcpl/push-handler.js +162 -0
- package/dist/src/mcpl/push-handler.js.map +1 -0
- package/dist/src/mcpl/scope-manager.d.ts +76 -0
- package/dist/src/mcpl/scope-manager.d.ts.map +1 -0
- package/dist/src/mcpl/scope-manager.js +213 -0
- package/dist/src/mcpl/scope-manager.js.map +1 -0
- package/dist/src/mcpl/server-connection.d.ts +174 -0
- package/dist/src/mcpl/server-connection.d.ts.map +1 -0
- package/dist/src/mcpl/server-connection.js +559 -0
- package/dist/src/mcpl/server-connection.js.map +1 -0
- package/dist/src/mcpl/server-registry.d.ts +63 -0
- package/dist/src/mcpl/server-registry.d.ts.map +1 -0
- package/dist/src/mcpl/server-registry.js +119 -0
- package/dist/src/mcpl/server-registry.js.map +1 -0
- package/dist/src/mcpl/types.d.ts +755 -0
- package/dist/src/mcpl/types.d.ts.map +1 -0
- package/dist/src/mcpl/types.js +48 -0
- package/dist/src/mcpl/types.js.map +1 -0
- package/dist/src/module-registry.d.ts +93 -0
- package/dist/src/module-registry.d.ts.map +1 -0
- package/dist/src/module-registry.js +386 -0
- package/dist/src/module-registry.js.map +1 -0
- package/dist/src/modules/api/index.d.ts +22 -0
- package/dist/src/modules/api/index.d.ts.map +1 -0
- package/dist/src/modules/api/index.js +63 -0
- package/dist/src/modules/api/index.js.map +1 -0
- package/dist/src/modules/discord/discord-js-client.d.ts +58 -0
- package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -0
- package/dist/src/modules/discord/discord-js-client.js +273 -0
- package/dist/src/modules/discord/discord-js-client.js.map +1 -0
- package/dist/src/modules/discord/index.d.ts +82 -0
- package/dist/src/modules/discord/index.d.ts.map +1 -0
- package/dist/src/modules/discord/index.js +959 -0
- package/dist/src/modules/discord/index.js.map +1 -0
- package/dist/src/modules/discord/types.d.ts +327 -0
- package/dist/src/modules/discord/types.d.ts.map +1 -0
- package/dist/src/modules/discord/types.js +5 -0
- package/dist/src/modules/discord/types.js.map +1 -0
- package/dist/src/modules/index.d.ts +11 -0
- package/dist/src/modules/index.d.ts.map +1 -0
- package/dist/src/modules/index.js +7 -0
- package/dist/src/modules/index.js.map +1 -0
- package/dist/src/modules/workspace/index.d.ts +59 -0
- package/dist/src/modules/workspace/index.d.ts.map +1 -0
- package/dist/src/modules/workspace/index.js +831 -0
- package/dist/src/modules/workspace/index.js.map +1 -0
- package/dist/src/modules/workspace/sync.d.ts +48 -0
- package/dist/src/modules/workspace/sync.d.ts.map +1 -0
- package/dist/src/modules/workspace/sync.js +253 -0
- package/dist/src/modules/workspace/sync.js.map +1 -0
- package/dist/src/modules/workspace/types.d.ts +166 -0
- package/dist/src/modules/workspace/types.d.ts.map +1 -0
- package/dist/src/modules/workspace/types.js +5 -0
- package/dist/src/modules/workspace/types.js.map +1 -0
- package/dist/src/modules/workspace/watcher.d.ts +43 -0
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -0
- package/dist/src/modules/workspace/watcher.js +120 -0
- package/dist/src/modules/workspace/watcher.js.map +1 -0
- package/dist/src/queue.d.ts +50 -0
- package/dist/src/queue.d.ts.map +1 -0
- package/dist/src/queue.js +95 -0
- package/dist/src/queue.js.map +1 -0
- package/dist/src/safe-slice.d.ts +8 -0
- package/dist/src/safe-slice.d.ts.map +1 -0
- package/dist/src/safe-slice.js +18 -0
- package/dist/src/safe-slice.js.map +1 -0
- package/dist/src/types/agent.d.ts +118 -0
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js +2 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/src/types/events.d.ts +220 -0
- package/dist/src/types/events.d.ts.map +1 -0
- package/dist/src/types/events.js +2 -0
- package/dist/src/types/events.js.map +1 -0
- package/dist/src/types/framework.d.ts +184 -0
- package/dist/src/types/framework.d.ts.map +1 -0
- package/dist/src/types/framework.js +2 -0
- package/dist/src/types/framework.js.map +1 -0
- package/dist/src/types/index.d.ts +7 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +7 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/inference-log.d.ts +64 -0
- package/dist/src/types/inference-log.d.ts.map +1 -0
- package/dist/src/types/inference-log.js +5 -0
- package/dist/src/types/inference-log.js.map +1 -0
- package/dist/src/types/module.d.ts +302 -0
- package/dist/src/types/module.d.ts.map +1 -0
- package/dist/src/types/module.js +2 -0
- package/dist/src/types/module.js.map +1 -0
- package/dist/src/types/trace.d.ts +173 -0
- package/dist/src/types/trace.d.ts.map +1 -0
- package/dist/src/types/trace.js +2 -0
- package/dist/src/types/trace.js.map +1 -0
- package/dist/test/event-gate.test.d.ts +2 -0
- package/dist/test/event-gate.test.d.ts.map +1 -0
- package/dist/test/event-gate.test.js +535 -0
- package/dist/test/event-gate.test.js.map +1 -0
- package/dist/test/framework.test.d.ts +5 -0
- package/dist/test/framework.test.d.ts.map +1 -0
- package/dist/test/framework.test.js +738 -0
- package/dist/test/framework.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +58 -0
- package/src/agent.ts +512 -0
- package/src/api/mcp-server.ts +687 -0
- package/src/api/server.ts +1023 -0
- package/src/api/types.ts +542 -0
- package/src/framework.ts +2784 -0
- package/src/gate/event-gate.ts +623 -0
- package/src/gate/index.ts +12 -0
- package/src/gate/types.ts +112 -0
- package/src/index.ts +63 -0
- package/src/mcpl/channel-registry.ts +824 -0
- package/src/mcpl/checkpoint-manager.ts +545 -0
- package/src/mcpl/errors.ts +114 -0
- package/src/mcpl/feature-set-manager.ts +333 -0
- package/src/mcpl/hook-orchestrator.ts +281 -0
- package/src/mcpl/index.ts +134 -0
- package/src/mcpl/inference-router.ts +335 -0
- package/src/mcpl/push-handler.ts +232 -0
- package/src/mcpl/scope-manager.ts +262 -0
- package/src/mcpl/server-connection.ts +694 -0
- package/src/mcpl/server-registry.ts +144 -0
- package/src/mcpl/types.ts +991 -0
- package/src/module-registry.ts +547 -0
- package/src/modules/api/index.ts +94 -0
- package/src/modules/discord/discord-js-client.ts +353 -0
- package/src/modules/discord/index.ts +1146 -0
- package/src/modules/discord/types.ts +465 -0
- package/src/modules/index.ts +43 -0
- package/src/modules/workspace/index.ts +969 -0
- package/src/modules/workspace/sync.ts +314 -0
- package/src/modules/workspace/types.ts +202 -0
- package/src/modules/workspace/watcher.ts +142 -0
- package/src/queue.ts +106 -0
- package/src/safe-slice.ts +18 -0
- package/src/types/agent.ts +119 -0
- package/src/types/events.ts +252 -0
- package/src/types/framework.ts +211 -0
- package/src/types/index.ts +6 -0
- package/src/types/inference-log.ts +64 -0
- package/src/types/module.ts +367 -0
- package/src/types/trace.ts +196 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventGate type definitions.
|
|
3
|
+
*
|
|
4
|
+
* The EventGate is a core framework component that evaluates incoming events
|
|
5
|
+
* against declarative policies to decide whether they should trigger inference.
|
|
6
|
+
* Policies are read from a `gate.json` file with hot-reload support.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// Gate behaviors
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
/** How a matching policy affects inference triggering. */
|
|
14
|
+
export type GateBehavior =
|
|
15
|
+
| 'always' // Trigger inference immediately
|
|
16
|
+
| 'skip' // Don't trigger inference (event still enters context)
|
|
17
|
+
| { debounce: number }; // Batch events per-policy, deliver after delay (ms)
|
|
18
|
+
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Policy match criteria
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
/** Criteria for matching an event. All specified fields must match (AND logic). */
|
|
24
|
+
export interface GatePolicyMatch {
|
|
25
|
+
/** Event types to match (exact). Empty/omitted = all. */
|
|
26
|
+
scope?: string[];
|
|
27
|
+
/** ServerId to match (exact or glob with *). */
|
|
28
|
+
source?: string;
|
|
29
|
+
/** ChannelId to match (exact or glob with *). */
|
|
30
|
+
channel?: string;
|
|
31
|
+
/** Content text filter. */
|
|
32
|
+
filter?: { type: 'text' | 'regex'; pattern: string };
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
// Policy
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
|
|
39
|
+
/** A single gate policy — one rule in the ordered policy list. */
|
|
40
|
+
export interface GatePolicy {
|
|
41
|
+
name: string;
|
|
42
|
+
match: GatePolicyMatch;
|
|
43
|
+
behavior: GateBehavior;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
// Config (persisted as gate.json)
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
|
|
50
|
+
/** Top-level gate configuration, stored in gate.json. */
|
|
51
|
+
export interface GateConfig {
|
|
52
|
+
policies: GatePolicy[];
|
|
53
|
+
/** Behavior when no policy matches. Default: 'always'. */
|
|
54
|
+
default?: 'always' | 'skip';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// FrameworkConfig-facing options
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
|
|
61
|
+
/** Options for configuring the EventGate via FrameworkConfig. */
|
|
62
|
+
export interface GateOptions {
|
|
63
|
+
/** Path to gate.json. Default: derived from storePath. */
|
|
64
|
+
configPath?: string;
|
|
65
|
+
/** Initial config, seeded to gate.json if the file doesn't exist. */
|
|
66
|
+
config?: GateConfig;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// Runtime types (internal to EventGate, exported for tests/tools)
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
|
|
73
|
+
/** The result of evaluating an event against the gate. */
|
|
74
|
+
export interface GateDecision {
|
|
75
|
+
/** Whether to trigger inference. */
|
|
76
|
+
trigger: boolean;
|
|
77
|
+
/** Name of the matching policy (null if default applied). */
|
|
78
|
+
policyName: string | null;
|
|
79
|
+
/** The behavior that was applied. */
|
|
80
|
+
behavior: GateBehavior;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Information about an event being evaluated. */
|
|
84
|
+
export interface GateEventInfo {
|
|
85
|
+
content: string;
|
|
86
|
+
eventType: string;
|
|
87
|
+
serverId: string;
|
|
88
|
+
channelId: string;
|
|
89
|
+
metadata?: Record<string, unknown>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Per-policy runtime statistics (for gate:status). */
|
|
93
|
+
export interface GatePolicyStats {
|
|
94
|
+
name: string;
|
|
95
|
+
behavior: GateBehavior;
|
|
96
|
+
matchCount: number;
|
|
97
|
+
lastMatchTimestamp: number | null;
|
|
98
|
+
debounceState?: {
|
|
99
|
+
pendingCount: number;
|
|
100
|
+
nextDeliveryMs: number | null;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** Full gate status returned by gate:status tool. */
|
|
105
|
+
export interface GateStatus {
|
|
106
|
+
configPath: string;
|
|
107
|
+
configSource: 'file' | 'initial' | 'default';
|
|
108
|
+
lastReloadTimestamp: number | null;
|
|
109
|
+
default: 'always' | 'skip';
|
|
110
|
+
policies: GatePolicyStats[];
|
|
111
|
+
errors: string[];
|
|
112
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Types
|
|
2
|
+
export * from './types/index.js';
|
|
3
|
+
|
|
4
|
+
// Core classes
|
|
5
|
+
export { AgentFramework } from './framework.js';
|
|
6
|
+
export { Agent } from './agent.js';
|
|
7
|
+
export type { StartStreamResult } from './agent.js';
|
|
8
|
+
export { ProcessQueueImpl } from './queue.js';
|
|
9
|
+
export { ModuleRegistry } from './module-registry.js';
|
|
10
|
+
|
|
11
|
+
// Built-in modules
|
|
12
|
+
export * from './modules/index.js';
|
|
13
|
+
|
|
14
|
+
// API
|
|
15
|
+
export { ApiServer } from './api/server.js';
|
|
16
|
+
export { McpServer } from './api/mcp-server.js';
|
|
17
|
+
export type {
|
|
18
|
+
ApiServerConfig,
|
|
19
|
+
ApiMessage,
|
|
20
|
+
ApiRequest,
|
|
21
|
+
ApiResponse,
|
|
22
|
+
ApiEvent,
|
|
23
|
+
ApiCommand,
|
|
24
|
+
MessageSendParams,
|
|
25
|
+
MessageListParams,
|
|
26
|
+
InferenceRequestParams,
|
|
27
|
+
InferenceAbortParams,
|
|
28
|
+
BranchCreateParams,
|
|
29
|
+
BranchSwitchParams,
|
|
30
|
+
BranchDeleteParams,
|
|
31
|
+
AgentContextParams,
|
|
32
|
+
ModuleStateParams,
|
|
33
|
+
StoreInspectParams,
|
|
34
|
+
MessageInfo,
|
|
35
|
+
BranchInfo,
|
|
36
|
+
ModuleInfo,
|
|
37
|
+
StateInfo,
|
|
38
|
+
ApiEventType,
|
|
39
|
+
InferenceStartEvent,
|
|
40
|
+
InferenceCompleteEvent,
|
|
41
|
+
InferenceAbortedEvent,
|
|
42
|
+
InferenceErrorEvent,
|
|
43
|
+
ToolStartEvent,
|
|
44
|
+
ToolCompleteEvent,
|
|
45
|
+
ToolErrorEvent,
|
|
46
|
+
SpeechEvent,
|
|
47
|
+
MessageAddedEvent,
|
|
48
|
+
BranchSwitchedEvent,
|
|
49
|
+
BranchCreatedEvent,
|
|
50
|
+
BranchDeletedEvent,
|
|
51
|
+
} from './api/types.js';
|
|
52
|
+
// Note: AgentInfo, MessageEditedEvent, MessageRemovedEvent intentionally not re-exported
|
|
53
|
+
// from api/types.js to avoid conflicts with ./types/index.js
|
|
54
|
+
|
|
55
|
+
// EventGate
|
|
56
|
+
export { EventGate } from './gate/index.js';
|
|
57
|
+
export type { GateConfig, GateOptions, GatePolicy, GatePolicyMatch, GateBehavior } from './gate/index.js';
|
|
58
|
+
|
|
59
|
+
// Re-export commonly used types from dependencies
|
|
60
|
+
export type { ContextManager, ContextStrategy, TokenBudget } from '@animalabs/context-manager';
|
|
61
|
+
export { PassthroughStrategy, AutobiographicalStrategy, KnowledgeStrategy } from '@animalabs/context-manager';
|
|
62
|
+
export type { KnowledgeConfig, PhaseType } from '@animalabs/context-manager';
|
|
63
|
+
export type { Membrane, NormalizedMessage, NormalizedRequest, ContentBlock } from '@animalabs/membrane';
|