@migor/agentia 0.7.1 → 0.8.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 (98) hide show
  1. package/CHANGELOG.md +115 -1
  2. package/README.md +10 -6
  3. package/dist/AGENTS.md +27 -6
  4. package/dist/engine/loop-result.d.ts +72 -0
  5. package/dist/engine/loop-result.js +80 -0
  6. package/dist/engine/loop-result.js.map +1 -0
  7. package/dist/engine/loop.d.ts +3 -40
  8. package/dist/engine/loop.js +31 -125
  9. package/dist/engine/loop.js.map +1 -1
  10. package/dist/engine/resume-input.d.ts +26 -0
  11. package/dist/engine/resume-input.js +39 -0
  12. package/dist/engine/resume-input.js.map +1 -0
  13. package/dist/engine/retry.d.ts +8 -0
  14. package/dist/engine/retry.js +10 -0
  15. package/dist/engine/retry.js.map +1 -1
  16. package/dist/engine/run-config.d.ts +28 -0
  17. package/dist/engine/run-config.js +75 -0
  18. package/dist/engine/run-config.js.map +1 -0
  19. package/dist/engine/stop-reason.d.ts +27 -0
  20. package/dist/engine/stop-reason.js +76 -0
  21. package/dist/engine/stop-reason.js.map +1 -0
  22. package/dist/engine/text.d.ts +10 -0
  23. package/dist/engine/text.js +6 -0
  24. package/dist/engine/text.js.map +1 -0
  25. package/dist/engine/tool-context.d.ts +32 -0
  26. package/dist/engine/tool-context.js +18 -0
  27. package/dist/engine/tool-context.js.map +1 -0
  28. package/dist/engine/tool-events.d.ts +42 -0
  29. package/dist/engine/tool-events.js +64 -0
  30. package/dist/engine/tool-events.js.map +1 -0
  31. package/dist/engine/turn-request.d.ts +24 -0
  32. package/dist/engine/turn-request.js +12 -0
  33. package/dist/engine/turn-request.js.map +1 -0
  34. package/dist/engine/turn.d.ts +3 -25
  35. package/dist/engine/turn.js +43 -155
  36. package/dist/engine/turn.js.map +1 -1
  37. package/dist/index.d.ts +3 -2
  38. package/dist/index.js +3 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/integrations/anthropic.d.ts +5 -0
  41. package/dist/integrations/anthropic.js +29 -2
  42. package/dist/integrations/anthropic.js.map +1 -1
  43. package/dist/integrations/mcp-http.d.ts +43 -0
  44. package/dist/integrations/mcp-http.js +250 -0
  45. package/dist/integrations/mcp-http.js.map +1 -0
  46. package/dist/integrations/mcp-stdio.d.ts +46 -0
  47. package/dist/integrations/mcp-stdio.js +230 -0
  48. package/dist/integrations/mcp-stdio.js.map +1 -0
  49. package/dist/integrations/mcp.d.ts +37 -72
  50. package/dist/integrations/mcp.js +9 -468
  51. package/dist/integrations/mcp.js.map +1 -1
  52. package/dist/integrations/metrics-otlp.d.ts +42 -0
  53. package/dist/integrations/metrics-otlp.js +178 -0
  54. package/dist/integrations/metrics-otlp.js.map +1 -0
  55. package/dist/integrations/metrics-render.d.ts +2 -0
  56. package/dist/integrations/metrics-render.js +145 -0
  57. package/dist/integrations/metrics-render.js.map +1 -0
  58. package/dist/integrations/metrics-state.d.ts +191 -0
  59. package/dist/integrations/metrics-state.js +363 -0
  60. package/dist/integrations/metrics-state.js.map +1 -0
  61. package/dist/integrations/metrics.d.ts +3 -86
  62. package/dist/integrations/metrics.js +28 -648
  63. package/dist/integrations/metrics.js.map +1 -1
  64. package/dist/integrations/openai.js +4 -3
  65. package/dist/integrations/openai.js.map +1 -1
  66. package/dist/store/fsStore.d.ts +1 -1
  67. package/dist/store/fsStore.js +5 -2
  68. package/dist/store/fsStore.js.map +1 -1
  69. package/dist/toolkit/tool.js +1 -0
  70. package/dist/toolkit/tool.js.map +1 -1
  71. package/dist/transport/approval-policy.d.ts +30 -0
  72. package/dist/transport/approval-policy.js +37 -0
  73. package/dist/transport/approval-policy.js.map +1 -0
  74. package/dist/transport/async.d.ts +13 -5
  75. package/dist/transport/async.js +143 -150
  76. package/dist/transport/async.js.map +1 -1
  77. package/dist/transport/drain-gate.d.ts +28 -0
  78. package/dist/transport/drain-gate.js +62 -0
  79. package/dist/transport/drain-gate.js.map +1 -0
  80. package/dist/transport/http-route.d.ts +55 -0
  81. package/dist/transport/http-route.js +72 -0
  82. package/dist/transport/http-route.js.map +1 -0
  83. package/dist/transport/http-shapes.d.ts +57 -0
  84. package/dist/transport/http-shapes.js +56 -0
  85. package/dist/transport/http-shapes.js.map +1 -0
  86. package/dist/transport/http.d.ts +5 -21
  87. package/dist/transport/http.js +176 -232
  88. package/dist/transport/http.js.map +1 -1
  89. package/dist/transport/resume-policy.d.ts +40 -0
  90. package/dist/transport/resume-policy.js +25 -0
  91. package/dist/transport/resume-policy.js.map +1 -0
  92. package/dist/transport/slot-pool.d.ts +24 -0
  93. package/dist/transport/slot-pool.js +43 -0
  94. package/dist/transport/slot-pool.js.map +1 -0
  95. package/dist/transport/task-waiters.d.ts +25 -0
  96. package/dist/transport/task-waiters.js +63 -0
  97. package/dist/transport/task-waiters.js.map +1 -0
  98. package/package.json +5 -4
