dominds 1.9.2 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/docs/memory-system.md +8 -1
  2. package/dist/docs/memory-system.zh.md +8 -1
  3. package/dist/docs/txt-editing-tools.md +2 -0
  4. package/dist/docs/txt-editing-tools.zh.md +1 -0
  5. package/dist/llm/kernel-driver/tellask-special.js +1 -3
  6. package/dist/minds/load.js +1 -1
  7. package/dist/minds/system-prompt-parts.js +7 -4
  8. package/dist/minds/system-prompt.js +2 -0
  9. package/dist/runtime/driver-messages.js +34 -35
  10. package/dist/runtime/inter-dialog-format.d.ts +10 -0
  11. package/dist/runtime/inter-dialog-format.js +21 -0
  12. package/dist/server/websocket-handler.js +21 -3
  13. package/dist/tools/app-reminders.js +50 -21
  14. package/dist/tools/builtins.js +34 -10
  15. package/dist/tools/ctrl.js +38 -8
  16. package/dist/tools/manual/spec.js +5 -6
  17. package/dist/tools/os.js +133 -32
  18. package/dist/tools/pending-tellask-reminder.js +36 -13
  19. package/dist/tools/plan.js +5 -4
  20. package/dist/tools/prompts/os/en/tools.md +7 -0
  21. package/dist/tools/prompts/os/zh/tools.md +7 -0
  22. package/dist/tools/prompts/team_mgmt/en/index.md +1 -0
  23. package/dist/tools/prompts/team_mgmt/en/principles.md +1 -0
  24. package/dist/tools/prompts/team_mgmt/en/scenarios.md +2 -0
  25. package/dist/tools/prompts/team_mgmt/zh/index.md +1 -0
  26. package/dist/tools/prompts/team_mgmt/zh/principles.md +1 -0
  27. package/dist/tools/prompts/team_mgmt/zh/scenarios.md +2 -0
  28. package/dist/tools/prompts/ws_mod/en/index.md +1 -0
  29. package/dist/tools/prompts/ws_mod/en/principles.md +1 -0
  30. package/dist/tools/prompts/ws_mod/zh/index.md +1 -0
  31. package/dist/tools/prompts/ws_mod/zh/principles.md +1 -0
  32. package/dist/tools/prompts/ws_mod.en.md +4 -0
  33. package/dist/tools/prompts/ws_mod.zh.md +4 -0
  34. package/dist/tools/team_mgmt.js +2 -2
  35. package/dist/tools/toolset-manual.d.ts +1 -1
  36. package/dist/tools/toolset-manual.js +73 -18
  37. package/dist/tools/txt.js +21 -11
  38. package/dist/utils/taskdoc.js +2 -0
  39. package/package.json +2 -2
  40. package/webapp/dist/assets/{_basePickBy-9Z1lbVTN.js → _basePickBy-D694K6Gh.js} +3 -3
  41. package/webapp/dist/assets/{_basePickBy-9Z1lbVTN.js.map → _basePickBy-D694K6Gh.js.map} +1 -1
  42. package/webapp/dist/assets/{_baseUniq-C3pRnD57.js → _baseUniq-ArneQk-G.js} +2 -2
  43. package/webapp/dist/assets/{_baseUniq-C3pRnD57.js.map → _baseUniq-ArneQk-G.js.map} +1 -1
  44. package/webapp/dist/assets/{arc-BvNng3O_.js → arc-8u9ipLr2.js} +2 -2
  45. package/webapp/dist/assets/{arc-BvNng3O_.js.map → arc-8u9ipLr2.js.map} +1 -1
  46. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-BF8vwQ4e.js → architectureDiagram-2XIMDMQ5-DFV-xGAa.js} +7 -7
  47. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-BF8vwQ4e.js.map → architectureDiagram-2XIMDMQ5-DFV-xGAa.js.map} +1 -1
  48. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-C7kfjZhf.js → blockDiagram-WCTKOSBZ-pk6LU06K.js} +7 -7
  49. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-C7kfjZhf.js.map → blockDiagram-WCTKOSBZ-pk6LU06K.js.map} +1 -1
  50. package/webapp/dist/assets/{c4Diagram-IC4MRINW-CaJ6bX75.js → c4Diagram-IC4MRINW-D4SBLYjK.js} +3 -3
  51. package/webapp/dist/assets/{c4Diagram-IC4MRINW-CaJ6bX75.js.map → c4Diagram-IC4MRINW-D4SBLYjK.js.map} +1 -1
  52. package/webapp/dist/assets/{channel-DDuIUO0R.js → channel-D8M5j8c2.js} +2 -2
  53. package/webapp/dist/assets/{channel-DDuIUO0R.js.map → channel-D8M5j8c2.js.map} +1 -1
  54. package/webapp/dist/assets/{chunk-4BX2VUAB-BQPkQh6v.js → chunk-4BX2VUAB-B-6IvMRI.js} +2 -2
  55. package/webapp/dist/assets/{chunk-4BX2VUAB-BQPkQh6v.js.map → chunk-4BX2VUAB-B-6IvMRI.js.map} +1 -1
  56. package/webapp/dist/assets/{chunk-55IACEB6-C2eZTkZ1.js → chunk-55IACEB6-DjEvYtPp.js} +2 -2
  57. package/webapp/dist/assets/{chunk-55IACEB6-C2eZTkZ1.js.map → chunk-55IACEB6-DjEvYtPp.js.map} +1 -1
  58. package/webapp/dist/assets/{chunk-FMBD7UC4-aXp5zApD.js → chunk-FMBD7UC4-CrfwnW9e.js} +2 -2
  59. package/webapp/dist/assets/{chunk-FMBD7UC4-aXp5zApD.js.map → chunk-FMBD7UC4-CrfwnW9e.js.map} +1 -1
  60. package/webapp/dist/assets/{chunk-JSJVCQXG-DXyaccrz.js → chunk-JSJVCQXG-DroABPma.js} +2 -2
  61. package/webapp/dist/assets/{chunk-JSJVCQXG-DXyaccrz.js.map → chunk-JSJVCQXG-DroABPma.js.map} +1 -1
  62. package/webapp/dist/assets/{chunk-KX2RTZJC-C-u000c0.js → chunk-KX2RTZJC--UaFwmvv.js} +2 -2
  63. package/webapp/dist/assets/{chunk-KX2RTZJC-C-u000c0.js.map → chunk-KX2RTZJC--UaFwmvv.js.map} +1 -1
  64. package/webapp/dist/assets/{chunk-NQ4KR5QH-BoYRoo4A.js → chunk-NQ4KR5QH-hGQ1BQy3.js} +4 -4
  65. package/webapp/dist/assets/{chunk-NQ4KR5QH-BoYRoo4A.js.map → chunk-NQ4KR5QH-hGQ1BQy3.js.map} +1 -1
  66. package/webapp/dist/assets/{chunk-QZHKN3VN-BAc_2ceG.js → chunk-QZHKN3VN-L1f-RVf4.js} +2 -2
  67. package/webapp/dist/assets/{chunk-QZHKN3VN-BAc_2ceG.js.map → chunk-QZHKN3VN-L1f-RVf4.js.map} +1 -1
  68. package/webapp/dist/assets/{chunk-WL4C6EOR-D6ws69Jx.js → chunk-WL4C6EOR-BS6MGl-Y.js} +6 -6
  69. package/webapp/dist/assets/{chunk-WL4C6EOR-D6ws69Jx.js.map → chunk-WL4C6EOR-BS6MGl-Y.js.map} +1 -1
  70. package/webapp/dist/assets/{classDiagram-VBA2DB6C-BIRrKhqs.js → classDiagram-VBA2DB6C-wDVeUi90.js} +7 -7
  71. package/webapp/dist/assets/{classDiagram-VBA2DB6C-BIRrKhqs.js.map → classDiagram-VBA2DB6C-wDVeUi90.js.map} +1 -1
  72. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-BIRrKhqs.js → classDiagram-v2-RAHNMMFH-wDVeUi90.js} +7 -7
  73. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-BIRrKhqs.js.map → classDiagram-v2-RAHNMMFH-wDVeUi90.js.map} +1 -1
  74. package/webapp/dist/assets/{clone-DweFyVW6.js → clone-C2MtRhfG.js} +2 -2
  75. package/webapp/dist/assets/{clone-DweFyVW6.js.map → clone-C2MtRhfG.js.map} +1 -1
  76. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-vgovmGKM.js → cose-bilkent-S5V4N54A-CEf3Y19l.js} +2 -2
  77. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-vgovmGKM.js.map → cose-bilkent-S5V4N54A-CEf3Y19l.js.map} +1 -1
  78. package/webapp/dist/assets/{dagre-KLK3FWXG-B-Ax3qBf.js → dagre-KLK3FWXG-Dy_y44Tz.js} +7 -7
  79. package/webapp/dist/assets/{dagre-KLK3FWXG-B-Ax3qBf.js.map → dagre-KLK3FWXG-Dy_y44Tz.js.map} +1 -1
  80. package/webapp/dist/assets/{diagram-E7M64L7V-B1sUlvtn.js → diagram-E7M64L7V-Bvv5WU0i.js} +8 -8
  81. package/webapp/dist/assets/{diagram-E7M64L7V-B1sUlvtn.js.map → diagram-E7M64L7V-Bvv5WU0i.js.map} +1 -1
  82. package/webapp/dist/assets/{diagram-IFDJBPK2-3IlyK_xp.js → diagram-IFDJBPK2-DgKslRxt.js} +7 -7
  83. package/webapp/dist/assets/{diagram-IFDJBPK2-3IlyK_xp.js.map → diagram-IFDJBPK2-DgKslRxt.js.map} +1 -1
  84. package/webapp/dist/assets/{diagram-P4PSJMXO-C3x0JkgF.js → diagram-P4PSJMXO-DKuN0W-K.js} +7 -7
  85. package/webapp/dist/assets/{diagram-P4PSJMXO-C3x0JkgF.js.map → diagram-P4PSJMXO-DKuN0W-K.js.map} +1 -1
  86. package/webapp/dist/assets/{erDiagram-INFDFZHY-mEp6kC6i.js → erDiagram-INFDFZHY-Buc2e1H3.js} +5 -5
  87. package/webapp/dist/assets/{erDiagram-INFDFZHY-mEp6kC6i.js.map → erDiagram-INFDFZHY-Buc2e1H3.js.map} +1 -1
  88. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-AsG_wdLN.js → flowDiagram-PKNHOUZH-J69A4hB0.js} +7 -7
  89. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-AsG_wdLN.js.map → flowDiagram-PKNHOUZH-J69A4hB0.js.map} +1 -1
  90. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-zv3UhEAO.js → ganttDiagram-A5KZAMGK-B_EUDSCl.js} +3 -3
  91. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-zv3UhEAO.js.map → ganttDiagram-A5KZAMGK-B_EUDSCl.js.map} +1 -1
  92. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-C1yyISy7.js → gitGraphDiagram-K3NZZRJ6-B1111A11.js} +8 -8
  93. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-C1yyISy7.js.map → gitGraphDiagram-K3NZZRJ6-B1111A11.js.map} +1 -1
  94. package/webapp/dist/assets/{graph-CkQycYq_.js → graph-CdxqCYb0.js} +3 -3
  95. package/webapp/dist/assets/{graph-CkQycYq_.js.map → graph-CdxqCYb0.js.map} +1 -1
  96. package/webapp/dist/assets/{index-CCGi5dDE.js → index-BHe1oHIa.js} +181 -49
  97. package/webapp/dist/assets/{index-CCGi5dDE.js.map → index-BHe1oHIa.js.map} +1 -1
  98. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-Dw1wAgpl.js → infoDiagram-LFFYTUFH-B0NHDULu.js} +6 -6
  99. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-Dw1wAgpl.js.map → infoDiagram-LFFYTUFH-B0NHDULu.js.map} +1 -1
  100. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-DY9fHLYz.js → ishikawaDiagram-PHBUUO56-zFZuCrGV.js} +2 -2
  101. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-DY9fHLYz.js.map → ishikawaDiagram-PHBUUO56-zFZuCrGV.js.map} +1 -1
  102. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-CSGjRykr.js → journeyDiagram-4ABVD52K-C-Y3JIvI.js} +5 -5
  103. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-CSGjRykr.js.map → journeyDiagram-4ABVD52K-C-Y3JIvI.js.map} +1 -1
  104. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-DDCQetMc.js → kanban-definition-K7BYSVSG-CAWm_s77.js} +3 -3
  105. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-DDCQetMc.js.map → kanban-definition-K7BYSVSG-CAWm_s77.js.map} +1 -1
  106. package/webapp/dist/assets/{layout-DpuTr6cl.js → layout-DAf8AacP.js} +5 -5
  107. package/webapp/dist/assets/{layout-DpuTr6cl.js.map → layout-DAf8AacP.js.map} +1 -1
  108. package/webapp/dist/assets/{linear-BQv5LuhW.js → linear-5V_bWmGQ.js} +2 -2
  109. package/webapp/dist/assets/{linear-BQv5LuhW.js.map → linear-5V_bWmGQ.js.map} +1 -1
  110. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-C5ajM9Hr.js → mindmap-definition-YRQLILUH-CbZFlmPZ.js} +4 -4
  111. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-C5ajM9Hr.js.map → mindmap-definition-YRQLILUH-CbZFlmPZ.js.map} +1 -1
  112. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-Daqms3DT.js → pieDiagram-SKSYHLDU-BdjfUPSq.js} +8 -8
  113. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-Daqms3DT.js.map → pieDiagram-SKSYHLDU-BdjfUPSq.js.map} +1 -1
  114. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-BMNWp18J.js → quadrantDiagram-337W2JSQ-B_roS40E.js} +3 -3
  115. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-BMNWp18J.js.map → quadrantDiagram-337W2JSQ-B_roS40E.js.map} +1 -1
  116. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-C1Mc4MX-.js → requirementDiagram-Z7DCOOCP-Cte4tBaS.js} +4 -4
  117. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-C1Mc4MX-.js.map → requirementDiagram-Z7DCOOCP-Cte4tBaS.js.map} +1 -1
  118. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-DTHGhOsp.js → sankeyDiagram-WA2Y5GQK-_7BuCxMO.js} +2 -2
  119. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-DTHGhOsp.js.map → sankeyDiagram-WA2Y5GQK-_7BuCxMO.js.map} +1 -1
  120. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-C6cA5ncc.js → sequenceDiagram-2WXFIKYE-DIrNFVXO.js} +4 -4
  121. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-C6cA5ncc.js.map → sequenceDiagram-2WXFIKYE-DIrNFVXO.js.map} +1 -1
  122. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DRDqVPKY.js → stateDiagram-RAJIS63D-CleFEXbm.js} +9 -9
  123. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DRDqVPKY.js.map → stateDiagram-RAJIS63D-CleFEXbm.js.map} +1 -1
  124. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-B-pby7Ke.js → stateDiagram-v2-FVOUBMTO-BPhDPWWG.js} +5 -5
  125. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-B-pby7Ke.js.map → stateDiagram-v2-FVOUBMTO-BPhDPWWG.js.map} +1 -1
  126. package/webapp/dist/assets/{timeline-definition-YZTLITO2-C-m1bG_Z.js → timeline-definition-YZTLITO2-DrrU-OCU.js} +3 -3
  127. package/webapp/dist/assets/{timeline-definition-YZTLITO2-C-m1bG_Z.js.map → timeline-definition-YZTLITO2-DrrU-OCU.js.map} +1 -1
  128. package/webapp/dist/assets/{treemap-KZPCXAKY-BWvLuAyU.js → treemap-KZPCXAKY-DShBAWxS.js} +5 -5
  129. package/webapp/dist/assets/{treemap-KZPCXAKY-BWvLuAyU.js.map → treemap-KZPCXAKY-DShBAWxS.js.map} +1 -1
  130. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-C8gZYuUq.js → vennDiagram-LZ73GAT5-DNQztUY0.js} +2 -2
  131. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-C8gZYuUq.js.map → vennDiagram-LZ73GAT5-DNQztUY0.js.map} +1 -1
  132. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-Bb3azvDM.js → xychartDiagram-JWTSCODW-q8D6fe1E.js} +3 -3
  133. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-Bb3azvDM.js.map → xychartDiagram-JWTSCODW-q8D6fe1E.js.map} +1 -1
  134. package/webapp/dist/index.html +1 -1
