@agent-assembly/sdk 0.0.1-alpha.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 (256) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +182 -0
  3. package/dist/cjs/adapters/adapter-registry.js +2 -0
  4. package/dist/cjs/adapters/adapter.js +2 -0
  5. package/dist/cjs/adapters/index.js +2 -0
  6. package/dist/cjs/adapters/langchain/assembly-callback-handler.js +93 -0
  7. package/dist/cjs/adapters/langchain/index.js +8 -0
  8. package/dist/cjs/adapters/langchain/wrap-tool-with-assembly.js +55 -0
  9. package/dist/cjs/audit/encode.js +176 -0
  10. package/dist/cjs/audit/index.js +8 -0
  11. package/dist/cjs/core/gateway-resolver.js +254 -0
  12. package/dist/cjs/core/index.js +9 -0
  13. package/dist/cjs/core/init-assembly.js +224 -0
  14. package/dist/cjs/errors/configuration-error.js +17 -0
  15. package/dist/cjs/errors/gateway-error.js +17 -0
  16. package/dist/cjs/errors/index.js +11 -0
  17. package/dist/cjs/errors/op-terminated-error.js +20 -0
  18. package/dist/cjs/errors/policy-violation-error.js +10 -0
  19. package/dist/cjs/gateway/client.js +15 -0
  20. package/dist/cjs/gateway/index.js +5 -0
  21. package/dist/cjs/hooks/adapter-registry.js +7 -0
  22. package/dist/cjs/hooks/ai-sdk-detection.js +14 -0
  23. package/dist/cjs/hooks/ai-sdk.js +164 -0
  24. package/dist/cjs/hooks/langchain.js +9 -0
  25. package/dist/cjs/hooks/langgraph-detection.js +14 -0
  26. package/dist/cjs/hooks/langgraph.js +107 -0
  27. package/dist/cjs/hooks/mastra-detection.js +14 -0
  28. package/dist/cjs/hooks/mastra.js +120 -0
  29. package/dist/cjs/hooks/openai-agents-detection.js +14 -0
  30. package/dist/cjs/hooks/openai-agents.js +189 -0
  31. package/dist/cjs/index.js +25 -0
  32. package/dist/cjs/lineage/agent-context-store.js +20 -0
  33. package/dist/cjs/lineage/index.js +7 -0
  34. package/dist/cjs/native/client.js +160 -0
  35. package/dist/cjs/op-control.js +150 -0
  36. package/dist/cjs/package.json +3 -0
  37. package/dist/cjs/proto/generated/common.js +365 -0
  38. package/dist/cjs/proto/generated/policy.js +1418 -0
  39. package/dist/cjs/runtime.js +144 -0
  40. package/dist/cjs/types/assembly-config.js +2 -0
  41. package/dist/cjs/types/assembly-context.js +2 -0
  42. package/dist/cjs/types/assembly-mode.js +2 -0
  43. package/dist/cjs/types/audit.js +5 -0
  44. package/dist/cjs/types/enforcement-mode.js +9 -0
  45. package/dist/cjs/types/gateway-governance.js +2 -0
  46. package/dist/cjs/types/index.js +5 -0
  47. package/dist/cjs/types/langchain-adapter.js +2 -0
  48. package/dist/cjs/types/openai-agents-adapter.js +2 -0
  49. package/dist/cjs/types/policy.js +2 -0
  50. package/dist/cjs/types/tool-map.js +2 -0
  51. package/dist/cjs/types/vercel-ai-adapter.js +2 -0
  52. package/dist/cjs/wrappers/index.js +5 -0
  53. package/dist/cjs/wrappers/with-assembly.js +82 -0
  54. package/dist/esm/adapters/adapter-registry.js +2 -0
  55. package/dist/esm/adapters/adapter-registry.js.map +1 -0
  56. package/dist/esm/adapters/adapter.js +2 -0
  57. package/dist/esm/adapters/adapter.js.map +1 -0
  58. package/dist/esm/adapters/index.js +2 -0
  59. package/dist/esm/adapters/index.js.map +1 -0
  60. package/dist/esm/adapters/langchain/assembly-callback-handler.js +90 -0
  61. package/dist/esm/adapters/langchain/assembly-callback-handler.js.map +1 -0
  62. package/dist/esm/adapters/langchain/index.js +3 -0
  63. package/dist/esm/adapters/langchain/index.js.map +1 -0
  64. package/dist/esm/adapters/langchain/wrap-tool-with-assembly.js +52 -0
  65. package/dist/esm/adapters/langchain/wrap-tool-with-assembly.js.map +1 -0
  66. package/dist/esm/audit/encode.js +171 -0
  67. package/dist/esm/audit/encode.js.map +1 -0
  68. package/dist/esm/audit/index.js +2 -0
  69. package/dist/esm/audit/index.js.map +1 -0
  70. package/dist/esm/core/gateway-resolver.js +213 -0
  71. package/dist/esm/core/gateway-resolver.js.map +1 -0
  72. package/dist/esm/core/index.js +2 -0
  73. package/dist/esm/core/index.js.map +1 -0
  74. package/dist/esm/core/init-assembly.js +218 -0
  75. package/dist/esm/core/init-assembly.js.map +1 -0
  76. package/dist/esm/errors/configuration-error.js +14 -0
  77. package/dist/esm/errors/configuration-error.js.map +1 -0
  78. package/dist/esm/errors/gateway-error.js +14 -0
  79. package/dist/esm/errors/gateway-error.js.map +1 -0
  80. package/dist/esm/errors/index.js +5 -0
  81. package/dist/esm/errors/index.js.map +1 -0
  82. package/dist/esm/errors/op-terminated-error.js +17 -0
  83. package/dist/esm/errors/op-terminated-error.js.map +1 -0
  84. package/dist/esm/errors/policy-violation-error.js +7 -0
  85. package/dist/esm/errors/policy-violation-error.js.map +1 -0
  86. package/dist/esm/gateway/client.js +13 -0
  87. package/dist/esm/gateway/client.js.map +1 -0
  88. package/dist/esm/gateway/index.js +2 -0
  89. package/dist/esm/gateway/index.js.map +1 -0
  90. package/dist/esm/hooks/adapter-registry.js +5 -0
  91. package/dist/esm/hooks/adapter-registry.js.map +1 -0
  92. package/dist/esm/hooks/ai-sdk-detection.js +12 -0
  93. package/dist/esm/hooks/ai-sdk-detection.js.map +1 -0
  94. package/dist/esm/hooks/ai-sdk.js +123 -0
  95. package/dist/esm/hooks/ai-sdk.js.map +1 -0
  96. package/dist/esm/hooks/langchain.js +7 -0
  97. package/dist/esm/hooks/langchain.js.map +1 -0
  98. package/dist/esm/hooks/langgraph-detection.js +12 -0
  99. package/dist/esm/hooks/langgraph-detection.js.map +1 -0
  100. package/dist/esm/hooks/langgraph.js +69 -0
  101. package/dist/esm/hooks/langgraph.js.map +1 -0
  102. package/dist/esm/hooks/mastra-detection.js +12 -0
  103. package/dist/esm/hooks/mastra-detection.js.map +1 -0
  104. package/dist/esm/hooks/mastra.js +83 -0
  105. package/dist/esm/hooks/mastra.js.map +1 -0
  106. package/dist/esm/hooks/openai-agents-detection.js +12 -0
  107. package/dist/esm/hooks/openai-agents-detection.js.map +1 -0
  108. package/dist/esm/hooks/openai-agents.js +145 -0
  109. package/dist/esm/hooks/openai-agents.js.map +1 -0
  110. package/dist/esm/index.js +12 -0
  111. package/dist/esm/index.js.map +1 -0
  112. package/dist/esm/lineage/agent-context-store.js +16 -0
  113. package/dist/esm/lineage/agent-context-store.js.map +1 -0
  114. package/dist/esm/lineage/index.js +2 -0
  115. package/dist/esm/lineage/index.js.map +1 -0
  116. package/dist/esm/native/client.js +150 -0
  117. package/dist/esm/native/client.js.map +1 -0
  118. package/dist/esm/op-control.js +147 -0
  119. package/dist/esm/op-control.js.map +1 -0
  120. package/dist/esm/proto/generated/common.js +357 -0
  121. package/dist/esm/proto/generated/common.js.map +1 -0
  122. package/dist/esm/proto/generated/policy.js +1414 -0
  123. package/dist/esm/proto/generated/policy.js.map +1 -0
  124. package/dist/esm/runtime.js +138 -0
  125. package/dist/esm/runtime.js.map +1 -0
  126. package/dist/esm/types/assembly-config.js +2 -0
  127. package/dist/esm/types/assembly-config.js.map +1 -0
  128. package/dist/esm/types/assembly-context.js +2 -0
  129. package/dist/esm/types/assembly-context.js.map +1 -0
  130. package/dist/esm/types/assembly-mode.js +2 -0
  131. package/dist/esm/types/assembly-mode.js.map +1 -0
  132. package/dist/esm/types/audit.js +5 -0
  133. package/dist/esm/types/audit.js.map +1 -0
  134. package/dist/esm/types/enforcement-mode.js +7 -0
  135. package/dist/esm/types/enforcement-mode.js.map +1 -0
  136. package/dist/esm/types/gateway-governance.js +2 -0
  137. package/dist/esm/types/gateway-governance.js.map +1 -0
  138. package/dist/esm/types/index.js +2 -0
  139. package/dist/esm/types/index.js.map +1 -0
  140. package/dist/esm/types/langchain-adapter.js +2 -0
  141. package/dist/esm/types/langchain-adapter.js.map +1 -0
  142. package/dist/esm/types/openai-agents-adapter.js +2 -0
  143. package/dist/esm/types/openai-agents-adapter.js.map +1 -0
  144. package/dist/esm/types/policy.js +2 -0
  145. package/dist/esm/types/policy.js.map +1 -0
  146. package/dist/esm/types/tool-map.js +2 -0
  147. package/dist/esm/types/tool-map.js.map +1 -0
  148. package/dist/esm/types/vercel-ai-adapter.js +2 -0
  149. package/dist/esm/types/vercel-ai-adapter.js.map +1 -0
  150. package/dist/esm/wrappers/index.js +2 -0
  151. package/dist/esm/wrappers/index.js.map +1 -0
  152. package/dist/esm/wrappers/with-assembly.js +80 -0
  153. package/dist/esm/wrappers/with-assembly.js.map +1 -0
  154. package/dist/types/adapters/adapter-registry.d.ts +7 -0
  155. package/dist/types/adapters/adapter-registry.d.ts.map +1 -0
  156. package/dist/types/adapters/adapter.d.ts +6 -0
  157. package/dist/types/adapters/adapter.d.ts.map +1 -0
  158. package/dist/types/adapters/index.d.ts +3 -0
  159. package/dist/types/adapters/index.d.ts.map +1 -0
  160. package/dist/types/adapters/langchain/assembly-callback-handler.d.ts +21 -0
  161. package/dist/types/adapters/langchain/assembly-callback-handler.d.ts.map +1 -0
  162. package/dist/types/adapters/langchain/index.d.ts +4 -0
  163. package/dist/types/adapters/langchain/index.d.ts.map +1 -0
  164. package/dist/types/adapters/langchain/wrap-tool-with-assembly.d.ts +9 -0
  165. package/dist/types/adapters/langchain/wrap-tool-with-assembly.d.ts.map +1 -0
  166. package/dist/types/audit/encode.d.ts +77 -0
  167. package/dist/types/audit/encode.d.ts.map +1 -0
  168. package/dist/types/audit/index.d.ts +3 -0
  169. package/dist/types/audit/index.d.ts.map +1 -0
  170. package/dist/types/core/gateway-resolver.d.ts +92 -0
  171. package/dist/types/core/gateway-resolver.d.ts.map +1 -0
  172. package/dist/types/core/index.d.ts +2 -0
  173. package/dist/types/core/index.d.ts.map +1 -0
  174. package/dist/types/core/init-assembly.d.ts +10 -0
  175. package/dist/types/core/init-assembly.d.ts.map +1 -0
  176. package/dist/types/errors/configuration-error.d.ts +11 -0
  177. package/dist/types/errors/configuration-error.d.ts.map +1 -0
  178. package/dist/types/errors/gateway-error.d.ts +11 -0
  179. package/dist/types/errors/gateway-error.d.ts.map +1 -0
  180. package/dist/types/errors/index.d.ts +5 -0
  181. package/dist/types/errors/index.d.ts.map +1 -0
  182. package/dist/types/errors/op-terminated-error.d.ts +13 -0
  183. package/dist/types/errors/op-terminated-error.d.ts.map +1 -0
  184. package/dist/types/errors/policy-violation-error.d.ts +4 -0
  185. package/dist/types/errors/policy-violation-error.d.ts.map +1 -0
  186. package/dist/types/gateway/client.d.ts +14 -0
  187. package/dist/types/gateway/client.d.ts.map +1 -0
  188. package/dist/types/gateway/index.d.ts +3 -0
  189. package/dist/types/gateway/index.d.ts.map +1 -0
  190. package/dist/types/hooks/adapter-registry.d.ts +3 -0
  191. package/dist/types/hooks/adapter-registry.d.ts.map +1 -0
  192. package/dist/types/hooks/ai-sdk-detection.d.ts +2 -0
  193. package/dist/types/hooks/ai-sdk-detection.d.ts.map +1 -0
  194. package/dist/types/hooks/ai-sdk.d.ts +36 -0
  195. package/dist/types/hooks/ai-sdk.d.ts.map +1 -0
  196. package/dist/types/hooks/langchain.d.ts +3 -0
  197. package/dist/types/hooks/langchain.d.ts.map +1 -0
  198. package/dist/types/hooks/langgraph-detection.d.ts +2 -0
  199. package/dist/types/hooks/langgraph-detection.d.ts.map +1 -0
  200. package/dist/types/hooks/langgraph.d.ts +26 -0
  201. package/dist/types/hooks/langgraph.d.ts.map +1 -0
  202. package/dist/types/hooks/mastra-detection.d.ts +2 -0
  203. package/dist/types/hooks/mastra-detection.d.ts.map +1 -0
  204. package/dist/types/hooks/mastra.d.ts +29 -0
  205. package/dist/types/hooks/mastra.d.ts.map +1 -0
  206. package/dist/types/hooks/openai-agents-detection.d.ts +2 -0
  207. package/dist/types/hooks/openai-agents-detection.d.ts.map +1 -0
  208. package/dist/types/hooks/openai-agents.d.ts +42 -0
  209. package/dist/types/hooks/openai-agents.d.ts.map +1 -0
  210. package/dist/types/index.d.ts +10 -0
  211. package/dist/types/index.d.ts.map +1 -0
  212. package/dist/types/lineage/agent-context-store.d.ts +12 -0
  213. package/dist/types/lineage/agent-context-store.d.ts.map +1 -0
  214. package/dist/types/lineage/index.d.ts +2 -0
  215. package/dist/types/lineage/index.d.ts.map +1 -0
  216. package/dist/types/native/client.d.ts +26 -0
  217. package/dist/types/native/client.d.ts.map +1 -0
  218. package/dist/types/op-control.d.ts +85 -0
  219. package/dist/types/op-control.d.ts.map +1 -0
  220. package/dist/types/proto/generated/common.d.ts +90 -0
  221. package/dist/types/proto/generated/common.d.ts.map +1 -0
  222. package/dist/types/proto/generated/policy.d.ts +298 -0
  223. package/dist/types/proto/generated/policy.d.ts.map +1 -0
  224. package/dist/types/runtime.d.ts +59 -0
  225. package/dist/types/runtime.d.ts.map +1 -0
  226. package/dist/types/types/assembly-config.d.ts +47 -0
  227. package/dist/types/types/assembly-config.d.ts.map +1 -0
  228. package/dist/types/types/assembly-context.d.ts +12 -0
  229. package/dist/types/types/assembly-context.d.ts.map +1 -0
  230. package/dist/types/types/assembly-mode.d.ts +2 -0
  231. package/dist/types/types/assembly-mode.d.ts.map +1 -0
  232. package/dist/types/types/audit.d.ts +76 -0
  233. package/dist/types/types/audit.d.ts.map +1 -0
  234. package/dist/types/types/enforcement-mode.d.ts +20 -0
  235. package/dist/types/types/enforcement-mode.d.ts.map +1 -0
  236. package/dist/types/types/gateway-governance.d.ts +31 -0
  237. package/dist/types/types/gateway-governance.d.ts.map +1 -0
  238. package/dist/types/types/index.d.ts +12 -0
  239. package/dist/types/types/index.d.ts.map +1 -0
  240. package/dist/types/types/langchain-adapter.d.ts +25 -0
  241. package/dist/types/types/langchain-adapter.d.ts.map +1 -0
  242. package/dist/types/types/openai-agents-adapter.d.ts +17 -0
  243. package/dist/types/types/openai-agents-adapter.d.ts.map +1 -0
  244. package/dist/types/types/policy.d.ts +10 -0
  245. package/dist/types/types/policy.d.ts.map +1 -0
  246. package/dist/types/types/tool-map.d.ts +2 -0
  247. package/dist/types/types/tool-map.d.ts.map +1 -0
  248. package/dist/types/types/vercel-ai-adapter.d.ts +12 -0
  249. package/dist/types/types/vercel-ai-adapter.d.ts.map +1 -0
  250. package/dist/types/wrappers/index.d.ts +3 -0
  251. package/dist/types/wrappers/index.d.ts.map +1 -0
  252. package/dist/types/wrappers/with-assembly.d.ts +9 -0
  253. package/dist/types/wrappers/with-assembly.d.ts.map +1 -0
  254. package/native/aa-ffi-node/index.cjs +20 -0
  255. package/native/aa-ffi-node/index.d.ts +23 -0
  256. package/package.json +95 -0