@@ -0,0 +1,32 @@
1
+ /**
2
+ * 单工具执行的**上下文装配**(纯):把引擎侧的取值摊成交给工具的 `ToolRunContext`。
3
+ *
4
+ * 从 turn.ts 的 executeOneTool 里外移(2026-09-20,turn 拆分第三步)。这段全部是搬运,但它
5
+ * **不是无害的样板**:八处条件展开里每一处都对应一个「漏了就静默降级」的守卫 ——
6
+ * 价格覆盖漏了 ⇒ 子 agent 用同一模型退化成「未定价」、`maxCostUsd` 静默失效;预算/超时上限
7
+ * 漏了 ⇒ 护栏在子循环里离线;`abandoned` 漏了 ⇒ 超时后没人通知工具「别等了」。
8
+ *
9
+ * 判定用哪一种是**语义**,不是风格,单测逐项钉住:
10
+ * - `signal` / `priceOverrides` / `onUnpricedModel` 用**真值**判定;
11
+ * - `maxEventChars` / `maxTotalTokens` / `maxCostUsd` / `toolTimeoutMs` 用**非空**判定 ——
12
+ * 因为 `false`(不截断)与 `0`(不限/不超时)都是**有意义的值**,真值判定会把它们吃掉;
13
+ * - `approval` 用 `!== undefined`:批/拒的决定要原样带给工具体(审计与分级授权用)。
14
+ *
15
+ * 纯的边界:只做取值搬运,不读 ctx、不碰 recorder、不执行工具。
16
+ */
17
+ import type { SpanId } from '../core/trace.js';
18
+ import type { RecorderBackend, ToolRunContext } from '../core/tool.js';
19
+ export declare function buildToolRunContext(opts: {
20
+ client: ToolRunContext['client'];
21
+ recorder: RecorderBackend;
22
+ parentSpanId: SpanId;
23
+ abandoned: AbortSignal;
24
+ signal?: ToolRunContext['signal'];
25
+ priceOverrides?: ToolRunContext['priceOverrides'];
26
+ onUnpricedModel?: ToolRunContext['onUnpricedModel'];
27
+ maxEventChars?: ToolRunContext['maxEventChars'];
28
+ maxTotalTokens?: ToolRunContext['maxTotalTokens'];
29
+ maxCostUsd?: ToolRunContext['maxCostUsd'];
30
+ toolTimeoutMs?: ToolRunContext['toolTimeoutMs'];
31
+ approval?: ToolRunContext['approval'];
32
+ }): ToolRunContext;
@@ -0,0 +1,18 @@
1
+ export function buildToolRunContext(opts) {
2
+ const { client, recorder, parentSpanId, abandoned, signal, priceOverrides, onUnpricedModel, maxEventChars, maxTotalTokens, maxCostUsd, toolTimeoutMs, approval, } = opts;
3
+ return {
4
+ client,
5
+ recorder,
6
+ parentSpanId,
7
+ abandoned,
8
+ ...(signal ? { signal } : {}),
9
+ ...(priceOverrides ? { priceOverrides } : {}),
10
+ ...(onUnpricedModel ? { onUnpricedModel } : {}),
11
+ ...(maxEventChars != null ? { maxEventChars } : {}),
12
+ ...(maxTotalTokens != null ? { maxTotalTokens } : {}),
13
+ ...(maxCostUsd != null ? { maxCostUsd } : {}),
14
+ ...(toolTimeoutMs != null ? { toolTimeoutMs } : {}),
15
+ ...(approval !== undefined ? { approval } : {}),
16
+ };
17
+ }
18
+ //# sourceMappingURL=tool-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/engine/tool-context.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,mBAAmB,CAAC,IAanC;IACC,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,MAAM,EACN,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,QAAQ,GACT,GAAG,IAAI,CAAC;IACT,OAAO;QACL,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { ToolResultBlockParam, ToolUseBlock } from '../core/message.js';
2
+ /**
3
+ * 事件正文(tool.input / tool.output 的 body)缺省截断上限(字符)。
4
+ *
5
+ * 与「入参」/「成功出参」/「失败出参」三类一一对应:失败出参减半是为了让
6
+ * 「哪个工具老超时」这类判断在**一行**里看得完(正文本身多为一句错误摘要,
7
+ * 1000 已远超常见长度,只有工具把异常里的长上下文一起吐回来时才会触发)。
8
+ */
9
+ export declare const DEFAULT_EVENT_CHARS = 2000;
10
+ export declare const DEFAULT_ERROR_EVENT_CHARS = 1000;
11
+ /** 工具失败归类(进 `tool.output` 事件)。`denied` 是**人**的决定,不是工具故障,故单列一类账 */
12
+ export type ToolErrorKind = 'invalid_input' | 'timeout' | 'threw' | 'unknown_tool' | 'denied';
13
+ export interface ToolInputPayload {
14
+ tool: string;
15
+ tool_use_id: string;
16
+ input: string;
17
+ }
18
+ /** `tool.input` 事件体:入参按 `maxEventChars`(缺省 2000)截断 */
19
+ export declare function toolInputPayload(use: ToolUseBlock, maxEventChars?: number | false): ToolInputPayload;
20
+ export interface ToolOutputPayload {
21
+ tool: string;
22
+ tool_use_id: string;
23
+ ok: boolean;
24
+ durationMs: number;
25
+ errorKind?: ToolErrorKind;
26
+ content: string;
27
+ }
28
+ /**
29
+ * `tool.output` 事件体:耗时四路径都记、失败出参用**更小**的截断上限、`errorKind` 有值才在场。
30
+ * `now` 由调用点传入(便于单测固定时钟;时钟回拨时 durationMs 钳到 0)。
31
+ */
32
+ export declare function toolOutputPayload(opts: {
33
+ use: ToolUseBlock;
34
+ ok: boolean;
35
+ errorKind?: ToolErrorKind | undefined;
36
+ startedAt: number;
37
+ now: number;
38
+ content: unknown;
39
+ maxEventChars?: number | false | undefined;
40
+ }): ToolOutputPayload;
41
+ /** 回给模型的 tool_result 块:`is_error` 与 `ok` 互为反,content 一律走 stringifySafe */
42
+ export declare function toolResultBlock(use: ToolUseBlock, ok: boolean, content: unknown): ToolResultBlockParam;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * 单工具执行的**记账面**(纯):`tool.input` / `tool.output` 两个事件体 + 回给模型的 tool_result 块。
3
+ *
4
+ * 从 turn.ts 的 executeOneTool 里外移(2026-09-20,turn 拆分第四步)。这里的每一条都是**口径**,
5
+ * 混在执行流程里只能透过 trace 的观感去猜:
6
+ * - **截断上限不对称**:失败出参用更小的上限(1000 vs 2000)—— 理由见常量注释;
7
+ * - **`maxEventChars: false` = 不截断**(调试期开全文),必须原样透传而不是回落默认;
8
+ * - **`durationMs` 覆盖四条路径**(成功 / 失败 / 超时 / 入参被拒)且**非负** —— 时钟回拨时不出现负数;
9
+ * - **`errorKind` 只在有值时在场**:成功事件不该带一个 `undefined` 的键。
10
+ *
11
+ * 纯的边界:只拼装数据,不读 ctx、不碰 recorder、不执行工具。
12
+ */
13
+ import { stringifySafe, truncateWithMark } from '../core/json.js';
14
+ /**
15
+ * 事件正文(tool.input / tool.output 的 body)缺省截断上限(字符)。
16
+ *
17
+ * 与「入参」/「成功出参」/「失败出参」三类一一对应:失败出参减半是为了让
18
+ * 「哪个工具老超时」这类判断在**一行**里看得完(正文本身多为一句错误摘要,
19
+ * 1000 已远超常见长度,只有工具把异常里的长上下文一起吐回来时才会触发)。
20
+ */
21
+ export const DEFAULT_EVENT_CHARS = 2_000;
22
+ export const DEFAULT_ERROR_EVENT_CHARS = 1_000;
23
+ /**
24
+ * 截断到上限字符,超长加省略标记(标记格式由 core/json.ts 的 truncateWithMark 单一提供)。
25
+ * `n === false` 表示**不截断**(`RunAgentOptions.maxEventChars: false`)——
26
+ * 传数字时三类事件共用同一个上限,缺省值由调用点给出。
27
+ */
28
+ function limit(x, n) {
29
+ const s = stringifySafe(x);
30
+ return n === false ? s : truncateWithMark(s, n);
31
+ }
32
+ /** `tool.input` 事件体:入参按 `maxEventChars`(缺省 2000)截断 */
33
+ export function toolInputPayload(use, maxEventChars) {
34
+ return {
35
+ tool: use.name,
36
+ tool_use_id: use.id,
37
+ input: limit(use.input, maxEventChars ?? DEFAULT_EVENT_CHARS),
38
+ };
39
+ }
40
+ /**
41
+ * `tool.output` 事件体:耗时四路径都记、失败出参用**更小**的截断上限、`errorKind` 有值才在场。
42
+ * `now` 由调用点传入(便于单测固定时钟;时钟回拨时 durationMs 钳到 0)。
43
+ */
44
+ export function toolOutputPayload(opts) {
45
+ const { use, ok, errorKind, startedAt, now, content, maxEventChars } = opts;
46
+ return {
47
+ tool: use.name,
48
+ tool_use_id: use.id,
49
+ ok,
50
+ durationMs: Math.max(0, now - startedAt),
51
+ ...(errorKind ? { errorKind } : {}),
52
+ content: limit(content, maxEventChars ?? (ok ? DEFAULT_EVENT_CHARS : DEFAULT_ERROR_EVENT_CHARS)),
53
+ };
54
+ }
55
+ /** 回给模型的 tool_result 块:`is_error` 与 `ok` 互为反,content 一律走 stringifySafe */
56
+ export function toolResultBlock(use, ok, content) {
57
+ return {
58
+ type: 'tool_result',
59
+ tool_use_id: use.id,
60
+ content: stringifySafe(content),
61
+ is_error: !ok,
62
+ };
63
+ }
64
+ //# sourceMappingURL=tool-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-events.js","sourceRoot":"","sources":["../../src/engine/tool-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGlE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAK/C;;;;GAIG;AACH,SAAS,KAAK,CAAC,CAAU,EAAE,CAAiB;IAC1C,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC;AAQD,sDAAsD;AACtD,MAAM,UAAU,gBAAgB,CAC9B,GAAiB,EACjB,aAA8B;IAE9B,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,IAAI,mBAAmB,CAAC;KAC9D,CAAC;AACJ,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAQjC;IACC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC5E,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,EAAE;QACF,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;QACxC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,KAAK,CACZ,OAAO,EACP,aAAa,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CACxE;KACF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAC7B,GAAiB,EACjB,EAAW,EACX,OAAgB;IAEhB,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;QAC/B,QAAQ,EAAE,CAAC,EAAE;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 回合请求的**装配**(纯):把引擎侧的取值摊成客户端 `messages.stream` 的入参。
3
+ *
4
+ * 从 turn.ts 的 streamTurn 里外移(2026-09-20,turn 拆分第二步)。这里没有一行逻辑算"难",
5
+ * 但三处**条件展开**是容易写错的地方 —— **键在不在场是语义**:
6
+ * - `system` / `tools` / `signal` 缺省时**不带该键**(不是传 `undefined`、更不是空数组):
7
+ * 适配器按「键是否在场」决定是否写进请求体,带一个空数组会被某些端点读成「声明了零个工具」;
8
+ * - `system: ''` 这种空值同样不带键(`!system` 判定)—— 与抽取前的行内写法逐字一致。
9
+ *
10
+ * 纯的边界:只做取值搬运,不读 ctx、不碰 recorder、不认识重试。
11
+ */
12
+ import type { MessageParam, ToolParam } from '../core/message.js';
13
+ import type { ModelClient } from '../core/tool.js';
14
+ import type { SystemParam } from './types.js';
15
+ type StreamParams = Parameters<ModelClient['messages']['stream']>[0];
16
+ export declare function buildTurnRequest(opts: {
17
+ model: string;
18
+ maxTokens: number;
19
+ system?: SystemParam | undefined;
20
+ apiTools: ToolParam[];
21
+ messages: MessageParam[];
22
+ signal?: AbortSignal | undefined;
23
+ }): StreamParams;
24
+ export {};
@@ -0,0 +1,12 @@
1
+ export function buildTurnRequest(opts) {
2
+ const { model, maxTokens, system, apiTools, messages, signal } = opts;
3
+ return {
4
+ model,
5
+ max_tokens: maxTokens,
6
+ ...(system ? { system } : {}),
7
+ ...(apiTools.length ? { tools: apiTools } : {}),
8
+ messages,
9
+ ...(signal ? { signal } : {}),
10
+ };
11
+ }
12
+ //# sourceMappingURL=turn-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-request.js","sourceRoot":"","sources":["../../src/engine/turn-request.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,gBAAgB,CAAC,IAOhC;IACC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtE,OAAO;QACL,KAAK;QACL,UAAU,EAAE,SAAS;QACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,QAAQ;QACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC"}
@@ -4,13 +4,14 @@
4
4
  * 分工:loop.ts 留入口与编排骨架(runAgent / runAgentScoped / agentLoop 本体 +
5
5
  * 缺省旋钮解析);本文件装回合内部 —— 回合上下文装配(buildLoopContext)、