@@ -5,6 +5,7 @@
5
5
  ## 总原则
6
6
 
7
7
  - 增量编辑:通过 `prepare_*` 生成可 apply 的 hunk;然后用 `apply_file_modification` 写入。
8
+ - LLM 顺序硬约束:`prepare_*` 只生成内存中的预览,不会写盘;在 `apply_file_modification` 之前再次读取文件仍只能读到旧内容。若要基于本次改动继续修改,必须先 apply 当前 hunk,再重新 read/prepare 新改动。
8
9
  - 旧工具已移除(无兼容层):`append_file` / `insert_after` / `insert_before` / `replace_block` / `apply_block_replace`。
9
10
  - 约束:`*.tsk/` 下的路径属于封装差遣牒,文件工具不可访问。
10
11
  - 并行约束:同一轮对话中的多个工具调用可能并行执行;**prepare → apply 必须分两轮**(除非未来有顺序编排器)。
@@ -36,6 +37,7 @@
36
37
  - `prepare_*` 会生成 `hunk_id`(TTL=1 小时);apply 只能用仍然存在的 hunk。
37
38
  - 过期/未使用的 hunk **不会产生任何副作用**,会在运行时自动清理;只需关注"最后一次准备的那个 `hunk_id`"。
38
39
  - 部分 prepare 工具支持 `existing_hunk_id` 作为"覆写同一 prepare"的方式;**不支持自定义新 id**。