@@ -0,0 +1,77 @@
1
+ import type { AuditEvent, CallStackNode } from "../types/audit.js";
2
+ /**
3
+ * Wire-form shape of a {@link CallStackNode}. Keys are snake_case to
4
+ * match the gateway's JSON convention; the `children` field is itself
5
+ * a recursive `WireCallStackNode[]`.
6
+ *
7
+ * Optional fields are omitted from the encoded payload when undefined
8
+ * rather than emitted as `null`, so a decoded round-trip yields the
9
+ * original `undefined` (not `null`).
10
+ */
11
+ export interface WireCallStackNode {
12
+ id: string;
13
+ kind: string;
14
+ label: string;
15
+ latency_ms?: number;
16
+ children?: WireCallStackNode[];
17
+ }
18
+ /**
19
+ * Wire-form shape of an {@link AuditEvent}. Keys are snake_case to
20
+ * match the gateway's JSON convention; optional fields are omitted
21
+ * when undefined (rather than emitted as `null` or empty string), so a
22
+ * decoded round-trip yields the original `undefined`.
23
+ */
24
+ export interface WireAuditEvent {
25
+ event_id: string;
26
+ agent_id: string;
27
+ action_type: string;
28
+ decision: string;
29
+ trace_id?: string;
30
+ span_id?: string;
31
+ parent_span_id?: string;
32
+ labels?: Record<string, string>;
33
+ call_stack?: WireCallStackNode[];
34
+ }
35
+ /**
36
+ * Translate a {@link CallStackNode} into its wire JSON object form.
37
+ *
38
+ * Recurses through `children`. Optional fields (`latencyMs`,
39
+ * `children`) are dropped when undefined or — for `children` — empty,
40
+ * so the resulting object is the minimal payload the gateway accepts.
41
+ */
42
+ export declare function encodeCallStackNode(node: CallStackNode): WireCallStackNode;
43
+ /**
44
+ * Serialize an {@link AuditEvent} to its JSON wire string.
45
+ *
46
+ * Translates the camelCase interface field names into the gateway's
47
+ * snake_case keys (`eventId` → `event_id`, `callStack` → `call_stack`,
48
+ * etc.), recursively encoding the call-stack tree via
49
+ * {@link encodeCallStackNode}. Optional fields whose value is
50
+ * `undefined`, an empty string, or an empty array are omitted so a
51
+ * legacy decoder that has never seen those fields reads the payload
52
+ * unchanged.
53
+ */
54
+ export declare function encodeAuditEvent(event: AuditEvent): string;
55
+ /**
56
+ * Translate a wire JSON object back into a {@link CallStackNode}.
57
+ *
58
+ * Symmetric inverse of {@link encodeCallStackNode}: walks `children`
59
+ * recursively, restores `latencyMs` from `latency_ms`, and treats a
60
+ * missing or empty `children` field as `undefined` on the interface
61
+ * side (matches AAASM-1436's default).
62
+ */
63
+ export declare function decodeCallStackNode(payload: unknown): CallStackNode;
64
+ /**
65
+ * Deserialize a JSON wire payload into a typed {@link AuditEvent}.
66
+ *
67
+ * Accepts either the raw JSON string (the gateway's standard
68
+ * transport) or an already-parsed object (handy for tests and for
69
+ * callers that received a JSON object via another path). Symmetric
70
+ * inverse of {@link encodeAuditEvent}: snake_case keys map back to
71
+ * camelCase fields, and missing / empty optionals decode to
72
+ * `undefined` so an `AuditEvent` produced from a legacy payload (no
73
+ * `call_stack`, empty `trace_id`, …) matches what AAASM-1436's
74
+ * existing consumer-side tests expect.
75
+ */
76
+ export declare function decodeAuditEvent(payload: string | Record<string, unknown>): AuditEvent;
77
+ //# sourceMappingURL=encode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../../src/audit/encode.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,iBAAiB,CAa1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAuB1D;AASD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CA0BnE;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,UAAU,CAiDZ"}
@@ -0,0 +1,3 @@
1
+ export { decodeAuditEvent, decodeCallStackNode, encodeAuditEvent, encodeCallStackNode, } from "./encode.js";
2
+ export type { WireAuditEvent, WireCallStackNode, } from "./encode.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Resolve the gateway URL and API key for ``initAssembly``.
3
+ *
4
+ * Implements the zero-config developer-experience contract from Epic 17 (S-G):
5
+ * ``initAssembly({})`` with no fields and no environment variables should
6
+ * discover a local gateway at ``http://localhost:7391`` — probing it, and
7
+ * auto-starting ``aasm start --mode local --foreground`` when not running.
8
+ *
9
+ * Resolution precedence (highest first):
10
+ *
11
+ * 1. Explicit field on the AssemblyConfig
12
+ * 2. Environment variable (AAASM_GATEWAY_URL / AAASM_API_KEY)
13
+ * 3. Config file (~/.aasm/config.yaml, optional js-yaml soft dep)
14
+ * 4. Local default: probe http://localhost:7391, auto-start if absent
15
+ */
16
+ export declare const DEFAULT_GATEWAY_URL = "http://localhost:7391";
17
+ export declare const DEFAULT_HEALTHZ_PATH = "/healthz";
18
+ export declare const DEFAULT_PROBE_TIMEOUT_MS = 500;
19
+ export declare const DEFAULT_AUTO_START_TIMEOUT_MS = 5000;
20
+ export declare const DEFAULT_CONFIG_FILE_PATH = "~/.aasm/config.yaml";
21
+ export declare const ENV_GATEWAY_URL = "AAASM_GATEWAY_URL";
22
+ export declare const ENV_API_KEY = "AAASM_API_KEY";
23
+ export declare const AASM_AUTO_START_ARGV: readonly ["start", "--mode", "local", "--foreground"];
24
+ /**
25
+ * Return true if a gateway responds with a 2xx status at ``{baseUrl}/healthz``.
26
+ *
27
+ * Uses the global ``fetch`` (Node 18+) with an AbortController-driven
28
+ * timeout. Any network / timeout / parse error is swallowed and reported
29
+ * as ``false`` — the resolver treats unreachable as "absent" rather than
30
+ * fatal.
31
+ */
32
+ export declare function probeHealthz(baseUrl: string, timeoutMs?: number): Promise<boolean>;
33
+ /**
34
+ * Poll the gateway healthz endpoint until success or timeout.
35
+ *
36
+ * Resolves ``true`` as soon as ``probeHealthz`` succeeds, ``false`` if
37
+ * the gateway has not become ready within ``timeoutMs``. The poll
38
+ * interval is short (default 100ms) so the auto-start path feels
39
+ * instant when the local CP comes up quickly.
40
+ */
41
+ export declare function waitForHealthz(baseUrl: string, timeoutMs?: number, pollIntervalMs?: number): Promise<boolean>;
42
+ /**
43
+ * Load ``~/.aasm/config.yaml`` if present.
44
+ *
45
+ * Returns an empty record when the file is missing, when ``js-yaml`` is
46
+ * not installed (it is a soft dependency for SDK consumers), or when
47
+ * the file's contents are not an object. This keeps the resolver chain
48
+ * purely advisory at step 3 — never throws.
49
+ */
50
+ export declare function loadConfigFile(configPath?: string): Promise<Record<string, unknown>>;
51
+ declare function defaultFindAasmOnPath(): string | null;
52
+ declare function defaultSpawnAasm(aasmPath: string): void;
53
+ export declare const __testing: {
54
+ _seams: {
55
+ findAasmOnPath: typeof defaultFindAasmOnPath;
56
+ spawnAasm: typeof defaultSpawnAasm;
57
+ probeHealthz: typeof probeHealthz;
58
+ loadConfigFile: typeof loadConfigFile;
59
+ autoStartGateway: typeof autoStartGateway;
60
+ };
61
+ };
62
+ /**
63
+ * Spawn ``aasm start --mode local --foreground`` and wait until ``/healthz``
64
+ * responds.
65
+ *
66
+ * Throws ``ConfigurationError`` when the ``aasm`` binary is missing from
67
+ * PATH — the SDK cannot meaningfully auto-start without it. Throws
68
+ * ``GatewayError`` when the spawned gateway does not become ready within
69
+ * ``timeoutMs``. The subprocess is launched detached + stdio:"ignore" so
70
+ * it survives the parent Node process — the docker-style daemon hand-off
71
+ * described in Epic 17 S-G.
72
+ */
73
+ export declare function autoStartGateway(baseUrl?: string, timeoutMs?: number): Promise<void>;
74
+ /**
75
+ * Resolve the gateway URL using the 4-step precedence chain.
76
+ *
77
+ * Returns the resolved URL. May spawn a local ``aasm`` subprocess
78
+ * (step 4 only). Propagates ``ConfigurationError`` / ``GatewayError``
79
+ * from ``autoStartGateway`` when the local default is needed but
80
+ * cannot be brought up.
81
+ */
82
+ export declare function resolveGatewayUrl(explicit?: string): Promise<string>;
83
+ /**
84
+ * Resolve the API key using the same 4-step precedence as the URL.
85
+ *
86
+ * Returns the resolved key (possibly empty for local mode, which
87
+ * accepts unauthenticated agents). Never rejects — an empty API key
88
+ * is the documented "local dev" default per Epic 17.
89
+ */
90
+ export declare function resolveApiKey(explicit?: string): Promise<string>;
91
+ export {};
92
+ //# sourceMappingURL=gateway-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/gateway-resolver.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAClD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAE3C,eAAO,MAAM,oBAAoB,uDAAwD,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAiC,GAC3C,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAsC,EACjD,cAAc,GAAE,MAAY,GAC3B,OAAO,CAAC,OAAO,CAAC,CASlB;AAMD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,UAAU,GAAE,MAAiC,GAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwBlC;AAED,iBAAS,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAY9C;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMhD;AAeD,eAAO,MAAM,SAAS;;;;;;;;CAAa,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,MAA4B,EACrC,SAAS,GAAE,MAAsC,GAChD,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB1E;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CActE"}
@@ -0,0 +1,2 @@
1
+ export { createClient, detectFrameworks, initAssembly, registerAdapters, startNetworkLayerIfNeeded } from "./init-assembly.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Adapter } from "../adapters/adapter.js";
2
+ import { type GatewayClient } from "../gateway/client.js";
3
+ import type { AssemblyConfig } from "../types/assembly-config.js";
4
+ import type { AssemblyContext } from "../types/assembly-context.js";
5
+ export declare function createClient(config: AssemblyConfig): GatewayClient;
6
+ export declare function detectFrameworks(): string[];
7
+ export declare function registerAdapters(frameworks: readonly string[]): Promise<Adapter[]>;
8
+ export declare function startNetworkLayerIfNeeded(client: GatewayClient, config: AssemblyConfig): Promise<void>;
9
+ export declare function initAssembly(config?: AssemblyConfig): Promise<AssemblyContext>;
10
+ //# sourceMappingURL=init-assembly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-assembly.d.ts","sourceRoot":"","sources":["../../../src/core/init-assembly.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAMtD,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAiCpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAOlE;AAWD,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAoB3C;AASD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAMxF;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAMf;AAsGD,wBAAsB,YAAY,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0ExF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Thrown when the SDK cannot resolve the gateway configuration —
3
+ * e.g. the local gateway is absent and ``aasm`` is not on ``PATH``.
4
+ *
5
+ * Mirrors ``agent_assembly.exceptions.ConfigurationError`` in the
6
+ * Python SDK so the cross-SDK error contract stays aligned per Epic 17 S-G.
7
+ */
8
+ export declare class ConfigurationError extends Error {
9
+ constructor(message: string);
10
+ }
11
+ //# sourceMappingURL=configuration-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-error.d.ts","sourceRoot":"","sources":["../../../src/errors/configuration-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Thrown when the SDK has a gateway URL but cannot talk to it —
3
+ * e.g. ``aasm`` was spawned but ``/healthz`` did not become ready
4
+ * within the auto-start timeout window.
5
+ *
6
+ * Mirrors ``agent_assembly.exceptions.GatewayError`` in the Python SDK.
7
+ */
8
+ export declare class GatewayError extends Error {
9
+ constructor(message: string);
10
+ }
11
+ //# sourceMappingURL=gateway-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-error.d.ts","sourceRoot":"","sources":["../../../src/errors/gateway-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,5 @@
1
+ export { ConfigurationError } from "./configuration-error.js";
2
+ export { GatewayError } from "./gateway-error.js";
3
+ export { OpTerminatedError } from "./op-terminated-error.js";
4
+ export { PolicyViolationError } from "./policy-violation-error.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Raised when the gateway terminates an in-flight op (AAASM-1422 PR-F).
3
+ *
4
+ * Carries the originating `opId` so callers can correlate the failure
5
+ * against the operation they were awaiting. Surfaced by
6
+ * `OpControlSubscriber.waitForOp` when an `OP_CONTROL_SIGNAL_TERMINATE`
7
+ * arrives for the awaited op.
8
+ */
9
+ export declare class OpTerminatedError extends Error {
10
+ readonly opId: string;
11
+ constructor(message: string, opId: string);
12
+ }
13
+ //# sourceMappingURL=op-terminated-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op-terminated-error.d.ts","sourceRoot":"","sources":["../../../src/errors/op-terminated-error.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C"}
@@ -0,0 +1,4 @@
1
+ export declare class PolicyViolationError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ //# sourceMappingURL=policy-violation-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-violation-error.d.ts","sourceRoot":"","sources":["../../../src/errors/policy-violation-error.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,14 @@
1
+ import type { GatewayApprovalResult, GatewayCheckRequest, GatewayDecision, GatewayPromptScan, GatewayRecordEvent, GatewayResultRecord } from "../types/gateway-governance.js";
2
+ import type { AssemblyMode } from "../types/assembly-mode.js";
3
+ export interface GatewayClient {
4
+ readonly mode: AssemblyMode;
5
+ start: () => Promise<void>;
6
+ close: () => Promise<void>;
7
+ check: (request: GatewayCheckRequest) => Promise<GatewayDecision>;
8
+ waitForApproval: (toolName: string, runId: string, timeoutMs: number) => Promise<GatewayApprovalResult>;
9
+ record: (event: GatewayRecordEvent) => Promise<void>;
10
+ recordResult: (record: GatewayResultRecord) => Promise<void>;
11
+ scanPrompts: (scan: GatewayPromptScan) => Promise<void>;
12
+ }
13
+ export declare function createNoopGatewayClient(mode: AssemblyMode): GatewayClient;
14
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/gateway/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAClE,eAAe,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,YAAY,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAWzE"}
@@ -0,0 +1,3 @@
1
+ export { createNoopGatewayClient } from "./client.js";
2
+ export type { GatewayClient } from "./client.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { NativeClient } from "../native/client.js";
2
+ export declare function registerFrameworkHooks(client: NativeClient): Promise<void>;
3
+ //# sourceMappingURL=adapter-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/adapter-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF"}
@@ -0,0 +1,2 @@
1
+ export declare function hasVercelAiSdk(): boolean;
2
+ //# sourceMappingURL=ai-sdk-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk-detection.d.ts","sourceRoot":"","sources":["../../../src/hooks/ai-sdk-detection.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,IAAI,OAAO,CAOxC"}
@@ -0,0 +1,36 @@
1
+ import type { VercelAiToolExecutionOptions, VercelAiToolFactory } from "../types/vercel-ai-adapter.js";
2
+ import type { GatewayClient } from "../gateway/client.js";
3
+ export interface VercelAiSdkModule {
4
+ tool: VercelAiToolFactory;
5
+ }
6
+ export interface VercelAiSdkPatchState {
7
+ isPatched: boolean;
8
+ originalToolFactory: VercelAiToolFactory | undefined;
9
+ patchedModule: VercelAiSdkModule | undefined;
10
+ }
11
+ export declare const vercelAiSdkPatchState: VercelAiSdkPatchState;
12
+ export declare function captureOriginalToolFactory(module: VercelAiSdkModule): VercelAiToolFactory | undefined;
13
+ export interface CreateWrappedExecuteOptions {
14
+ approvalTimeoutMs: number;
15
+ fallbackRunId: string;
16
+ /** When set, tool execution runs inside runWithAgentId so child initAssembly auto-inherits parentAgentId. */
17
+ agentId?: string;
18
+ }
19
+ export declare function recordToolResultNonBlocking(gatewayClient: GatewayClient, runId: string, output: unknown): void;
20
+ export declare function createWrappedExecute<TArgs, TResult>(originalExecute: (args: TArgs, options: VercelAiToolExecutionOptions) => Promise<TResult>, description: string, gatewayClient: GatewayClient, options: CreateWrappedExecuteOptions): (args: TArgs, executionOptions: VercelAiToolExecutionOptions) => Promise<TResult>;
21
+ export interface CreatePatchedToolFactoryOptions {
22
+ approvalTimeoutMs: number;
23
+ fallbackRunId: string;
24
+ agentId?: string;
25
+ }
26
+ export declare function createPatchedToolFactory(originalToolFactory: VercelAiToolFactory, gatewayClient: GatewayClient, options: CreatePatchedToolFactoryOptions): VercelAiToolFactory;
27
+ export interface PatchVercelAiSdkOptions {
28
+ gatewayClient: GatewayClient;
29
+ approvalTimeoutMs?: number;
30
+ fallbackRunId?: string;
31
+ agentId?: string;
32
+ loadModule?: () => Promise<VercelAiSdkModule | undefined>;
33
+ }
34
+ export declare function patchVercelAiSdk(options: PatchVercelAiSdkOptions): Promise<boolean>;
35
+ export declare function unpatchVercelAiSdk(): boolean;
36
+ //# sourceMappingURL=ai-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../../src/hooks/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACrD,aAAa,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC9C;AAED,eAAO,MAAM,qBAAqB,EAAE,qBAInC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,iBAAiB,GACxB,mBAAmB,GAAG,SAAS,CAWjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,6GAA6G;IAC7G,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,GACd,IAAI,CAEN;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EACjD,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,4BAA4B,KAAK,OAAO,CAAC,OAAO,CAAC,EACzF,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,2BAA2B,GACnC,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,4BAA4B,KAAK,OAAO,CAAC,OAAO,CAAC,CAsDnF;AAED,MAAM,WAAW,+BAA+B;IAC9C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,wBAAwB,CACtC,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,+BAA+B,GACvC,mBAAmB,CAsBrB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CAC3D;AAYD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC,CA4BlB;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAgB5C"}
@@ -0,0 +1,3 @@
1
+ import type { NativeClient } from "../native/client.js";
2
+ export declare function patchLangChain(client: NativeClient): Promise<boolean>;
3
+ //# sourceMappingURL=langchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../../../src/hooks/langchain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAK3E"}
@@ -0,0 +1,2 @@
1
+ export declare function hasLangGraph(): boolean;
2
+ //# sourceMappingURL=langgraph-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langgraph-detection.d.ts","sourceRoot":"","sources":["../../../src/hooks/langgraph-detection.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,IAAI,OAAO,CAOtC"}
@@ -0,0 +1,26 @@
1
+ export interface CompiledGraph {
2
+ invoke: (...args: unknown[]) => Promise<unknown>;
3
+ stream: (...args: unknown[]) => Promise<unknown>;
4
+ }
5
+ export interface StateGraphClass {
6
+ prototype: {
7
+ compile?: (...args: unknown[]) => CompiledGraph;
8
+ };
9
+ }
10
+ export interface LangGraphModule {
11
+ StateGraph: StateGraphClass;
12
+ }
13
+ export interface LangGraphPatchState {
14
+ isPatched: boolean;
15
+ originalCompile: ((...args: unknown[]) => CompiledGraph) | undefined;
16
+ patchedClass: StateGraphClass | undefined;
17
+ }
18
+ export declare const langGraphPatchState: LangGraphPatchState;
19
+ export declare function wrapCompiledGraph(compiled: CompiledGraph, agentId: string): CompiledGraph;
20
+ export interface PatchLangGraphOptions {
21
+ agentId: string;
22
+ loadModule?: () => Promise<LangGraphModule | undefined>;
23
+ }
24
+ export declare function patchLangGraph(options: PatchLangGraphOptions): Promise<boolean>;
25
+ export declare function unpatchLangGraph(): boolean;
26
+ //# sourceMappingURL=langgraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langgraph.d.ts","sourceRoot":"","sources":["../../../src/hooks/langgraph.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE;QACT,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,aAAa,CAAC;KACjD,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,aAAa,CAAC,GAAG,SAAS,CAAC;IACrE,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;CAC3C;AAED,eAAO,MAAM,mBAAmB,EAAE,mBAIjC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAWzF;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;CACzD;AAYD,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAqCrF;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAa1C"}
@@ -0,0 +1,2 @@
1
+ export declare function hasMastra(): boolean;
2
+ //# sourceMappingURL=mastra-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mastra-detection.d.ts","sourceRoot":"","sources":["../../../src/hooks/mastra-detection.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,IAAI,OAAO,CAOnC"}
@@ -0,0 +1,29 @@
1
+ export interface MastraAgentClass {
2
+ prototype: {
3
+ generate?: (...args: unknown[]) => Promise<unknown>;
4
+ };
5
+ }
6
+ export interface MastraWorkflowClass {
7
+ prototype: {
8
+ execute?: (...args: unknown[]) => Promise<unknown>;
9
+ };
10
+ }
11
+ export interface MastraModule {
12
+ Agent: MastraAgentClass;
13
+ Workflow?: MastraWorkflowClass;
14
+ }
15
+ export interface MastraPatchState {
16
+ isPatched: boolean;
17
+ originalGenerate: ((...args: unknown[]) => Promise<unknown>) | undefined;
18
+ originalExecute: ((...args: unknown[]) => Promise<unknown>) | undefined;
19
+ patchedAgentClass: MastraAgentClass | undefined;
20
+ patchedWorkflowClass: MastraWorkflowClass | undefined;
21
+ }
22
+ export declare const mastraPatchState: MastraPatchState;
23
+ export interface PatchMastraOptions {
24
+ agentId: string;
25
+ loadModule?: () => Promise<MastraModule | undefined>;
26
+ }
27
+ export declare function patchMastra(options: PatchMastraOptions): Promise<boolean>;
28
+ export declare function unpatchMastra(): boolean;
29
+ //# sourceMappingURL=mastra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mastra.d.ts","sourceRoot":"","sources":["../../../src/hooks/mastra.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACrD,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE;QACT,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACpD,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACzE,eAAe,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxE,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,oBAAoB,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACvD;AAED,eAAO,MAAM,gBAAgB,EAAE,gBAM9B,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;CACtD;AAYD,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuD/E;AAED,wBAAgB,aAAa,IAAI,OAAO,CAkBvC"}
@@ -0,0 +1,2 @@
1
+ export declare function hasOpenAIAgentsSDK(): boolean;
2
+ //# sourceMappingURL=openai-agents-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-agents-detection.d.ts","sourceRoot":"","sources":["../../../src/hooks/openai-agents-detection.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,IAAI,OAAO,CAO5C"}
@@ -0,0 +1,42 @@
1
+ import type { OpenAIAgentsRunContext, OpenAIAgentsRunTool, OpenAIAgentsToolCall, OpenAIAgentsToolCallOutput } from "../types/openai-agents-adapter.js";
2
+ import type { GatewayClient } from "../gateway/client.js";
3
+ export interface OpenAIAgentsAgentClass {
4
+ prototype: {
5
+ _runTool?: OpenAIAgentsRunTool;
6
+ };
7
+ }
8
+ export interface OpenAIAgentsPatchState {
9
+ isPatched: boolean;
10
+ originalRunTool: OpenAIAgentsRunTool | undefined;
11
+ patchedAgentClass: OpenAIAgentsAgentClass | undefined;
12
+ }
13
+ export declare const openAIAgentsPatchState: OpenAIAgentsPatchState;
14
+ export declare function captureOriginalRunTool(agentClass: OpenAIAgentsAgentClass): OpenAIAgentsRunTool | undefined;
15
+ export declare function parseToolCallArguments(toolCall: OpenAIAgentsToolCall): unknown;
16
+ export interface OpenAIAgentsToolCallContextMetadata {
17
+ agentId: string | undefined;
18
+ runId: string | undefined;
19
+ }
20
+ export declare function extractToolCallContextMetadata(context: OpenAIAgentsRunContext | undefined): OpenAIAgentsToolCallContextMetadata;
21
+ export declare function formatDeniedToolCallOutput(reason: string | undefined, prefix: string): OpenAIAgentsToolCallOutput;
22
+ export interface AwaitApprovalOptions {
23
+ toolName: string;
24
+ runId: string;
25
+ timeoutMs: number;
26
+ }
27
+ export declare function handlePendingApproval(gatewayClient: GatewayClient, options: AwaitApprovalOptions): Promise<OpenAIAgentsToolCallOutput | undefined>;
28
+ export declare function recordToolResultNonBlocking(gatewayClient: GatewayClient, runId: string, output: unknown): void;
29
+ export interface CreatePatchedRunToolOptions {
30
+ fallbackRunId: string;
31
+ approvalTimeoutMs: number;
32
+ }
33
+ export declare function createPatchedRunTool(originalRunTool: OpenAIAgentsRunTool, gatewayClient: GatewayClient, options: CreatePatchedRunToolOptions): OpenAIAgentsRunTool;
34
+ export interface PatchOpenAIAgentsOptions {
35
+ gatewayClient: GatewayClient;
36
+ approvalTimeoutMs?: number;
37
+ fallbackRunId?: string;
38
+ loadAgentClass?: () => Promise<OpenAIAgentsAgentClass | undefined>;
39
+ }
40
+ export declare function patchOpenAIAgents(options: PatchOpenAIAgentsOptions): Promise<boolean>;
41
+ export declare function unpatchOpenAIAgents(): boolean;
42
+ //# sourceMappingURL=openai-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-agents.d.ts","sourceRoot":"","sources":["../../../src/hooks/openai-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE,mBAAmB,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,iBAAiB,EAAE,sBAAsB,GAAG,SAAS,CAAC;CACvD;AAED,eAAO,MAAM,sBAAsB,EAAE,sBAIpC,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,sBAAsB,GACjC,mBAAmB,GAAG,SAAS,CAWjC;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAM9E;AAED,MAAM,WAAW,mCAAmC;IAClD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,sBAAsB,GAAG,SAAS,GAC1C,mCAAmC,CAKrC;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GACb,0BAA0B,CAG5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAYjD;AAED,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,GACd,IAAI,CAEN;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,mBAAmB,EACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,2BAA2B,GACnC,mBAAmB,CA2DrB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;CACpE;AAgBD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAgB7C"}
@@ -0,0 +1,10 @@
1
+ export { initAssembly } from "./core/init-assembly.js";
2
+ export { withAssembly } from "./wrappers/index.js";
3
+ export type { WithAssemblyOptions } from "./wrappers/index.js";
4
+ export type { AssemblyConfig, AssemblyContext, AssemblyMode, AuditEvent, CallStackNode, CallStackNodeKind, EnforcementMode, ToolMap } from "./types/index.js";
5
+ export { ENFORCEMENT_MODES } from "./types/index.js";
6
+ export { decodeAuditEvent, decodeCallStackNode, encodeAuditEvent, encodeCallStackNode } from "./audit/index.js";
7
+ export type { WireAuditEvent, WireCallStackNode } from "./audit/index.js";
8
+ export { currentAgentId, runWithAgentId } from "./lineage/index.js";
9
+ export { INSTALL_HINT, findAasmBinary } from "./runtime.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EACV,cAAc,EACd,eAAe,EACf,YAAY,EACZ,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,OAAO,EACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ /**
3
+ * Holds the current agent's ID for automatic lineage propagation.
4
+ * When a framework spawns a child agent, the child's initAssembly reads
5
+ * this store to auto-populate parentAgentId without manual threading.
6
+ */
7
+ export declare const agentContextStore: AsyncLocalStorage<string>;
8
+ /** Run fn within a context where the current agent ID is set. */
9
+ export declare function runWithAgentId<T>(agentId: string, fn: () => T): T;
10
+ /** Return the current agent ID from the async context, or undefined if absent. */
11
+ export declare function currentAgentId(): string | undefined;
12
+ //# sourceMappingURL=agent-context-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-context-store.d.ts","sourceRoot":"","sources":["../../../src/lineage/agent-context-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,2BAAkC,CAAC;AAEjE,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEjE;AAED,kFAAkF;AAClF,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD"}
@@ -0,0 +1,2 @@
1
+ export { agentContextStore, currentAgentId, runWithAgentId } from "./agent-context-store.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lineage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { InitAssemblyOptions } from "../types/policy.js";
2
+ export interface PolicyResult {
3
+ denied?: boolean;
4
+ pending?: boolean;
5
+ reason?: string;
6
+ }
7
+ export declare class NativeConnectError extends Error {
8
+ readonly code = "AA_ERR_CONNECT";
9
+ }
10
+ export declare class NativeSendEventError extends Error {
11
+ readonly code = "AA_ERR_SEND_EVENT";
12
+ }
13
+ export declare class NativeQueryPolicyError extends Error {
14
+ readonly code = "AA_ERR_QUERY_POLICY";
15
+ }
16
+ export declare class NativeDisconnectError extends Error {
17
+ readonly code = "AA_ERR_DISCONNECT";
18
+ }
19
+ export interface NativeClient {
20
+ readonly mode: "grpc-sidecar" | "napi-inprocess";
21
+ close: () => Promise<void>;
22
+ sendEvent: (event: unknown) => void;
23
+ queryPolicy: (action: unknown) => Promise<PolicyResult>;
24
+ }
25
+ export declare function createNativeClient(options: InitAssemblyOptions): NativeClient;
26
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/native/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsBD,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,oBAAiB;CAC/B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,uBAAoB;CAClC;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,yBAAsB;CACpC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,uBAAoB;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAAC;IACjD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACzD;AAgED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAuF7E"}