6
6
  * 回合入口检查(checkTurnEntry)、流式请求与重试(streamTurn)、回合记账
7
- * (recordTurnUsage)、stop_reason 分流(resolveStopReason)、工具执行
7
+ * (recordTurnUsage)、stop_reason 分流(已外移到 stop-reason.ts)、工具执行
8
8
  * (executeTurnTools / executeOneTool)。
9
9
  * 依赖方向单向:loop.ts → turn.ts(分层守卫禁环);两侧共用的类型与 helper
10
10
  * (AgentLoopArgs / textOf / replaceMessages)在本文件做 module 级 export,供 loop.ts
11
11
  * 与测试 import —— 按仓库约定不进 src/index.ts(纯内部实现细节)。
12
12
  */
13
13
  import type { Message, MessageParam, ToolParam, ToolResultBlockParam, ToolUseBlock } from '../core/message.js';
14
+ import { textOf } from './text.js';
14
15
  import type { AgentTool, ApprovalDecision, JsonSchema, ModelClient, ModelPricing, RecorderBackend, SchemaType } from '../core/tool.js';
15
16
  import type { SpanError, SpanId } from '../core/trace.js';
16
17
  import type { BudgetGuard } from './budget.js';
@@ -127,21 +128,6 @@ export declare function streamTurn<S extends JsonSchema>(ctx: LoopContext<S>): P
127
128
  */