40
+ - 若只是修订同一个未落盘预览,可用同一 prepare 工具配合 `existing_hunk_id` 覆写;若想基于这次改动继续做下一笔修改,必须先 apply 当前 hunk,再重新 prepare。
39
41
 
40
42
  ## apply 语义(context_match)
41
43
 
@@ -59,6 +61,8 @@
59
61
  { "hunk_id": "<hunk_id>" }
60
62
  ```
61
63
 
64
+ 在这一步之前,prepare 结果还没有落盘;如果此时再次 `read_file`,读到的仍是旧内容。
65
+
62
66
  ## 示例
63
67
 
64
68
  - 末尾追加:
@@ -3024,7 +3024,7 @@ function renderTeamManual(language) {
3024
3024
  '想快速查看有哪些 provider / models / model_param_options:用 `team_mgmt_list_providers({})` 和 `team_mgmt_list_models({ provider_pattern: \"*\", model_pattern: \"*\" })`。',
3025
3025
  '不要把内置成员(例如 `fuxi` / `pangu`)的定义写入 `.minds/team.yaml`(这里只定义 rtws(运行时工作区)自己的成员):内置成员通常带有特殊权限/目录访问边界;重复定义可能引入冲突、权限误配或行为不一致。',
3026
3026
  '`hidden: true` 表示影子/隐藏成员:不会出现在系统提示的团队目录里,但仍然可以通过 tellask-special 函数诉请。',
3027
- '修改文件推荐流程:先 `team_mgmt_read_file({ path: \"team.yaml\", range: \"<start~end>\", max_lines: 0, show_linenos: true })` 定位行号;小改动用 `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"\", content: \"<new content>\" })` 生成 diff(工具会返回 hunk_id),再用 `team_mgmt_apply_file_modification({ hunk_id: \"<hunk_id>\" })` 显式确认写入;如需修订同一个预览,可再次调用 `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"<hunk_id>\", content: \"<new content>\" })` 覆写;如确实需要整文件覆盖:先 `team_mgmt_read_file({ path: \"team.yaml\", range: \"\", max_lines: 0, show_linenos: true })` 从 YAML header 获取 total_lines/size_bytes,再用 `team_mgmt_overwrite_entire_file({ path: \"team.yaml\", known_old_total_lines: <n>, known_old_total_bytes: <n>, content_format: \"\", content: \"...\" })`。',
3027
+ '修改文件推荐流程:先 `team_mgmt_read_file({ path: \"team.yaml\", range: \"<start~end>\", max_lines: 0, show_linenos: true })` 定位行号;小改动用 `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"\", content: \"<new content>\" })` 生成 diff(工具会返回 hunk_id),再用 `team_mgmt_apply_file_modification({ hunk_id: \"<hunk_id>\" })` 显式确认写入。注意:prepare 只生成内存中的预览,apply 之前不会落盘;此时再次读取文件仍只能读到旧内容。若只是修订同一个尚未落盘的预览,可再次调用 `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"<hunk_id>\", content: \"<new content>\" })` 覆写;若想基于这次改动继续追加下一笔修改,必须先 apply 当前 hunk,再重新 read/prepare 新的改动。如确实需要整文件覆盖:先 `team_mgmt_read_file({ path: \"team.yaml\", range: \"\", max_lines: 0, show_linenos: true })` 从 YAML header 获取 total_lines/size_bytes,再用 `team_mgmt_overwrite_entire_file({ path: \"team.yaml\", known_old_total_lines: <n>, known_old_total_bytes: <n>, content_format: \"\", content: \"...\" })`。',
3028
3028
  '部署/组织建议(可选):如果你不希望出现显在“团队管理者”,可由一个影子/隐藏成员持有 `team_mgmt` 负责维护 `.minds/**`(尤其 `team.yaml`),由人类在需要时触发其执行(例如初始化/调整权限/更新模型)。Dominds 不强制这种组织方式;你也可以让显在成员拥有 `team_mgmt` 或由人类直接维护文件。',
3029
3029
  ]) +
