@ariaflowagents/core 0.4.1 → 0.4.3

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 (75) hide show
  1. package/README.md +86 -2
  2. package/dist/flows/AgentFlowManager.d.ts.map +1 -1
  3. package/dist/flows/AgentFlowManager.js +27 -1
  4. package/dist/flows/AgentFlowManager.js.map +1 -1
  5. package/dist/flows/FlowManager.d.ts.map +1 -1
  6. package/dist/flows/FlowManager.js +26 -2
  7. package/dist/flows/FlowManager.js.map +1 -1
  8. package/dist/guards/ToolEnforcer.d.ts +2 -0
  9. package/dist/guards/ToolEnforcer.d.ts.map +1 -1
  10. package/dist/guards/ToolEnforcer.js +13 -0
  11. package/dist/guards/ToolEnforcer.js.map +1 -1
  12. package/dist/hooks/helpers.d.ts +62 -0
  13. package/dist/hooks/helpers.d.ts.map +1 -0
  14. package/dist/hooks/helpers.js +250 -0
  15. package/dist/hooks/helpers.js.map +1 -0
  16. package/dist/hooks/index.d.ts +1 -0
  17. package/dist/hooks/index.d.ts.map +1 -1
  18. package/dist/hooks/index.js +1 -0
  19. package/dist/hooks/index.js.map +1 -1
  20. package/dist/index.d.ts +8 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +6 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/prompts/PromptBuilder.d.ts +9 -0
  25. package/dist/prompts/PromptBuilder.d.ts.map +1 -0
  26. package/dist/prompts/PromptBuilder.js +34 -0
  27. package/dist/prompts/PromptBuilder.js.map +1 -0
  28. package/dist/prompts/index.d.ts +7 -0
  29. package/dist/prompts/index.d.ts.map +1 -0
  30. package/dist/prompts/index.js +5 -0
  31. package/dist/prompts/index.js.map +1 -0
  32. package/dist/prompts/registry.d.ts +6 -0
  33. package/dist/prompts/registry.d.ts.map +1 -0
  34. package/dist/prompts/registry.js +16 -0
  35. package/dist/prompts/registry.js.map +1 -0
  36. package/dist/prompts/templates.d.ts +8 -0
  37. package/dist/prompts/templates.d.ts.map +1 -0
  38. package/dist/prompts/templates.js +256 -0
  39. package/dist/prompts/templates.js.map +1 -0
  40. package/dist/prompts/types.d.ts +93 -0
  41. package/dist/prompts/types.d.ts.map +1 -0
  42. package/dist/prompts/types.js +286 -0
  43. package/dist/prompts/types.js.map +1 -0
  44. package/dist/runtime/Runtime.d.ts +3 -0
  45. package/dist/runtime/Runtime.d.ts.map +1 -1
  46. package/dist/runtime/Runtime.js +225 -8
  47. package/dist/runtime/Runtime.js.map +1 -1
  48. package/dist/tools/errorHandling.d.ts +37 -0
  49. package/dist/tools/errorHandling.d.ts.map +1 -0
  50. package/dist/tools/errorHandling.js +139 -0
  51. package/dist/tools/errorHandling.js.map +1 -0
  52. package/dist/tools/errorMessages.d.ts +13 -0
  53. package/dist/tools/errorMessages.d.ts.map +1 -0
  54. package/dist/tools/errorMessages.js +81 -0
  55. package/dist/tools/errorMessages.js.map +1 -0
  56. package/dist/tools/final.d.ts +8 -0
  57. package/dist/tools/final.d.ts.map +1 -0
  58. package/dist/tools/final.js +9 -0
  59. package/dist/tools/final.js.map +1 -0
  60. package/dist/tools/index.d.ts +4 -0
  61. package/dist/tools/index.d.ts.map +1 -1
  62. package/dist/tools/index.js +3 -0
  63. package/dist/tools/index.js.map +1 -1
  64. package/dist/types/index.d.ts +20 -0
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/dist/types/index.js.map +1 -1
  67. package/dist/utils/chrono.d.ts +72 -0
  68. package/dist/utils/chrono.d.ts.map +1 -0
  69. package/dist/utils/chrono.js +106 -0
  70. package/dist/utils/chrono.js.map +1 -0
  71. package/dist/utils/index.d.ts +2 -0
  72. package/dist/utils/index.d.ts.map +1 -0
  73. package/dist/utils/index.js +3 -0
  74. package/dist/utils/index.js.map +1 -0
  75. package/package.json +7 -2