128
129
  export declare function recordTurnUsage<S extends JsonSchema>(ctx: LoopContext<S>, turnId: SpanId, message: Message): void;
129
130
  /** 回合收尾分流:finish = 终止/边界分支(带 stopReason 与收尾文本);tools = 还有工具要执行 */
130
- export type StopResolution = {
131
- kind: 'finish';
132
- stopReason: AgentStopReason;
133
- finalText: string;
134
- error?: SpanError;
135
- } | {
136
- kind: 'tools';
137
- toolUses: ToolUseBlock[];
138
- };
139
- /**
140
- * —— 终止/边界分支(每个都给出终止结论,退出循环不再兜底改判)——
141
- * 五种已知 stop_reason 各有归宿;剩余形态按「有没有可执行块」区分:
142
- * 畸形 tool_use(块为空)与框架不认识的 stop_reason。
143
- */
144
- export declare function resolveStopReason(message: Message, maxTokens: number): StopResolution;
145
131
  /**
146
132
  * 回合工具执行的结果:
147
133
  * - `executed`:全部执行完(results 与输入一一对应,顺序保持);
@@ -168,15 +154,7 @@ export type TurnToolsOutcome = {
168
154
  * 永不需审批)与未知工具(走既有 unknown_tool 路径)。
169
155
  */
170
156
  export declare function executeTurnTools<S extends JsonSchema>(ctx: LoopContext<S>, turnId: SpanId, toolUses: ToolUseBlock[], overBudget: 'tokens' | 'cost' | null): Promise<TurnToolsOutcome>;
171
- /**
172
- * 取消息里的全部文本块(引擎侧口径:**多块按 `\n` 连接** —— 多文本块是模型分段的
173
- * 输出,拼成 `finalText` 要保住分段)。
174
- *
175
- * 实现单源在 `core/text.ts`(2026-09-17 去重):两个适配器的「非流式回落路径」各有
176
- * 一份逐字相同的实现,只差连接符。这里保留同名包装,是为了让 loop.ts 与测试既有的
177
- * 大量调用点零改动,同时把「引擎用 `\n`」这个选择钉在一处。
178
- */
179
- export declare function textOf(message: Message): string;
157
+ export { textOf };
180
158
  /**
181
159
  * 用 `next` 原地替换 `target` 的全部内容(保持数组引用不变 —— 循环各处持同一数组)。
182
160
  *
@@ -4,31 +4,23 @@
4
4
  * 分工:loop.ts 留入口与编排骨架(runAgent / runAgentScoped / agentLoop 本体 +
5
5
  * 缺省旋钮解析);本文件装回合内部 —— 回合上下文装配(buildLoopContext)、
6
6
  * 回合入口检查(checkTurnEntry)、流式请求与重试(streamTurn)、回合记账
7
- * (recordTurnUsage)、stop_reason 分流(resolveStopReason)、工具执行
7
+ * (recordTurnUsage)、stop_reason 分流(已外移到 stop-reason.ts)、工具执行
8
8
  * (executeTurnTools / executeOneTool)。
9
9
  * 依赖方向单向:loop.ts → turn.ts(分层守卫禁环);两侧共用的类型与 helper
10
10
  * (AgentLoopArgs / textOf / replaceMessages)在本文件做 module 级 export,供 loop.ts
11
11
  * 与测试 import —— 按仓库约定不进 src/index.ts(纯内部实现细节)。
12
12
  */
13
- import { textOf as coreTextOf } from '../core/text.js';
13
+ import { textOf } from './text.js';
14
14
  import { validateJsonSchema } from '../core/schema.js';