3030
3030
  fmtSubHeader('Schema Snapshot(自动生成,来自当前解析器白名单)') +
@@ -3084,7 +3084,7 @@ function renderTeamManual(language) {
3084
3084
  ? 'Default policy (override only when requested):\n1) When adding a member, set `diligence-push-max` to `3` unless the user explicitly asks otherwise.\n2) When switching a member’s LLM `provider/model`, keep `ws_read` / `ws_mod` as the baseline; on Windows, do not configure `codex_style_tools`. If runtime probing is needed, grant `os` only to a small specialist set.'
3085
3085
  : 'Default policy (override only when requested):\n1) When adding a member, set `diligence-push-max` to `3` unless the user explicitly asks otherwise.\n2) When switching a member’s LLM `provider/model`, keep `ws_read` / `ws_mod` as the baseline; when the target is `provider: codex`, add `codex_style_tools` on top (not as a replacement), unless the user explicitly asks for a different combination.',
3086
3086
  'Deployment/org suggestion (optional): if you do not want a visible team manager, keep `team_mgmt` only on a hidden/shadow member and have a human trigger it when needed; Dominds does not require this organizational setup.',
3087
- 'Recommended editing workflow: use `team_mgmt_read_file({ path: \"team.yaml\", range: \"<start~end>\", max_lines: 0, show_linenos: true })` to find line numbers; for small edits, run `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"\", content: \"<new content>\" })` to get a diff (the tool returns hunk_id), then confirm with `team_mgmt_apply_file_modification({ hunk_id: \"<hunk_id>\" })`; to revise the same prepared diff, call `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"<hunk_id>\", content: \"<new content>\" })` again; if you truly need a full overwrite: first `team_mgmt_read_file({ path: \"team.yaml\", range: \"\", max_lines: 0, show_linenos: true })` and read total_lines/size_bytes from the YAML header, then use `team_mgmt_overwrite_entire_file({ path: \"team.yaml\", known_old_total_lines: <n>, known_old_total_bytes: <n>, content_format: \"\", content: \"...\" })`.',
3087
+ 'Recommended editing workflow: use `team_mgmt_read_file({ path: \"team.yaml\", range: \"<start~end>\", max_lines: 0, show_linenos: true })` to find line numbers; for small edits, run `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"\", content: \"<new content>\" })` to get a diff (the tool returns hunk_id), then confirm with `team_mgmt_apply_file_modification({ hunk_id: \"<hunk_id>\" })`. Important: prepare only creates an in-memory preview and does not persist anything before apply, so re-reading the file at this point still returns the old content. If you only want to revise the same not-yet-persisted preview, call `team_mgmt_prepare_file_range_edit({ path: \"team.yaml\", range: \"<line~range>\", existing_hunk_id: \"<hunk_id>\", content: \"<new content>\" })` again; if you want a further edit based on this change, you must apply the current hunk first, then read/prepare the next change. If you truly need a full overwrite: first `team_mgmt_read_file({ path: \"team.yaml\", range: \"\", max_lines: 0, show_linenos: true })` and read total_lines/size_bytes from the YAML header, then use `team_mgmt_overwrite_entire_file({ path: \"team.yaml\", known_old_total_lines: <n>, known_old_total_bytes: <n>, content_format: \"\", content: \"...\" })`.',
3088
3088
  ])) +
3089
3089
  fmtSubHeader('Schema Snapshot (generated from parser allow-list)') +