@@ -0,0 +1,250 @@
1
+ let tracingConfig = null;
2
+ const spanStack = [];
3
+ export function initTracing(config) {
4
+ tracingConfig = config;
5
+ }
6
+ export function startSpan(name, attributes, parentSpanId) {
7
+ if (!tracingConfig) {
8
+ throw new Error('Tracing not initialized. Call initTracing() first.');
9
+ }
10
+ const span = {
11
+ id: generateSpanId(),
12
+ parentId: parentSpanId ?? spanStack[spanStack.length - 1]?.id,
13
+ name,
14
+ startTime: Date.now(),
15
+ attributes: attributes ?? {},
16
+ events: [],
17
+ status: 'started',
18
+ };
19
+ spanStack.push(span);
20
+ return span;
21
+ }
22
+ export function endSpan(span, status, error) {
23
+ span.endTime = Date.now();
24
+ span.status = status === 'error' || error ? 'error' : 'ended';
25
+ if (error) {
26
+ span.error = error;
27
+ span.events.push({
28
+ name: 'error',
29
+ timestamp: Date.now(),
30
+ attributes: { message: error.message, stack: error.stack ?? '' },
31
+ });
32
+ }
33
+ const config = tracingConfig;
34
+ if (config?.exporter) {
35
+ config.exporter(span).catch(console.error);
36
+ }
37
+ spanStack.pop();
38
+ return span;
39
+ }
40
+ export function addSpanEvent(span, name, attributes) {
41
+ span.events.push({
42
+ name,
43
+ timestamp: Date.now(),
44
+ attributes,
45
+ });
46
+ }
47
+ export function getCurrentSpan() {
48
+ return spanStack[spanStack.length - 1];
49
+ }
50
+ export function createTracingHooks() {
51
+ return {
52
+ onAgentStart: async (context, agentId) => {
53
+ startSpan('agent.run', { agentId, sessionId: context.session.id });
54
+ },
55
+ onAgentEnd: async (context) => {
56
+ const span = getCurrentSpan();
57
+ if (span) {
58
+ endSpan(span, 'success');
59
+ }
60
+ },
61
+ onStepStart: async (context, step) => {
62
+ startSpan('agent.step', { step, agentId: context.agentId });
63
+ },
64
+ onStepEnd: async (context, step, result) => {
65
+ const span = getCurrentSpan();
66
+ if (span) {
67
+ endSpan(span, 'success');
68
+ }
69
+ },
70
+ onToolCall: async (context, call) => {
71
+ startSpan('tool.call', {
72
+ toolName: call.toolName,
73
+ toolCallId: call.toolCallId,
74
+ });
75
+ },
76
+ onToolResult: async (context, call) => {
77
+ const span = getCurrentSpan();
78
+ if (span) {
79
+ addSpanEvent(span, 'tool.result', {
80
+ success: String(call.success),
81
+ durationMs: call.durationMs ?? 0,
82
+ });
83
+ endSpan(span, call.success ? 'success' : 'error', call.error);
84
+ }
85
+ },
86
+ onHandoff: async (context, from, to, reason) => {
87
+ startSpan('agent.handoff', { from, to, reason });
88
+ endSpan(getCurrentSpan(), 'success');
89
+ },
90
+ onError: async (context, error) => {
91
+ const span = getCurrentSpan();
92
+ if (span) {
93
+ endSpan(span, 'error', error);
94
+ }
95
+ },
96
+ };
97
+ }
98
+ let metricsInstance = null;
99
+ export function createObservabilityMetrics(config = {}) {
100
+ const { prefix = 'ariaflow', tags = {} } = config;
101
+ const counters = new Map();
102
+ const gauges = new Map();
103
+ const histograms = new Map();
104
+ const timings = new Map();
105
+ const spans = [];
106
+ const makeKey = (name, tags) => {
107
+ const tagStr = tags && Object.keys(tags).length > 0
108
+ ? Object.entries({ ...tags }).map(([k, v]) => `${k}:${v}`).join(',')
109
+ : '';
110
+ return `${prefix}.${name}${tagStr ? `{${tagStr}}` : ''}`;
111
+ };
112
+ return {
113
+ increment(name, value = 1, tags) {
114
+ const key = makeKey(name, tags);
115
+ counters.set(key, (counters.get(key) ?? 0) + value);
116
+ },
117
+ gauge(name, value, tags) {
118
+ const key = makeKey(name, tags);
119
+ gauges.set(key, value);
120
+ },
121
+ histogram(name, value, tags) {
122
+ const key = makeKey(name, tags);
123
+ const values = histograms.get(key) ?? [];
124
+ values.push(value);
125
+ histograms.set(key, values);
126
+ },
127
+ timing(name, value, tags) {
128
+ const key = makeKey(name, tags);
129
+ const values = timings.get(key) ?? [];
130
+ values.push(value);
131
+ timings.set(key, values);
132
+ },
133
+ recordSpan(span) {
134
+ spans.push(span);
135
+ this.timing('span.duration', span.endTime - span.startTime, {
136
+ spanName: span.name,
137
+ status: span.status,
138
+ });
139
+ },
140
+ };
141
+ }
142
+ export function initMetrics(metrics) {
143
+ metricsInstance = metrics;
144
+ }
145
+ export function getMetrics() {
146
+ if (!metricsInstance) {
147
+ throw new Error('Metrics not initialized. Call initMetrics() first.');
148
+ }
149
+ return metricsInstance;
150
+ }
151
+ export function createObservabilityHooks() {
152
+ const metrics = getMetrics();
153
+ return {
154
+ onStart: async (context) => {
155
+ metrics.increment('run.start', 1, { agent: context.agentId });
156
+ metrics.gauge('run.active', 1);
157
+ },
158
+ onEnd: async (context, result) => {
159
+ const duration = Date.now() - context.startTime;
160
+ metrics.increment(result.success ? 'run.success' : 'run.failure');
161
+ metrics.gauge('run.active', -1);
162
+ metrics.timing('run.duration', duration);
163
+ metrics.histogram('run.steps', context.stepCount);
164
+ metrics.histogram('run.tokens', context.totalTokens);
165
+ metrics.histogram('run.handoffs', context.handoffStack.length);
166
+ },
167
+ onStepStart: async (context, step) => {
168
+ metrics.increment('step.start', 1, { agent: context.agentId });
169
+ },
170
+ onStepEnd: async (context, step, result) => {
171
+ metrics.increment('step.end', 1, { agent: context.agentId, reason: result.finishReason });
172
+ },
173
+ onToolCall: async (context, call) => {
174
+ metrics.increment('tool.call', 1, { tool: call.toolName });
175
+ },
176
+ onToolResult: async (context, call) => {
177
+ metrics.increment('tool.result', 1, { tool: call.toolName, success: String(call.success) });
178
+ if (call.durationMs) {
179
+ metrics.timing('tool.duration', call.durationMs, { tool: call.toolName });
180
+ }
181
+ },
182
+ onToolError: async (context, call) => {
183
+ metrics.increment('tool.error', 1, { tool: call.toolName });
184
+ },
185
+ onHandoff: async (context, from, to) => {
186
+ metrics.increment('handoff', 1, { from, to });
187
+ },
188
+ onError: async () => {
189
+ metrics.increment('error', 1);
190
+ },
191
+ };
192
+ }
193
+ export function captureSessionTelemetry(context, result) {
194
+ return {
195
+ sessionId: context.session.id,
196
+ agentId: context.agentId,
197
+ startTime: new Date(context.startTime),
198
+ endTime: new Date(),
199
+ duration: Date.now() - context.startTime,
200
+ steps: context.stepCount,
201
+ tokens: context.totalTokens,
202
+ toolCalls: context.toolCallHistory.length,
203
+ errors: context.toolCallHistory.filter(c => !c.success).length,
204
+ handoffs: context.handoffStack.length,
205
+ success: result.success,
206
+ };
207
+ }
208
+ export function createTelemetryHooks() {
209
+ const sessions = [];
210
+ return {
211
+ onStart: async (context) => {
212
+ sessions.push({
213
+ sessionId: context.session.id,
214
+ agentId: context.agentId,
215
+ startTime: new Date(),
216
+ steps: 0,
217
+ tokens: 0,
218
+ toolCalls: 0,
219
+ errors: 0,
220
+ handoffs: 0,
221
+ success: false,
222
+ });
223
+ },
224
+ onEnd: async (context, result) => {
225
+ const session = sessions.find(s => s.sessionId === context.session.id);
226
+ if (session) {
227
+ session.endTime = new Date();
228
+ session.duration = Date.now() - context.startTime;
229
+ session.steps = context.stepCount;
230
+ session.tokens = context.totalTokens;
231
+ session.toolCalls = context.toolCallHistory.length;
232
+ session.errors = context.toolCallHistory.filter(c => !c.success).length;
233
+ session.handoffs = context.handoffStack.length;
234
+ session.success = result.success;
235
+ }
236
+ },
237
+ onStepEnd: async (context, step, result) => {
238
+ const session = sessions.find(s => s.sessionId === context.session.id);
239
+ if (session) {
240
+ session.steps = step + 1;
241
+ session.tokens += result.tokensUsed;
242
+ session.toolCalls += result.toolCalls.length;
243
+ }
244
+ },
245
+ };
246
+ }
247
+ function generateSpanId() {
248
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
249
+ }
250
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/hooks/helpers.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export { HookRunner, createHookRunner } from './HookRunner.js';
2
2
  export { loggingHooks, createLoggingHooks } from './builtin/logging.js';
