dominds 1.25.17 → 1.25.18
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/dist/docs/context-health.md +39 -1
- package/dist/docs/context-health.zh.md +30 -1
- package/dist/llm/kernel-driver/drive.js +167 -7
- package/package.json +1 -1
- package/webapp/dist/assets/{_basePickBy-bB-pfQPi.js → _basePickBy-DUivPKf7.js} +3 -3
- package/webapp/dist/assets/{_basePickBy-bB-pfQPi.js.map → _basePickBy-DUivPKf7.js.map} +1 -1
- package/webapp/dist/assets/{_baseUniq-CGrWBZre.js → _baseUniq-hcs024vD.js} +2 -2
- package/webapp/dist/assets/{_baseUniq-CGrWBZre.js.map → _baseUniq-hcs024vD.js.map} +1 -1
- package/webapp/dist/assets/{arc-I9vbIaKk.js → arc-Dr6-FXp5.js} +2 -2
- package/webapp/dist/assets/{arc-I9vbIaKk.js.map → arc-Dr6-FXp5.js.map} +1 -1
- package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-CrwjTxLz.js → architectureDiagram-2XIMDMQ5-DXqcDq4R.js} +7 -7
- package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-CrwjTxLz.js.map → architectureDiagram-2XIMDMQ5-DXqcDq4R.js.map} +1 -1
- package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-DTm0qfvP.js → blockDiagram-WCTKOSBZ-IIP6LGXS.js} +7 -7
- package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-DTm0qfvP.js.map → blockDiagram-WCTKOSBZ-IIP6LGXS.js.map} +1 -1
- package/webapp/dist/assets/{c4Diagram-IC4MRINW-DwRQtzZF.js → c4Diagram-IC4MRINW-D_d3F9XD.js} +3 -3
- package/webapp/dist/assets/{c4Diagram-IC4MRINW-DwRQtzZF.js.map → c4Diagram-IC4MRINW-D_d3F9XD.js.map} +1 -1
- package/webapp/dist/assets/{channel-BHLOwBnI.js → channel-CWWjsXtU.js} +2 -2
- package/webapp/dist/assets/{channel-BHLOwBnI.js.map → channel-CWWjsXtU.js.map} +1 -1
- package/webapp/dist/assets/{chunk-4BX2VUAB-C-uXnDVV.js → chunk-4BX2VUAB-BF4yph2W.js} +2 -2
- package/webapp/dist/assets/{chunk-4BX2VUAB-C-uXnDVV.js.map → chunk-4BX2VUAB-BF4yph2W.js.map} +1 -1
- package/webapp/dist/assets/{chunk-55IACEB6-Dq9BI2N6.js → chunk-55IACEB6-Hn3CmDYz.js} +2 -2
- package/webapp/dist/assets/{chunk-55IACEB6-Dq9BI2N6.js.map → chunk-55IACEB6-Hn3CmDYz.js.map} +1 -1
- package/webapp/dist/assets/{chunk-FMBD7UC4-DR9kFZOV.js → chunk-FMBD7UC4-C05pl9Ov.js} +2 -2
- package/webapp/dist/assets/{chunk-FMBD7UC4-DR9kFZOV.js.map → chunk-FMBD7UC4-C05pl9Ov.js.map} +1 -1
- package/webapp/dist/assets/{chunk-JSJVCQXG-xnc6SVE5.js → chunk-JSJVCQXG-BVlq_BAS.js} +2 -2
- package/webapp/dist/assets/{chunk-JSJVCQXG-xnc6SVE5.js.map → chunk-JSJVCQXG-BVlq_BAS.js.map} +1 -1
- package/webapp/dist/assets/{chunk-KX2RTZJC-rUxlh4aS.js → chunk-KX2RTZJC-BQoaRWif.js} +2 -2
- package/webapp/dist/assets/{chunk-KX2RTZJC-rUxlh4aS.js.map → chunk-KX2RTZJC-BQoaRWif.js.map} +1 -1
- package/webapp/dist/assets/{chunk-NQ4KR5QH-BGU4PhTQ.js → chunk-NQ4KR5QH-0okCAXtW.js} +4 -4
- package/webapp/dist/assets/{chunk-NQ4KR5QH-BGU4PhTQ.js.map → chunk-NQ4KR5QH-0okCAXtW.js.map} +1 -1
- package/webapp/dist/assets/{chunk-QZHKN3VN-CAlu4xE7.js → chunk-QZHKN3VN-DEiprgz-.js} +2 -2
- package/webapp/dist/assets/{chunk-QZHKN3VN-CAlu4xE7.js.map → chunk-QZHKN3VN-DEiprgz-.js.map} +1 -1
- package/webapp/dist/assets/{chunk-WL4C6EOR-zZXRkBBY.js → chunk-WL4C6EOR-B-Xkb3lo.js} +6 -6
- package/webapp/dist/assets/{chunk-WL4C6EOR-zZXRkBBY.js.map → chunk-WL4C6EOR-B-Xkb3lo.js.map} +1 -1
- package/webapp/dist/assets/{classDiagram-VBA2DB6C-DI1CfOtL.js → classDiagram-VBA2DB6C-DCCQrdwF.js} +7 -7
- package/webapp/dist/assets/{classDiagram-VBA2DB6C-DI1CfOtL.js.map → classDiagram-VBA2DB6C-DCCQrdwF.js.map} +1 -1
- package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-DI1CfOtL.js → classDiagram-v2-RAHNMMFH-DCCQrdwF.js} +7 -7
- package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-DI1CfOtL.js.map → classDiagram-v2-RAHNMMFH-DCCQrdwF.js.map} +1 -1
- package/webapp/dist/assets/{clone-quTqCNPA.js → clone-Drtik9pk.js} +2 -2
- package/webapp/dist/assets/{clone-quTqCNPA.js.map → clone-Drtik9pk.js.map} +1 -1
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-BY28yO7Y.js → cose-bilkent-S5V4N54A-BBWvHErL.js} +2 -2
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-BY28yO7Y.js.map → cose-bilkent-S5V4N54A-BBWvHErL.js.map} +1 -1
- package/webapp/dist/assets/{dagre-KLK3FWXG-DLyZ54D-.js → dagre-KLK3FWXG-2qk0ikdt.js} +7 -7
- package/webapp/dist/assets/{dagre-KLK3FWXG-DLyZ54D-.js.map → dagre-KLK3FWXG-2qk0ikdt.js.map} +1 -1
- package/webapp/dist/assets/{diagram-E7M64L7V-CD-HWZAJ.js → diagram-E7M64L7V-C1DbHDbf.js} +8 -8
- package/webapp/dist/assets/{diagram-E7M64L7V-CD-HWZAJ.js.map → diagram-E7M64L7V-C1DbHDbf.js.map} +1 -1
- package/webapp/dist/assets/{diagram-IFDJBPK2-BHOQ9HH2.js → diagram-IFDJBPK2-DToz8zk9.js} +7 -7
- package/webapp/dist/assets/{diagram-IFDJBPK2-BHOQ9HH2.js.map → diagram-IFDJBPK2-DToz8zk9.js.map} +1 -1
- package/webapp/dist/assets/{diagram-P4PSJMXO-OEPgBDcD.js → diagram-P4PSJMXO-B9V-tQMe.js} +7 -7
- package/webapp/dist/assets/{diagram-P4PSJMXO-OEPgBDcD.js.map → diagram-P4PSJMXO-B9V-tQMe.js.map} +1 -1
- package/webapp/dist/assets/{erDiagram-INFDFZHY-Dcgo204J.js → erDiagram-INFDFZHY-CV68FwGf.js} +5 -5
- package/webapp/dist/assets/{erDiagram-INFDFZHY-Dcgo204J.js.map → erDiagram-INFDFZHY-CV68FwGf.js.map} +1 -1
- package/webapp/dist/assets/{flowDiagram-PKNHOUZH-CWLo3Lkf.js → flowDiagram-PKNHOUZH-CW06almb.js} +7 -7
- package/webapp/dist/assets/{flowDiagram-PKNHOUZH-CWLo3Lkf.js.map → flowDiagram-PKNHOUZH-CW06almb.js.map} +1 -1
- package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-DWXL4ZD6.js → ganttDiagram-A5KZAMGK-C96NncCU.js} +3 -3
- package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-DWXL4ZD6.js.map → ganttDiagram-A5KZAMGK-C96NncCU.js.map} +1 -1
- package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-7iLQbTrH.js → gitGraphDiagram-K3NZZRJ6-CAuIexWi.js} +8 -8
- package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-7iLQbTrH.js.map → gitGraphDiagram-K3NZZRJ6-CAuIexWi.js.map} +1 -1
- package/webapp/dist/assets/{graph-Bq1MLNWN.js → graph-CvhwAY6w.js} +3 -3
- package/webapp/dist/assets/{graph-Bq1MLNWN.js.map → graph-CvhwAY6w.js.map} +1 -1
- package/webapp/dist/assets/{index-r4An5YoX.js → index-BOO_zFrI.js} +305 -39
- package/webapp/dist/assets/{index-r4An5YoX.js.map → index-BOO_zFrI.js.map} +1 -1
- package/webapp/dist/assets/{infoDiagram-LFFYTUFH-CoF5OE3_.js → infoDiagram-LFFYTUFH-C16Sckpz.js} +6 -6
- package/webapp/dist/assets/{infoDiagram-LFFYTUFH-CoF5OE3_.js.map → infoDiagram-LFFYTUFH-C16Sckpz.js.map} +1 -1
- package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-iKggfQhA.js → ishikawaDiagram-PHBUUO56-oNG6I0p3.js} +2 -2
- package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-iKggfQhA.js.map → ishikawaDiagram-PHBUUO56-oNG6I0p3.js.map} +1 -1
- package/webapp/dist/assets/{journeyDiagram-4ABVD52K-NYDQ7_xv.js → journeyDiagram-4ABVD52K-437hhFHC.js} +5 -5
- package/webapp/dist/assets/{journeyDiagram-4ABVD52K-NYDQ7_xv.js.map → journeyDiagram-4ABVD52K-437hhFHC.js.map} +1 -1
- package/webapp/dist/assets/{kanban-definition-K7BYSVSG-YWCnJwk0.js → kanban-definition-K7BYSVSG-DsCV_Tpx.js} +3 -3
- package/webapp/dist/assets/{kanban-definition-K7BYSVSG-YWCnJwk0.js.map → kanban-definition-K7BYSVSG-DsCV_Tpx.js.map} +1 -1
- package/webapp/dist/assets/{layout-CE6gccWy.js → layout-BttZf7fQ.js} +5 -5
- package/webapp/dist/assets/{layout-CE6gccWy.js.map → layout-BttZf7fQ.js.map} +1 -1
- package/webapp/dist/assets/{linear-12arIJK-.js → linear-B75vD4Ho.js} +2 -2
- package/webapp/dist/assets/{linear-12arIJK-.js.map → linear-B75vD4Ho.js.map} +1 -1
- package/webapp/dist/assets/{mindmap-definition-YRQLILUH-D_5iNhfP.js → mindmap-definition-YRQLILUH-DA1-XaNi.js} +4 -4
- package/webapp/dist/assets/{mindmap-definition-YRQLILUH-D_5iNhfP.js.map → mindmap-definition-YRQLILUH-DA1-XaNi.js.map} +1 -1
- package/webapp/dist/assets/{pieDiagram-SKSYHLDU-DCbLQaXM.js → pieDiagram-SKSYHLDU-Bx6hUJ4Q.js} +8 -8
- package/webapp/dist/assets/{pieDiagram-SKSYHLDU-DCbLQaXM.js.map → pieDiagram-SKSYHLDU-Bx6hUJ4Q.js.map} +1 -1
- package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-CVRDOyty.js → quadrantDiagram-337W2JSQ-zyduIle0.js} +3 -3
- package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-CVRDOyty.js.map → quadrantDiagram-337W2JSQ-zyduIle0.js.map} +1 -1
- package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-iBpmayOS.js → requirementDiagram-Z7DCOOCP-BgfjyEJM.js} +4 -4
- package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-iBpmayOS.js.map → requirementDiagram-Z7DCOOCP-BgfjyEJM.js.map} +1 -1
- package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-DqzWCtib.js → sankeyDiagram-WA2Y5GQK-lmOWaczS.js} +2 -2
- package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-DqzWCtib.js.map → sankeyDiagram-WA2Y5GQK-lmOWaczS.js.map} +1 -1
- package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-DHzt-u2j.js → sequenceDiagram-2WXFIKYE-DqJz-iYI.js} +4 -4
- package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-DHzt-u2j.js.map → sequenceDiagram-2WXFIKYE-DqJz-iYI.js.map} +1 -1
- package/webapp/dist/assets/{stateDiagram-RAJIS63D-D14FagfU.js → stateDiagram-RAJIS63D-CngWYuX-.js} +9 -9
- package/webapp/dist/assets/{stateDiagram-RAJIS63D-D14FagfU.js.map → stateDiagram-RAJIS63D-CngWYuX-.js.map} +1 -1
- package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-CZRolF-A.js → stateDiagram-v2-FVOUBMTO-BxyHvrvU.js} +5 -5
- package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-CZRolF-A.js.map → stateDiagram-v2-FVOUBMTO-BxyHvrvU.js.map} +1 -1
- package/webapp/dist/assets/{timeline-definition-YZTLITO2-L4O4kc8p.js → timeline-definition-YZTLITO2-C7t6WVS3.js} +3 -3
- package/webapp/dist/assets/{timeline-definition-YZTLITO2-L4O4kc8p.js.map → timeline-definition-YZTLITO2-C7t6WVS3.js.map} +1 -1
- package/webapp/dist/assets/{treemap-KZPCXAKY-CvHKWhtl.js → treemap-KZPCXAKY-BDZ3n5TC.js} +5 -5
- package/webapp/dist/assets/{treemap-KZPCXAKY-CvHKWhtl.js.map → treemap-KZPCXAKY-BDZ3n5TC.js.map} +1 -1
- package/webapp/dist/assets/{vennDiagram-LZ73GAT5-8sPBS5jq.js → vennDiagram-LZ73GAT5-CEw7GPed.js} +2 -2
- package/webapp/dist/assets/{vennDiagram-LZ73GAT5-8sPBS5jq.js.map → vennDiagram-LZ73GAT5-CEw7GPed.js.map} +1 -1
- package/webapp/dist/assets/{xychartDiagram-JWTSCODW-CqLmOgCw.js → xychartDiagram-JWTSCODW-DmS8BiaA.js} +3 -3
- package/webapp/dist/assets/{xychartDiagram-JWTSCODW-CqLmOgCw.js.map → xychartDiagram-JWTSCODW-DmS8BiaA.js.map} +1 -1
- package/webapp/dist/index.html +1 -1
|
@@ -19,6 +19,10 @@ Dominds already has:
|
|
|
19
19
|
|
|
20
20
|
- Collect **token usage stats** from LLM provider wrappers after each generation.
|
|
21
21
|
- Compute a simple **context health** signal from provider stats + model metadata.
|
|
22
|
+
- When the current computed health is `caution` or `critical`, keep large function results from
|
|
23
|
+
adding more raw material to the next prompt. Large return content is replaced with a
|
|
24
|
+
scope-specific, low-cognitive-load instruction that tells the agent the output is too large to see
|
|
25
|
+
before `clear_mind`.
|
|
22
26
|
- When the dialog context is “too large”, enforce a **v3 remediation** workflow that is short,
|
|
23
27
|
executable, and regression-testable:
|
|
24
28
|
- In **caution**, record an auto-inserted **role=user prompt** as a normal, persisted user message
|
|
@@ -152,6 +156,34 @@ Rules:
|
|
|
152
156
|
- Do not duplicate Taskdoc content except for a short bridge when strictly needed.
|
|
153
157
|
- Do not paste long raw logs/tool outputs into the continuation package.
|
|
154
158
|
|
|
159
|
+
### Large Function Results During Remediation
|
|
160
|
+
|
|
161
|
+
When the current generation's computed context health is `caution` or `critical`, Dominds applies a
|
|
162
|
+
runtime visibility limit to every ordinary function result before it is persisted back into dialog
|
|
163
|
+
history. If current usage is unavailable, the driver falls back to the previous known context health
|
|
164
|
+
for this visibility decision. This limit only applies to returned content. Function arguments remain
|
|
165
|
+
unrestricted, because large arguments are often the necessary path for preserving current-dialog
|
|
166
|
+
details into Taskdoc sections or reminders.
|
|
167
|
+
|
|
168
|
+
If a function result is larger than the runtime visibility budget, measured by the total returned
|
|
169
|
+
bytes visible to the model, Dominds does not insert the raw return content into the model context.
|
|
170
|
+
Text is counted as UTF-8 bytes; image items use their recorded byte length. Instead, Dominds inserts
|
|
171
|
+
a short scope-specific message:
|
|
172
|
+
|
|
173
|
+
- Main Dialog: tell the agent that this function return is too large to see before `clear_mind`,
|
|
174
|
+
instruct it not to retry the same kind of large output, then tell it to write needed next-course
|
|
175
|
+
information into Taskdoc sections, preserve any remaining easy-to-lose details in reminders, and
|
|
176
|
+
call `clear_mind({})`.
|
|
177
|
+
- Side Dialog: tell the agent that this function return is too large to see before `clear_mind`,
|
|
178
|
+
instruct it not to retry the same kind of large output, then tell it to organize the conclusion,
|
|
179
|
+
evidence pointers, and risks for the Main Dialog, preserve any easy-to-lose details in reminders,
|
|
180
|
+
and finish the Side Dialog reply as soon as possible.
|
|
181
|
+
|
|
182
|
+
The replacement text may include only a short human-scale detail such as the approximate original
|
|
183
|
+
byte count. It must not present the tool invocation as an execution failure: the function may have
|
|
184
|
+
executed and produced side effects; only its large return content is unavailable before
|
|
185
|
+
`clear_mind`.
|
|
186
|
+
|
|
155
187
|
### Caution (yellow)
|
|
156
188
|
|
|
157
189
|
When `level === 'caution'`, the driver auto-inserts a **role=user** guidance prompt into the _next_
|
|
@@ -240,7 +272,9 @@ Additional constraints:
|
|
|
240
272
|
2. Thread usage stats into the dialog state (persist alongside dialog turns).
|
|
241
273
|
3. Implement the context health monitor computation and persist it per generation.
|
|
242
274
|
4. Implement v3 remediation (persisted role=user prompt insertion + caution reminder-curation cadence + critical countdown + auto clear_mind).
|
|
243
|
-
5.
|
|
275
|
+
5. Suppress oversized function-return content during `caution` / `critical` remediation while leaving
|
|
276
|
+
function arguments unrestricted.
|
|
277
|
+
6. Add minimal regression guards for the v3 behavior (types + gating).
|
|
244
278
|
|
|
245
279
|
## Acceptance Criteria
|
|
246
280
|
|
|
@@ -265,4 +299,8 @@ Additional constraints:
|
|
|
265
299
|
then `clear_mind`; Side Dialog prompts instruct detailed reminder curation only, then `clear_mind`.
|
|
266
300
|
When the countdown reaches 0, the driver auto-executes `clear_mind` and starts a new course (no Q4H,
|
|
267
301
|
no suspension).
|
|
302
|
+
- During `caution` / `critical`, any ordinary function result whose returned content exceeds the
|
|
303
|
+
runtime visibility byte budget is replaced with the scope-specific “too large to see before
|
|
304
|
+
`clear_mind`” instruction instead of raw output. This is not reported as tool execution failure,
|
|
305
|
+
and function arguments are not limited.
|
|
268
306
|
- UI shows context health with green/yellow/red (and “unknown” handling when usage is unavailable).
|
|
@@ -16,6 +16,9 @@ Dominds 已具备以下功能:
|
|
|
16
16
|
|
|
17
17
|
- 从 LLM 提供商包装器收集每次生成后的 **token 使用统计**。
|
|
18
18
|
- 从提供商统计 + 模型元数据计算简单的**上下文健康**信号。
|
|
19
|
+
- 当本轮计算出的健康状态为 `caution` / `critical` 时,避免大函数返回继续把原始材料塞进下一轮
|
|
20
|
+
prompt。过大的返回内容会被替换成按主线/支线定制的低心智负担指令,告诉智能体:清理头脑之
|
|
21
|
+
前,这类大输出当前不可见。
|
|
19
22
|
- 当对话上下文"过大"时,执行简短的、可执行的、可回归测试的 **v3 恢复**工作流:
|
|
20
23
|
- 在 **caution(警告)** 级别,记录一条自动插入的 **role=user prompt** 作为正常的、持久化的用户消息(UI 可见并渲染为正常的用户指令)。
|
|
21
24
|
- 在 **critical(严重)** 级别,通过**倒计时恢复**(最多 5 轮)强制执行稳定性:
|
|
@@ -119,6 +122,28 @@ Dominds 计算比率:
|
|
|
119
122
|
- 除非确有必要,不要重复差遣牒已覆盖的内容。
|
|
120
123
|
- 不要把长原始日志/大段 tool output 直接塞进接续包。
|
|
121
124
|
|
|
125
|
+
### 处置态下的大函数返回
|
|
126
|
+
|
|
127
|
+
当本轮生成计算出的上下文健康为 `caution` 或 `critical` 时,Dominds 在普通函数结果写回对话
|
|
128
|
+
历史前,对返回内容应用运行时可见性上限。如果本轮 usage 不可用,则回退使用上一轮已知上下文健
|
|
129
|
+
康来做这个可见性判断。这个限制只作用于函数返回内容;函数输入不受限制,因为较大的 `do_mind`
|
|
130
|
+
/ `change_mind` / `add_reminder` / `update_reminder` 参数经常正是把当前对话细节保存进差遣牒
|
|
131
|
+
或提醒项的必要路径。
|
|
132
|
+
|
|
133
|
+
如果函数返回内容超过运行时可见性预算(按模型可见的返回总字节数计算),Dominds 不把原始返回
|
|
134
|
+
内容插入模型上下文,而是插入一段按对话范围定制的短消息。文本按 UTF-8 字节计算;图片项使用已
|
|
135
|
+
记录的 `byteLength`。
|
|
136
|
+
|
|
137
|
+
- 主线对话:告诉智能体“这次函数返回内容太大,清理头脑之前当前不可见”;要求不要重试获取这类
|
|
138
|
+
大段输出;然后要求把下一程还需要知道的信息写入差遣牒合适章节,把差遣牒没有覆盖、但恢复工
|
|
139
|
+
作会丢的信息写入提醒项,最后调用 `clear_mind({})`。
|
|
140
|
+
- 支线对话:告诉智能体“这次函数返回内容太大,清理头脑之前当前不可见”;要求不要重试获取这类
|
|
141
|
+
大段输出;然后要求把需要回传给主线对话的结论、证据定位和风险整理清楚,必要时把恢复工作会
|
|
142
|
+
丢的信息写入提醒项,并尽快完成当前支线回复。
|
|
143
|
+
|
|
144
|
+
替换文案可以只保留简短的人类可读细节,例如“本次返回约 N 字节”。不要把这件事表述成工具执行
|
|
145
|
+
失败:函数可能已经执行并产生副作用;只是清理头脑之前,其大段返回内容当前不可见。
|
|
146
|
+
|
|
122
147
|
### 警告(黄色)
|
|
123
148
|
|
|
124
149
|
当 `level === 'caution'` 时,驱动程序在**下一个** LLM 生成轮次自动插入一条 **role=user** 指导提示,并**将其持久化为普通用户消息**,以便 UI 将其渲染为正常的用户指令。
|
|
@@ -191,7 +216,8 @@ Dominds 计算比率:
|
|
|
191
216
|
2. 将使用统计传入对话状态(与每程对话一起持久化)。
|
|
192
217
|
3. 实现上下文健康监控计算并每次生成持久化。
|
|
193
218
|
4. 实现 v3 恢复(持久化的 role=user 提示插入 + 警告提醒整理节奏 + 严重倒计时 + 自动 clear_mind)。
|
|
194
|
-
5.
|
|
219
|
+
5. 在 `caution` / `critical` 处置态下隐藏超大函数返回内容,同时保持函数输入不受限制。
|
|
220
|
+
6. 为 v3 行为添加最小回归防护(类型 + 门控)。
|
|
195
221
|
|
|
196
222
|
## 验收标准
|
|
197
223
|
|
|
@@ -202,4 +228,7 @@ Dominds 计算比率:
|
|
|
202
228
|
- v3 恢复:
|
|
203
229
|
- `caution`:驱动程序插入持久化的 role=user prompt(UI 可见的用户指令)。进入 `caution` 时插入一次;保持在 `caution` 状态时按节奏重新插入(默认:每 10 次生成;可按模型配置)。主线提示要求先把未落文档、且下一程需要知会的讨论细节补进差遣牒,再至少调用 `update_reminder` / `add_reminder` 之一维护接续包草稿;支线提示要求不要维护差遣牒/更新提案,直接维护足够详尽的接续包提醒项;然后在就绪时执行 `clear_mind`。
|
|
204
230
|
- `critical`:驱动程序使用**记录的角色为 user 的 prompt** 运行倒计时恢复(最多 5 轮)。每次提示包含倒计时;主线提示指示先补差遣牒,再整理提醒项并 `clear_mind`;支线提示指示只维护详尽提醒项并 `clear_mind`。当倒计时归零时,驱动程序自动执行 `clear_mind` 并开始新一程(无 Q4H,无暂停)。
|
|
231
|
+
- 在 `caution` / `critical` 中,任何普通函数结果的返回内容超过运行时可见性字节预算时,都用按
|
|
232
|
+
范围定制的“清理头脑之前当前不可见”指令替换原始输出;这不表述为工具执行失败,也不限制函数
|
|
233
|
+
输入。
|
|
205
234
|
- UI 显示上下文健康状态:绿色/黄色/红色(以及使用情况不可用时的"未知"处理)。
|
|
@@ -714,6 +714,146 @@ const TELLASK_SPECIAL_VIRTUAL_TOOLS = [
|
|
|
714
714
|
},
|
|
715
715
|
},
|
|
716
716
|
];
|
|
717
|
+
const CONTEXT_HEALTH_TOOL_RESULT_VISIBLE_BYTE_LIMIT = 2000;
|
|
718
|
+
const CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_ZH = '这次函数返回内容太大,清理头脑之前当前不可见。';
|
|
719
|
+
const CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_EN = 'This function returned too much content, so it is not visible before clear_mind.';
|
|
720
|
+
function getContextHealthRemediationLevel(snapshot) {
|
|
721
|
+
if (snapshot?.kind !== 'available') {
|
|
722
|
+
return undefined;
|
|
723
|
+
}
|
|
724
|
+
return snapshot.level === 'caution' || snapshot.level === 'critical' ? snapshot.level : undefined;
|
|
725
|
+
}
|
|
726
|
+
function pickContextHealthForLargeToolResultVisibility(args) {
|
|
727
|
+
if (args.current?.kind === 'available') {
|
|
728
|
+
return args.current;
|
|
729
|
+
}
|
|
730
|
+
return args.previous;
|
|
731
|
+
}
|
|
732
|
+
function formatContextHealthLargeToolReturnUnavailable(args) {
|
|
733
|
+
const approxBytes = new Intl.NumberFormat(args.language === 'zh' ? 'zh-CN' : 'en-US').format(args.originalBytes);
|
|
734
|
+
if (args.language === 'zh') {
|
|
735
|
+
if (args.dlg instanceof dialog_1.SideDialog) {
|
|
736
|
+
return [
|
|
737
|
+
CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_ZH,
|
|
738
|
+
'',
|
|
739
|
+
'不要重试获取这类大段输出。现在先做两件事:',
|
|
740
|
+
'1. 把需要回传给主线对话的结论、证据定位和风险整理清楚。',
|
|
741
|
+
'2. 若还有恢复工作会丢的信息,写入提醒项。',
|
|
742
|
+
'',
|
|
743
|
+
'然后尽快完成当前支线回复;如果你有 clear_mind({}),再调用它开启新一程。',
|
|
744
|
+
'',
|
|
745
|
+
`详情:本次返回约 ${approxBytes} 字节。`,
|
|
746
|
+
].join('\n');
|
|
747
|
+
}
|
|
748
|
+
return [
|
|
749
|
+
CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_ZH,
|
|
750
|
+
'',
|
|
751
|
+
'不要重试获取这类大段输出。现在先做两件事:',
|
|
752
|
+
'1. 把下一程还需要知道的信息写入差遣牒合适章节。',
|
|
753
|
+
'2. 把差遣牒没有覆盖、但恢复工作会丢的信息写入提醒项。',
|
|
754
|
+
'',
|
|
755
|
+
'然后调用 clear_mind({}) 开启新一程。',
|
|
756
|
+
'',
|
|
757
|
+
`详情:本次返回约 ${approxBytes} 字节。`,
|
|
758
|
+
].join('\n');
|
|
759
|
+
}
|
|
760
|
+
if (args.dlg instanceof dialog_1.SideDialog) {
|
|
761
|
+
return [
|
|
762
|
+
CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_EN,
|
|
763
|
+
'',
|
|
764
|
+
'Do not retry fetching this kind of large output. Do two things now:',
|
|
765
|
+
'1. Organize the conclusion, evidence pointers, and risks that need to go back to the Main Dialog.',
|
|
766
|
+
'2. If any resume-critical details would otherwise be lost, write them into reminders.',
|
|
767
|
+
'',
|
|
768
|
+
'Then finish the current Side Dialog reply as soon as possible; if you have clear_mind({}), call it to start a new course.',
|
|
769
|
+
'',
|
|
770
|
+
`Detail: this return was about ${approxBytes} bytes.`,
|
|
771
|
+
].join('\n');
|
|
772
|
+
}
|
|
773
|
+
return [
|
|
774
|
+
CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_EN,
|
|
775
|
+
'',
|
|
776
|
+
'Do not retry fetching this kind of large output. Do two things now:',
|
|
777
|
+
'1. Write the information the next course still needs into the appropriate Taskdoc sections.',
|
|
778
|
+
'2. Write any resume-critical details not covered by Taskdoc into reminders.',
|
|
779
|
+
'',
|
|
780
|
+
'Then call clear_mind({}) to start a new course.',
|
|
781
|
+
'',
|
|
782
|
+
`Detail: this return was about ${approxBytes} bytes.`,
|
|
783
|
+
].join('\n');
|
|
784
|
+
}
|
|
785
|
+
function countToolResultVisibleBytes(output) {
|
|
786
|
+
const items = output.contentItems;
|
|
787
|
+
if (!Array.isArray(items) || items.length === 0) {
|
|
788
|
+
return Buffer.byteLength(output.content, 'utf8');
|
|
789
|
+
}
|
|
790
|
+
let bytes = Buffer.byteLength(output.content, 'utf8');
|
|
791
|
+
for (const item of items) {
|
|
792
|
+
switch (item.type) {
|
|
793
|
+
case 'input_text':
|
|
794
|
+
bytes += Buffer.byteLength(item.text, 'utf8');
|
|
795
|
+
break;
|
|
796
|
+
case 'input_image':
|
|
797
|
+
bytes += item.byteLength;
|
|
798
|
+
break;
|
|
799
|
+
default: {
|
|
800
|
+
throw new Error(`Unsupported function result content item: ${String(item.type)}`);
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
return bytes;
|
|
805
|
+
}
|
|
806
|
+
function applyContextHealthToolResultVisibilityLimit(args) {
|
|
807
|
+
if (getContextHealthRemediationLevel(args.contextHealth) === undefined) {
|
|
808
|
+
return { output: args.output, largeReturnUnavailable: false };
|
|
809
|
+
}
|
|
810
|
+
const visibleBytes = countToolResultVisibleBytes(args.output);
|
|
811
|
+
if (visibleBytes <= CONTEXT_HEALTH_TOOL_RESULT_VISIBLE_BYTE_LIMIT) {
|
|
812
|
+
return { output: args.output, largeReturnUnavailable: false };
|
|
813
|
+
}
|
|
814
|
+
return {
|
|
815
|
+
output: {
|
|
816
|
+
content: formatContextHealthLargeToolReturnUnavailable({
|
|
817
|
+
dlg: args.dlg,
|
|
818
|
+
originalBytes: visibleBytes,
|
|
819
|
+
language: args.language,
|
|
820
|
+
}),
|
|
821
|
+
outcome: args.output.outcome,
|
|
822
|
+
},
|
|
823
|
+
largeReturnUnavailable: true,
|
|
824
|
+
};
|
|
825
|
+
}
|
|
826
|
+
function isContextHealthLargeToolReturnUnavailableResult(content) {
|
|
827
|
+
return (content.includes(CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_ZH) ||
|
|
828
|
+
content.includes(CONTEXT_HEALTH_LARGE_TOOL_RETURN_UNAVAILABLE_EN));
|
|
829
|
+
}
|
|
830
|
+
function latestInputLikeMessageIsContextHealthLargeToolReturnUnavailableResult(messages) {
|
|
831
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
832
|
+
const msg = messages[index];
|
|
833
|
+
if (msg === undefined) {
|
|
834
|
+
continue;
|
|
835
|
+
}
|
|
836
|
+
switch (msg.type) {
|
|
837
|
+
case 'func_result_msg':
|
|
838
|
+
return isContextHealthLargeToolReturnUnavailableResult(msg.content);
|
|
839
|
+
case 'prompting_msg':
|
|
840
|
+
case 'tellask_result_msg':
|
|
841
|
+
case 'tellask_carryover_msg':
|
|
842
|
+
return false;
|
|
843
|
+
case 'environment_msg':
|
|
844
|
+
case 'transient_guide_msg':
|
|
845
|
+
case 'saying_msg':
|
|
846
|
+
case 'thinking_msg':
|
|
847
|
+
case 'func_call_msg':
|
|
848
|
+
break;
|
|
849
|
+
default: {
|
|
850
|
+
const _exhaustive = msg;
|
|
851
|
+
throw new Error(`Unsupported chat message while checking latest input-like message: ${_exhaustive}`);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
return false;
|
|
856
|
+
}
|
|
717
857
|
function mergeTellaskVirtualTools(baseTools, options) {
|
|
718
858
|
const merged = [...baseTools];
|
|
719
859
|
const seen = new Set(merged.map((tool) => tool.name));
|
|
@@ -1806,6 +1946,7 @@ async function executeFunctionCalls(args) {
|
|
|
1806
1946
|
const functionPromises = preparedCalls.map(async ({ func, originalFunc, callGenseq, argsStr, tool, preparedInvocationArgs, }) => {
|
|
1807
1947
|
let result;
|
|
1808
1948
|
let outcome = 'success';
|
|
1949
|
+
let forceImmediateFollowup = false;
|
|
1809
1950
|
let rethrowError;
|
|
1810
1951
|
if (!tool) {
|
|
1811
1952
|
outcome = 'failure';
|
|
@@ -1846,16 +1987,24 @@ async function executeFunctionCalls(args) {
|
|
|
1846
1987
|
throwIfAborted(args.abortSignal, args.dlg);
|
|
1847
1988
|
const output = await tool.call(args.dlg, args.agent, preparedInvocationArgs.args);
|
|
1848
1989
|
throwIfAborted(args.abortSignal, args.dlg);
|
|
1849
|
-
|
|
1990
|
+
const visibleResult = applyContextHealthToolResultVisibilityLimit({
|
|
1991
|
+
dlg: args.dlg,
|
|
1992
|
+
output,
|
|
1993
|
+
contextHealth: args.contextHealthForToolResultVisibility,
|
|
1994
|
+
language: (0, work_language_1.getWorkLanguage)(),
|
|
1995
|
+
});
|
|
1996
|
+
const visibleOutput = visibleResult.output;
|
|
1997
|
+
forceImmediateFollowup = visibleResult.largeReturnUnavailable;
|
|
1998
|
+
outcome = visibleOutput.outcome;
|
|
1850
1999
|
result = {
|
|
1851
2000
|
type: 'func_result_msg',
|
|
1852
2001
|
id: func.id,
|
|
1853
2002
|
rawId: func.rawId,
|
|
1854
2003
|
effectiveId: func.effectiveId,
|
|
1855
2004
|
name: func.name,
|
|
1856
|
-
content:
|
|
1857
|
-
contentItems: Array.isArray(
|
|
1858
|
-
? [...
|
|
2005
|
+
content: visibleOutput.content,
|
|
2006
|
+
contentItems: Array.isArray(visibleOutput.contentItems)
|
|
2007
|
+
? [...visibleOutput.contentItems]
|
|
1859
2008
|
: undefined,
|
|
1860
2009
|
role: 'tool',
|
|
1861
2010
|
genseq: callGenseq,
|
|
@@ -1886,7 +2035,7 @@ async function executeFunctionCalls(args) {
|
|
|
1886
2035
|
if (rethrowError !== undefined) {
|
|
1887
2036
|
throw rethrowError;
|
|
1888
2037
|
}
|
|
1889
|
-
return { func, originalFunc, outcome, result };
|
|
2038
|
+
return { func, originalFunc, outcome, forceImmediateFollowup, result };
|
|
1890
2039
|
});
|
|
1891
2040
|
return await Promise.all(functionPromises);
|
|
1892
2041
|
}
|
|
@@ -1934,12 +2083,16 @@ async function executeFunctionRound(args) {
|
|
|
1934
2083
|
agentTools: args.agentTools,
|
|
1935
2084
|
funcCalls: tellaskRound.normalCalls,
|
|
1936
2085
|
abortSignal: args.abortSignal,
|
|
2086
|
+
contextHealthForToolResultVisibility: args.contextHealthForToolResultVisibility,
|
|
1937
2087
|
});
|
|
1938
2088
|
const genericExecutionByOriginalCall = new Map(genericExecutions.map((execution) => [execution.originalFunc, execution]));
|
|
1939
2089
|
const funcToolByName = new Map(args.agentTools
|
|
1940
2090
|
.filter((tool) => tool.type === 'func')
|
|
1941
2091
|
.map((tool) => [tool.name, tool]));
|
|
1942
2092
|
const genericOutcomeByCallId = new Map(genericExecutions.map((execution) => [execution.result.id, execution.outcome]));
|
|
2093
|
+
const forceImmediateFollowupCallIds = new Set(genericExecutions
|
|
2094
|
+
.filter((execution) => execution.forceImmediateFollowup)
|
|
2095
|
+
.map((execution) => execution.result.id));
|
|
1943
2096
|
const immediateFollowupCallIds = [];
|
|
1944
2097
|
for (const call of tellaskRound.normalCalls) {
|
|
1945
2098
|
const tool = funcToolByName.get(call.name);
|
|
@@ -1947,7 +2100,8 @@ async function executeFunctionRound(args) {
|
|
|
1947
2100
|
if (outcome === undefined) {
|
|
1948
2101
|
throw new Error(`kernel-driver function outcome invariant violation: missing outcome for call id '${call.id}' (${call.name})`);
|
|
1949
2102
|
}
|
|
1950
|
-
if (
|
|
2103
|
+
if (forceImmediateFollowupCallIds.has(call.id) ||
|
|
2104
|
+
shouldImmediatelyFollowUpToolOutcome(tool, outcome)) {
|
|
1951
2105
|
immediateFollowupCallIds.push(call.id);
|
|
1952
2106
|
}
|
|
1953
2107
|
}
|
|
@@ -2364,7 +2518,8 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
2364
2518
|
cautionRemediationCadenceGenerations,
|
|
2365
2519
|
criticalCountdownRemaining,
|
|
2366
2520
|
});
|
|
2367
|
-
if (healthDecision.kind === 'continue'
|
|
2521
|
+
if (healthDecision.kind === 'continue' &&
|
|
2522
|
+
!latestInputLikeMessageIsContextHealthLargeToolReturnUnavailableResult(dlg.msgs)) {
|
|
2368
2523
|
if (healthDecision.reason === 'critical_force_new_course') {
|
|
2369
2524
|
const language = (0, work_language_1.getWorkLanguage)();
|
|
2370
2525
|
const newCoursePrompt = (0, driver_messages_1.formatNewCourseStartPrompt)(language, {
|
|
@@ -3083,6 +3238,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
3083
3238
|
return { usage: res.usage, llmGenModel: res.llmGenModel };
|
|
3084
3239
|
};
|
|
3085
3240
|
const previousAssistantSayingGenseq = lastAssistantSayingGenseq;
|
|
3241
|
+
const contextHealthBeforeGen = dlg.getLastContextHealth();
|
|
3086
3242
|
const llmOutput = await streamOrBatch();
|
|
3087
3243
|
if (typeof llmOutput.llmGenModel === 'string' && llmOutput.llmGenModel.trim() !== '') {
|
|
3088
3244
|
llmGenModelForGen = llmOutput.llmGenModel.trim();
|
|
@@ -3279,6 +3435,10 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
3279
3435
|
abortSignal,
|
|
3280
3436
|
allowTellaskFunctions: policy.allowTellaskFunctions,
|
|
3281
3437
|
activePromptReplyDirective: currentPrompt?.tellaskReplyDirective,
|
|
3438
|
+
contextHealthForToolResultVisibility: pickContextHealthForLargeToolResultVisibility({
|
|
3439
|
+
previous: contextHealthBeforeGen,
|
|
3440
|
+
current: contextHealthForGen,
|
|
3441
|
+
}),
|
|
3282
3442
|
});
|
|
3283
3443
|
if (routed.tellaskToolOutputs.length > 0) {
|
|
3284
3444
|
newMsgs.push(...routed.tellaskToolOutputs);
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as isSymbol, c as baseFlatten, g as baseIteratee, k as keys, h as baseFindIndex, j as baseEach, l as arrayMap, m as hasPath, n as castPath, t as toKey, o as baseGet } from "./_baseUniq-
|
|
2
|
-
import { aU as isObject, aC as baseRest, aV as isIterateeCall, aW as keysIn, aX as eq, aY as isArrayLike, aZ as isArray, a_ as identity, a$ as isIndex, b0 as assignValue } from "./index-
|
|
1
|
+
import { e as isSymbol, c as baseFlatten, g as baseIteratee, k as keys, h as baseFindIndex, j as baseEach, l as arrayMap, m as hasPath, n as castPath, t as toKey, o as baseGet } from "./_baseUniq-hcs024vD.js";
|
|
2
|
+
import { aU as isObject, aC as baseRest, aV as isIterateeCall, aW as keysIn, aX as eq, aY as isArrayLike, aZ as isArray, a_ as identity, a$ as isIndex, b0 as assignValue } from "./index-BOO_zFrI.js";
|
|
3
3
|
var reWhitespace = /\s/;
|
|
4
4
|
function trimmedEndIndex(string) {
|
|
5
5
|
var index = string.length;
|
|
@@ -193,4 +193,4 @@ export {
|
|
|
193
193
|
map as m,
|
|
194
194
|
toFinite as t
|
|
195
195
|
};
|
|
196
|
-
//# sourceMappingURL=_basePickBy-
|
|
196
|
+
//# sourceMappingURL=_basePickBy-DUivPKf7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_basePickBy-bB-pfQPi.js","sources":["../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/defaults.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createFind.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findIndex.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/find.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHas.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/has.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseLt.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseExtremum.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/min.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n"],"names":["objectProto","hasOwnProperty","collection"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}
|
|
1
|
+
{"version":3,"file":"_basePickBy-DUivPKf7.js","sources":["../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/defaults.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createFind.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findIndex.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/find.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHas.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/has.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseLt.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseExtremum.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/min.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n"],"names":["objectProto","hasOwnProperty","collection"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bh as isObjectLike, bi as baseGetTag, aZ as isArray, bj as Symbol$1, aY as isArrayLike, bk as arrayLikeKeys, bl as baseKeys, bm as memoize, bn as isArguments, bo as copyObject, aW as keysIn, bp as getPrototype, bq as cloneArrayBuffer, br as cloneTypedArray, bs as getTag, bf as baseUnary, bt as nodeUtil, aU as isObject, bu as copyArray, bv as isBuffer, bw as cloneBuffer, bx as initCloneObject, by as Stack, b0 as assignValue, bz as MapCache, aX as eq, bA as Uint8Array, bB as isTypedArray, bC as isLength, a$ as isIndex, a_ as identity, bd as baseFor, bD as Set } from "./index-
|
|
1
|
+
import { bh as isObjectLike, bi as baseGetTag, aZ as isArray, bj as Symbol$1, aY as isArrayLike, bk as arrayLikeKeys, bl as baseKeys, bm as memoize, bn as isArguments, bo as copyObject, aW as keysIn, bp as getPrototype, bq as cloneArrayBuffer, br as cloneTypedArray, bs as getTag, bf as baseUnary, bt as nodeUtil, aU as isObject, bu as copyArray, bv as isBuffer, bw as cloneBuffer, bx as initCloneObject, by as Stack, b0 as assignValue, bz as MapCache, aX as eq, bA as Uint8Array, bB as isTypedArray, bC as isLength, a$ as isIndex, a_ as identity, bd as baseFor, bD as Set } from "./index-BOO_zFrI.js";
|
|
2
2
|
var symbolTag$3 = "[object Symbol]";
|
|
3
3
|
function isSymbol(value) {
|
|
4
4
|
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
|
|
@@ -833,4 +833,4 @@ export {
|
|
|
833
833
|
baseIndexOf as y,
|
|
834
834
|
getAllKeysIn as z
|
|
835
835
|
};
|
|
836
|
-
//# sourceMappingURL=_baseUniq-
|
|
836
|
+
//# sourceMappingURL=_baseUniq-hcs024vD.js.map
|