3090
3090
  fmtList([
@@ -8,5 +8,5 @@ export declare function buildToolsetManualTools(_options: {
8
8
  toolsetNames: string[];
9
9
  existingToolNames: Set<string>;
10
10
  }): ToolsetManualResult;
11
- export declare function formatToolsetManualIntro(language: LanguageCode, toolNames: string[]): string;
11
+ export declare function formatToolsetManualIntro(language: LanguageCode, toolNames: string[], toolsetIds: readonly string[]): string;
12
12
  export {};
@@ -12,31 +12,72 @@ function buildToolsetManualTools(_options) {
12
12
  const tool = buildManTool();
13
13
  return { tools: [tool], toolNames: [tool.name] };
14
14
  }
15
- function formatToolsetManualIntro(language, toolNames) {
16
- const names = toolNames.map((name) => `\`${name}\``).join(', ');
17
- const calls = toolNames.map((name) => `\`${name}({ "toolsetId": "..." })\``).join(', ');
18
- if (toolNames.length === 0) {
19
- return language === 'zh' ? '(无可用手册工具)' : '(no manual tool available)';
15
+ function getToolsetDescription(language, toolsetId) {
16
+ const meta = (0, registry_1.getToolsetMeta)(toolsetId);
17
+ const description = meta?.descriptionI18n;
18
+ if (!description) {
19
+ return language === 'zh' ? '工具集说明暂缺' : 'No description available';
20
+ }
21
+ return description[language] ?? description.en ?? description.zh ?? '';
22
+ }
23
+ function formatToolsetEntry(language, toolsetId, includeCall) {
24
+ const description = getToolsetDescription(language, toolsetId);
25
+ const endsWithSentencePunctuation = description.endsWith('。') ||
26
+ description.endsWith('.') ||
27
+ description.endsWith('!') ||
28
+ description.endsWith('!');
29
+ if (language === 'zh') {
30
+ return includeCall
31
+ ? `- \`${toolsetId}\`:${description}${endsWithSentencePunctuation ? '' : '。'}查看详情:\`man({ "toolsetId": "${toolsetId}" })\``
32
+ : `- \`${toolsetId}\`:${description}`;
33
+ }
34
+ return includeCall
35
+ ? `- \`${toolsetId}\`: ${description}${endsWithSentencePunctuation ? '' : '.'} Details: \`man({ "toolsetId": "${toolsetId}" })\``
36
+ : `- \`${toolsetId}\`: ${description}`;
37
+ }
38
+ function formatToolsetEntries(language, toolsetIds, includeCall) {
39
+ if (toolsetIds.length === 0) {
40
+ return language === 'zh' ? '(当前无可用工具集)' : '(no toolsets currently available)';
20
41
  }
21
- return language === 'zh'
22
- ? `手册:${names}(调用:${calls})`
23
- : `Manuals: ${names} (call: ${calls})`;
42
+ return toolsetIds
43
+ .map((toolsetId) => formatToolsetEntry(language, toolsetId, includeCall))
44
+ .join('\n');
24
45
  }
25
- function formatToolsetListForUnavailable(language, toolsetIds) {
46
+ function formatToolsetIdList(language, toolsetIds) {
26
47
  if (toolsetIds.length === 0) {
27
48
  return language === 'zh' ? '(当前无可用工具集)' : '(no toolsets currently available)';
28
49
  }
29
- return toolsetIds.map((toolsetId) => `\`${toolsetId}\``).join(', ');
50
+ return toolsetIds.map((toolsetId) => `- \`${toolsetId}\``).join('\n');
51
+ }
52
+ function formatToolsetManualIntro(language, toolNames, toolsetIds) {
53
+ const names = toolNames.map((name) => `\`${name}\``).join(', ');
54
+ if (toolNames.length === 0) {
55
+ return language === 'zh' ? '(无可用手册工具)' : '(no manual tool available)';
56
+ }
57
+ if (language === 'zh') {
58
+ return [
59
+ `手册工具:${names}`,
60
+ '可用工具集:',
61
+ formatToolsetEntries(language, toolsetIds, true),
62
+ '何时查阅手册:当某个工具集的功能边界、参数写法、典型场景或报错处理不确定时,调用 `man` 查看详情。',
63
+ ].join('\n');
64
+ }
65
+ return [
66
+ `Manual tool: ${names}`,
67
+ 'Available toolsets:',
68
+ formatToolsetEntries(language, toolsetIds, true),
69
+ 'When to read the manual: call `man` when a toolset’s boundaries, argument shape, typical scenarios, or error handling are unclear.',
70
+ ].join('\n');
30
71
  }
31
72
  function buildManTool() {
32
73
  const topicEnums = [...spec_1.MANUAL_TOPICS, 'all'];
33
74
  return {
34
75
  type: 'func',
35
76
  name: 'man',
36
- description: `Show manual for a toolset. Use 'toolsetId' to specify which toolset. Use 'topic' or 'topics' to select sections.`,
77
+ description: `Show manual for a toolset. Use without 'toolsetId' to list available toolsets. Use 'toolsetId' to inspect one toolset and 'topic' or 'topics' to select sections.`,
37
78
  descriptionI18n: {
38
- en: `Show manual for a toolset. Use 'toolsetId' to specify which toolset. Use 'topic' or 'topics' to select sections.`,
39
- zh: `查看工具集的手册。使用 'toolsetId' 指定工具集。使用 'topic' 或 'topics' 选择章节。`,
79
+ en: `Show manual for a toolset. Use without 'toolsetId' to list available toolsets. Use 'toolsetId' to inspect one toolset and 'topic' or 'topics' to select sections.`,
80
+ zh: `查看工具集手册。不带 'toolsetId' 时列出可用工具集;带上 'toolsetId' 时查看单个工具集;使用 'topic' 或 'topics' 选择章节。`,
40
81
  },
41
82
  parameters: {
42
83
  type: 'object',
@@ -73,8 +114,22 @@ function buildManTool() {
73
114
  if (!toolsetId) {
74
115
  // When no toolsetId is provided, show all available toolsets
75
116
  const availableToolsetNames = _caller.listResolvedToolsetNames({ dynamicToolsetNames });
76
- const list = formatToolsetListForUnavailable(language, availableToolsetNames);
77
- return language === 'zh' ? `可用的工具集:${list}` : `Available toolsets: ${list}`;
117
+ if (language === 'zh') {
118
+ return [
119
+ '**可用工具集**',
120
+ '',
121
+ formatToolsetIdList(language, availableToolsetNames),
122
+ '',
123
+ '提示:当某个工具集的功能边界、参数写法、场景示例或错误处理不确定时,继续调用 `man({ "toolsetId": "<toolset>" })` 查看详情。',
124
+ ].join('\n');
125
+ }
126
+ return [
127
+ '**Available toolsets**',
128
+ '',
129
+ formatToolsetIdList(language, availableToolsetNames),
130
+ '',
131
+ 'Hint: when a toolset’s boundaries, argument shape, scenarios, or error handling are unclear, call `man({ "toolsetId": "<toolset>" })` for details.',
132
+ ].join('\n');
78
133
  }
79
134
  // Step 1: Get available toolsets for this caller (dynamic availability)
80
135
  const availableToolsetNames = _caller.listResolvedToolsetNames({ dynamicToolsetNames });
@@ -91,10 +146,10 @@ function buildManTool() {
91
146
  : `Toolset '${toolsetId}' is not available to you. Did you mean: '${suggestion}'?`;
92
147
  }
93
148
  // No suggestion available, just report unavailability and list available toolsets
94
- const list = formatToolsetListForUnavailable(language, availableToolsetNames);
149
+ const list = formatToolsetIdList(language, availableToolsetNames);
95
150
  return language === 'zh'
96
- ? `工具集 '${toolsetId}' 暂未配置给您使用。可用工具集:${list}`
97
- : `Toolset '${toolsetId}' is not available to you. Available toolsets: ${list}`;
151
+ ? `工具集 '${toolsetId}' 暂未配置给您使用。\n\n可用工具集:\n${list}`
152
+ : `Toolset '${toolsetId}' is not available to you.\n\nAvailable toolsets:\n${list}`;
98
153
  }
99
154
  const availableToolNames = new Set(_caller
100
155
  .listTools({
package/dist/tools/txt.js CHANGED
@@ -154,6 +154,22 @@ function yamlBlockScalarLines(valueLines, indent) {
154
154
  function formatYamlCodeBlock(yaml) {
155
155
  return `\`\`\`yaml\n${yaml}\n\`\`\``;
156
156
  }
157
+ function formatPreparedHunkNextStep(language, hunkId) {
158
+ if (language === 'zh') {
159
+ return [
160
+ '下一步(LLM 强约束):',
161
+ `立即调用函数工具 \`team_mgmt_apply_file_modification\`,参数:{ "hunk_id": "${hunkId}" }`,
162
+ '当前改动仍只是 prepare 预览,apply 前不会落盘;现在再次读取文件只能读到旧内容。',
163
+ '如果只是修订这个尚未落盘的预览,可用同一 prepare 工具配合 `existing_hunk_id` 覆写该 hunk;如果想基于这次改动继续修改文件,必须先 apply 当前 hunk,再重新 read/prepare 新的改动。',
164
+ ].join('\n');
165
+ }
166
+ return [
167
+ 'Next (hard rule for the LLM):',
168
+ `Immediately call function tool \`team_mgmt_apply_file_modification\` with { "hunk_id": "${hunkId}" }.`,
169
+ 'This change is still only a prepared preview and is not persisted before apply; re-reading now will still return the old file content.',
170
+ 'If you only want to revise this not-yet-persisted preview, overwrite the same hunk with the same prepare tool plus `existing_hunk_id`; if you want further edits based on this change, you must apply the current hunk first, then read/prepare the next change.',
171
+ ].join('\n');
172
+ }
157
173
  function splitFileTextToLines(fileText) {
158
174
  const parts = fileText.split('\n');
159
175
  // Remove the terminator token created by trailing '\n' (canonical line semantics).
@@ -1202,7 +1218,7 @@ async function runPrepareFileRangeEdit(caller, filePath, rangeSpec, requestedId,
1202
1218
  rangeRequired: '错误:需要提供行号范围(例如 10~20 或 ~)。',
1203
1219
  fileDoesNotExist: (p) => `错误:文件 \`${p}\` 不存在。`,
1204
1220
  planned: (id, p) => `✅ 已规划:\`${id}\` → \`${p}\``,
1205
- next: (id) => `下一步:调用函数工具 \`team_mgmt_apply_file_modification\`,参数:{ \"hunk_id\": \"${id}\" }`,
1221
+ next: (id) => formatPreparedHunkNextStep('zh', id),
1206
1222
  invalidHunkId: '错误:hunk id 格式无效(例如 `a1b2c3d4`)。',
1207
1223
  unknownHunkId: (id) => `错误:hunk id \`${id}\` 不存在(可能已过期/已被应用)。不支持自定义新 id;要生成新 id,请将 \`existing_hunk_id\` 设为空字符串。`,
1208
1224
  wrongOwner: (id) => `错误:hunk id \`${id}\` 不是由当前成员规划的,不能覆写。`,
@@ -1214,7 +1230,7 @@ async function runPrepareFileRangeEdit(caller, filePath, rangeSpec, requestedId,
1214
1230
  rangeRequired: 'Error: Line range is required (e.g. 10~20 or ~).',
1215
1231
  fileDoesNotExist: (p) => `Error: File \`${p}\` does not exist.`,
1216
1232
  planned: (id, p) => `✅ Planned \`${id}\` for \`${p}\``,
1217
- next: (id) => `Next: call function tool \`team_mgmt_apply_file_modification\` with { "hunk_id": "${id}" }.`,
1233
+ next: (id) => formatPreparedHunkNextStep('en', id),
1218
1234
  invalidHunkId: 'Error: invalid hunk id format (e.g. `a1b2c3d4`).',
1219
1235
  unknownHunkId: (id) => `Error: hunk id \`${id}\` not found (expired or already applied). Custom new ids are not allowed; set \`existing_hunk_id\` to an empty string to generate a new one.`,
1220
1236
  wrongOwner: (id) => `Error: hunk id \`${id}\` was planned by a different member; cannot overwrite.`,
@@ -1589,9 +1605,7 @@ async function runPrepareFileAppend(caller, filePath, inputBody, options) {
1589
1605
  ].join('\n');
1590
1606
  const content = `${formatYamlCodeBlock(yaml)}\n\n` +
1591
1607
  `\`\`\`diff\n${unifiedDiff}\`\`\`\n\n` +
1592
- (language === 'zh'
1593
- ? `下一步:调用函数工具 \`team_mgmt_apply_file_modification\`,参数:{ \"hunk_id\": \"${hunkId}\" }`
1594
- : `Next: call function tool \`team_mgmt_apply_file_modification\` with { "hunk_id": "${hunkId}" }.`);
1608
+ formatPreparedHunkNextStep(language, hunkId);
1595
1609
  return ok(content, [{ type: 'environment_msg', role: 'user', content }]);
1596
1610
  }
1597
1611
  catch (error) {
@@ -1885,9 +1899,7 @@ async function planInsertionCommon(position, caller, options) {
1885
1899
  ].join('\n');
1886
1900
  const content = `${formatYamlCodeBlock(yaml)}\n\n` +
1887
1901
  `\`\`\`diff\n${unifiedDiff}\`\`\`\n\n` +
1888
- (language === 'zh'
1889
- ? `下一步:调用函数工具 \`team_mgmt_apply_file_modification\`,参数:{ \"hunk_id\": \"${hunkId}\" }`
1890
- : `Next: call function tool \`team_mgmt_apply_file_modification\` with { "hunk_id": "${hunkId}" }.`);
1902
+ formatPreparedHunkNextStep(language, hunkId);
1891
1903
  return ok(content, [{ type: 'environment_msg', role: 'user', content }]);
1892
1904
  }
1893
1905
  catch (error) {
@@ -3178,9 +3190,7 @@ async function runPrepareBlockReplace(caller, options) {
3178
3190
  ].join('\n');
3179
3191
  const content = `${formatYamlCodeBlock(yaml)}\n\n` +
3180
3192
  `\`\`\`diff\n${unifiedDiff}\`\`\`\n\n` +
3181
- (language === 'zh'
3182
- ? `下一步:调用函数工具 \`team_mgmt_apply_file_modification\`,参数:{ \"hunk_id\": \"${hunkId}\" }`
3183
- : `Next: call function tool \`team_mgmt_apply_file_modification\` with { "hunk_id": "${hunkId}" }.`);
3193
+ formatPreparedHunkNextStep(language, hunkId);
3184
3194
  return ok(content, [{ type: 'environment_msg', role: 'user', content }]);
3185
3195
  }
3186
3196
  catch (error) {
@@ -242,6 +242,7 @@ If you provided a regular file path (e.g. a \`.md\`), that is unexpected. Please
242
242
  `**差遣牒结构(封装差遣牒 \`*.tsk/\`):**`,
243
243
  `- 我们的差遣牒是一个 \`*.tsk/\` 目录:顶层 3 个分段(\`goals\` / \`constraints\` / \`progress\`)一定会自动注入;\`bearinmind/\`(固定白名单)可选自动注入;其他章节不会自动注入,仅以“目录索引”形式提示并需用 \`recall_taskdoc\` 显式读取。`,
244
244
  `- 全队共享:三个分段对所有队友与支线对话可见。更新时禁止覆盖/抹掉他人条目;建议为自己维护的条目标注责任人(如 \`- [owner:@<id>] ...\`)。`,
245
+ `- 章节语义约定:\`goals\` / \`constraints\` 是任务契约;\`progress\` 是全队共享的里程碑公告牌,用于关键决策、当前状态与下一步,不是“我当前在做什么”的个人笔记。`,
245
246
  `- 差遣牒维护人(负责执行 \`change_mind\`):@${taskdocMaintainerId}`,
246
247
  `- 重要:差遣牒内容已被系统以内联形式注入到上下文中(本程生成视角下即为最新)。请直接基于上下文里的差遣牒回顾与决策,不要试图用通用文件工具读取 \`*.tsk/\` 下的文件(会被拒绝)。`,
247
248
  maintenanceLine,
@@ -279,6 +280,7 @@ If you provided a regular file path (e.g. a \`.md\`), that is unexpected. Please
279
280
  `**Taskdoc Constitution (Encapsulated \`*.tsk/\`):**`,
280
281
  `- Our Taskdoc is a \`*.tsk/\` directory: it always auto-injects the 3 top-level sections (\`goals\` / \`constraints\` / \`progress\`); it may auto-inject \`bearinmind/\` (fixed whitelist); any other sections are NOT auto-injected and must be read via \`recall_taskdoc\` (only an index is shown).`,
281
282
  `- Team-shared: all 3 sections are visible to teammates and subdialogs. Do not overwrite/delete other contributors; add an owner marker for entries you maintain (e.g. \`- [owner:@<id>] ...\`).`,
283
+ `- Section semantics: \`goals\` / \`constraints\` are the task contract; \`progress\` is the team-shared milestone bulletin board for key decisions, current status, and next steps, not a personal “what I'm doing now” notebook.`,
282
284
  `- Taskdoc maintainer (runs \`change_mind\`): @${taskdocMaintainerId}`,
283
285
  `- Important: Taskdoc content is injected inline into the context (the latest as of this generation). Review the injected Taskdoc; do not try to read files under \`*.tsk/\` via general file tools (they will be rejected).`,
284
286
  maintenanceLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dominds",
3
- "version": "1.9.2",
3
+ "version": "1.9.4",
4
4
  "description": "Dominds CLI and aggregation shell for the LongRun AI kernel/runtime packages.",
5
5
  "type": "commonjs",
6
6
  "publishConfig": {
@@ -52,8 +52,8 @@
52
52
  "ws": "^8.19.0",
53
53
  "yaml": "^2.8.2",
54
54
  "zod": "^4.3.6",
55
- "@longrun-ai/kernel": "1.8.6",
56
55
  "@longrun-ai/shell": "1.8.6",
56
+ "@longrun-ai/kernel": "1.8.6",
57
57
  "@longrun-ai/codex-auth": "0.11.0"
58
58
  },
59
59
  "devDependencies": {
@@ -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-C3pRnD57.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-CCGi5dDE.js";
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-ArneQk-G.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-BHe1oHIa.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-9Z1lbVTN.js.map
196
+ //# sourceMappingURL=_basePickBy-D694K6Gh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_basePickBy-9Z1lbVTN.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":";;AACA,IAAI,eAAe;AAUnB,SAAS,gBAAgB,QAAQ;AAC/B,MAAI,QAAQ,OAAO;AAEnB,SAAO,WAAW,aAAa,KAAK,OAAO,OAAO,KAAK,CAAC,GAAG;AAAA,EAAC;AAC5D,SAAO;AACT;ACbA,IAAI,cAAc;AASlB,SAAS,SAAS,QAAQ;AACxB,SAAO,SACH,OAAO,MAAM,GAAG,gBAAgB,MAAM,IAAI,CAAC,EAAE,QAAQ,aAAa,EAAE,IACpE;AACN;ACXA,IAAI,MAAM,IAAI;AAGd,IAAI,aAAa;AAGjB,IAAI,aAAa;AAGjB,IAAI,YAAY;AAGhB,IAAI,eAAe;AAyBnB,SAAS,SAAS,OAAO;AACvB,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT;AACA,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO;AAAA,EACT;AACA,MAAI,SAAS,KAAK,GAAG;AACnB,QAAI,QAAQ,OAAO,MAAM,WAAW,aAAa,MAAM,QAAO,IAAK;AACnE,YAAQ,SAAS,KAAK,IAAK,QAAQ,KAAM;AAAA,EAC3C;AACA,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO,UAAU,IAAI,QAAQ,CAAC;AAAA,EAChC;AACA,UAAQ,SAAS,KAAK;AACtB,MAAI,WAAW,WAAW,KAAK,KAAK;AACpC,SAAQ,YAAY,UAAU,KAAK,KAAK,IACpC,aAAa,MAAM,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,IAC5C,WAAW,KAAK,KAAK,IAAI,MAAM,CAAC;AACvC;AC1DA,IAAI,WAAW,IAAI,GACf,cAAc;AAyBlB,SAAS,SAAS,OAAO;AACvB,MAAI,CAAC,OAAO;AACV,WAAO,UAAU,IAAI,QAAQ;AAAA,EAC/B;AACA,UAAQ,SAAS,KAAK;AACtB,MAAI,UAAU,YAAY,UAAU,CAAC,UAAU;AAC7C,QAAI,OAAQ,QAAQ,IAAI,KAAK;AAC7B,WAAO,OAAO;AAAA,EAChB;AACA,SAAO,UAAU,QAAQ,QAAQ;AACnC;ACXA,SAAS,UAAU,OAAO;AACxB,MAAI,SAAS,SAAS,KAAK,GACvB,YAAY,SAAS;AAEzB,SAAO,WAAW,SAAU,YAAY,SAAS,YAAY,SAAU;AACzE;ACjBA,SAAS,QAAQ,OAAO;AACtB,MAAI,SAAS,SAAS,OAAO,IAAI,MAAM;AACvC,SAAO,SAAS,YAAY,KAAQ,IAAI,CAAA;AAC1C;ACbA,IAAIA,gBAAc,OAAO;AAGzB,IAAIC,mBAAiBD,cAAY;AAuB9B,IAAC,WAAW,SAAS,SAAS,QAAQ,SAAS;AAChD,WAAS,OAAO,MAAM;AAEtB,MAAI,QAAQ;AACZ,MAAI,SAAS,QAAQ;AACrB,MAAI,QAAQ,SAAS,IAAI,QAAQ,CAAC,IAAI;AAEtC,MAAI,SAAS,eAAe,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,KAAK,GAAG;AAC1D,aAAS;AAAA,EACX;AAEA,SAAO,EAAE,QAAQ,QAAQ;AACvB,QAAI,SAAS,QAAQ,KAAK;AAC1B,QAAI,QAAQ,OAAO,MAAM;AACzB,QAAI,aAAa;AACjB,QAAI,cAAc,MAAM;AAExB,WAAO,EAAE,aAAa,aAAa;AACjC,UAAI,MAAM,MAAM,UAAU;AAC1B,UAAI,QAAQ,OAAO,GAAG;AAEtB,UAAI,UAAU,UACT,GAAG,OAAOA,cAAY,GAAG,CAAC,KAAK,CAACC,iBAAe,KAAK,QAAQ,GAAG,GAAI;AACtE,eAAO,GAAG,IAAI,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT,CAAC;AC/CD,SAAS,KAAK,OAAO;AACnB,MAAI,SAAS,SAAS,OAAO,IAAI,MAAM;AACvC,SAAO,SAAS,MAAM,SAAS,CAAC,IAAI;AACtC;ACNA,SAAS,WAAW,eAAe;AACjC,SAAO,SAAS,YAAY,WAAW,WAAW;AAChD,QAAI,WAAW,OAAO,UAAU;AAChC,QAAI,CAAC,YAAY,UAAU,GAAG;AAC5B,UAAI,WAAW,aAAa,SAAY;AACxC,mBAAa,KAAK,UAAU;AAC5B,kBAAY,SAAS,KAAK;AAAE,eAAO,SAAS,SAAS,GAAG,GAAG,KAAK,QAAQ;AAAA,MAAG;AAAA,IAC7E;AACA,QAAI,QAAQ,cAAc,YAAY,WAAW,SAAS;AAC1D,WAAO,QAAQ,KAAK,SAAS,WAAW,WAAW,KAAK,IAAI,KAAK,IAAI;AAAA,EACvE;AACF;ACjBA,IAAI,YAAY,KAAK;AAqCrB,SAAS,UAAU,OAAO,WAAW,WAAW;AAC9C,MAAI,SAAS,SAAS,OAAO,IAAI,MAAM;AACvC,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,MAAI,QAAQ,aAAa,OAAO,IAAI,UAAU,SAAS;AACvD,MAAI,QAAQ,GAAG;AACb,YAAQ,UAAU,SAAS,OAAO,CAAC;AAAA,EACrC;AACA,SAAO,cAAc,OAAO,aAAa,SAAY,GAAG,KAAK;AAC/D;ACbG,IAAC,OAAO,WAAW,SAAS;AC5B/B,SAAS,QAAQ,YAAY,UAAU;AACrC,MAAI,QAAQ,IACR,SAAS,YAAY,UAAU,IAAI,MAAM,WAAW,MAAM,IAAI,CAAA;AAElE,WAAS,YAAY,SAAS,OAAO,KAAKC,aAAY;AACpD,WAAO,EAAE,KAAK,IAAI,SAAS,OAAO,KAAKA,WAAU;AAAA,EACnD,CAAC;AACD,SAAO;AACT;AC4BA,SAAS,IAAI,YAAY,UAAU;AACjC,MAAI,OAAO,QAAQ,UAAU,IAAI,WAAW;AAC5C,SAAO,KAAK,YAAY,aAAa,QAAW,CAAC;AACnD;ACjDA,IAAI,cAAc,OAAO;AAGzB,IAAI,iBAAiB,YAAY;AAUjC,SAAS,QAAQ,QAAQ,KAAK;AAC5B,SAAO,UAAU,QAAQ,eAAe,KAAK,QAAQ,GAAG;AAC1D;ACcA,SAAS,IAAI,QAAQ,MAAM;AACzB,SAAO,UAAU,QAAQ,QAAQ,QAAQ,MAAM,OAAO;AACxD;ACvBA,SAAS,OAAO,OAAO,OAAO;AAC5B,SAAO,QAAQ;AACjB;ACCA,SAAS,aAAa,OAAO,UAAU,YAAY;AACjD,MAAI,QAAQ,IACR,SAAS,MAAM;AAEnB,SAAO,EAAE,QAAQ,QAAQ;AACvB,QAAI,QAAQ,MAAM,KAAK,GACnB,UAAU,SAAS,KAAK;AAE5B,QAAI,WAAW,SAAS,aAAa,SAC5B,YAAY,WAAW,CAAC,SAAS,OAAO,IACzC,WAAW,SAAS,QAAQ,IAC7B;AACL,UAAI,WAAW,SACX,SAAS;AAAA,IACf;AAAA,EACF;AACA,SAAO;AACT;ACPA,SAAS,IAAI,OAAO;AAClB,SAAQ,SAAS,MAAM,SACnB,aAAa,OAAO,UAAU,MAAM,IACpC;AACN;ACVA,SAAS,QAAQ,QAAQ,MAAM,OAAO,YAAY;AAChD,MAAI,CAAC,SAAS,MAAM,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO,SAAS,MAAM,MAAM;AAE5B,MAAI,QAAQ,IACR,SAAS,KAAK,QACd,YAAY,SAAS,GACrB,SAAS;AAEb,SAAO,UAAU,QAAQ,EAAE,QAAQ,QAAQ;AACzC,QAAI,MAAM,MAAM,KAAK,KAAK,CAAC,GACvB,WAAW;AAEf,QAAI,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,aAAa;AACvE,aAAO;AAAA,IACT;AAEA,QAAI,SAAS,WAAW;AACtB,UAAI,WAAW,OAAO,GAAG;AACzB,iBAA4D;AAC5D,UAAI,aAAa,QAAW;AAC1B,mBAAW,SAAS,QAAQ,IACxB,WACC,QAAQ,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAA,IAAK;MACvC;AAAA,IACF;AACA,gBAAY,QAAQ,KAAK,QAAQ;AACjC,aAAS,OAAO,GAAG;AAAA,EACrB;AACA,SAAO;AACT;ACnCA,SAAS,WAAW,QAAQ,OAAO,WAAW;AAC5C,MAAI,QAAQ,IACR,SAAS,MAAM,QACf,SAAS,CAAA;AAEb,SAAO,EAAE,QAAQ,QAAQ;AACvB,QAAI,OAAO,MAAM,KAAK,GAClB,QAAQ,QAAQ,QAAQ,IAAI;AAEhC,QAAI,UAAU,OAAO,IAAI,GAAG;AAC1B,cAAQ,QAAQ,SAAS,MAAM,MAAM,GAAG,KAAK;AAAA,IAC/C;AAAA,EACF;AACA,SAAO;AACT;","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-D694K6Gh.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-CCGi5dDE.js";
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-BHe1oHIa.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-C3pRnD57.js.map
836
+ //# sourceMappingURL=_baseUniq-ArneQk-G.js.map