3
3
  export { createMetricsHooks, InMemoryMetrics } from './builtin/metrics.js';
4
4
  export type { Metrics } from './builtin/metrics.js';
5
+ export { initTracing, startSpan, endSpan, addSpanEvent, getCurrentSpan, createTracingHooks, initMetrics, getMetrics, createObservabilityMetrics, createObservabilityHooks, createTelemetryHooks, captureSessionTelemetry, type TracingConfig, type Span, type SpanEvent, type ObservabilityMetrics, type SessionTelemetry, } from './helpers.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { HookRunner, createHookRunner } from './HookRunner.js';
2
2
  export { loggingHooks, createLoggingHooks } from './builtin/logging.js';
3
3
  export { createMetricsHooks, InMemoryMetrics } from './builtin/metrics.js';
4
+ export { initTracing, startSpan, endSpan, addSpanEvent, getCurrentSpan, createTracingHooks, initMetrics, getMetrics, createObservabilityMetrics, createObservabilityHooks, createTelemetryHooks, captureSessionTelemetry, } from './helpers.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,GAMxB,MAAM,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -21,6 +21,10 @@ export type { Tool, ToolSet, ToolDefinition, ToolWithFiller } from './tools/Tool
21
21
  export { createTool, createToolWithFiller } from './tools/Tool.js';
