@elinpf/dsh-ops-tool-trace 0.1.0 → 0.1.2
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.
- package/lib/doctrine.d.ts.map +1 -0
- package/lib/doctrine.js +115 -0
- package/lib/doctrine.js.map +1 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js.map +1 -0
- package/lib/invariant.d.ts.map +1 -0
- package/lib/invariant.js.map +1 -0
- package/lib/node-status.d.ts.map +1 -0
- package/lib/node-status.js +30 -0
- package/lib/node-status.js.map +1 -0
- package/lib/reminders.d.ts.map +1 -0
- package/lib/reminders.js +155 -0
- package/lib/reminders.js.map +1 -0
- package/lib/session-forests.d.ts.map +1 -0
- package/lib/session-forests.js +97 -0
- package/lib/session-forests.js.map +1 -0
- package/lib/tree-layout.d.ts.map +1 -0
- package/lib/tree-layout.js.map +1 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js.map +1 -0
- package/package.json +4 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctrine.d.ts","sourceRoot":"","sources":["../src/doctrine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,qCAAqC;AACrC,eAAO,MAAM,cAAc,8JACyB,CAAA;AAEpD;wBACwB;AACxB,eAAO,MAAM,qBAAqB,8EAAkB,CAAA;AAEpD,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,sLAC+B,CAAA;AAEhE;8BAC8B;AAC9B,eAAO,MAAM,iBAAiB,sTACyC,CAAA;AAEvE,4EAA4E;AAC5E,eAAO,MAAM,eAAe,+DAAqB,CAAA;AAEjD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAGzF;AAED,0CAA0C;AAC1C,eAAO,MAAM,YAAY,iFAAoC,CAAA;AAE7D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAEnE;AAID,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,+aACiD,CAAA;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAKd,CAAA;AAEZ;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAyCV,CAAA"}
|
package/lib/doctrine.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The trace doctrine — one home per sentence.
|
|
3
|
+
*
|
|
4
|
+
* The same handful of ideas (what the tree is, the trigger-node rule, the
|
|
5
|
+
* hypothesis form, where the full doc lives) used to be re-phrased in every
|
|
6
|
+
* prompt surface: the tool description, the parameter descriptions, the
|
|
7
|
+
* system-prompt core, the help text, and the reminder messages. They drifted
|
|
8
|
+
* in wording if not in content. Now each canonical sentence lives here once
|
|
9
|
+
* and the surfaces compose from it — same words everywhere, so the model
|
|
10
|
+
* gets one consistent vocabulary to anchor on.
|
|
11
|
+
*
|
|
12
|
+
* Surfaces deliberately keep their own granularity: the tool description is
|
|
13
|
+
* a one-liner, the system prompt carries the minimal core, and HELP_TEXT is
|
|
14
|
+
* the full reference. Progressive disclosure is the point; duplication is not.
|
|
15
|
+
*
|
|
16
|
+
* @module @elinpf/dsh-ops-tool-trace/doctrine
|
|
17
|
+
*/
|
|
18
|
+
// ── Canonical sentences ──────────────────────────────────────────────────────
|
|
19
|
+
/** What the tree is, in one line. */
|
|
20
|
+
export const TREE_ONE_LINER = '维护事件排查的调查树: goal → milestone(待验证假设) → step(验证动作)';
|
|
21
|
+
/** The question behind every parent_id decision. Also quoted verbatim by the
|
|
22
|
+
* nesting reminder. */
|
|
23
|
+
export const TRIGGER_NODE_QUESTION = '我为什么现在要做这个动作?';
|
|
24
|
+
/** The trigger-node mapping: where a new node hangs, by what triggered it. */
|
|
25
|
+
export const TRIGGER_NODE_MAPPING = '跟进某 step 的发现 → 挂那个 step; 验证某假设 → 挂该 milestone; 顶层假设 → "goal"';
|
|
26
|
+
/** The full trigger-node rule, one line (system-prompt core + parent_id
|
|
27
|
+
* parameter description). */
|
|
28
|
+
export const TRIGGER_NODE_RULE = `parent_id 的唯一规则 — ${TRIGGER_NODE_QUESTION} ${TRIGGER_NODE_MAPPING}。`;
|
|
29
|
+
/** A milestone must be writable in this form, or it is not a hypothesis. */
|
|
30
|
+
export const HYPOTHESIS_FORM = '"我怀疑 X, 因为看到了 Y"';
|
|
31
|
+
/**
|
|
32
|
+
* Hard-gate error for resolve on the goal while nodes are still undecided
|
|
33
|
+
* (not done / not dead_end). Lists the undecided nodes and points at the
|
|
34
|
+
* two ways forward: decide them (complete/abandon), or force — the explicit
|
|
35
|
+
* escape hatch for abandoning an investigation mid-way.
|
|
36
|
+
*/
|
|
37
|
+
export function resolveGateError(undecided) {
|
|
38
|
+
const list = undecided.map((n) => `${n.id} (${n.status})`).join(', ');
|
|
39
|
+
return `trace: 还有 ${undecided.length} 个节点未定论, 不能 resolve goal: ${list}。先给它们定论 — 证实 complete/resolve 带 summary, 证伪 abandon; 调查中途放弃的正当场景用 force: true 强制收口(带 WARN)。`;
|
|
40
|
+
}
|
|
41
|
+
/** Where the full documentation lives. */
|
|
42
|
+
export const HELP_POINTER = '完整用法与纪律: 调 `trace` action=help。';
|
|
43
|
+
/**
|
|
44
|
+
* Soft hint for add_step: the parent is a milestone that already has
|
|
45
|
+
* completed steps with findings, so the new step may belong under one of
|
|
46
|
+
* those steps (drill-down) instead of flat under the milestone. A hint,
|
|
47
|
+
* never a rejection — flat-hanging is sometimes right. Fires ONCE per tree
|
|
48
|
+
* (latched in the tool); the pre-step nesting reminder is the backstop.
|
|
49
|
+
*/
|
|
50
|
+
export function milestoneFollowUpHint(doneStepIds) {
|
|
51
|
+
return `提示: 该 milestone 下已有完成的 step (${doneStepIds.join(', ')})。如果本步是跟进某个 step 的发现, 应挂到那个 step 下 (parent_id = 那个 step 的 id), 而不是平铺在 milestone 下。`;
|
|
52
|
+
}
|
|
53
|
+
// ── Composed surfaces ────────────────────────────────────────────────────────
|
|
54
|
+
/** One-liner for the tool registry description. */
|
|
55
|
+
export const TOOL_DESCRIPTION = `${TREE_ONE_LINER}。每个节点的 parent_id 是它的触发节点——让你此刻想做这个动作的那个节点。${HELP_POINTER}`;
|
|
56
|
+
/**
|
|
57
|
+
* Minimal always-on core for the system prompt (registered through
|
|
58
|
+
* ops-prompts as a methodology section). The full doc is progressively
|
|
59
|
+
* disclosed through the `help` action; reminders deliver individual rules
|
|
60
|
+
* just-in-time.
|
|
61
|
+
*/
|
|
62
|
+
export const STATIC_PROMPT = [
|
|
63
|
+
'## trace — 调查树',
|
|
64
|
+
`用 \`trace\` 维护事件排查的调查树: goal → milestone(假设, 创建时必须能写出${HYPOTHESIS_FORM}) → step(验证动作)。`,
|
|
65
|
+
TRIGGER_NODE_RULE,
|
|
66
|
+
HELP_POINTER,
|
|
67
|
+
].join('\n');
|
|
68
|
+
/**
|
|
69
|
+
* Full usage documentation, progressively disclosed: the system prompt only
|
|
70
|
+
* carries the minimal core plus a pointer; the model pulls this via
|
|
71
|
+
* `trace` action=help when it needs the details.
|
|
72
|
+
*/
|
|
73
|
+
export const HELP_TEXT = [
|
|
74
|
+
'## trace — 调查树完整用法',
|
|
75
|
+
'',
|
|
76
|
+
'用 `trace` 维护事件排查的调查树。树形 = 推理链。',
|
|
77
|
+
'',
|
|
78
|
+
'### Actions',
|
|
79
|
+
'- create_tree(goal_title) — 开始新调查; 前一棵树作为历史保留。',
|
|
80
|
+
'- add_milestone(id, parent_id, title, detail?) — 立假设; detail 写 because 分句。',
|
|
81
|
+
'- add_step(id, parent_id, title, detail?) — 加验证动作; detail 写查证对象。',
|
|
82
|
+
'- start / complete / abandon / reopen(id 或 ids) — 状态流转; complete 可带 summary。',
|
|
83
|
+
'- resolve(id, summary) — 正面关闭一个节点(等同 complete 带 summary); 打在 goal 上 = 全案收口: 只调一次, 所有非根节点须先定论(complete 证实 / abandon 证伪), force: true 是中途放弃的逃生口(带 WARN)。',
|
|
84
|
+
'- link(id, caused_by) 或 links 数组 — 跨分支因果边。',
|
|
85
|
+
'- view — 完整树; status_filter 可选; format=tree 输出缩进树总览(只看形状)。',
|
|
86
|
+
'',
|
|
87
|
+
'### 触发节点 — parent_id 的唯一规则',
|
|
88
|
+
`add_step / add_milestone 前问: "${TRIGGER_NODE_QUESTION}"`,
|
|
89
|
+
'- 答案是某个 step 的发现/异常输出 → parent 是那个 step (这就是下钻)',
|
|
90
|
+
'- 答案是一个待验证的假设 → parent 是那个 milestone',
|
|
91
|
+
'- 顶层 milestone → parent 是 "goal"',
|
|
92
|
+
'标题只写动作本身; 推理关系全部由 parent 表达。',
|
|
93
|
+
'',
|
|
94
|
+
'### step 先行',
|
|
95
|
+
'调查动作(bash/kubectl/查日志)执行前先 add_step(title = 要查什么), 拿到结果立即 complete 带 summary。',
|
|
96
|
+
'',
|
|
97
|
+
'### milestone = 可被证据判伪的假设',
|
|
98
|
+
`创建时必须能写出 ${HYPOTHESIS_FORM}, Y 是已有证据:`,
|
|
99
|
+
'- 写得出 → add_milestone, because 分句写进 detail, title 只写假设本身',
|
|
100
|
+
'- 写不出 → 先取证, 把取证动作 add_step 到当前触发节点下',
|
|
101
|
+
'"Ceph 存储满了, 因为 osd.1 使用率 99%" ← 合格; "存储""网络" ← 没有 because 分句, 不是假设。',
|
|
102
|
+
'- 证实 → complete 带 summary; 证伪 → abandon',
|
|
103
|
+
'',
|
|
104
|
+
'### 下钻与收敛',
|
|
105
|
+
'complete 一个 step 前检查它的发现: 是否还悬着一个未解释的 "为什么"?',
|
|
106
|
+
'- 有 → 在该 step 下 add_step 追问, 收敛发生在追问之后',
|
|
107
|
+
'- 没有(已到物理/基础设施层事实: 磁盘满、内存耗尽、网络分区…) → 这一步收敛',
|
|
108
|
+
'没有新报错指引方向时, 回到最近一个还悬着 "为什么" 的节点继续。',
|
|
109
|
+
'',
|
|
110
|
+
'### 其他',
|
|
111
|
+
'- 死路 abandon, 保留在树上; 迷失方向先 view; 每 5 步排查至少更新 1 次 trace。',
|
|
112
|
+
'- link 只表达 parent 无法表达的因果边(跨分支); 父子关系已隐含触发链, 不重复 link。',
|
|
113
|
+
'- 新调查 create_tree; 全案收口 = resolve 打在 goal 上, 只调一次, 标记最终目标达成。证实 = complete 或 resolve(两者等价), 证伪 = abandon。收口的硬门槛只在 goal 这一处; step complete 时不做任何"提示收口"——避免早收口压力抑制下钻。',
|
|
114
|
+
].join('\n');
|
|
115
|
+
//# sourceMappingURL=doctrine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctrine.js","sourceRoot":"","sources":["../src/doctrine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,gFAAgF;AAEhF,qCAAqC;AACrC,MAAM,CAAC,MAAM,cAAc,GACzB,kDAAkD,CAAA;AAEpD;wBACwB;AACxB,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAA;AAEpD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAC/B,8DAA8D,CAAA;AAEhE;8BAC8B;AAC9B,MAAM,CAAC,MAAM,iBAAiB,GAC5B,qBAAqB,qBAAqB,IAAI,oBAAoB,GAAG,CAAA;AAEvE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAgD;IAC/E,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,aAAa,SAAS,CAAC,MAAM,6BAA6B,IAAI,6FAA6F,CAAA;AACpK,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,iCAAiC,CAAA;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAqB;IACzD,OAAO,gCAAgC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,oFAAoF,CAAA;AACnJ,CAAC;AAED,gFAAgF;AAEhF,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAC3B,GAAG,cAAc,6CAA6C,YAAY,EAAE,CAAA;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB;IAChB,wDAAwD,eAAe,iBAAiB;IACxF,iBAAiB;IACjB,YAAY;CACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,oBAAoB;IACpB,EAAE;IACF,gCAAgC;IAChC,EAAE;IACF,aAAa;IACb,gDAAgD;IAChD,4EAA4E;IAC5E,kEAAkE;IAClE,8EAA8E;IAC9E,wJAAwJ;IACxJ,4CAA4C;IAC5C,4DAA4D;IAC5D,EAAE;IACF,4BAA4B;IAC5B,iCAAiC,qBAAqB,GAAG;IACzD,iDAAiD;IACjD,sCAAsC;IACtC,kCAAkC;IAClC,8BAA8B;IAC9B,EAAE;IACF,aAAa;IACb,+EAA+E;IAC/E,EAAE;IACF,2BAA2B;IAC3B,YAAY,eAAe,YAAY;IACvC,0DAA0D;IAC1D,sCAAsC;IACtC,qEAAqE;IACrE,yCAAyC;IACzC,EAAE;IACF,WAAW;IACX,8CAA8C;IAC9C,wCAAwC;IACxC,4CAA4C;IAC5C,oCAAoC;IACpC,EAAE;IACF,QAAQ;IACR,yDAAyD;IACzD,wDAAwD;IACxD,oKAAoK;CACrK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,MAAM,KAAK,CAAA;AAM9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAI/D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,UAAU,CAAC,EAAE,gBAAgB,CAAA;QAI7B,kBAAkB,CAAC,EAAE;YACnB,QAAQ,CAAC,GAAG,EAAE;gBACZ,GAAG,EAAE,MAAM,CAAA;gBACX,MAAM,EAAE,OAAO,CAAA;gBACf,IAAI,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;gBAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,KAAK,WAAW,GAAG,IAAI,CAAA;gBAC1E,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,KAAK,WAAW,GAAG,IAAI,CAAA;gBACvD,YAAY,EAAE,MAAM,CAAA;aACrB,GAAG,MAAM,IAAI,CAAA;YACd,QAAQ,CAAC,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,GAAG;gBAAE,MAAM,EAAE;oBAAE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;iBAAE,CAAA;aAAE,CAAA;SAC9E,CAAA;KACF;CACF;AAED,OAAO,KAAK,EAIV,WAAW,EAKZ,MAAM,YAAY,CAAA;AAUnB,QAAA,MAAM,IAAI,cAAc,CAAA;AACxB,QAAA,MAAM,MAAM,UAAY,CAAA;AAIxB;;GAEG;AACH,QAAA,MAAM,MAAM;IACV,qFAAqF;;IAErF,0GAA0G;;IAE1G,+GAA+G;;;IAJ/G,qFAAqF;;IAErF,0GAA0G;;IAE1G,+GAA+G;;GAE/G,CAAA;AAqCF;;;;;GAKG;AACH,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,IAAI,CAgJlF;AAqDD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;mBASzB,CAAA;AAWF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAarB,CAAA;AAWV,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;kCAA6C,CAAA;AAExE;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;gBAGhB,WAAW,GAAG,IAAI;;cAElB,WAAW,GAAG,IAAI,KAAG,WAAW,GAAG,IAAI;;CAOlD,CAAA;AAsQD,iBAAS,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,+BAA+B,EAAE,MAAM,CAAC;IAAC,wBAAwB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkZtJ;AAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA"}
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAwCnD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEvG,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACtI,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAErF,iFAAiF;AAEjF,MAAM,IAAI,GAAG,WAAW,CAAA;AACxB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;AAExB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,qFAAqF;IACrF,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,0GAA0G;IAC1G,+BAA+B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,+GAA+G;IAC/G,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAChD,CAAC,CAAA;AAEF,gFAAgF;AAEhF;;;8CAG8C;AAC9C,MAAM,WAAW,GAAqC;IACpD,IAAI,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC;IACzC,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC;IAC5C,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;IACjC,IAAI,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,aAAa,CAAC;IACzB,QAAQ,EAAE,EAAE;CACb,CAAA;AAED,oEAAoE;AACpE,SAAS,aAAa,CAAC,IAAgB,EAAE,EAAc;IACrD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED,gFAAgF;AAEhF,uEAAuE;AACvE,SAAS,WAAW,CAAC,IAAoB;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAA;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAA+C,CAAA;QAClE,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAqBD,SAAS,SAAS,CAAC,KAAyB,EAAE,KAAgB;IAC5D,gDAAgD;IAChD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAA;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAExC,8BAA8B;IAC9B,IAAI,IAAe,CAAA;IACnB,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,2EAA2E;QAC3E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAElD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,kFAAkF;YAClF,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAA;YAClC,MAAM,OAAO,GAAc;gBACzB,KAAK,EAAE,CAAC;wBACN,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM;wBAClD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;qBACxE,CAAC;gBACF,QAAQ,EAAE,KAAK;aAChB,CAAA;YACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,CAAA;QACvC,CAAC;QAED,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,8EAA8E;YAC9E,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAA;YAC5D,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAA;YACvB,kEAAkE;YAClE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAA;YACxD,+BAA+B;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAA;YAChE,MAAM,IAAI,GAAG,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAA;YAC9D,MAAM,WAAW,GAAc;gBAC7B,GAAG,IAAI;gBACP,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;wBACrB,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;wBAC9B,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;wBACjD,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI;wBACpD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,SAAS,EAAE,EAAE;qBAC3C,CAAC;aACH,CAAA;YACD,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;QAC/C,CAAC;QAED,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAA;YACvB,MAAM,SAAS,GACb,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa;gBACzD,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM;oBAChC,CAAC,CAAC,UAAU,CAAA;YACd,MAAM,OAAO,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACzF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACtC,IAAI,WAAW,GAAG,IAAI,CAAA;YACtB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC3D,CAAC,CAAC,MAAM,GAAG,SAAS,CAAA;oBACpB,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO;wBAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;gBACrE,CAAC,CAAC,IAAI,WAAW,CAAA;YACnB,CAAC;YACD,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;QAC/C,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAA;YAC/B,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAA;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,CAAA;YAClC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,sEAAsE;gBACtE,qEAAqE;gBACrE,mEAAmE;gBACnE,8DAA8D;gBAC9D,oEAAoE;gBACpE,+DAA+D;gBAC/D,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC/D,CAAC,CAAC,MAAM,GAAG,MAAM,CAAA;oBACjB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAA;gBAClC,CAAC,CAAC,CAAA;gBACF,IAAI,CAAC,WAAW;oBAAE,OAAO,KAAK,CAAA;gBAC9B,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;YAC/C,CAAC;YACD,qEAAqE;YACrE,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,+CAA+C;YAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC;gBAClG,OAAO,KAAK,CAAA;YACd,CAAC;YACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC7D,CAAC,CAAC,MAAM,GAAG,UAAU,CAAA;gBACrB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAA;YAClC,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAA;YAC9B,MAAM,YAAY,GAAc,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YAClE,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;QAChD,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAA;YACvB,MAAM,KAAK,GAAe,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAChJ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACpC,0DAA0D;YAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS;mBAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;mBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;YACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACzC,IAAI,WAAW,GAAG,IAAI,CAAA;YACtB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC/D,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC1C,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;oBAChD,CAAC;gBACH,CAAC,CAAC,IAAI,WAAW,CAAA;YACnB,CAAC;YACD,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;QAC/C,CAAC;QAED;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,SAAS,WAAW,CAAC,MAAmB,EAAE,GAAc,EAAE,OAAkB;IAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAClE,CAAC;AAED,2FAA2F;AAC3F,SAAS,gBAAgB,CACvB,IAAe,EACf,MAAc,EACd,IAAY,EACZ,MAA6B;IAE7B,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM;YAAE,OAAO,CAAC,CAAA;QAC7B,KAAK,GAAG,IAAI,CAAA;QACZ,MAAM,IAAI,GAAa,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAA;QAC7F,MAAM,CAAC,IAAI,CAAC,CAAA;QACZ,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1C,CAAC;AAED,+EAA+E;AAE/E,SAAS,YAAY,CAAC,IAAsB;IAC1C,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAA;IAC/B,MAAM,MAAM,GAA+B;QACzC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;KACvE,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAA;IACzC,4EAA4E;IAC5E,iDAAiD;IACjD,MAAM,UAAU,GAAG,KAAK;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;SAC7G,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ;QACrD,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,2BAA2B;QACjD,CAAC,CAAC,IAAI,CAAA;IACR,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;AAC7D,CAAC;AAED,+EAA+E;AAC/E,0EAA0E;AAC1E,6EAA6E;AAC7E,WAAW;AAEX,+EAA+E;AAE/E,qEAAqE;AACrE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;IAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;CACnC,CAAC,CAAA;AAQF,MAAM,sBAAsB,GAA2B,IAAI,CAAA;AAC3D,KAAK,sBAAsB,CAAA;AAE3B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE;QACpE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;QACzE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;QAC1E,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;QACzE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACxE;CACO,CAAA;AAEV,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;IAChC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE;CACxB,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;CAClC,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,qBAAqB;IAC7B,IAAI,EAAE,GAAuB,EAAE,CAAC,IAAI;IACpC,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,CAAC,CAAqB,EAAsB,EAAE,CAAC,CAAC;IACtD,sEAAsE;IACtE,oCAAoC;IACpC,yEAAyE;IACzE,wEAAwE;IACxE,iEAAiE;IACjE,YAAY,EAAE,CAAC;CAChB,CAAA;AAED,gFAAgF;AAEhF,4CAA4C;AAC5C,MAAM,YAAY,GAA2B;IAC3C,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,UAAU;CACrB,CAAA;AAED,qEAAqE;AACrE,yEAAyE;AACzE,uCAAuC;AAEvC;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAkB,EAAE,SAAkB;IAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChF,OAAO,mCAAmC,CAAA;IAC5C,CAAC;IAED,MAAM,IAAI,GAAc,KAAK,CAAC,IAAI,CAAA;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,eAAe;IACf,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,cAAc,CAAC,CAAA;QAC7D,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,CAAC,CAAA;QACjD,IAAI,CAAC,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAA;QACpD,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,OAAO,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IAED,SAAS,UAAU,CAAC,IAAc,EAAE,MAAc,EAAE,MAAe;QACjE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QAE/E,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAClD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAkB;IACpC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChF,OAAO,mCAAmC,CAAA;IAC5C,CAAC;IAED,MAAM,IAAI,GAAc,KAAK,CAAC,IAAI,CAAA;IAClC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,SAAS,UAAU,CAAC,IAAc,EAAE,MAAc,EAAE,MAAe;QACjE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3E,IAAI,IAAI,GAAG,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,CAAA;QAChF,qCAAqC;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,aAAa,IAAI,CAAC,MAAM,EAAE,CAAA;QACpC,CAAC;QACD,mBAAmB;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;QACvD,CAAC;QACD,iBAAiB;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;QACtC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEhB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IACpC,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAEzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAAkB;IAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChF,OAAO,mCAAmC,CAAA;IAC5C,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzC,gFAAgF;QAChF,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAC1F,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACzC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAC9D,CAAC,CAAC,CAAA;IACF,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAkB;IACrC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IAC9B,IAAI,CAAC,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAA;IACxC,IAAI,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,cAAc,CAAC,CAAA;IAC7D,IAAI,CAAC,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAA;IACpD,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAc,EAAE,MAAc;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACzC,IAAI,IAAI,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,IAAI,aAAa,IAAI,CAAC,MAAM,EAAE,CAAA;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACvD,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;IACtC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,IAAe,EAAE,KAAkB;IACvD,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;IAE3B,iDAAiD;IACjD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAA;IAEvC,uEAAuE;IACvE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAChF,CAAC;IAED,8CAA8C;IAC9C,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,mCAAmC,CAAA;IAErE,MAAM,IAAI,GAAc,KAAK,CAAC,IAAI,CAAA;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QACxD,yBAAyB;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;YACnD,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;gBACrC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtG,kEAAkE;QAClE,MAAM,GAAG,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACrF,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAA;YACjD,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,oEAAoE;QACpE,MAAM,KAAK,GAAe,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAU,EAAC,CAAC,CAAA;QAC/G,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,mEAAmE;QACnE,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACnF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;YACtD,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,yEAAyE;IACzE,IAAI,KAAK,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AASD,SAAS,KAAK,CAAC,GAAY,EAAE,MAAmH;IAC9I,8EAA8E;IAC9E,sEAAsE;IACtE,oEAAoE;IACpE,2EAA2E;IAC3E,wEAAwE;IACxE,gBAAgB;IAChB,IAAI,kBAAkB,GAAkC,IAAI,CAAA;IAC5D,GAAG,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAa,EAAE,EAAE;QACnD,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,gEAAgE;IAChE,uEAAuE;IACvE,oEAAoE;IACpE,mEAAmE;IACnE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IAErC,yEAAyE;IACzE,+CAA+C;IAC/C,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAClC,CAAC,OAAO,EAAE,EAAE;QACV,IAAI,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAA;QACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAA;IACnE,CAAC,EACD,SAAS,EACT,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CACnD,CAAA;IAED,qEAAqE;IACrE,4EAA4E;IAC5E,kBAAkB;IAClB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;IAE9D,6EAA6E;IAC7E,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,gBAAgB;QAC7B,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;oBAC9C,aAAa,EAAE,UAAU,EAAE,eAAe;oBAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;iBAC5E,EAAE,WAAW,EAAE,mEAAmE,EAAE;YAErF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;YAEnG,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kQAAkQ,EAAE;YACvS,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,iBAAiB,EAAE,EAAE;YAChH,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;YACnF,GAAG,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,mEAAmE;aACjF;YAED,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+JAA+J,EAAE;YAEzM,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kFAAkF,EAAE;YAE3H,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qFAAqF,EAAE;YACjI,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACtC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;qBAC9C;iBACF;gBACD,WAAW,EAAE,yDAAyD;aACvE;YAED,sDAAsD;YACtD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE;YAE5J,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,uFAAuF,EAAE;YAExJ,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6EAA6E,EAAE;SACvH;QAED,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,KAAK;wBAC3B,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,OAAO;gCACb,QAAQ,EAAE,IAAI;gCACd,KAAK,EAAE,kBAAkB;6BAC1B;4BACD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;yBAC9C;qBACF;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,KAAK;wBAC3B,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;4BAC1C,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,oBAAoB,EAAE,KAAK;gCAC3B,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CACR;6BAC7D;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,OAAO;gCACb,QAAQ,EAAE,IAAI;gCACd,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,oBAAoB,EAAE,KAAK;oCAC3B,UAAU,EAAE;wCACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;wCACtC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;wCACzC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE;qCACrE;iCACF;6BACF;4BACD,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;yBAC3E;qBACF;oBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzB;aACF;YACD,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBACxB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;iBAChC,CAAC;SACH;QAED,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;YACrE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,SAAS,CAAA;YAC5D,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAmB,CAAA;YAEtE,gEAAgE;YAChE,yDAAyD;YACzD,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;YAElE,mEAAmE;YACnE,sEAAsE;YACtE,MAAM,iBAAiB,GAAG,GAAgB,EAAE;gBAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAE,CAAA;gBAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9C,CAAC,CAAA;YAED,QAAQ,IAAI,CAAC,MAAqB,EAAE,CAAC;gBACnC,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,UAAU;wBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;oBACtF,OAAO,iBAAiB,EAAE,CAAA;gBAC5B,CAAC;gBAED,KAAK,UAAU,CAAC;gBAChB,KAAK,eAAe,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;oBACzB,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;oBACrE,IAAI,CAAC,IAAI,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;oBACpE,IAAI,CAAC,IAAI,CAAC,KAAK;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;oBAC5D,IAAI,CAAC,IAAI,CAAC,EAAE;wBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;oBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC9D,IAAI,CAAC,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,aAAa,CAAC,CAAA;oBAChF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC7C,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAA;oBAC/D,CAAC;oBAED,+DAA+D;oBAC/D,iEAAiE;oBACjE,mEAAmE;oBACnE,kEAAkE;oBAClE,kEAAkE;oBAClE,IAAI,IAAwB,CAAA;oBAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;wBACnF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;wBACtE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzB,8DAA8D;4BAC9D,6DAA6D;4BAC7D,uBAAuB;4BACvB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;4BAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;4BAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC/B,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gCACzB,IAAI,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;4BAC1D,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;oBAClC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAA;oBACzB,IAAI,IAAI;wBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;oBAC5B,OAAO,MAAM,CAAA;gBACf,CAAC;gBAED,KAAK,OAAO,CAAC;gBACb,KAAK,UAAU,CAAC;gBAChB,KAAK,SAAS,CAAC;gBACf,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;oBACzB,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;oBAC5C,MAAM,OAAO,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;oBACzF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;oBACjF,MAAM,YAAY,GAChB,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa;wBACnE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM;4BACrC,CAAC,CAAC,UAAU,CAAA;oBAEd,gEAAgE;oBAChE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;wBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAA;wBACjD,IAAI,CAAC,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,aAAa,CAAC,CAAA;wBAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;4BAAE,SAAQ,CAAC,iCAAiC;wBAC5E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;4BAC9C,4DAA4D;4BAC5D,8DAA8D;4BAC9D,0DAA0D;4BAC1D,wDAAwD;4BACxD,IAAI,YAAY,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gCAC1D,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;oCAAE,SAAQ,CAAC,yBAAyB;gCAC1D,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;4BAChF,CAAC;4BACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,WAAW,IAAI,CAAC,MAAM,SAAS,YAAY,GAAG,CAAC,CAAA;wBACjG,CAAC;oBACH,CAAC;oBAED,OAAO,iBAAiB,EAAE,CAAA;gBAC5B,CAAC;gBAED,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;oBACzB,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;oBAC5C,IAAI,CAAC,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;oBAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,CAAA;oBAClC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;wBACxB,gEAAgE;wBAChE,8DAA8D;wBAC9D,gEAAgE;wBAChE,2DAA2D;wBAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;wBACtD,IAAI,CAAC,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,aAAa,CAAC,CAAA;wBACjE,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;4BAClE,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,WAAW,IAAI,CAAC,MAAM,aAAa,CAAC,CAAA;wBAC3F,CAAC;wBACD,OAAO,iBAAiB,EAAE,CAAA;oBAC5B,CAAC;oBACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;oBACpD,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;oBAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;oBAC9C,CAAC;oBACD,iEAAiE;oBACjE,mEAAmE;oBACnE,mEAAmE;oBACnE,0DAA0D;oBAC1D,gEAAgE;oBAChE,iEAAiE;oBACjE,yDAAyD;oBACzD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,CAAA;wBAC/C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;wBAC9C,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;wBAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAA;oBACpE,CAAC;oBACD,OAAO,iBAAiB,EAAE,CAAA;gBAC5B,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;oBACzB,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;oBAC5C,MAAM,KAAK,GAAe,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAU,EAAC,CAAC,CAAA;oBAC/G,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;oBAE/E,2BAA2B;oBAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,IAAI,CAAC,IAAI,CAAC,EAAE;4BAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;wBAC/D,IAAI,CAAC,IAAI,CAAC,SAAS;4BAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;wBAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;wBACrD,IAAI,CAAC,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,aAAa,CAAC,CAAA;wBAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAA;wBAC9D,IAAI,CAAC,MAAM;4BAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,SAAS,aAAa,CAAC,CAAA;oBAC3E,CAAC;oBAED,gDAAgD;oBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;wBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;wBACrD,OAAO,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBACxD,CAAC,CAAC,CAAA;oBACF,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;oBAC9C,CAAC;oBAED,OAAO,iBAAiB,EAAE,CAAA;gBAC5B,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;oBACzB,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;oBACrE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACvB,MAAM,QAAQ,GAAc;4BAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CACxE;yBACF,CAAA;wBACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;oBACxD,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;gBAC9C,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,6DAA6D;oBAC7D,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;oBACzB,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;gBACtF,CAAC;gBAED;oBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YAC7D,CAAC;YACD,0CAA0C;YAC1C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,MAAM,GAAW,IAAI,CAAC,MAAM,CAAA;YAClC,MAAM,KAAK,GAAG,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,2BAA2B;gBAClE,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU;oBACpC,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,eAAe;wBAC9C,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;4BAClC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACpD,OAAO,EAAE,IAAI,EAAE,SAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QACpF,CAAC;KACF,CAAC,CAAC,CAAA;IAEH,8EAA8E;IAC9E,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,UAAU,GAAG,aAAa,CAAA;IAEhC,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,uBAAuB;IACvB,EAAE;IACF,8EAA8E;IAC9E,mEAAmE;IACnE,sEAAsE;IACtE,sEAAsE;IACtE,iEAAiE;IACjE,0EAA0E;IAC1E,wEAAwE;IACxE,mEAAmE;IACnE,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAClM,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAC/F,MAAM,OAAO,GAAG,CAAC,IAA6C,EAAE,EAAE,CAAC,CAAC,KAAc,EAAiB,EAAE;QACnG,MAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9C,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,qEAAqE;IACrE,0EAA0E;IAC1E,oEAAoE;IACpE,qEAAqE;IACrE,qCAAqC;IACrC,MAAM,qBAAqB,GAAG,CAAC,IAAa,EAAE,UAA4B,EAAQ,EAAE;QAClF,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,MAAM,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC;gBACxD,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,UAAU;aACjB,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACjG,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC1G,OAAO,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,cAAc,EAAE,CAAA,CAAC,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACjD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,oEAAoE;QACpE,0EAA0E;QAC1E,sEAAsE;QACtE,iCAAiC;QACjC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,IAAa,EAAE,EAAE;YAC3C,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAW,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../src/invariant.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,oCAAoC;AACpC,QAAA,MAAM,IAAI,wBAAwB,CAAA;AAElC,2EAA2E;AAC3E,QAAA,MAAM,MAAM,UAAiB,CAAA;AAU7B;;;;GAIG;AACH,QAAA,MAAM,KAAK,GAAU,KAAK,GAAG,KAAG,OAAO,CAAC,IAAI,CAE3C,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariant.js","sourceRoot":"","sources":["../src/invariant.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,YAAY,GAAG,4BAA4B,CAAA;AAEjD,oCAAoC;AACpC,MAAM,IAAI,GAAG,qBAAqB,CAAA;AAElC,2EAA2E;AAC3E,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,OAAO,GAAG,GAAS,EAAE,GAAE,CAAC,CAAA;AAE9B;;;;GAIG;AACH,MAAM,KAAK,GAAG,KAAK,EAAE,GAAQ,EAAiB,EAAE;IAC9C,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-status.d.ts","sourceRoot":"","sources":["../src/node-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAExD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,6EAA8E,CAAA;AAExG,MAAM,MAAM,UAAU,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAErD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAKhE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime home of the node-status vocabulary (moved out of types.ts, which is
|
|
3
|
+
* types-only). The zod projection schema, the tool's output JSON schema, and
|
|
4
|
+
* the status_filter enum all derive from NODE_STATUSES — one source of truth.
|
|
5
|
+
*
|
|
6
|
+
* @module @elinpf/dsh-ops-tool-trace
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The six node statuses from the state machine — the single source of truth
|
|
10
|
+
* for the status set.
|
|
11
|
+
*
|
|
12
|
+
* - `goal` — a stable target (milestone or final goal); uses dashed connectors
|
|
13
|
+
* - `pending` — a step not yet started; uses thin dashed connectors
|
|
14
|
+
* - `in_progress` — actively being worked on
|
|
15
|
+
* - `done` — completed
|
|
16
|
+
* - `dead_end` — proven unviable; NOT a terminal state (can re-explore)
|
|
17
|
+
* - `resolved` — final goal achieved; terminal state
|
|
18
|
+
*/
|
|
19
|
+
export const NODE_STATUSES = ['goal', 'pending', 'in_progress', 'done', 'dead_end', 'resolved'];
|
|
20
|
+
/**
|
|
21
|
+
* The active tree is the last unresolved one, or the last tree if all are resolved.
|
|
22
|
+
*/
|
|
23
|
+
export function activeTree(forest) {
|
|
24
|
+
for (let i = forest.trees.length - 1; i >= 0; i--) {
|
|
25
|
+
if (!forest.trees[i].resolved)
|
|
26
|
+
return forest.trees[i];
|
|
27
|
+
}
|
|
28
|
+
return forest.trees.length > 0 ? forest.trees[forest.trees.length - 1] : null;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=node-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-status.js","sourceRoot":"","sources":["../src/node-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAU,CAAA;AAIxG;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../src/reminders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAI9D,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAA;IACrB,uDAAuD;IACvD,MAAM,EAAE,WAAW,CAAA;IACnB,2DAA2D;IAC3D,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;CACvB;AAUD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,GAAG,eAAe,GAAG,IAAI,CAwBtG;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwD;gBAG1D,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,EAC5C,QAAQ,EAAE,MAAM;IAGnC,qEAAqE;IACrE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,yCAAyC;IACzC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CASxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,SAAI,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAiB1G;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,SAAI,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAqB9G"}
|
package/lib/reminders.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reminder rules for the trace tool.
|
|
3
|
+
*
|
|
4
|
+
* Before this module existed, each reminder check re-parsed the full session
|
|
5
|
+
* event history on every pre-step — including JSON-parsing every historical
|
|
6
|
+
* tool call's arguments — and hand-rolled its own latch map. The latch-reset
|
|
7
|
+
* infinite loop came from exactly that arrangement: replaying history and
|
|
8
|
+
* mutating latch state in the same function.
|
|
9
|
+
*
|
|
10
|
+
* Now: {@link buildReminderContext} derives a small context once (step
|
|
11
|
+
* positions from the event log — no argument parsing — and the live tree
|
|
12
|
+
* from the SessionForestStore, which already owns it), and rules are pure
|
|
13
|
+
* functions of that context. {@link ReminderLatch} is the single latch
|
|
14
|
+
* abstraction: a monotonic per-session version with a minimum gap and a
|
|
15
|
+
* fire cap.
|
|
16
|
+
*
|
|
17
|
+
* @module @elinpf/dsh-ops-tool-trace/reminders
|
|
18
|
+
*/
|
|
19
|
+
import { activeTree } from './node-status.js';
|
|
20
|
+
import { TRIGGER_NODE_QUESTION } from './doctrine.js';
|
|
21
|
+
import { depthOf } from './tree-layout.js';
|
|
22
|
+
/**
|
|
23
|
+
* Derive the reminder context for one pre-step. Returns null when there is no
|
|
24
|
+
* session event stream to judge from.
|
|
25
|
+
*/
|
|
26
|
+
export function buildReminderContext(agent, store) {
|
|
27
|
+
const session = agent?.session;
|
|
28
|
+
const events = session?.events;
|
|
29
|
+
if (!session?.id || !events || events.length === 0)
|
|
30
|
+
return null;
|
|
31
|
+
let currentStep = 0;
|
|
32
|
+
let lastTraceStep = 0;
|
|
33
|
+
for (const ev of events) {
|
|
34
|
+
if (ev.type === 'step/start') {
|
|
35
|
+
currentStep = (ev.data?.turn ?? 0) * 1000 + (ev.data?.step ?? 0);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// Presence is enough — no argument parsing.
|
|
39
|
+
if (ev.type === 'tool/call' && ev.data?.name === 'trace')
|
|
40
|
+
lastTraceStep = currentStep;
|
|
41
|
+
}
|
|
42
|
+
const forest = store.current({ id: session.id }).forest;
|
|
43
|
+
return {
|
|
44
|
+
sessionId: session.id,
|
|
45
|
+
currentStep,
|
|
46
|
+
lastTraceStep,
|
|
47
|
+
forest,
|
|
48
|
+
tree: activeTree(forest),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* One latch abstraction for all reminder rules: fire when `version` has
|
|
53
|
+
* advanced at least the required gap since the last fire, at most
|
|
54
|
+
* `maxFires` times per session. Because the version is an input (computed
|
|
55
|
+
* from the context, never reset by replaying history), re-evaluating the
|
|
56
|
+
* same state is always idempotent.
|
|
57
|
+
*
|
|
58
|
+
* `minGap` may be a function of the number of previous fires, so a rule can
|
|
59
|
+
* back off instead of going permanently silent (the 2026-08-27 live trial: a
|
|
60
|
+
* fixed cap of 5 went quiet after step ~2070, then 36 trace-less steps
|
|
61
|
+
* without a nudge). The idle rule doubles its gap after each fire with a
|
|
62
|
+
* 40-step ceiling, and resets the backoff when the agent answers a reminder
|
|
63
|
+
* (see createIdleRule). Anti-spam is about frequency, not a total budget.
|
|
64
|
+
*/
|
|
65
|
+
export class ReminderLatch {
|
|
66
|
+
minGap;
|
|
67
|
+
maxFires;
|
|
68
|
+
last = new Map();
|
|
69
|
+
constructor(minGap, maxFires) {
|
|
70
|
+
this.minGap = minGap;
|
|
71
|
+
this.maxFires = maxFires;
|
|
72
|
+
}
|
|
73
|
+
/** The version of one session's last fire, for compliance checks. */
|
|
74
|
+
firedAt(sessionId) {
|
|
75
|
+
return this.last.get(sessionId)?.version;
|
|
76
|
+
}
|
|
77
|
+
/** Forget one session's fire history. */
|
|
78
|
+
reset(sessionId) {
|
|
79
|
+
this.last.delete(sessionId);
|
|
80
|
+
}
|
|
81
|
+
shouldFire(sessionId, version) {
|
|
82
|
+
const prev = this.last.get(sessionId);
|
|
83
|
+
if (prev) {
|
|
84
|
+
const gap = typeof this.minGap === 'function' ? this.minGap(prev.fires) : this.minGap;
|
|
85
|
+
if (version - prev.version < gap || prev.fires >= this.maxFires)
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
this.last.set(sessionId, { version, fires: (prev?.fires ?? 0) + 1 });
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The idle rule: nudge when an active investigation hasn't updated trace in
|
|
94
|
+
* 5+ steps. Silent when there is no tree or the tree is resolved.
|
|
95
|
+
*/
|
|
96
|
+
export function createIdleRule(latch, gapSteps = 5) {
|
|
97
|
+
return (ctx) => {
|
|
98
|
+
const tree = ctx.tree;
|
|
99
|
+
if (!tree || tree.resolved)
|
|
100
|
+
return null;
|
|
101
|
+
if (ctx.lastTraceStep === 0)
|
|
102
|
+
return null;
|
|
103
|
+
// Compliance reset: a trace update at/after the last fire means the agent
|
|
104
|
+
// answered the reminder — the next quiet stretch starts over at the
|
|
105
|
+
// shortest gap instead of inheriting the grown one. Good behavior must
|
|
106
|
+
// not be punished with longer gaps. Pure in ctx: replaying the same
|
|
107
|
+
// state re-derives the same reset decision.
|
|
108
|
+
const firedAt = latch.firedAt(ctx.sessionId);
|
|
109
|
+
if (firedAt !== undefined && ctx.lastTraceStep >= firedAt)
|
|
110
|
+
latch.reset(ctx.sessionId);
|
|
111
|
+
const gap = ctx.currentStep - ctx.lastTraceStep;
|
|
112
|
+
if (gap < gapSteps)
|
|
113
|
+
return null;
|
|
114
|
+
if (!latch.shouldFire(ctx.sessionId, ctx.currentStep))
|
|
115
|
+
return null;
|
|
116
|
+
return `[REMINDER] 过去 ${gap} 步排查没有更新 trace。后续调查动作执行前先 add_step(写下要查什么), 拿到结果立即 complete 带 summary。迷失方向先 view。`;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The nesting rule: fires when steps pile up flat under milestones — no step
|
|
121
|
+
* nested under another step — while completed nodes already carry findings.
|
|
122
|
+
*
|
|
123
|
+
* Kinds are not stored on nodes, so shape is judged by depth: milestone at
|
|
124
|
+
* depth 1, step at depth 2; a step nested under a step lives at depth ≥ 3.
|
|
125
|
+
* "Flat" = at least 3 nodes at depth 2 and nothing deeper.
|
|
126
|
+
*/
|
|
127
|
+
export function createNestingRule(latch, flatSteps = 3) {
|
|
128
|
+
return (ctx) => {
|
|
129
|
+
const tree = ctx.tree;
|
|
130
|
+
if (!tree || tree.resolved)
|
|
131
|
+
return null;
|
|
132
|
+
const nonRoot = tree.nodes.filter((n) => n.parent !== null);
|
|
133
|
+
let flatCount = 0;
|
|
134
|
+
let hasDeep = false;
|
|
135
|
+
for (const n of nonRoot) {
|
|
136
|
+
const d = depthOf(tree.nodes, n.id);
|
|
137
|
+
if (d === 2)
|
|
138
|
+
flatCount++;
|
|
139
|
+
else if (d >= 3)
|
|
140
|
+
hasDeep = true;
|
|
141
|
+
}
|
|
142
|
+
if (hasDeep || flatCount < flatSteps)
|
|
143
|
+
return null;
|
|
144
|
+
if (!tree.nodes.some((n) => n.summary !== null))
|
|
145
|
+
return null;
|
|
146
|
+
// Version: tree generation (forest length) × flat-step count — grows when
|
|
147
|
+
// a new tree starts or the flat count grows, so history replay never
|
|
148
|
+
// re-arms the rule.
|
|
149
|
+
const version = ctx.forest.trees.length * 1000 + flatCount;
|
|
150
|
+
if (!latch.shouldFire(ctx.sessionId, version))
|
|
151
|
+
return null;
|
|
152
|
+
return `[REMINDER] 你的 step 全部直接挂在 milestone 下, 但已有 step 带着发现完成。后续 add_step 先问"${TRIGGER_NODE_QUESTION}"——如果答案是某个 step 的发现, parent_id 用那个 step 的 id。`;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=reminders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reminders.js","sourceRoot":"","sources":["../src/reminders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-forests.d.ts","sourceRoot":"","sources":["../src/session-forests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAExD,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1E;AAED,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,KAAK,WAAW,GAAG,IAAI,CAAA;AAE/E,gFAAgF;AAChF,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,EAAE,aAAa,KAAK,WAAW,GAAG,IAAI,CAAA;AAEhG,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IANvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoB;gBAGrC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;IAGlD;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;IAsB1E;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IA4B1E,kDAAkD;IAClD,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionForestStore — the single owner of a session's in-process forest.
|
|
3
|
+
*
|
|
4
|
+
* Two state holders exist: this store's map (live, synchronously mutated) and
|
|
5
|
+
* the session projection (durable, rebuilt from the session log). Before this
|
|
6
|
+
* module existed, the reconciliation protocol between them — "map wins during
|
|
7
|
+
* a turn, the projection seeds on first access, the log append precedes
|
|
8
|
+
* execute" — lived in comments inside the tool's execute switch, and every
|
|
9
|
+
* historical state bug came from a caller misapplying that protocol. Now the
|
|
10
|
+
* protocol is code, behind two methods:
|
|
11
|
+
*
|
|
12
|
+
* - {@link current} — read the session's forest, seeding from the projection
|
|
13
|
+
* on first access. Projection failures are reported loudly once per session
|
|
14
|
+
* instead of silently starting an empty forest.
|
|
15
|
+
* - {@link apply} — mutate the forest with one trace call. Fully synchronous:
|
|
16
|
+
* the read → seed → fold → write critical section contains no `await`, so
|
|
17
|
+
* no concurrent call can interleave. The create_tree double-fold guard
|
|
18
|
+
* (phantom tree) lives here, not in the caller.
|
|
19
|
+
*
|
|
20
|
+
* @module @elinpf/dsh-ops-tool-trace/session-forests
|
|
21
|
+
*/
|
|
22
|
+
export class SessionForestStore {
|
|
23
|
+
snapshot;
|
|
24
|
+
fold;
|
|
25
|
+
warn;
|
|
26
|
+
forests = new Map();
|
|
27
|
+
seedFailureReported = new Set();
|
|
28
|
+
constructor(snapshot, fold, warn) {
|
|
29
|
+
this.snapshot = snapshot;
|
|
30
|
+
this.fold = fold;
|
|
31
|
+
this.warn = warn;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The current forest for a session. Seeds from the projection on first
|
|
35
|
+
* access (session replay / process restart); afterwards the in-process map
|
|
36
|
+
* is authoritative so parallel calls in one turn see each other immediately.
|
|
37
|
+
*/
|
|
38
|
+
current(session) {
|
|
39
|
+
const existing = this.forests.get(session.id);
|
|
40
|
+
if (existing)
|
|
41
|
+
return { forest: existing, seeded: false };
|
|
42
|
+
let seeded = null;
|
|
43
|
+
try {
|
|
44
|
+
seeded = this.snapshot(session);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Loud, once per session: silently starting an empty forest would
|
|
48
|
+
// diverge the in-process state from the durable log.
|
|
49
|
+
if (!this.seedFailureReported.has(session.id)) {
|
|
50
|
+
this.seedFailureReported.add(session.id);
|
|
51
|
+
this.warn(`ops-trace: projection seed failed for session ${session.id}: ${error instanceof Error ? error.message : String(error)}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (seeded && seeded.trees.length > 0) {
|
|
55
|
+
this.forests.set(session.id, seeded);
|
|
56
|
+
return { forest: seeded, seeded: true };
|
|
57
|
+
}
|
|
58
|
+
return { forest: { trees: [] }, seeded: false };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Apply one trace call to the session's forest and return the result.
|
|
62
|
+
* Synchronous by design — see the module docstring.
|
|
63
|
+
*/
|
|
64
|
+
apply(session, args, turn) {
|
|
65
|
+
const { forest, seeded } = this.current(session);
|
|
66
|
+
// Phantom-tree guard: the framework appends the tool/call event to the
|
|
67
|
+
// session log — and the projection folds it — BEFORE execute runs. When
|
|
68
|
+
// this very call just seeded the store, the seed already contains this
|
|
69
|
+
// create_tree; folding it again would append a duplicate goal-only tree
|
|
70
|
+
// that later surfaces as the active tree once every real tree resolves.
|
|
71
|
+
if (seeded && args.action === 'create_tree' && args.goal_title) {
|
|
72
|
+
const last = forest.trees[forest.trees.length - 1];
|
|
73
|
+
if (last && !last.resolved && last.nodes.length === 1
|
|
74
|
+
&& last.nodes[0].id === 'goal'
|
|
75
|
+
&& last.nodes[0].title === args.goal_title
|
|
76
|
+
&& last.nodes[0].turns.includes(turn)) {
|
|
77
|
+
return forest;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const event = {
|
|
81
|
+
type: 'tool/call',
|
|
82
|
+
data: { name: 'trace', turn, arguments: JSON.stringify(args) },
|
|
83
|
+
};
|
|
84
|
+
const updated = this.fold(forest, event) ?? forest;
|
|
85
|
+
if (updated.trees.length === 0)
|
|
86
|
+
this.forests.delete(session.id);
|
|
87
|
+
else
|
|
88
|
+
this.forests.set(session.id, updated);
|
|
89
|
+
return updated;
|
|
90
|
+
}
|
|
91
|
+
/** Drop all in-process state (fiber disposal). */
|
|
92
|
+
clear() {
|
|
93
|
+
this.forests.clear();
|
|
94
|
+
this.seedFailureReported.clear();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=session-forests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-forests.js","sourceRoot":"","sources":["../src/session-forests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-layout.d.ts","sourceRoot":"","sources":["../src/tree-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,4EAA4E;AAC5E,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAE/C,CAAA;AAED;+CAC+C;AAC/C,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAQ1D;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE;;;EAY/C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAYjG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAgBzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-layout.js","sourceRoot":"","sources":["../src/tree-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAIlD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAA;IACV,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,MAAM,EAAE,UAAU,CAAA;IAClB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,+DAA+D;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;0DACsD;IACtD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,yEAAyE;IACzE,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,8BAA8B;IAC9B,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,kDAAkD;IAClD,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAMD,+CAA+C;AAC/C,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,UAAU,GACV,eAAe,GACf,OAAO,GACP,UAAU,GACV,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,CAAA;AAEV;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,IAAI,EAAE,SAAS,CAAA;IACf,yCAAyC;IACzC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAClC,UAAU,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,UAAU,CAAA;SAAE,CAAC,CAAA;QACpE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;yEACqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,WAAW,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B;0CACsC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB;;+EAE2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB"}
|
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elinpf/dsh-ops-tool-trace",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Investigation tree tool for ops mode — replaces todo_write with a diverge-converge tree of steps, milestones, dead ends, and a resolved terminal.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -25,11 +25,7 @@
|
|
|
25
25
|
"./package.json": "./package.json"
|
|
26
26
|
},
|
|
27
27
|
"files": [
|
|
28
|
-
"lib
|
|
29
|
-
"lib/invariant.js",
|
|
30
|
-
"lib/types.js",
|
|
31
|
-
"lib/tree-layout.js",
|
|
32
|
-
"lib/**/*.d.ts",
|
|
28
|
+
"lib",
|
|
33
29
|
"cordis.patch.yml"
|
|
34
30
|
],
|
|
35
31
|
"dsh": {
|
|
@@ -45,7 +41,7 @@
|
|
|
45
41
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
46
42
|
"@deepseek-ai/dsh-invariants": "^0.0.1-rc.1",
|
|
47
43
|
"@deepseek-ai/dsh-llm": "^0.0.1-rc.1",
|
|
48
|
-
"@elinpf/dsh-ops-prompts": "^0.1.
|
|
44
|
+
"@elinpf/dsh-ops-prompts": "^0.1.2",
|
|
49
45
|
"@deepseek-ai/dsh-session": "^0.0.1-rc.1",
|
|
50
46
|
"@deepseek-ai/dsh-session-projection": "^0.0.1-rc.1",
|
|
51
47
|
"@deepseek-ai/dsh-system-prompt": "^0.0.1-rc.1",
|
|
@@ -64,7 +60,7 @@
|
|
|
64
60
|
"@deepseek-ai/dsh-tools": "0.0.1-rc.1",
|
|
65
61
|
"typescript": "^5.4.0",
|
|
66
62
|
"vitest": "^4.1.11",
|
|
67
|
-
"@elinpf/dsh-ops-prompts": "0.1.
|
|
63
|
+
"@elinpf/dsh-ops-prompts": "0.1.2"
|
|
68
64
|
},
|
|
69
65
|
"license": "MIT",
|
|
70
66
|
"publishConfig": {
|