armature-agent-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 (53) hide show
  1. package/dist/capabilities.d.ts +32 -0
  2. package/dist/capabilities.d.ts.map +1 -0
  3. package/dist/capabilities.js +4 -0
  4. package/dist/capabilities.js.map +1 -0
  5. package/dist/checkpoint.d.ts +48 -0
  6. package/dist/checkpoint.d.ts.map +1 -0
  7. package/dist/checkpoint.js +46 -0
  8. package/dist/checkpoint.js.map +1 -0
  9. package/dist/guardrails.d.ts +47 -0
  10. package/dist/guardrails.d.ts.map +1 -0
  11. package/dist/guardrails.js +30 -0
  12. package/dist/guardrails.js.map +1 -0
  13. package/dist/handoff.d.ts +112 -0
  14. package/dist/handoff.d.ts.map +1 -0
  15. package/dist/handoff.js +42 -0
  16. package/dist/handoff.js.map +1 -0
  17. package/dist/index.d.ts +13 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +13 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mcpServer.d.ts +142 -0
  22. package/dist/mcpServer.d.ts.map +1 -0
  23. package/dist/mcpServer.js +57 -0
  24. package/dist/mcpServer.js.map +1 -0
  25. package/dist/memory.d.ts +70 -0
  26. package/dist/memory.d.ts.map +1 -0
  27. package/dist/memory.js +65 -0
  28. package/dist/memory.js.map +1 -0
  29. package/dist/messages.d.ts +54 -0
  30. package/dist/messages.d.ts.map +1 -0
  31. package/dist/messages.js +13 -0
  32. package/dist/messages.js.map +1 -0
  33. package/dist/provider.d.ts +53 -0
  34. package/dist/provider.d.ts.map +1 -0
  35. package/dist/provider.js +2 -0
  36. package/dist/provider.js.map +1 -0
  37. package/dist/runManifest.d.ts +25 -0
  38. package/dist/runManifest.d.ts.map +1 -0
  39. package/dist/runManifest.js +57 -0
  40. package/dist/runManifest.js.map +1 -0
  41. package/dist/tools.d.ts +24 -0
  42. package/dist/tools.d.ts.map +1 -0
  43. package/dist/tools.js +2 -0
  44. package/dist/tools.js.map +1 -0
  45. package/dist/trace.d.ts +81 -0
  46. package/dist/trace.d.ts.map +1 -0
  47. package/dist/trace.js +92 -0
  48. package/dist/trace.js.map +1 -0
  49. package/dist/workflow.d.ts +97 -0
  50. package/dist/workflow.d.ts.map +1 -0
  51. package/dist/workflow.js +179 -0
  52. package/dist/workflow.js.map +1 -0
  53. package/package.json +20 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpServer.js","sourceRoot":"","sources":["../src/mcpServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Memory entry types, aligned with common agent memory taxonomies.