22
22
  export { createHandoffTool, isHandoffResult } from './tools/handoff.js';
23
23
  export type { HandoffResult } from './tools/handoff.js';
24
+ export { isFinalResult } from './tools/final.js';
25
+ export type { FinalResult } from './tools/final.js';
26
+ export { PromptTemplateBuilder, PromptBuilder, createPromptTemplate, SUPPORT_AGENT_TEMPLATE, SALES_AGENT_TEMPLATE, TRIAGE_AGENT_TEMPLATE, createSupportAgentTemplate, } from './prompts/index.js';
27
+ export type { PromptSection, PromptTemplate, ToolGuideline } from './prompts/index.js';
24
28
  export { HookRunner, createHookRunner } from './hooks/HookRunner.js';
25
29
  export { loggingHooks, createLoggingHooks } from './hooks/builtin/logging.js';
26
30
  export { createMetricsHooks, InMemoryMetrics } from './hooks/builtin/metrics.js';
@@ -28,5 +32,9 @@ export type { Metrics } from './hooks/builtin/metrics.js';
28
32
  export { ToolEnforcer, createToolEnforcer } from './guards/ToolEnforcer.js';
29
33
  export * as StopConditions from './guards/StopConditions.js';
30
34
  export * as EnforcementRules from './guards/rules.js';
