@ariaflowagents/core 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.
Files changed (134) hide show
  1. package/README.md +39 -0
  2. package/dist/agents/Agent.d.ts +15 -0
  3. package/dist/agents/Agent.d.ts.map +1 -0
  4. package/dist/agents/Agent.js +33 -0
  5. package/dist/agents/Agent.js.map +1 -0
  6. package/dist/agents/CompositeAgent.d.ts +24 -0
  7. package/dist/agents/CompositeAgent.d.ts.map +1 -0
  8. package/dist/agents/CompositeAgent.js +59 -0
  9. package/dist/agents/CompositeAgent.js.map +1 -0
  10. package/dist/agents/FlowAgent.d.ts +11 -0
  11. package/dist/agents/FlowAgent.d.ts.map +1 -0
  12. package/dist/agents/FlowAgent.js +44 -0
  13. package/dist/agents/FlowAgent.js.map +1 -0
  14. package/dist/agents/LLMAgent.d.ts +11 -0
  15. package/dist/agents/LLMAgent.d.ts.map +1 -0
  16. package/dist/agents/LLMAgent.js +52 -0
  17. package/dist/agents/LLMAgent.js.map +1 -0
  18. package/dist/agents/TriageAgent.d.ts +11 -0
  19. package/dist/agents/TriageAgent.d.ts.map +1 -0
  20. package/dist/agents/TriageAgent.js +89 -0
  21. package/dist/agents/TriageAgent.js.map +1 -0
  22. package/dist/agents/index.d.ts +7 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +6 -0
  25. package/dist/agents/index.js.map +1 -0
  26. package/dist/flows/AgentFlowManager.d.ts +154 -0
  27. package/dist/flows/AgentFlowManager.d.ts.map +1 -0
  28. package/dist/flows/AgentFlowManager.js +272 -0
  29. package/dist/flows/AgentFlowManager.js.map +1 -0
  30. package/dist/flows/FlowGraph.d.ts +23 -0
  31. package/dist/flows/FlowGraph.d.ts.map +1 -0
  32. package/dist/flows/FlowGraph.js +57 -0
  33. package/dist/flows/FlowGraph.js.map +1 -0
  34. package/dist/flows/FlowManager.d.ts +36 -0
  35. package/dist/flows/FlowManager.d.ts.map +1 -0
  36. package/dist/flows/FlowManager.js +256 -0
  37. package/dist/flows/FlowManager.js.map +1 -0
  38. package/dist/flows/FlowNode.d.ts +8 -0
  39. package/dist/flows/FlowNode.d.ts.map +1 -0
  40. package/dist/flows/FlowNode.js +12 -0
  41. package/dist/flows/FlowNode.js.map +1 -0
  42. package/dist/flows/index.d.ts +8 -0
  43. package/dist/flows/index.d.ts.map +1 -0
  44. package/dist/flows/index.js +6 -0
  45. package/dist/flows/index.js.map +1 -0
  46. package/dist/flows/transitions.d.ts +9 -0
  47. package/dist/flows/transitions.d.ts.map +1 -0
  48. package/dist/flows/transitions.js +15 -0
  49. package/dist/flows/transitions.js.map +1 -0
  50. package/dist/guards/StopConditions.d.ts +14 -0
  51. package/dist/guards/StopConditions.d.ts.map +1 -0
  52. package/dist/guards/StopConditions.js +161 -0
  53. package/dist/guards/StopConditions.js.map +1 -0
  54. package/dist/guards/ToolEnforcer.d.ts +11 -0
  55. package/dist/guards/ToolEnforcer.d.ts.map +1 -0
  56. package/dist/guards/ToolEnforcer.js +40 -0
  57. package/dist/guards/ToolEnforcer.js.map +1 -0
  58. package/dist/guards/index.d.ts +4 -0
  59. package/dist/guards/index.d.ts.map +1 -0
  60. package/dist/guards/index.js +4 -0
  61. package/dist/guards/index.js.map +1 -0
  62. package/dist/guards/rules.d.ts +8 -0
  63. package/dist/guards/rules.d.ts.map +1 -0
  64. package/dist/guards/rules.js +128 -0
  65. package/dist/guards/rules.js.map +1 -0
  66. package/dist/hooks/HookRunner.d.ts +30 -0
  67. package/dist/hooks/HookRunner.d.ts.map +1 -0
  68. package/dist/hooks/HookRunner.js +85 -0
  69. package/dist/hooks/HookRunner.js.map +1 -0
  70. package/dist/hooks/builtin/logging.d.ts +6 -0
  71. package/dist/hooks/builtin/logging.d.ts.map +1 -0
  72. package/dist/hooks/builtin/logging.js +99 -0
  73. package/dist/hooks/builtin/logging.js.map +1 -0
  74. package/dist/hooks/builtin/metrics.d.ts +38 -0
  75. package/dist/hooks/builtin/metrics.d.ts.map +1 -0
  76. package/dist/hooks/builtin/metrics.js +111 -0
  77. package/dist/hooks/builtin/metrics.js.map +1 -0
  78. package/dist/hooks/index.d.ts +5 -0
  79. package/dist/hooks/index.d.ts.map +1 -0
  80. package/dist/hooks/index.js +4 -0
  81. package/dist/hooks/index.js.map +1 -0
  82. package/dist/index.d.ts +30 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +23 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/runtime/InjectionQueue.d.ts +46 -0
  87. package/dist/runtime/InjectionQueue.d.ts.map +1 -0
  88. package/dist/runtime/InjectionQueue.js +128 -0
  89. package/dist/runtime/InjectionQueue.js.map +1 -0
  90. package/dist/runtime/Runtime.d.ts +24 -0
  91. package/dist/runtime/Runtime.d.ts.map +1 -0
  92. package/dist/runtime/Runtime.js +277 -0
  93. package/dist/runtime/Runtime.js.map +1 -0
  94. package/dist/runtime/WorkingMemory.d.ts +12 -0
  95. package/dist/runtime/WorkingMemory.d.ts.map +1 -0
  96. package/dist/runtime/WorkingMemory.js +29 -0
  97. package/dist/runtime/WorkingMemory.js.map +1 -0
  98. package/dist/runtime/index.d.ts +4 -0
  99. package/dist/runtime/index.d.ts.map +1 -0
  100. package/dist/runtime/index.js +4 -0
  101. package/dist/runtime/index.js.map +1 -0
  102. package/dist/session/SessionManager.d.ts +20 -0
  103. package/dist/session/SessionManager.d.ts.map +1 -0
  104. package/dist/session/SessionManager.js +134 -0
  105. package/dist/session/SessionManager.js.map +1 -0
  106. package/dist/session/SessionStore.d.ts +9 -0
  107. package/dist/session/SessionStore.d.ts.map +1 -0
  108. package/dist/session/SessionStore.js +2 -0
  109. package/dist/session/SessionStore.js.map +1 -0
  110. package/dist/session/index.d.ts +4 -0
  111. package/dist/session/index.d.ts.map +1 -0
  112. package/dist/session/index.js +3 -0
  113. package/dist/session/index.js.map +1 -0
  114. package/dist/session/stores/MemoryStore.d.ts +11 -0
  115. package/dist/session/stores/MemoryStore.d.ts.map +1 -0
  116. package/dist/session/stores/MemoryStore.js +34 -0
  117. package/dist/session/stores/MemoryStore.js.map +1 -0
  118. package/dist/tools/Tool.d.ts +10 -0
  119. package/dist/tools/Tool.d.ts.map +1 -0
  120. package/dist/tools/Tool.js +2 -0
  121. package/dist/tools/Tool.js.map +1 -0
  122. package/dist/tools/handoff.d.ts +25 -0
  123. package/dist/tools/handoff.d.ts.map +1 -0
  124. package/dist/tools/handoff.js +51 -0
  125. package/dist/tools/handoff.js.map +1 -0
  126. package/dist/tools/index.d.ts +4 -0
  127. package/dist/tools/index.d.ts.map +1 -0
  128. package/dist/tools/index.js +2 -0
  129. package/dist/tools/index.js.map +1 -0
  130. package/dist/types/index.d.ts +325 -0
  131. package/dist/types/index.d.ts.map +1 -0
  132. package/dist/types/index.js +2 -0
  133. package/dist/types/index.js.map +1 -0
  134. package/package.json +71 -0
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ export { Agent } from './agents/Agent.js';
2
+ export { LLMAgent } from './agents/LLMAgent.js';
3
+ export { FlowAgent } from './agents/FlowAgent.js';
4
+ export { TriageAgent } from './agents/TriageAgent.js';
5
+ export { CompositeAgent } from './agents/CompositeAgent.js';
6
+ export { FlowManager } from './flows/FlowManager.js';
7
+ export { FlowGraph, FlowGraphBuilder } from './flows/FlowGraph.js';
8
+ export { FlowNode } from './flows/FlowNode.js';
9
+ export { createFlowTransition, isFlowTransition } from './flows/transitions.js';
10
+ export { AgentFlowManager, ContextStrategy, createCollectorTool, } from './flows/AgentFlowManager.js';
11
+ export { SessionManager } from './session/SessionManager.js';
12
+ export { MemoryStore } from './session/stores/MemoryStore.js';
13
+ export { Runtime, createRuntime } from './runtime/Runtime.js';
14
+ export { InjectionQueue, createInjectionQueue, commonInjections } from './runtime/InjectionQueue.js';
15
+ export { SessionWorkingMemory } from './runtime/WorkingMemory.js';
16
+ export { createHandoffTool, isHandoffResult } from './tools/handoff.js';
17
+ export { HookRunner, createHookRunner } from './hooks/HookRunner.js';
18
+ export { loggingHooks, createLoggingHooks } from './hooks/builtin/logging.js';
19
+ export { createMetricsHooks, InMemoryMetrics } from './hooks/builtin/metrics.js';
20
+ export { ToolEnforcer, createToolEnforcer } from './guards/ToolEnforcer.js';
21
+ export * as StopConditions from './guards/StopConditions.js';
22
+ export * as EnforcementRules from './guards/rules.js';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAWrC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGjF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,gBAAgB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { Injection, InjectionLevel } from '../types/index.js';
2
+ export declare class InjectionQueue {
3
+ private injections;
4
+ private useCounts;
5
+ add(injection: Omit<Injection, 'id'>): string;
6
+ addBatch(injections: Omit<Injection, 'id'>[]): string[];
7
+ remove(id: string): boolean;
8
+ get(id: string): Injection | undefined;
9
+ getFor(level: InjectionLevel, toolName?: string): string;
10
+ peekFor(level: InjectionLevel, toolName?: string): Injection[];
11
+ clear(): void;
12
+ size(): number;
13
+ getAll(): Injection[];
14
+ export(): {
15
+ injections: Injection[];
16
+ useCounts: [string, number][];
17
+ };
18
+ import(data: {
19
+ injections: Injection[];
20
+ useCounts: [string, number][];
21
+ }): void;
22
+ }
23
+ export declare function createInjectionQueue(): InjectionQueue;
24
+ export declare const commonInjections: {
25
+ professional: {
26
+ content: string;
27
+ priority: "high";
28
+ level: "system";
29
+ };
30
+ concise: {
31
+ content: string;
32
+ priority: "medium";
33
+ level: "system";
34
+ };
35
+ noGuessing: {
36
+ content: string;
37
+ priority: "critical";
38
+ level: "system";
39
+ };
40
+ confirmDestructive: {
41
+ content: string;
42
+ priority: "critical";
43
+ level: "system";
44
+ };
45
+ };
46
+ //# sourceMappingURL=InjectionQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InjectionQueue.d.ts","sourceRoot":"","sources":["../../src/runtime/InjectionQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAStF,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,SAAS,CAA6B;IAE9C,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,MAAM;IAO7C,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;IAIvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItC,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IA2CxD,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAkB9D,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,MAAM;IAId,MAAM,IAAI,SAAS,EAAE;IAIrB,MAAM,IAAI;QAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;KAAE;IAOpE,MAAM,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,IAAI;CAS/E;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;CAwB5B,CAAC"}
@@ -0,0 +1,128 @@
1
+ const PRIORITY_ORDER = {
2
+ critical: 4,
3
+ high: 3,
4
+ medium: 2,
5
+ low: 1,
6
+ };
7
+ export class InjectionQueue {
8
+ injections = new Map();
9
+ useCounts = new Map();
10
+ add(injection) {
11
+ const id = crypto.randomUUID();
12
+ this.injections.set(id, { ...injection, id });
13
+ this.useCounts.set(id, 0);
14
+ return id;
15
+ }
16
+ addBatch(injections) {
17
+ return injections.map(injection => this.add(injection));
18
+ }
19
+ remove(id) {
20
+ this.useCounts.delete(id);
21
+ return this.injections.delete(id);
22
+ }
23
+ get(id) {
24
+ return this.injections.get(id);
25
+ }
26
+ getFor(level, toolName) {
27
+ const now = Date.now();
28
+ const applicable = [];
29
+ for (const [id, injection] of this.injections) {
30
+ if (injection.level !== level)
31
+ continue;
32
+ if (level === 'tool' && injection.toolName !== toolName)
33
+ continue;
34
+ if (injection.expiresAt && injection.expiresAt < now) {
35
+ this.injections.delete(id);
36
+ this.useCounts.delete(id);
37
+ continue;
38
+ }
39
+ const uses = this.useCounts.get(id) ?? 0;
40
+ if (injection.maxUses !== undefined && uses >= injection.maxUses) {
41
+ continue;
42
+ }
43
+ applicable.push(injection);
44
+ }
45
+ applicable.sort((a, b) => PRIORITY_ORDER[b.priority] - PRIORITY_ORDER[a.priority]);
46
+ for (const injection of applicable) {
47
+ const uses = (this.useCounts.get(injection.id) ?? 0) + 1;
48
+ this.useCounts.set(injection.id, uses);
49
+ if (injection.once) {
50
+ this.injections.delete(injection.id);
51
+ this.useCounts.delete(injection.id);
52
+ }
53
+ }
54
+ if (applicable.length === 0)
55
+ return '';
56
+ return applicable
57
+ .map(inj => `<system-reminder priority="${inj.priority}">\n${inj.content}\n</system-reminder>`)
58
+ .join('\n\n');
59
+ }
60
+ peekFor(level, toolName) {
61
+ const now = Date.now();
62
+ const applicable = [];
63
+ for (const injection of this.injections.values()) {
64
+ if (injection.level !== level)
65
+ continue;
66
+ if (level === 'tool' && injection.toolName !== toolName)
67
+ continue;
68
+ if (injection.expiresAt && injection.expiresAt < now)
69
+ continue;
70
+ const uses = this.useCounts.get(injection.id) ?? 0;
71
+ if (injection.maxUses !== undefined && uses >= injection.maxUses)
72
+ continue;
73
+ applicable.push(injection);
74
+ }
75
+ return applicable.sort((a, b) => PRIORITY_ORDER[b.priority] - PRIORITY_ORDER[a.priority]);
76
+ }
77
+ clear() {
78
+ this.injections.clear();
79
+ this.useCounts.clear();
80
+ }
81
+ size() {
82
+ return this.injections.size;
83
+ }
84
+ getAll() {
85
+ return Array.from(this.injections.values());
86
+ }
87
+ export() {
88
+ return {
89
+ injections: Array.from(this.injections.values()),
90
+ useCounts: Array.from(this.useCounts.entries()),
91
+ };
92
+ }
93
+ import(data) {
94
+ this.clear();
95
+ for (const injection of data.injections) {
96
+ this.injections.set(injection.id, injection);
97
+ }
98
+ for (const [id, count] of data.useCounts) {
99
+ this.useCounts.set(id, count);
100
+ }
101
+ }
102
+ }
103
+ export function createInjectionQueue() {
104
+ return new InjectionQueue();
105
+ }
106
+ export const commonInjections = {
107
+ professional: {
108
+ content: 'Always maintain a professional, helpful, and empathetic tone.',
109
+ priority: 'high',
110
+ level: 'system',
111
+ },
112
+ concise: {
113
+ content: 'Keep responses concise and focused. Avoid unnecessary verbosity.',
114
+ priority: 'medium',
115
+ level: 'system',
116
+ },
117
+ noGuessing: {
118
+ content: 'Never guess or make up information. If unsure, ask for clarification or use tools to verify.',
119
+ priority: 'critical',
120
+ level: 'system',
121
+ },
122
+ confirmDestructive: {
123
+ content: 'Always confirm with the user before performing any destructive or irreversible actions.',
124
+ priority: 'critical',
125
+ level: 'system',
126
+ },
127
+ };
128
+ //# sourceMappingURL=InjectionQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InjectionQueue.js","sourceRoot":"","sources":["../../src/runtime/InjectionQueue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { AgentConfig, HarnessConfig, HarnessStreamPart, StreamOptions, Session } from '../types/index.js';
2
+ export declare class Runtime {
3
+ private config;
4
+ private agents;
5
+ private defaultAgentId;
6
+ private defaultModel?;
7
+ private maxSteps;
8
+ private maxHandoffs;
9
+ private stopConditions;
10
+ private sessionStore;
11
+ private hookRunner;
12
+ private enforcer;
13
+ constructor(config: HarnessConfig);
14
+ stream(options: StreamOptions): AsyncGenerator<HarnessStreamPart>;
15
+ chat(sessionId: string, input: string, userId?: string): AsyncGenerator<HarnessStreamPart>;
16
+ private runLoop;
17
+ private createSession;
18
+ getSession(id: string): Promise<Session | null>;
19
+ deleteSession(id: string): Promise<void>;
20
+ getAgent(id: string): AgentConfig | undefined;
21
+ getAllAgents(): AgentConfig[];
22
+ }
23
+ export declare function createRuntime(config: HarnessConfig): Runtime;
24
+ //# sourceMappingURL=Runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/Runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EAGjB,aAAa,EAEb,OAAO,EACR,MAAM,mBAAmB,CAAC;AAS3B,qBAAa,OAAO;IAWN,OAAO,CAAC,MAAM;IAV1B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAe;gBAEX,MAAM,EAAE,aAAa;IAelC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,iBAAiB,CAAC;IA8CjE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,iBAAiB,CAAC;YAIlF,OAAO;IA0MtB,OAAO,CAAC,aAAa;IAwBf,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAI/C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI7C,YAAY,IAAI,WAAW,EAAE;CAG9B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAE5D"}
@@ -0,0 +1,277 @@
1
+ import { streamText } from 'ai';
2
+ import { createHandoffTool, isHandoffResult } from '../tools/handoff.js';
3
+ import { InjectionQueue, commonInjections } from './InjectionQueue.js';
4
+ import { checkStopConditions, defaultStopConditions } from '../guards/StopConditions.js';
5
+ import { HookRunner } from '../hooks/HookRunner.js';
6
+ import { ToolEnforcer } from '../guards/ToolEnforcer.js';
7
+ import { defaultEnforcementRules } from '../guards/rules.js';
8
+ import { MemoryStore } from '../session/stores/MemoryStore.js';
9
+ export class Runtime {
10
+ config;
11
+ agents = new Map();
12
+ defaultAgentId;
13
+ defaultModel;
14
+ maxSteps;
15
+ maxHandoffs;
16
+ stopConditions;
17
+ sessionStore;
18
+ hookRunner;
19
+ enforcer;
20
+ constructor(config) {
21
+ this.config = config;
22
+ for (const agent of config.agents) {
23
+ this.agents.set(agent.id, agent);
24
+ }
25
+ this.defaultAgentId = config.defaultAgentId;
26
+ this.defaultModel = config.defaultModel;
27
+ this.maxSteps = config.maxSteps ?? 20;
28
+ this.maxHandoffs = config.maxHandoffs ?? 10;
29
+ this.stopConditions = config.stopConditions ?? defaultStopConditions;
30
+ this.sessionStore = config.sessionStore ?? new MemoryStore();
31
+ this.hookRunner = new HookRunner(config.hooks ?? {});
32
+ this.enforcer = new ToolEnforcer(config.enforcementRules ?? defaultEnforcementRules);
33
+ }
34
+ async *stream(options) {
35
+ let session;
36
+ if (options.sessionId) {
37
+ const existing = await this.sessionStore.get(options.sessionId);
38
+ session = existing ?? this.createSession(options.sessionId, options.userId);
39
+ }
40
+ else {
41
+ session = this.createSession(undefined, options.userId);
42
+ }
43
+ session.messages.push({ role: 'user', content: options.input });
44
+ const activeAgentId = session.activeAgentId ?? session.currentAgent ?? this.defaultAgentId;
45
+ session.activeAgentId = activeAgentId;
46
+ session.currentAgent = activeAgentId;
47
+ const context = {
48
+ session,
49
+ agentId: activeAgentId,
50
+ stepCount: 0,
51
+ totalTokens: 0,
52
+ handoffStack: [],
53
+ startTime: Date.now(),
54
+ consecutiveErrors: 0,
55
+ toolCallHistory: [],
56
+ };
57
+ const injectionQueue = new InjectionQueue();
58
+ injectionQueue.add(commonInjections.professional);
59
+ injectionQueue.add(commonInjections.noGuessing);
60
+ injectionQueue.add(commonInjections.confirmDestructive);
61
+ await this.hookRunner.onStart(context);
62
+ try {
63
+ yield* this.runLoop(context, injectionQueue);
64
+ await this.hookRunner.onEnd(context, { success: true });
65
+ }
66
+ catch (error) {
67
+ await this.hookRunner.onError(context, error);
68
+ await this.hookRunner.onEnd(context, { success: false, error: error });
69
+ yield { type: 'error', error: error.message };
70
+ }
71
+ finally {
72
+ await this.sessionStore.save(session);
73
+ yield { type: 'done', sessionId: session.id };
74
+ }
75
+ }
76
+ async *chat(sessionId, input, userId) {
77
+ yield* this.stream({ input, sessionId, userId });
78
+ }
79
+ async *runLoop(context, injectionQueue) {
80
+ while (context.handoffStack.length < this.maxHandoffs) {
81
+ if (context.handoffStack.includes(context.agentId)) {
82
+ yield {
83
+ type: 'error',
84
+ error: `Circular handoff detected: ${context.handoffStack.join(' -> ')} -> ${context.agentId}`,
85
+ };
86
+ return;
87
+ }
88
+ context.handoffStack.push(context.agentId);
89
+ const agent = this.agents.get(context.agentId);
90
+ if (!agent) {
91
+ yield { type: 'error', error: `Agent "${context.agentId}" not found` };
92
+ return;
93
+ }
94
+ yield { type: 'agent-start', agentId: agent.id };
95
+ await this.hookRunner.onAgentStart(context, agent.id);
96
+ const handoffTool = createHandoffTool(Array.from(this.agents.values()), context.agentId);
97
+ const tools = { ...agent.tools, handoff: handoffTool };
98
+ const systemInjections = injectionQueue.getFor('system');
99
+ const system = systemInjections
100
+ ? `${agent.systemPrompt}\n\n${systemInjections}`
101
+ : agent.systemPrompt;
102
+ let handoffTo = null;
103
+ let agentSteps = 0;
104
+ const agentMaxSteps = agent.maxSteps ?? agent.maxTurns ?? this.maxSteps;
105
+ while (agentSteps < agentMaxSteps) {
106
+ const stopResult = checkStopConditions(context, this.stopConditions);
107
+ if (stopResult.shouldStop) {
108
+ yield { type: 'error', error: `Stopped: ${stopResult.reason}` };
109
+ return;
110
+ }
111
+ agentSteps += 1;
112
+ context.stepCount += 1;
113
+ yield { type: 'step-start', step: context.stepCount, agentId: agent.id };
114
+ await this.hookRunner.onStepStart(context, context.stepCount);
115
+ try {
116
+ const model = agent.model ?? this.defaultModel;
117
+ if (!model) {
118
+ throw new Error(`Agent "${agent.id}" is missing a model`);
119
+ }
120
+ const result = streamText({
121
+ model: model,
122
+ system,
123
+ messages: context.session.messages,
124
+ tools,
125
+ });
126
+ const toolCalls = [];
127
+ for await (const chunk of result.fullStream) {
128
+ if (chunk.type === 'text-delta') {
129
+ yield { type: 'text-delta', text: chunk.text };
130
+ }
131
+ if (chunk.type === 'tool-call') {
132
+ const args = 'args' in chunk ? chunk.args : chunk.input;
133
+ const callRecord = {
134
+ toolCallId: chunk.toolCallId,
135
+ toolName: chunk.toolName,
136
+ args,
137
+ success: true,
138
+ timestamp: Date.now(),
139
+ };
140
+ toolCalls.push(callRecord);
141
+ await this.hookRunner.onToolCall(context, callRecord);
142
+ yield {
143
+ type: 'tool-call',
144
+ toolCallId: chunk.toolCallId,
145
+ toolName: chunk.toolName,
146
+ args,
147
+ };
148
+ }
149
+ if (chunk.type === 'tool-result') {
150
+ const toolResult = 'result' in chunk ? chunk.result : chunk.output;
151
+ const callRecord = toolCalls.find(call => call.toolCallId === chunk.toolCallId);
152
+ if (callRecord) {
153
+ callRecord.result = toolResult;
154
+ callRecord.durationMs = Date.now() - callRecord.timestamp;
155
+ context.toolCallHistory.push(callRecord);
156
+ await this.hookRunner.onToolResult(context, callRecord);
157
+ }
158
+ yield {
159
+ type: 'tool-result',
160
+ toolCallId: chunk.toolCallId,
161
+ toolName: chunk.toolName,
162
+ result: toolResult,
163
+ };
164
+ if (isHandoffResult(toolResult)) {
165
+ const targetAgent = toolResult.targetAgent ?? toolResult.targetAgentId;
166
+ handoffTo = targetAgent;
167
+ }
168
+ }
169
+ }
170
+ const response = await result.response;
171
+ context.session.messages.push(...response.messages);
172
+ const usage = await result.usage;
173
+ const totalTokens = usage.totalTokens ?? 0;
174
+ context.totalTokens += totalTokens;
175
+ if (context.session.metadata) {
176
+ context.session.metadata.totalTokens += totalTokens;
177
+ context.session.metadata.totalSteps += 1;
178
+ }
179
+ context.consecutiveErrors = 0;
180
+ yield { type: 'step-end', step: context.stepCount, agentId: agent.id };
181
+ await this.hookRunner.onStepEnd(context, context.stepCount, {
182
+ toolCalls,
183
+ finishReason: await result.finishReason,
184
+ tokensUsed: totalTokens,
185
+ handoffTo: handoffTo ?? undefined,
186
+ });
187
+ const finishReason = await result.finishReason;
188
+ if (finishReason !== 'tool-calls' || handoffTo) {
189
+ break;
190
+ }
191
+ }
192
+ catch (error) {
193
+ context.consecutiveErrors += 1;
194
+ await this.hookRunner.onError(context, error);
195
+ yield { type: 'error', error: error.message };
196
+ if (context.consecutiveErrors >= 3) {
197
+ return;
198
+ }
199
+ }
200
+ }
201
+ yield { type: 'agent-end', agentId: agent.id };
202
+ await this.hookRunner.onAgentEnd(context, agent.id);
203
+ if (!handoffTo) {
204
+ break;
205
+ }
206
+ const reason = context.toolCallHistory
207
+ .filter(call => call.toolName === 'handoff' && isHandoffResult(call.result))
208
+ .pop()?.result;
209
+ await this.hookRunner.onHandoff(context, context.agentId, handoffTo, reason?.reason ?? 'No reason provided');
210
+ yield {
211
+ type: 'handoff',
212
+ from: context.agentId,
213
+ to: handoffTo,
214
+ reason: reason?.reason ?? 'No reason provided',
215
+ };
216
+ context.session.handoffHistory.push({
217
+ from: context.agentId,
218
+ to: handoffTo,
219
+ reason: reason?.reason ?? 'No reason provided',
220
+ timestamp: new Date(),
221
+ });
222
+ if (context.session.metadata) {
223
+ context.session.metadata.handoffHistory.push({
224
+ from: context.agentId,
225
+ to: handoffTo,
226
+ reason: reason?.reason ?? 'No reason provided',
227
+ timestamp: new Date(),
228
+ });
229
+ }
230
+ context.session.activeAgentId = handoffTo;
231
+ context.session.currentAgent = handoffTo;
232
+ context.agentId = handoffTo;
233
+ }
234
+ if (context.handoffStack.length >= this.maxHandoffs) {
235
+ yield { type: 'error', error: `Maximum handoffs (${this.maxHandoffs}) exceeded` };
236
+ }
237
+ }
238
+ createSession(id, userId) {
239
+ const now = new Date();
240
+ return {
241
+ id: id ?? crypto.randomUUID(),
242
+ userId,
243
+ messages: [],
244
+ createdAt: now,
245
+ updatedAt: now,
246
+ workingMemory: {},
247
+ currentAgent: this.defaultAgentId,
248
+ activeAgentId: this.defaultAgentId,
249
+ state: {},
250
+ metadata: {
251
+ createdAt: now,
252
+ lastActiveAt: now,
253
+ totalTokens: 0,
254
+ totalSteps: 0,
255
+ handoffHistory: [],
256
+ },
257
+ agentStates: {},
258
+ handoffHistory: [],
259
+ };
260
+ }
261
+ async getSession(id) {
262
+ return this.sessionStore.get(id);
263
+ }
264
+ async deleteSession(id) {
265
+ await this.sessionStore.delete(id);
266
+ }
267
+ getAgent(id) {
268
+ return this.agents.get(id);
269
+ }
270
+ getAllAgents() {
271
+ return Array.from(this.agents.values());
272
+ }
273
+ }
274
+ export function createRuntime(config) {
275
+ return new Runtime(config);
276
+ }
277
+ //# sourceMappingURL=Runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../../src/runtime/Runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAWhC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,MAAM,OAAO,OAAO;IAWE;IAVZ,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IACxC,cAAc,CAAS;IACvB,YAAY,CAAiC;IAC7C,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,cAAc,CAAkB;IAChC,YAAY,CAA6C;IACzD,UAAU,CAAa;IACvB,QAAQ,CAAe;IAE/B,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,qBAAqB,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAsB;QAClC,IAAI,OAAgB,CAAC;QACrB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChE,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAEhE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC;QAC3F,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,OAAO,CAAC,YAAY,GAAG,aAAa,CAAC;QAErC,MAAM,OAAO,GAAe;YAC1B,OAAO;YACP,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,EAAE;SACpB,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC5C,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAClD,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChD,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC,CAAC;YAChF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,SAAiB,EAAE,KAAa,EAAE,MAAe;QAC3D,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,CAAC,OAAO,CACpB,OAAmB,EACnB,cAA8B;QAE9B,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,8BAA8B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE;iBAC/F,CAAC;gBACF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,OAAO,CAAC,OAAO,aAAa,EAAE,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEtD,MAAM,WAAW,GAAG,iBAAiB,CACnC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAChC,OAAO,CAAC,OAAO,CAChB,CAAC;YACF,MAAM,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAEvD,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,gBAAgB;gBAC7B,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,OAAO,gBAAgB,EAAE;gBAChD,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;YAEvB,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAExE,OAAO,UAAU,GAAG,aAAa,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACrE,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;oBAC1B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;oBAChE,OAAO;gBACT,CAAC;gBAED,UAAU,IAAI,CAAC,CAAC;gBAChB,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;gBAEvB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACzE,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAE9D,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;oBAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;oBAC5D,CAAC;oBAED,MAAM,MAAM,GAAG,UAAU,CAAC;wBACxB,KAAK,EAAE,KAAY;wBACnB,MAAM;wBACN,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;wBAClC,KAAK;qBACN,CAAC,CAAC;oBAEH,MAAM,SAAS,GAAqB,EAAE,CAAC;oBAEvC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;wBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;4BAChC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;wBACjD,CAAC;wBAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,KAAa,CAAC,KAAK,CAAC;4BACjE,MAAM,UAAU,GAAmB;gCACjC,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,IAAI;gCACJ,OAAO,EAAE,IAAI;gCACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;6BACtB,CAAC;4BACF,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAE3B,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;4BACtD,MAAM;gCACJ,IAAI,EAAE,WAAW;gCACjB,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,IAAI;6BACL,CAAC;wBACJ,CAAC;wBAED,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;4BACjC,MAAM,UAAU,GAAG,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,KAAa,CAAC,MAAM,CAAC;4BAC5E,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;4BAChF,IAAI,UAAU,EAAE,CAAC;gCACf,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC;gCAC/B,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;gCAC1D,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gCACzC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;4BAC1D,CAAC;4BAED,MAAM;gCACJ,IAAI,EAAE,aAAa;gCACnB,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,MAAM,EAAE,UAAU;6BACnB,CAAC;4BAEF,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gCAChC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,aAAa,CAAC;gCACvE,SAAS,GAAG,WAAW,CAAC;4BAC1B,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;oBACvC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAEpD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;oBACjC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;oBAC3C,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC;oBACnC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAC7B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,WAAW,CAAC;wBACpD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;oBAC3C,CAAC;oBAED,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC;oBAE9B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBACvE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;wBAC1D,SAAS;wBACT,YAAY,EAAE,MAAM,MAAM,CAAC,YAAY;wBACvC,UAAU,EAAE,WAAW;wBACvB,SAAS,EAAE,SAAS,IAAI,SAAS;qBAClC,CAAC,CAAC;oBAEH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;oBAC/C,IAAI,YAAY,KAAK,YAAY,IAAI,SAAS,EAAE,CAAC;wBAC/C,MAAM;oBACR,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;oBAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC;oBAEzD,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC;wBACnC,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe;iBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3E,GAAG,EAAE,EAAE,MAAyC,CAAC;YAEpD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAC7B,OAAO,EACP,OAAO,CAAC,OAAO,EACf,SAAS,EACT,MAAM,EAAE,MAAM,IAAI,oBAAoB,CACvC,CAAC;YAEF,MAAM;gBACJ,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,EAAE,EAAE,SAAS;gBACb,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,oBAAoB;aAC/C,CAAC;YAEF,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;gBAClC,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,EAAE,EAAE,SAAS;gBACb,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,oBAAoB;gBAC9C,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;oBAC3C,IAAI,EAAE,OAAO,CAAC,OAAO;oBACrB,EAAE,EAAE,SAAS;oBACb,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,oBAAoB;oBAC9C,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YACzC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,IAAI,CAAC,WAAW,YAAY,EAAE,CAAC;QACpF,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,EAAW,EAAE,MAAe;QAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,EAAE,EAAE,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE;YAC7B,MAAM;YACN,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,IAAI,CAAC,cAAc;YACjC,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE;gBACR,SAAS,EAAE,GAAG;gBACd,YAAY,EAAE,GAAG;gBACjB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,CAAC;gBACb,cAAc,EAAE,EAAE;aACnB;YACD,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,MAAqB;IACjD,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Session, WorkingMemory } from '../types/index.js';
2
+ export declare class SessionWorkingMemory implements WorkingMemory {
3
+ private session;
4
+ constructor(session: Session);
5
+ get<T>(key: string): T | undefined;
6
+ set<T>(key: string, value: T): void;
7
+ has(key: string): boolean;
8
+ delete(key: string): boolean;
9
+ clear(): void;
10
+ toJSON(): Record<string, unknown>;
11
+ }
12
+ //# sourceMappingURL=WorkingMemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingMemory.d.ts","sourceRoot":"","sources":["../../src/runtime/WorkingMemory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhE,qBAAa,oBAAqB,YAAW,aAAa;IAC5C,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAEpC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIlC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGlC"}
@@ -0,0 +1,29 @@
1
+ export class SessionWorkingMemory {
2
+ session;
3
+ constructor(session) {
4
+ this.session = session;
5
+ }
6
+ get(key) {
7
+ return this.session.workingMemory[key];
8
+ }
9
+ set(key, value) {
10
+ this.session.workingMemory[key] = value;
11
+ }
12
+ has(key) {
13
+ return Object.prototype.hasOwnProperty.call(this.session.workingMemory, key);
14
+ }
15
+ delete(key) {
16
+ if (this.has(key)) {
17
+ delete this.session.workingMemory[key];
18
+ return true;
19
+ }
20
+ return false;
21
+ }
22
+ clear() {
23
+ this.session.workingMemory = {};
24
+ }
25
+ toJSON() {
26
+ return { ...this.session.workingMemory };
27
+ }
28
+ }
29
+ //# sourceMappingURL=WorkingMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingMemory.js","sourceRoot":"","sources":["../../src/runtime/WorkingMemory.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,GAAG,CAAI,GAAW;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAkB,CAAC;IAC1D,CAAC;IAED,GAAG,CAAI,GAAW,EAAE,KAAQ;QAC1B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAgB,CAAC;IACrD,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export { Runtime, createRuntime } from './Runtime.js';
2
+ export { InjectionQueue, createInjectionQueue, commonInjections } from './InjectionQueue.js';
3
+ export { SessionWorkingMemory } from './WorkingMemory.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { Runtime, createRuntime } from './Runtime.js';
2
+ export { InjectionQueue, createInjectionQueue, commonInjections } from './InjectionQueue.js';
3
+ export { SessionWorkingMemory } from './WorkingMemory.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Session } from '../types/index.js';
2
+ import type { SessionStore } from './SessionStore.js';
3
+ export declare class SessionManager {
4
+ private store;
5
+ private defaultAgentId;
6
+ constructor(store: SessionStore, defaultAgentId: string);
7
+ create(userId?: string, sessionId?: string): Promise<Session>;
8
+ getOrCreate(sessionId?: string, userId?: string): Promise<Session>;
9
+ get(sessionId: string): Promise<Session | null>;
10
+ save(session: Session): Promise<void>;
11
+ delete(sessionId: string): Promise<void>;
12
+ listForUser(userId: string): Promise<Session[]>;
13
+ recordHandoff(sessionId: string, fromAgentId: string, toAgentId: string, reason: string): Promise<void>;
14
+ updateStats(sessionId: string, tokensUsed: number, stepsCompleted: number): Promise<void>;
15
+ setState(sessionId: string, key: string, value: unknown): Promise<void>;
16
+ getState<T>(sessionId: string, key: string): Promise<T | undefined>;
17
+ cleanup(maxAgeMs: number): Promise<number>;
18
+ updateAgentState(sessionId: string, agentId: string, state: Record<string, unknown>): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=SessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../src/session/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,cAAc;IAEvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;gBADd,KAAK,EAAE,YAAY,EACnB,cAAc,EAAE,MAAM;IAG1B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B7D,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAI/C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI/C,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IA0BV,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvE,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKnE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAc1G"}