3
+ */
4
+ export type MemoryType = 'user' | 'feedback' | 'project' | 'reference' | 'episodic' | 'procedural' | 'fact';
5
+ export interface MemoryEntry {
6
+ /** Unique entry ID */
7
+ id: string;
8
+ /** Memory type */
9
+ type: MemoryType;
10
+ /** Human-readable title or key */
11
+ title: string;
12
+ /** The memory content */
13
+ content: string;
14
+ /** Searchable tags */
15
+ tags?: string[];
16
+ /** ISO 8601 creation timestamp */
17
+ createdAt: string;
18
+ /** ISO 8601 last-updated timestamp */
19
+ updatedAt: string;
20
+ /** Session ID that created this memory */
21
+ sessionId?: string;
22
+ /** Relevance score (0-1), set by retrieval */
23
+ score?: number;
24
+ /** Arbitrary metadata */
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ /**
28
+ * How to search memories.
29
+ */
30
+ export type MemorySearchMode =
31
+ /** Most recently updated first */
32
+ 'recency'
33
+ /** Match by tags (exact) */
34
+ | 'tag'
35
+ /** Substring match in title + content */
36
+ | 'text';
37
+ export interface MemoryQuery {
38
+ /** Search mode */
39
+ mode: MemorySearchMode;
40
+ /** Text query (for 'text' mode) */
41
+ text?: string;
42
+ /** Tags to match (for 'tag' mode) */
43
+ tags?: string[];
44
+ /** Filter by memory type */
45
+ type?: MemoryType;
46
+ /** Maximum results to return */
47
+ limit?: number;
48
+ }
49
+ export interface MemoryStore {
50
+ /** Save or update a memory entry. */
51
+ save(entry: MemoryEntry): Promise<void>;
52
+ /** Load a single memory by ID. */
53
+ load(id: string): Promise<MemoryEntry | undefined>;
54
+ /** Search memories. */
55
+ search(query: MemoryQuery): Promise<MemoryEntry[]>;
56
+ /** Delete a memory by ID. */
57
+ delete(id: string): Promise<void>;
58
+ /** List all memories (optionally filtered by type). */
59
+ list(type?: MemoryType, limit?: number): Promise<MemoryEntry[]>;
60
+ }
61
+ export declare class InMemoryMemoryStore implements MemoryStore {
62
+ private store;
63
+ save(entry: MemoryEntry): Promise<void>;
64
+ load(id: string): Promise<MemoryEntry | undefined>;
65
+ search(query: MemoryQuery): Promise<MemoryEntry[]>;
66
+ delete(id: string): Promise<void>;
67
+ list(type?: MemoryType, limit?: number): Promise<MemoryEntry[]>;
68
+ get size(): number;
69
+ }
70
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,YAAY,GACZ,MAAM,CAAA;AAEV,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,kBAAkB;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB;AAC1B,kCAAkC;AAChC,SAAS;AACX,4BAA4B;GAC1B,KAAK;AACP,yCAAyC;GACvC,MAAM,CAAA;AAEV,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,IAAI,EAAE,gBAAgB,CAAA;IACtB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,4BAA4B;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,kCAAkC;IAClC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;IAClD,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAClD,6BAA6B;IAC7B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,uDAAuD;IACvD,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;CAChE;AAMD,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,KAAK,CAAiC;IAExC,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKlD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6ClD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IASrE,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
package/dist/memory.js ADDED
@@ -0,0 +1,65 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Memory: provider-neutral persistent knowledge store for agents
3
+ // ---------------------------------------------------------------------------
4
+ // ---------------------------------------------------------------------------
5
+ // InMemoryMemoryStore: reference implementation
6
+ // ---------------------------------------------------------------------------
7
+ export class InMemoryMemoryStore {
8
+ store = new Map();
9
+ async save(entry) {
10
+ this.store.set(entry.id, structuredClone(entry));
11
+ }
12
+ async load(id) {
13
+ const entry = this.store.get(id);
14
+ return entry ? structuredClone(entry) : undefined;
15
+ }
16
+ async search(query) {
17
+ let entries = [...this.store.values()];
18
+ // Filter by type
19
+ if (query.type) {
20
+ entries = entries.filter(e => e.type === query.type);
21
+ }
22
+ // Apply search mode
23
+ switch (query.mode) {
24
+ case 'recency':
25
+ entries.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
26
+ break;
27
+ case 'tag':
28
+ if (query.tags && query.tags.length > 0) {
29
+ const queryTags = new Set(query.tags);
30
+ entries = entries.filter(e => e.tags?.some(t => queryTags.has(t)) ?? false);
31
+ // Sort by number of matching tags (descending)
32
+ entries.sort((a, b) => {
33
+ const aMatches = a.tags?.filter(t => queryTags.has(t)).length ?? 0;
34
+ const bMatches = b.tags?.filter(t => queryTags.has(t)).length ?? 0;
35
+ return bMatches - aMatches;
36
+ });
37
+ }
38
+ break;
39
+ case 'text':
40
+ if (query.text) {
41
+ const lower = query.text.toLowerCase();
42
+ entries = entries.filter(e => e.title.toLowerCase().includes(lower) ||
43
+ e.content.toLowerCase().includes(lower));
44
+ }
45
+ break;
46
+ }
47
+ const limit = query.limit ?? 50;
48
+ return entries.slice(0, limit).map(e => structuredClone(e));
49
+ }
50
+ async delete(id) {
51
+ this.store.delete(id);
52
+ }
53
+ async list(type, limit) {
54
+ let entries = [...this.store.values()];
55
+ if (type) {
56
+ entries = entries.filter(e => e.type === type);
57
+ }
58
+ entries.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
59
+ return entries.slice(0, limit ?? 100).map(e => structuredClone(e));
60
+ }
61
+ get size() {
62
+ return this.store.size;
63
+ }
64
+ }
65
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { ToolCall, ToolResult } from './tools.js';
2
+ export interface AgentAttachmentPart {
3
+ type: 'attachment';
4
+ mediaType: string;
5
+ fileId?: string;
6
+ name?: string;
7
+ text?: string;
8
+ data?: string;
9
+ url?: string;
10
+ }
11
+ export interface AgentTextPart {
12
+ type: 'text';
13
+ text: string;
14
+ }
15
+ export interface AgentReasoningPart {
16
+ type: 'reasoning';
17
+ text: string;
18
+ redacted?: boolean;
19
+ }
20
+ export interface AgentToolCallPart {
21
+ type: 'tool_call';
22
+ toolCall: ToolCall;
23
+ }
24
+ export interface AgentToolResultPart {
25
+ type: 'tool_result';
26
+ toolResult: ToolResult;
27
+ }
28
+ export type AgentContentPart = AgentAttachmentPart | AgentReasoningPart | AgentTextPart | AgentToolCallPart | AgentToolResultPart;
29
+ export interface AgentMessageBase {
30
+ id?: string;
31
+ metadata?: Record<string, unknown>;
32
+ }
33
+ export interface SystemMessage extends AgentMessageBase {
34
+ role: 'system';
35
+ parts: AgentTextPart[];
36
+ }
37
+ export interface UserMessage extends AgentMessageBase {
38
+ role: 'user';
39
+ parts: AgentContentPart[];
40
+ }
41
+ export interface AssistantMessage extends AgentMessageBase {
42
+ role: 'assistant';
43
+ parts: AgentContentPart[];
44
+ }
45
+ export interface EventMessage extends AgentMessageBase {
46
+ role: 'event';
47
+ name: string;
48
+ data?: Record<string, unknown>;
49
+ parts?: AgentContentPart[];
50
+ }
51
+ export type AgentMessage = AssistantMessage | EventMessage | SystemMessage | UserMessage;
52
+ export declare function collectToolCalls(message: AgentMessage): ToolCall[];
53
+ export declare function collectToolResults(message: AgentMessage): ToolResult[];
54
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,aAAa,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,iBAAiB,GACjB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,aAAa,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC3B;AAED,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,YAAY,GACZ,aAAa,GACb,WAAW,CAAA;AAEf,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,QAAQ,EAAE,CAMlE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,EAAE,CAMtE"}
@@ -0,0 +1,13 @@
1
+ export function collectToolCalls(message) {
2
+ const parts = 'parts' in message ? (message.parts ?? []) : [];
3
+ return parts
4
+ .filter((part) => part.type === 'tool_call')
5
+ .map(part => part.toolCall);
6
+ }
7
+ export function collectToolResults(message) {
8
+ const parts = 'parts' in message ? (message.parts ?? []) : [];
9
+ return parts
10
+ .filter((part) => part.type === 'tool_result')
11
+ .map(part => part.toolResult);
12
+ }
13
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAyEA,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE7D,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAA6B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;SACtE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,MAAM,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE7D,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAA+B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;SAC1E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACjC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { ProviderCapabilities } from './capabilities.js';
2
+ import type { AgentMessage } from './messages.js';
3
+ import type { AgentToolDefinition, ToolCall } from './tools.js';
4
+ export interface ProviderUsage {
5
+ inputTokens: number;
6
+ outputTokens: number;
7
+ reasoningTokens?: number;
8
+ cacheReadTokens?: number;
9
+ cacheWriteTokens?: number;
10
+ toolCallCount?: number;
11
+ webSearchCount?: number;
12
+ providerMetrics?: Record<string, number | string | boolean>;
13
+ }
14
+ export interface ProviderRequest {
15
+ model: string;
16
+ messages: AgentMessage[];
17
+ tools?: AgentToolDefinition[];
18
+ maxOutputTokens?: number;
19
+ temperature?: number;
20
+ metadata?: Record<string, unknown>;
21
+ }
22
+ export type ProviderEvent = {
23
+ type: 'message_start';
24
+ } | {
25
+ type: 'assistant_text_delta';
26
+ text: string;
27
+ } | {
28
+ type: 'reasoning_delta';
29
+ text: string;
30
+ } | {
31
+ type: 'tool_call';
32
+ toolCall: ToolCall;
33
+ } | {
34
+ type: 'usage';
35
+ usage: ProviderUsage;
36
+ } | {
37
+ type: 'done';
38
+ finishReason?: string;
39
+ usage?: ProviderUsage;
40
+ } | {
41
+ type: 'error';
42
+ error: string;
43
+ };
44
+ export interface ProviderAdapter<PreparedRequest = unknown, RawEvent = unknown, WireMessage = unknown, WireTool = unknown> {
45
+ readonly id: string;
46
+ readonly capabilities: ProviderCapabilities;
47
+ prepare(request: ProviderRequest): PreparedRequest;
48
+ translateMessages(messages: AgentMessage[]): WireMessage[];
49
+ translateTools(tools: AgentToolDefinition[]): WireTool[];
50
+ parseEvent(event: RawEvent): ProviderEvent[];
51
+ normalizeUsage(rawUsage: unknown): ProviderUsage;
52
+ }
53
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpC,MAAM,WAAW,eAAe,CAC9B,eAAe,GAAG,OAAO,EACzB,QAAQ,GAAG,OAAO,EAClB,WAAW,GAAG,OAAO,EACrB,QAAQ,GAAG,OAAO;IAElB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAAA;IAClD,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAA;IAC1D,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,QAAQ,EAAE,CAAA;IACxD,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,EAAE,CAAA;IAC5C,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,CAAA;CACjD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ export type AgentStyle = 'coding' | 'research' | 'ops' | 'support' | 'workflow' | 'realtime_voice';
2
+ export type RuntimeTopology = 'planner_executor_reviewer' | 'planner_parallel_synthesizer' | 'deterministic_runbook_with_approvals' | 'retrieval_first_single_agent' | 'graph_queue_state_machine' | 'interruptible_realtime_loop';
3
+ export type StyleRouteSource = 'explicit' | 'query_source' | 'tool_bias' | 'default';
4
+ export type StyleProfile = {
5
+ style: AgentStyle;
6
+ topology: RuntimeTopology;
7
+ toolBias: readonly string[];
8
+ memoryBias: string;
9
+ providerBias: string;
10
+ };
11
+ export type RunManifest = StyleProfile & {
12
+ routeSource: StyleRouteSource;
13
+ querySource: string;
14
+ foundationProviderId: string;
15
+ transportProvider: string;
16
+ };
17
+ export declare function getStyleProfile(style: AgentStyle): StyleProfile;
18
+ export declare function createRunManifest(params: {
19
+ style: AgentStyle;
20
+ routeSource: StyleRouteSource;
21
+ querySource: string;
22
+ foundationProviderId: string;
23
+ transportProvider: string;
24
+ }): RunManifest;
25
+ //# sourceMappingURL=runManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runManifest.d.ts","sourceRoot":"","sources":["../src/runManifest.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,UAAU,GACV,KAAK,GACL,SAAS,GACT,UAAU,GACV,gBAAgB,CAAA;AAEpB,MAAM,MAAM,eAAe,GACvB,2BAA2B,GAC3B,8BAA8B,GAC9B,sCAAsC,GACtC,8BAA8B,GAC9B,2BAA2B,GAC3B,6BAA6B,CAAA;AAEjC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,CAAA;AAEpF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,UAAU,CAAA;IACjB,QAAQ,EAAE,eAAe,CAAA;IACzB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,WAAW,EAAE,gBAAgB,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AA+CD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAE/D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,KAAK,EAAE,UAAU,CAAA;IACjB,WAAW,EAAE,gBAAgB,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,iBAAiB,EAAE,MAAM,CAAA;CAC1B,GAAG,WAAW,CAQd"}
@@ -0,0 +1,57 @@
1
+ const STYLE_PROFILES = {
2
+ coding: {
3
+ style: 'coding',
4
+ topology: 'planner_executor_reviewer',
5
+ toolBias: ['filesystem', 'shell', 'git', 'tests', 'search'],
6
+ memoryBias: 'working-memory-with-artifact-store',
7
+ providerBias: 'premium-reasoning-with-fast-patch-fallback',
8
+ },
9
+ research: {
10
+ style: 'research',
11
+ topology: 'planner_parallel_synthesizer',
12
+ toolBias: ['web', 'search', 'docs', 'notebooks'],
13
+ memoryBias: 'source-grounded-memory',
14
+ providerBias: 'long-context-reasoning',
15
+ },
16
+ ops: {
17
+ style: 'ops',
18
+ topology: 'deterministic_runbook_with_approvals',
19
+ toolBias: ['shell', 'infra', 'logs', 'dashboards'],
20
+ memoryBias: 'short-operational-memory',
21
+ providerBias: 'conservative-model-with-strict-policy',
22
+ },
23
+ support: {
24
+ style: 'support',
25
+ topology: 'retrieval_first_single_agent',
26
+ toolBias: ['knowledge-base', 'crm', 'ticketing'],
27
+ memoryBias: 'retrieval-centric-memory',
28
+ providerBias: 'balanced-low-latency',
29
+ },
30
+ workflow: {
31
+ style: 'workflow',
32
+ topology: 'graph_queue_state_machine',
33
+ toolBias: ['forms', 'apis', 'queues', 'schedulers'],
34
+ memoryBias: 'durable-workflow-state',
35
+ providerBias: 'balanced-tool-use',
36
+ },
37
+ realtime_voice: {
38
+ style: 'realtime_voice',
39
+ topology: 'interruptible_realtime_loop',
40
+ toolBias: ['audio', 'lightweight-tools', 'summaries'],
41
+ memoryBias: 'ephemeral-memory-with-summaries',
42
+ providerBias: 'realtime-low-latency',
43
+ },
44
+ };
45
+ export function getStyleProfile(style) {
46
+ return STYLE_PROFILES[style];
47
+ }
48
+ export function createRunManifest(params) {
49
+ return {
50
+ ...getStyleProfile(params.style),
51
+ routeSource: params.routeSource,
52
+ querySource: params.querySource,
53
+ foundationProviderId: params.foundationProviderId,
54
+ transportProvider: params.transportProvider,
55
+ };
56
+ }
57
+ //# sourceMappingURL=runManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runManifest.js","sourceRoot":"","sources":["../src/runManifest.ts"],"names":[],"mappings":"AAiCA,MAAM,cAAc,GAAqC;IACvD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,2BAA2B;QACrC,QAAQ,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC3D,UAAU,EAAE,oCAAoC;QAChD,YAAY,EAAE,4CAA4C;KAC3D;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,8BAA8B;QACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;QAChD,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,wBAAwB;KACvC;IACD,GAAG,EAAE;QACH,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,sCAAsC;QAChD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QAClD,UAAU,EAAE,0BAA0B;QACtC,YAAY,EAAE,uCAAuC;KACtD;IACD,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,8BAA8B;QACxC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,WAAW,CAAC;QAChD,UAAU,EAAE,0BAA0B;QACtC,YAAY,EAAE,sBAAsB;KACrC;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,2BAA2B;QACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC;QACnD,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,mBAAmB;KAClC;IACD,cAAc,EAAE;QACd,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,6BAA6B;QACvC,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,CAAC;QACrD,UAAU,EAAE,iCAAiC;QAC7C,YAAY,EAAE,sBAAsB;KACrC;CACF,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAMjC;IACC,OAAO;QACL,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAA;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface AgentToolAnnotations {
2
+ readOnly?: boolean;
3
+ destructive?: boolean;
4
+ openWorld?: boolean;
5
+ }
6
+ export interface AgentToolDefinition {
7
+ name: string;
8
+ description: string;
9
+ inputSchema: Record<string, unknown>;
10
+ annotations?: AgentToolAnnotations;
11
+ }
12
+ export interface ToolCall {
13
+ id: string;
14
+ name: string;
15
+ input: unknown;
16
+ metadata?: Record<string, unknown>;
17
+ }
18
+ export interface ToolResult {
19
+ toolCallId: string;
20
+ content: string;
21
+ isError?: boolean;
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC"}
package/dist/tools.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Span types that the agent runtime emits.
3
+ */
4
+ export type AgentSpanType = 'session' | 'turn' | 'llm_request' | 'tool_call' | 'guardrail' | 'checkpoint' | 'handoff' | 'custom';
5
+ export interface AgentSpan {
6
+ /** Unique span ID */
7
+ id: string;
8
+ /** Parent span ID (undefined for root spans) */
9
+ parentId?: string;
10
+ /** What kind of operation this span represents */
11
+ type: AgentSpanType;
12
+ /** Human-readable name */
13
+ name: string;
14
+ /** Start time (ISO 8601) */
15
+ startTime: string;
16
+ /** End time (ISO 8601); undefined if still open */
17
+ endTime?: string;
18
+ /** Arbitrary key-value attributes */
19
+ attributes: Record<string, string | number | boolean>;
20
+ /** Status: ok, error, or unset */
21
+ status: 'ok' | 'error' | 'unset';
22
+ /** Error message if status is 'error' */
23
+ error?: string;
24
+ }
25
+ /**
26
+ * Events emitted by the agent runtime for observability.
27
+ */
28
+ export type AgentTraceEvent = {
29
+ type: 'span_start';
30
+ span: AgentSpan;
31
+ } | {
32
+ type: 'span_end';
33
+ span: AgentSpan;
34
+ } | {
35
+ type: 'span_error';
36
+ spanId: string;
37
+ error: string;
38
+ } | {
39
+ type: 'metric';
40
+ name: string;
41
+ value: number;
42
+ unit?: string;
43
+ attributes?: Record<string, string | number | boolean>;
44
+ } | {
45
+ type: 'log';
46
+ level: 'debug' | 'info' | 'warn' | 'error';
47
+ message: string;
48
+ attributes?: Record<string, unknown>;
49
+ };
50
+ /**
51
+ * Tracer: pluggable sink for agent trace events.
52
+ * Consumers implement this to connect to OTel, Datadog, console, etc.
53
+ */
54
+ export interface AgentTracer {
55
+ /** Receive a trace event from the agent runtime */
56
+ emit(event: AgentTraceEvent): void;
57
+ /** Flush any buffered events (called at session end) */
58
+ flush?(): Promise<void>;
59
+ }
60
+ export declare const noopTracer: AgentTracer;
61
+ export declare class ConsoleTracer implements AgentTracer {
62
+ emit(event: AgentTraceEvent): void;
63
+ flush(): Promise<void>;
64
+ }
65
+ export declare class BufferTracer implements AgentTracer {
66
+ readonly events: AgentTraceEvent[];
67
+ emit(event: AgentTraceEvent): void;
68
+ flush(): Promise<void>;
69
+ /** Get all spans that have ended */
70
+ getCompletedSpans(): AgentSpan[];
71
+ /** Get all metrics */
72
+ getMetrics(): Array<Extract<AgentTraceEvent, {
73
+ type: 'metric';
74
+ }>>;
75
+ clear(): void;
76
+ }
77
+ export declare function createSpanId(): string;
78
+ export declare function startSpan(tracer: AgentTracer, type: AgentSpanType, name: string, attributes?: Record<string, string | number | boolean>, parentId?: string): AgentSpan;
79
+ export declare function endSpan(tracer: AgentTracer, span: AgentSpan, status?: 'ok' | 'error', error?: string): AgentSpan;
80
+ export declare function emitMetric(tracer: AgentTracer, name: string, value: number, unit?: string, attributes?: Record<string, string | number | boolean>): void;
81
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}
package/dist/trace.js ADDED
@@ -0,0 +1,92 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Trace: provider-neutral observability contract for the agent kernel
3
+ // ---------------------------------------------------------------------------
4
+ // ---------------------------------------------------------------------------
5
+ // NoopTracer: default when no tracer is configured
6
+ // ---------------------------------------------------------------------------
7
+ export const noopTracer = {
8
+ emit() { },
9
+ async flush() { },
10
+ };
11
+ // ---------------------------------------------------------------------------
12
+ // ConsoleTracer: simple reference implementation for debugging
13
+ // ---------------------------------------------------------------------------
14
+ export class ConsoleTracer {
15
+ emit(event) {
16
+ switch (event.type) {
17
+ case 'span_start':
18
+ console.log(`[TRACE] START ${event.span.type}:${event.span.name} (${event.span.id})`);
19
+ break;
20
+ case 'span_end':
21
+ console.log(`[TRACE] END ${event.span.type}:${event.span.name} (${event.span.id}) status=${event.span.status}`);
22
+ break;
23
+ case 'span_error':
24
+ console.error(`[TRACE] ERROR span=${event.spanId}: ${event.error}`);
25
+ break;
26
+ case 'metric':
27
+ console.log(`[METRIC] ${event.name}=${event.value}${event.unit ? ' ' + event.unit : ''}`);
28
+ break;
29
+ case 'log':
30
+ console.log(`[${event.level.toUpperCase()}] ${event.message}`);
31
+ break;
32
+ }
33
+ }
34
+ async flush() { }
35
+ }
36
+ // ---------------------------------------------------------------------------
37
+ // BufferTracer: collects events for testing and replay
38
+ // ---------------------------------------------------------------------------
39
+ export class BufferTracer {
40
+ events = [];
41
+ emit(event) {
42
+ this.events.push(event);
43
+ }
44
+ async flush() { }
45
+ /** Get all spans that have ended */
46
+ getCompletedSpans() {
47
+ return this.events
48
+ .filter((e) => e.type === 'span_end')
49
+ .map(e => e.span);
50
+ }
51
+ /** Get all metrics */
52
+ getMetrics() {
53
+ return this.events.filter((e) => e.type === 'metric');
54
+ }
55
+ clear() {
56
+ this.events.length = 0;
57
+ }
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // Helpers: span lifecycle
61
+ // ---------------------------------------------------------------------------
62
+ let spanCounter = 0;
63
+ export function createSpanId() {
64
+ return `span-${Date.now()}-${++spanCounter}`;
65
+ }
66
+ export function startSpan(tracer, type, name, attributes = {}, parentId) {
67
+ const span = {
68
+ id: createSpanId(),
69
+ parentId,
70
+ type,
71
+ name,
72
+ startTime: new Date().toISOString(),
73
+ attributes,
74
+ status: 'unset',
75
+ };
76
+ tracer.emit({ type: 'span_start', span });
77
+ return span;
78
+ }
79
+ export function endSpan(tracer, span, status = 'ok', error) {
80
+ const ended = {
81
+ ...span,
82
+ endTime: new Date().toISOString(),
83
+ status,
84
+ ...(error ? { error } : {}),
85
+ };
86
+ tracer.emit({ type: 'span_end', span: ended });
87
+ return ended;
88
+ }
89
+ export function emitMetric(tracer, name, value, unit, attributes) {
90
+ tracer.emit({ type: 'metric', name, value, unit, attributes });
91
+ }
92
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAyD9E,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,IAAI,KAAI,CAAC;IACT,KAAK,CAAC,KAAK,KAAI,CAAC;CACjB,CAAA;AAED,8EAA8E;AAC9E,+DAA+D;AAC/D,8EAA8E;AAE9E,MAAM,OAAO,aAAa;IACxB,IAAI,CAAC,KAAsB;QACzB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;gBACrF,MAAK;YACP,KAAK,UAAU;gBACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;gBACjH,MAAK;YACP,KAAK,YAAY;gBACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;gBACnE,MAAK;YACP,KAAK,QAAQ;gBACX,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBACzF,MAAK;YACP,KAAK,KAAK;gBACR,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC9D,MAAK;QACT,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChC;AAED,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,MAAM,OAAO,YAAY;IACd,MAAM,GAAsB,EAAE,CAAA;IAEvC,IAAI,CAAC,KAAsB;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;IAE/B,oCAAoC;IACpC,iBAAiB;QACf,OAAO,IAAI,CAAC,MAAM;aACf,MAAM,CAAC,CAAC,CAAC,EAAuD,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;aACzF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,sBAAsB;IACtB,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,CAAC,CAAC,EAAqD,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAC9E,CAAA;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IACxB,CAAC;CACF;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,IAAI,WAAW,GAAG,CAAC,CAAA;AAEnB,MAAM,UAAU,YAAY;IAC1B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAAmB,EACnB,IAAmB,EACnB,IAAY,EACZ,aAAwD,EAAE,EAC1D,QAAiB;IAEjB,MAAM,IAAI,GAAc;QACtB,EAAE,EAAE,YAAY,EAAE;QAClB,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU;QACV,MAAM,EAAE,OAAO;KAChB,CAAA;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,MAAmB,EACnB,IAAe,EACf,SAAyB,IAAI,EAC7B,KAAc;IAEd,MAAM,KAAK,GAAc;QACvB,GAAG,IAAI;QACP,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,MAAM;QACN,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAA;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,MAAmB,EACnB,IAAY,EACZ,KAAa,EACb,IAAa,EACb,UAAsD;IAEtD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;AAChE,CAAC"}