35
+ export { createDateParser, parseDate, parseDateRange, formatDateForSpeech, formatTimeForSpeech, dateParser, commonDateExpressions, } from './utils/index.js';
36
+ export type { DateParserOptions, ParsedDateResult } from './utils/index.js';
37
+ export { getTemplate, registerTemplate, listTemplates, getAllTemplates } from './prompts/index.js';
38
+ export type { GlossaryTerm, VoiceRulesConfig } from './prompts/index.js';
31
39
  export type * from './types/index.js';
32
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","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;AAC5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,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;AACrC,YAAY,EACV,iBAAiB,IAAI,sBAAsB,EAC3C,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,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;AAClE,OAAO,EACL,oBAAoB,EACpB,+BAA+B,EAC/B,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,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;AACjF,YAAY,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,gBAAgB,MAAM,mBAAmB,CAAC;AAEtD,mBAAmB,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,10 +16,16 @@ export { SessionWorkingMemory } from './runtime/WorkingMemory.js';
16
16
  export { createContextManager, createSummarizingContextManager, } from './runtime/ContextManager.js';
17
17
  export { createTool, createToolWithFiller } from './tools/Tool.js';
18
18
  export { createHandoffTool, isHandoffResult } from './tools/handoff.js';
19
+ export { isFinalResult } from './tools/final.js';
20
+ export { PromptTemplateBuilder, PromptBuilder, createPromptTemplate, SUPPORT_AGENT_TEMPLATE, SALES_AGENT_TEMPLATE, TRIAGE_AGENT_TEMPLATE, createSupportAgentTemplate, } from './prompts/index.js';
19
21
  export { HookRunner, createHookRunner } from './hooks/HookRunner.js';
20
22
  export { loggingHooks, createLoggingHooks } from './hooks/builtin/logging.js';
21
23
  export { createMetricsHooks, InMemoryMetrics } from './hooks/builtin/metrics.js';
22
24
  export { ToolEnforcer, createToolEnforcer } from './guards/ToolEnforcer.js';
23
25
  export * as StopConditions from './guards/StopConditions.js';
24
26
  export * as EnforcementRules from './guards/rules.js';