15
- import { stringifySafe, truncateWithMark } from '../core/json.js';
16
15
  import { isTimeoutError } from '../core/timeout.js';
17
16
  import { classifyError, isAbortError } from './errors.js';
18
17
  import { createBudgetGuard } from './budget.js';
19
18
  import { mapWithConcurrency, TIMED_OUT, withTimeout } from './concurrency.js';
20
- import { backoffDelay, resolveRetry, sleep } from './retry.js';
19
+ import { backoffDelay, resolveRetry, retryAllowed, sleep } from './retry.js';
20
+ import { buildTurnRequest } from './turn-request.js';
21
+ import { buildToolRunContext } from './tool-context.js';
22
+ import { toolInputPayload, toolOutputPayload, toolResultBlock } from './tool-events.js';
21
23
  import { buildPricing, costEstimate, usageFromAnthropic } from './usage.js';
22
- /**
23
- * 事件正文(tool.input / tool.output 的 body)缺省截断上限(字符)。
24
- *
25
- * 与「入参」/「成功出参」/「失败出参」三类一一对应:失败出参减半是为了让
26
- * 「哪个工具老超时」这类判断在**一行**里看得完(正文本身多为一句错误摘要,
27
- * 1000 已远超常见长度,只有工具把异常里的长上下文一起吐回来时才会触发)。
28
- * `RunAgentOptions.maxEventChars` 一经给出,三类统一改用该值(见 `limit`)。
29
- */
30
- const DEFAULT_EVENT_CHARS = 2000;
31
- const DEFAULT_ERROR_EVENT_CHARS = 1000;
32
24
  /** 隐藏提交工具名:resultSchema 模式下由 engine 内部追加,不属开发者工具菜单 */
33
25
  const SUBMIT_RESULT = 'submit_result';
34
26
  /** resultSchema 模式下追加到 system 末尾的指令 */