27
+ // Utilities
28
+ export { createDateParser, parseDate, parseDateRange, formatDateForSpeech, formatTimeForSpeech, dateParser, commonDateExpressions, } from './utils/index.js';
29
+ // Prompt templates and registry
30
+ export { getTemplate, registerTemplate, listTemplates, getAllTemplates } from './prompts/index.js';
25
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +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;AAClE,OAAO,EACL,oBAAoB,EACpB,+BAA+B,GAGhC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnE,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"}
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;AAClE,OAAO,EACL,oBAAoB,EACpB,+BAA+B,GAGhC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,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;AAEtD,YAAY;AACZ,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { PromptTemplate } from './types.js';
2
+ export declare class PromptBuilder {
3
+ private template;
4
+ constructor(template: PromptTemplate);
5
+ build(): string;
6
+ private formatSection;
7
+ private getHeader;
8
+ }
9
+ //# sourceMappingURL=PromptBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptBuilder.d.ts","sourceRoot":"","sources":["../../src/prompts/PromptBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAiB;gBAErB,QAAQ,EAAE,cAAc;IAIpC,KAAK,IAAI,MAAM;IAIf,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;CAgBlB"}
@@ -0,0 +1,34 @@
1
+ export class PromptBuilder {
2
+ template;
3
+ constructor(template) {
4
+ this.template = template;
5
+ }
6
+ build() {
7
+ return this.template.sections.map(section => this.formatSection(section)).join('\n\n');
8
+ }
9
+ formatSection(section) {
10
+ const header = this.getHeader(section.type);
11
+ // Custom sections include their own header in content
12
+ if (section.type === 'custom') {
13
+ return section.content;
14
+ }
15
+ return `${header}\n\n${section.content}`;
16
+ }
17
+ getHeader(type) {
18
+ const headers = {
19
+ personality: '# Personality',
20
+ goal: '# Goal',
21
+ guardrails: '# Guardrails',
22
+ tools: '# Tools',
23
+ tone: '# Tone',
24
+ character_normalization: '# Character Normalization',
25
+ voice_rules: '# Voice Output Rules',
26
+ glossary: '# Glossary',
27
+ system_reminder: '# System Reminder',
28
+ error_handling: '# Error Handling',
29
+ custom: '', // Custom sections include their own header in content
30
+ };
31
+ return headers[type] || '# Custom';
32
+ }
33
+ }
34
+ //# sourceMappingURL=PromptBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptBuilder.js","sourceRoot":"","sources":["../../src/prompts/PromptBuilder.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAChB,QAAQ,CAAiB;IAEjC,YAAY,QAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzF,CAAC;IAEO,aAAa,CAAC,OAAsB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,sDAAsD;QACtD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAEO,SAAS,CAAC,IAA2B;QAC3C,MAAM,OAAO,GAA2B;YACtC,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,QAAQ;YACd,uBAAuB,EAAE,2BAA2B;YACpD,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,mBAAmB;YACpC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,EAAE,EAAE,sDAAsD;SACnE,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export type { PromptSection, PromptTemplate, ToolGuideline, PromptTemplateBuilderOptions } from './types.js';
2
+ export { PromptTemplateBuilder, createPromptTemplate } from './types.js';
3
+ export type { PromptSectionType, VoiceRulesConfig, VoiceRules, GlossaryTerm, GlossaryConfig } from './types.js';
4
+ export { PromptBuilder } from './PromptBuilder.js';
5
+ export { SUPPORT_AGENT_TEMPLATE, SALES_AGENT_TEMPLATE, TRIAGE_AGENT_TEMPLATE, createSupportAgentTemplate, BUILTIN_TEMPLATES, } from './templates.js';
6
+ export { getTemplate, registerTemplate, listTemplates, getAllTemplates } from './registry.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC7G,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { PromptTemplateBuilder, createPromptTemplate } from './types.js';
2
+ export { PromptBuilder } from './PromptBuilder.js';
3
+ export { SUPPORT_AGENT_TEMPLATE, SALES_AGENT_TEMPLATE, TRIAGE_AGENT_TEMPLATE, createSupportAgentTemplate, BUILTIN_TEMPLATES, } from './templates.js';
4
+ export { getTemplate, registerTemplate, listTemplates, getAllTemplates } from './registry.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PromptTemplate } from './types.js';
2
+ export declare function getTemplate(id: string): PromptTemplate | undefined;
3
+ export declare function registerTemplate(template: PromptTemplate): void;
4
+ export declare function listTemplates(): string[];
5
+ export declare function getAllTemplates(): Record<string, PromptTemplate>;
6
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAElE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAE/D;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEhE"}
@@ -0,0 +1,16 @@
1
+ import { BUILTIN_TEMPLATES } from './templates.js';
2
+ // Global template registry
3
+ const templateRegistry = { ...BUILTIN_TEMPLATES };
4
+ export function getTemplate(id) {
5
+ return templateRegistry[id];
6
+ }
7
+ export function registerTemplate(template) {
8
+ templateRegistry[template.id] = template;
9
+ }
10
+ export function listTemplates() {
11
+ return Object.keys(templateRegistry);
12
+ }
13
+ export function getAllTemplates() {
14
+ return { ...templateRegistry };
15
+ }
16
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/prompts/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,2BAA2B;AAC3B,MAAM,gBAAgB,GAAmC,EAAE,GAAG,iBAAiB,EAAE,CAAC;AAElF,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { PromptTemplate } from './types.js';
2
+ import type { ToolSet } from '../tools/Tool.js';
3
+ export declare const SUPPORT_AGENT_TEMPLATE: PromptTemplate;
4
+ export declare const SALES_AGENT_TEMPLATE: PromptTemplate;
5
+ export declare const TRIAGE_AGENT_TEMPLATE: PromptTemplate;
6
+ export declare function createSupportAgentTemplate(tools?: ToolSet): PromptTemplate;
7
+ export declare const BUILTIN_TEMPLATES: Record<string, PromptTemplate>;
8
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/prompts/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,eAAO,MAAM,sBAAsB,EAAE,cAiEpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,cAuElC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAsDnC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,cAAc,CAyD1E;AAGD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAI5D,CAAC"}