@@ -175,14 +167,15 @@ export async function streamTurn(ctx) {
175
167
  if (attempt > 1)
176
168
  args.recorder.setAttribute(turnId, 'retry.attempt', attempt);
177
169
  try {
178
- const stream = args.client.messages.stream({
170
+ // 请求装配外移到 turn-request.ts(三个条件展开的「键在场与否」是语义,单测钉住)
171
+ const stream = args.client.messages.stream(buildTurnRequest({
179
172
  model: args.model,
180
- max_tokens: args.maxTokens,
181
- ...(ctx.system ? { system: ctx.system } : {}),
182
- ...(ctx.apiTools.length ? { tools: ctx.apiTools } : {}),
173
+ maxTokens: args.maxTokens,
174
+ system: ctx.system,
175
+ apiTools: ctx.apiTools,
183
176
  messages: ctx.messages,
184
- ...(signal ? { signal } : {}),
185
- });
177
+ signal,
178
+ }));
186
179
  stream.on('text', (delta) => {
187
180
  emitted = true;
188
181
  try {
@@ -204,9 +197,11 @@ export async function streamTurn(ctx) {
204
197
  break;
205
198
  }
206
199
  // 可重试:配置允许 + 次数未尽 + 判定可重试 + 本次尝试未产出任何文本
207
- const canRetry = retryCfg !== null && attempt < retryCfg.maxAttempts && retryCfg.isRetryable(e) && !emitted;
208
- if (!canRetry)
209
- throw e; // 冒泡:runAgent 或子 agent 运行器负责标记根/capability 与收尾
200
+ const canRetry = retryAllowed(retryCfg, attempt, e, emitted);
201
+ // 后半句只为让 TS 收窄:canRetry 为真时 retryCfg 必然非 null(合取的第一项),但**收窄不会
202
+ // 穿过变量**,而下面几行要用 retryCfg 的字段(backoffDelay / onRetry)。语义与抽取前一致。
203
+ if (!canRetry || retryCfg === null)
204
+ throw e; // 冒泡:runAgent 或子 agent 运行器负责收尾
210
205
  const delayMs = backoffDelay(attempt, retryCfg);
211
206
  args.recorder.event(turnId, 'llm.retry', { attempt, delayMs, error: errInfo.type });
212
207
  try {
@@ -256,80 +251,6 @@ export function recordTurnUsage(ctx, turnId, message) {
256
251
  args.recorder.setAttribute(turnId, 'cache_read_tokens', usage?.cacheReadTokens ?? 0);
257
252
  args.recorder.setAttribute(turnId, 'cache_creation_tokens', usage?.cacheCreationTokens ?? 0);
258
253
  }
259
- /**
260
- * —— 终止/边界分支(每个都给出终止结论,退出循环不再兜底改判)——
261
- * 五种已知 stop_reason 各有归宿;剩余形态按「有没有可执行块」区分:
262
- * 畸形 tool_use(块为空)与框架不认识的 stop_reason。
263
- */
264
- export function resolveStopReason(message, maxTokens) {
265
- if (message.stop_reason === 'end_turn') {
266
- return { kind: 'finish', stopReason: 'end_turn', finalText: textOf(message) };
267
- }
268
- if (message.stop_reason === 'refusal') {
269
- return {
270
- kind: 'finish',
271
- stopReason: 'refusal',
272
- finalText: textOf(message),
273
- error: { type: 'refusal', message: 'model refused the request', retryable: false },
274
- };
275
- }
276
- if (message.stop_reason === 'max_tokens') {
277
- // 与 budget_exceeded / refusal 同口径:非正常收尾都带结构化 error(进 run 根 span),
278
- // 否则 trace 里这类 run「失败却没有原因」
279
- return {
280
- kind: 'finish',
281
- stopReason: 'max_tokens',
282
- finalText: textOf(message),
283
- error: {
284
- type: 'max_tokens',
285
- message: `模型输出触顶被截断(max_tokens=${maxTokens})`,
286
- retryable: false,
287
- },
288
- };
289
- }
290
- if (message.stop_reason === 'pause_turn') {
291
- // 无 server tools 时正常不会到;避免无限循环直接停
292
- return {
293
- kind: 'finish',
294
- stopReason: 'pause_turn',
295
- finalText: textOf(message),
296
- error: {
297
- type: 'pause_turn',
298
- message: '模型返回 pause_turn(无 server tools 的场景不应出现),防死循环直接收尾',
299
- retryable: false,
300
- },
301
- };
302
- }
303
- if (message.stop_reason === 'stop_sequence') {
304
- // 命中 stop 序列 = 正常收尾(与 end_turn 同类),不是失败
305
- return { kind: 'finish', stopReason: 'stop_sequence', finalText: textOf(message) };
306
- }
307
- const toolUses = message.content.filter((b) => b.type === 'tool_use');
308
- if (toolUses.length === 0) {
309
- // 到这里的剩余 stop_reason 不会产生可执行块,防死循环直接停:
310
- // 'tool_use' 但块为空(畸形响应)与「本框架不认识的 stop_reason」区分开。
311
- //
312
- // **两种都属非正常收尾,都必须挂结构化 error** —— engine/loop.ts 的不变量是
313
- // 「非正常收尾都带结构化 error」(与 budget_exceeded / refusal / max_iterations 同口径)。
314
- // 此前只有 unknown_stop_reason 带 error,tool_use_no_blocks 不带:run 以
315
- // status:'failed' 收尾、result.error 却是 undefined,HTTP body 与任务记录里
316
- // 看不出「为什么失败」,只能看到一句 stopReason 字符串。
317
- const stopReason = message.stop_reason === 'tool_use' ? 'tool_use_no_blocks' : 'unknown_stop_reason';
318
- return {
319
- kind: 'finish',
320
- stopReason,
321
- finalText: textOf(message),
322
- error: {
323
- type: 'agent_error',
324
- message: stopReason === 'tool_use_no_blocks'
325
- ? '模型以 stop_reason=tool_use 收尾,但响应里没有任何 tool_use 块(畸形响应)'
326
- : `模型返回了未识别的 stop_reason: ${String(message.stop_reason)}`,
327
- retryable: false,
328
- },
329
- };
330
- }
331
- return { kind: 'tools', toolUses };
332
- }
333
254
  /**
334
255
  * —— 执行工具:默认全并行,可由 maxToolConcurrency 收窄(C2);
335
256
  * 单条 user 消息回全部 tool_result(抑制并行是反模式)——
@@ -382,11 +303,7 @@ async function executeOneTool(ctx, turnId, use) {
382
303
  // 的完整处理时长,是「哪一步慢」的可信基线。并行工具各记各的(tool_use_id 配对)。
383
304
  const toolStartedAt = Date.now();
384
305
  // tool_use_id 一并记账:同名工具并行时,重放只有靠 id 才能把入参出参正确配对
385
- args.recorder.event(turnId, 'tool.input', {
386
- tool: use.name,
387
- tool_use_id: use.id,
388
- input: limit(use.input, args.maxEventChars ?? DEFAULT_EVENT_CHARS),
389
- });
306
+ args.recorder.event(turnId, 'tool.input', toolInputPayload(use, args.maxEventChars));
390
307
  // 审批决定的审计账(HITL):谁、什么时候、以什么理由批/拒,等审批等了多久。
391
308
  // waitedMs 需要 requestedAt(挂起时刻,由宿主在挂起时回填)—— 手工直传
392
309
  // approvals 而没有 requestedAt 时不记 waitedMs(不编造)。
@@ -405,29 +322,21 @@ async function executeOneTool(ctx, turnId, use) {
405
322
  // 超时「放弃等待」时的通知信号(见 ToolRunContext.abandoned):控制器随本次
406
323
  // 调用创建、随调用消亡,只在 withTimeout 判超时的分支里 abort。
407
324
  const abandonAc = new AbortController();
408
- const toolCtx = {
325
+ // 上下文装配外移到 tool-context.ts:八处条件展开各自对应一个「漏了就静默降级」的守卫
326
+ const toolCtx = buildToolRunContext({
409
327
  client: args.client,
410
328
  recorder: args.recorder,
411
329
  parentSpanId: turnId,
412
330
  abandoned: abandonAc.signal,
413
- ...(args.signal ? { signal: args.signal } : {}),
414
- // 价格覆盖透传给嵌套能力(F1):否则子 agent 用同一模型会退化成"未定价"
415
- ...(args.priceOverrides ? { priceOverrides: args.priceOverrides } : {}),
416
- // 宿主的未定价告警回调透传到嵌套循环(F2):否则子循环里模型不在价格表时
417
- // 只有 usage.unpriced 事件,宿主的告警回调静默缺席
418
- ...(args.onUnpricedModel ? { onUnpricedModel: args.onUnpricedModel } : {}),
419
- // 事件截断口径同样透传:调试期开了全文,子 agent 的工具事件不该还是被截断的
420
- ...(args.maxEventChars != null ? { maxEventChars: args.maxEventChars } : {}),
421
- // 成本护栏(C1)同样透传:预算是整条 run(含各级子 agent)的口径,
422
- // 子循环拿不到就等于护栏在子循环期间离线(各级共享同一 recorder,按同一账单判断)
423
- ...(args.maxTotalTokens != null ? { maxTotalTokens: args.maxTotalTokens } : {}),
424
- ...(args.maxCostUsd != null ? { maxCostUsd: args.maxCostUsd } : {}),
425
- // 裁判权(2026-09-17):把本次的工具预算告诉工具自己 —— 带计时器的工具(MCP 桥)
426
- // 据此交出裁判权,不再另开一个计时器判同一件事(否则同一事件会有两种账,见 spec §10 2026-09-17 ①)。
427
- ...(args.toolTimeoutMs != null ? { toolTimeoutMs: args.toolTimeoutMs } : {}),
428
- // HITL:批准执行的决定带给工具体(审计 / 按 decidedBy 分级授权等)
429
- ...(decision !== undefined ? { approval: decision } : {}),
430
- };
331
+ signal: args.signal,
332
+ priceOverrides: args.priceOverrides,
333
+ onUnpricedModel: args.onUnpricedModel,
334
+ maxEventChars: args.maxEventChars,
335
+ maxTotalTokens: args.maxTotalTokens,
336
+ maxCostUsd: args.maxCostUsd,
337
+ toolTimeoutMs: args.toolTimeoutMs,
338
+ approval: decision,
339
+ });
431
340
  let ok = true;
432
341
  let content = '';
433
342
  // 失败归类(E1):只记「为什么没成」,不记栈 —— 观测看得清「哪个工具老超时」。
@@ -520,21 +429,17 @@ async function executeOneTool(ctx, turnId, use) {
520
429
  }
521
430
  }
522
431
  }
523
- args.recorder.event(turnId, 'tool.output', {
524
- tool: use.name,
525
- tool_use_id: use.id,
432
+ // 记账面外移到 tool-events.ts:截断上限不对称(失败更短)、耗时四路径都记且非负、errorKind 有值才在场
433
+ args.recorder.event(turnId, 'tool.output', toolOutputPayload({
434
+ use,
526
435
  ok,
527
- // 耗时(毫秒):成功/失败/超时/入参被拒四条路径都记(E1)
528
- durationMs: Math.max(0, Date.now() - toolStartedAt),
529
- ...(errorKind ? { errorKind } : {}),
530
- content: limit(content, args.maxEventChars ?? (ok ? DEFAULT_EVENT_CHARS : DEFAULT_ERROR_EVENT_CHARS)),
531
- });
532
- return {
533
- type: 'tool_result',
534
- tool_use_id: use.id,
535
- content: stringifySafe(content),
536
- is_error: !ok,
537
- };
436
+ errorKind,
437
+ startedAt: toolStartedAt,
438
+ now: Date.now(),
439
+ content,
440
+ maxEventChars: args.maxEventChars,
441
+ }));
442
+ return toolResultBlock(use, ok, content);
538
443
  }
539
444
  function toApiTool(t) {
540
445
  return {
@@ -544,17 +449,9 @@ function toApiTool(t) {
544
449
  ...(t.strict ? { strict: true } : {}),
545
450
  };
546
451
  }
547
- /**
548
- * 取消息里的全部文本块(引擎侧口径:**多块按 `\n` 连接** —— 多文本块是模型分段的
549
- * 输出,拼成 `finalText` 要保住分段)。
550
- *
551
- * 实现单源在 `core/text.ts`(2026-09-17 去重):两个适配器的「非流式回落路径」各有
552
- * 一份逐字相同的实现,只差连接符。这里保留同名包装,是为了让 loop.ts 与测试既有的
553
- * 大量调用点零改动,同时把「引擎用 `\n`」这个选择钉在一处。
554
- */
555
- export function textOf(message) {
556
- return coreTextOf(message, '\n');
557
- }
452
+ // textOf 的引擎口径已外移到 text.ts(stop-reason.ts 也要用;两边都从本文件取会成环),
453
+ // 这里 re-export,让 loop.ts 与测试的既有调用点零改动。
454
+ export { textOf };
558
455
  /**
559
456
  * 用 `next` 原地替换 `target` 的全部内容(保持数组引用不变 —— 循环各处持同一数组)。
560
457
  *
@@ -568,13 +465,4 @@ export function replaceMessages(target, next) {
568
465
  for (const m of next)
569
466
  target.push(m);
570
467
  }
571
- /**
572
- * 截断到上限字符,超长加省略标记(格式由 core/json.ts 的 truncateWithMark 单一提供)。
573
- * `n === false` 表示**不截断**(`RunAgentOptions.maxEventChars: false`)——
574
- * 传数字时三类事件共用同一个上限,缺省值由调用点给出。
575
- */
576
- function limit(x, n) {
577
- const s = stringifySafe(x);
578
- return n === false ? s : truncateWithMark(s, n);
579
- }
580
468
  //# sourceMappingURL=turn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn.js","sourceRoot":"","sources":["../../src/engine/turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn.js","sourceRoot":"","sources":["../../src/engine/turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAUnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5E,sDAAsD;AACtD,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,uCAAuC;AACvC,MAAM,kBAAkB,GACtB,wDAAwD;IACxD,6CAA6C,CAAC;AAEhD;;;GAGG;AACH,SAAS,uBAAuB,CAAC,MAAoB;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,kBAAkB,CAAC;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,MAAM,OAAO,kBAAkB,EAAE,CAAC;IAC5E,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC1E,CAAC;AAqED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAuB,IAAsB;IAC3E,uDAAuD;IACvD,2CAA2C;IAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,gBAAgB,aAAa,4BAA4B,CAC1D,CAAC;QACJ,CAAC;QACD,QAAQ,GAAG;YACT,GAAG,QAAQ;YACX;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,gDAAgD;gBAC7D,YAAY,EAAE,IAAI,CAAC,YAA0C;aAC9D;SACF,CAAC;QACF,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,yDAAyD;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAElD,+CAA+C;IAC/C,2DAA2D;IAC3D,MAAM,MAAM,GACV,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;QACpD,CAAC,CAAC,iBAAiB,CAAC;YAChB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjB,8BAA8B;gBAC9B,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,YAAY;wBACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBACpE,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY;gBACd,CAAC;YACH,CAAC;SACF,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,YAAY,EAAE,IAAI,GAAG,EAAU;QAC/B,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,kBAAkB;QAChE,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CACzB,IAAsB,EACtB,IAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,OAAO,EACL,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,kBAAkB,IAAI,CAAC,cAAc,EAAE;YACzC,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE;QACrC,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACpE,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAmB,EACnB,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IAC/B,2CAA2C;IAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;IAC1D,CAAC;IACD,mDAAmD;IACnD,6CAA6C;IAC7C,2CAA2C;IAC3C,uBAAuB;IACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,8BAA8B;IAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE;YACzD,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,EAAE;oBACvD,IAAI,EAAE,QAAQ,CAAC,MAAM;oBACrB,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;YACD,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAUD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAuB,GAAmB;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,MAAM,GAAW,EAAE,CAAC;IACxB,IAAI,OAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,+BAA+B;IACpD,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,IAAI,OAAO,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,CAAC;YACH,kDAAkD;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CACxC,gBAAgB,CAAC;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM;aACP,CAAC,CACH,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,iDAAiD;gBACnD,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/D,wBAAwB;YACxB,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvC,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;YACD,wCAAwC;YACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7D,8DAA8D;YAC9D,gEAAgE;YAChE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI;gBAAE,MAAM,CAAC,CAAC,CAAC,+BAA+B;YAC5E,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;YACnD,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,IAAI,CAAC,CAAC,UAAU;gBAC1B,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAmB,EACnB,MAAc,EACd,OAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,mDAAmD;QACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC;oBACH,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,mBAAmB,IAAI,CAAC,CAAC,CAAC;AAC/F,CAAC;AAaD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAmB,EACnB,MAAc,EACd,QAAwB,EACxB,UAAoC;IAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;YACzD,OAAO,IAAI,EAAE,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE;gBAChD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IACD,2CAA2C;IAC3C,0CAA0C;IAC1C,kDAAkD;IAClD,4CAA4C;IAC5C,yBAAyB;IACzB,MAAM,QAAQ,GAAG,UAAU;QACzB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACrF,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,QAAQ,EACR,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,EACnD,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAC1C,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAC3B,GAAmB,EACnB,MAAc,EACd,GAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD,sCAAsC;IACtC,uCAAuC;IACvC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,uDAAuD;IACvD,iDAAiD;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,gDAAgD;IAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACrF,0CAA0C;IAC1C,iDAAiD;IACjD,+CAA+C;IAC/C,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE;YAC9C,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;gBACxE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACtE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,2CAA2C;IAC3C,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,oDAAoD;IACpD,MAAM,OAAO,GAAG,mBAAmB,CAAC;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,IAAI,EAAE,GAAG,IAAI,CAAC;IACd,IAAI,OAAO,GAAY,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,kDAAkD;IAClD,IAAI,SAAoC,CAAC;IACzC,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACpD,6CAA6C;QAC7C,2CAA2C;QAC3C,mDAAmD;QACnD,uDAAuD;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,OAAO,EAAE,CAAC;gBACZ,EAAE,GAAG,KAAK,CAAC;gBACX,SAAS,GAAG,eAAe,CAAC;gBAC5B,OAAO,GAAG,kBAAkB,OAAO,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,WAAW,CAAC;gBACtB,mDAAmD;gBACnD,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;oBACnB,6DAA6D;oBAC7D,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAsB,CAAC;oBACvC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE,GAAG,KAAK,CAAC;YACX,SAAS,GAAG,OAAO,CAAC;YACpB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,GAAG,SAAS,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,EAAE,GAAG,KAAK,CAAC;QACX,SAAS,GAAG,cAAc,CAAC;QAC3B,OAAO,GAAG,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;SAAM,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1C,+CAA+C;QAC/C,yCAAyC;QACzC,EAAE,GAAG,KAAK,CAAC;QACX,SAAS,GAAG,QAAQ,CAAC;QACrB,OAAO,GAAG,SAAS,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,0CAA0C;QAC1C,6CAA6C;QAC7C,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAChE,IAAI,OAAO,EAAE,CAAC;gBACZ,EAAE,GAAG,KAAK,CAAC;gBACX,SAAS,GAAG,eAAe,CAAC;gBAC5B,OAAO,GAAG,kBAAkB,OAAO,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,oDAAoD;gBACpD,gCAAgC;gBAChC,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAC7C,IAAI,CAAC,aAAa,IAAI,CAAC,CACxB,CAAC;gBACF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,+CAA+C;oBAC/C,uDAAuD;oBACvD,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClB,EAAE,GAAG,KAAK,CAAC;oBACX,SAAS,GAAG,SAAS,CAAC;oBACtB,OAAO,GAAG,0BAA0B,IAAI,CAAC,aAAa,IAAI,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,GAAG,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE,GAAG,KAAK,CAAC;YACX,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,0DAA0D;gBAC1D,+DAA+D;gBAC/D,SAAS,GAAG,SAAS,CAAC;gBACtB,OAAO,GAAG,mBAAmB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,OAAO,CAAC;gBACpB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,GAAG,SAAS,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IACD,iEAAiE;IACjE,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,MAAM,EACN,aAAa,EACb,iBAAiB,CAAC;QAChB,GAAG;QACH,EAAE;QACF,SAAS;QACT,SAAS,EAAE,aAAa;QACxB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;QACf,OAAO;QACP,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CACH,CAAC;IAEF,OAAO,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,SAAS,CAAC,CAAY;IAC7B,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,WAAyC;QACzD,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,uCAAuC;AACvC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,IAA6B;IACnF,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
- export declare const AGENTIA_VERSION = "0.7.1";
1
+ export declare const AGENTIA_VERSION = "0.8.0";
2
2
  export type { Trace, Span, SpanEvent, SpanError, SpanId, SpanKind, SpanLink, SpanStatus, TraceId, TraceContext, TraceSink, CapabilityType, Usage, Score, } from './core/trace.js';
3
3
  export { attachScore, parseTraceparent } from './core/trace.js';
4
4
  export type { AgentTool, ApprovalDecision, JsonSchema, ModelClient, RecorderBackend, SchemaInput, SchemaType, ToolRunContext, TypedSchema, } from './core/tool.js';
5
5
  export { validateJsonSchema } from './core/schema.js';
6
6
  export { combineSignals } from './core/abort.js';
7
7
  export type { CacheControl, ContentBlock, ContentBlockParam, ImageBlockParam, Message, MessageParam, MessageUsage, Role, TextBlock, TextBlockParam, ThinkingBlock, ToolParam, ToolResultBlockParam, ToolUseBlock, ToolUseBlockParam, } from './core/message.js';
8
- export { runAgent, resolveDefaultModel } from './engine/loop.js';
8
+ export { runAgent } from './engine/loop.js';
9
+ export { resolveDefaultModel } from './engine/run-config.js';
9
10
  export { TraceRecorder } from './engine/tracer.js';
10
11
  export { classifyError, isAbortError } from './engine/errors.js';
11
12
  export { isSuccessStopReason } from './engine/types.js';