pybao-cli 1.5.19 → 1.5.21

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 (156) hide show
  1. package/dist/REPL-64WF5V7K.js +50 -0
  2. package/dist/{acp-VADDAIVV.js → acp-VH2FWCMR.js} +31 -31
  3. package/dist/{agentsValidate-VDPY7LYN.js → agentsValidate-4E7AHAMS.js} +7 -7
  4. package/dist/{ask-4ZMUM73X.js → ask-R3YZ5B44.js} +30 -30
  5. package/dist/{autoUpdater-RIDDLHLH.js → autoUpdater-DCNAXD4F.js} +3 -3
  6. package/dist/{chunk-CGFEVSPI.js → chunk-25GZITCX.js} +3 -3
  7. package/dist/{chunk-2FDZ2PEI.js → chunk-2OOER4FR.js} +3 -3
  8. package/dist/{chunk-7SWRPT6M.js → chunk-3UWTN6DM.js} +3 -3
  9. package/dist/{chunk-VB3UZHV6.js → chunk-4ZGZTWMR.js} +4 -4
  10. package/dist/{chunk-YKSGF3T7.js → chunk-56IL2VXC.js} +1 -1
  11. package/dist/{chunk-TNOZ27TG.js → chunk-5VO2CFAL.js} +2 -2
  12. package/dist/{chunk-ZWB3VSTH.js → chunk-6UNYL6XK.js} +245 -50
  13. package/dist/{chunk-ZWB3VSTH.js.map → chunk-6UNYL6XK.js.map} +3 -3
  14. package/dist/{chunk-277JOCVZ.js → chunk-BED7SG2Q.js} +1 -1
  15. package/dist/{chunk-7I4S6UH7.js → chunk-BRSPPFSY.js} +1 -1
  16. package/dist/{chunk-L6J4MPRE.js → chunk-CPYDPN2J.js} +725 -73
  17. package/dist/{chunk-L6J4MPRE.js.map → chunk-CPYDPN2J.js.map} +2 -2
  18. package/dist/{chunk-PHBWXWFD.js → chunk-CSONCQLF.js} +2 -2
  19. package/dist/{chunk-KP7PMNEW.js → chunk-EP62LHB7.js} +1 -1
  20. package/dist/{chunk-M6CFQRHR.js → chunk-GIXE5FJ2.js} +1 -1
  21. package/dist/{chunk-KX7DKI3A.js → chunk-H2ZE5QDY.js} +4 -4
  22. package/dist/{chunk-M3AEV7WD.js → chunk-HA7FKBZI.js} +2 -2
  23. package/dist/{chunk-RUMV5QOU.js → chunk-KMCUZUZG.js} +3 -3
  24. package/dist/{chunk-JKTDFI2S.js → chunk-LRL3MYKR.js} +3 -3
  25. package/dist/{chunk-3JRH6I43.js → chunk-MMMMRMOG.js} +3 -3
  26. package/dist/{chunk-PXAQPDGS.js → chunk-N3T2WAYN.js} +1 -1
  27. package/dist/{chunk-IYGHQUN2.js → chunk-NRQHLVJJ.js} +2 -2
  28. package/dist/{chunk-CZZKRPE2.js → chunk-P5NTGZ5H.js} +1 -1
  29. package/dist/{chunk-CZZKRPE2.js.map → chunk-P5NTGZ5H.js.map} +1 -1
  30. package/dist/{chunk-7AJ4EUUJ.js → chunk-QE7PZPHW.js} +1 -1
  31. package/dist/{chunk-FYOORPZ4.js → chunk-RQ5X6LFM.js} +4 -4
  32. package/dist/{chunk-JR5WF5M6.js → chunk-SE7UGQCE.js} +2 -2
  33. package/dist/{chunk-LXJUYOGP.js → chunk-TBEA6BY3.js} +1 -1
  34. package/dist/{chunk-MRG76U66.js → chunk-TSAURYF2.js} +1 -1
  35. package/dist/{chunk-CEHSLEJ3.js → chunk-TXZ5UTGP.js} +1 -1
  36. package/dist/{chunk-CEHSLEJ3.js.map → chunk-TXZ5UTGP.js.map} +1 -1
  37. package/dist/{chunk-VSKWAGTO.js → chunk-VP5A6FKG.js} +1 -1
  38. package/dist/{chunk-PJ2XKKDM.js → chunk-VY5KEHU5.js} +3 -3
  39. package/dist/{chunk-JTRFDGES.js → chunk-X5LLT4P2.js} +1 -1
  40. package/dist/{chunk-KRBHZ2NW.js → chunk-XRLMQN3Q.js} +4 -4
  41. package/dist/{chunk-BPY6R2EU.js → chunk-YQ2RQUQF.js} +1 -1
  42. package/dist/{chunk-OMCKTGQ5.js → chunk-ZQR3MM2D.js} +17 -2
  43. package/dist/{chunk-OMCKTGQ5.js.map → chunk-ZQR3MM2D.js.map} +2 -2
  44. package/dist/{cli-AK6CYCFX.js → cli-RBMZQ5KF.js} +103 -92
  45. package/dist/cli-RBMZQ5KF.js.map +7 -0
  46. package/dist/commands-WPHK776A.js +54 -0
  47. package/dist/{config-FLSTRDUK.js → config-7TO5SQU5.js} +4 -4
  48. package/dist/{context-JQKLNDEK.js → context-LRA2DKJT.js} +6 -6
  49. package/dist/{conversationPersistence-RVLIJAVU.js → conversationPersistence-Z4QSI5NB.js} +3 -3
  50. package/dist/{conversationTracker-5HLVM6IU.js → conversationTracker-B3DMEHMA.js} +4 -4
  51. package/dist/{customCommands-J2RH24UE.js → customCommands-6JZ2VUO2.js} +4 -4
  52. package/dist/{env-PWLMV4WE.js → env-37ALKFXU.js} +2 -2
  53. package/dist/{file-LY2Z6EYX.js → file-7EOMBX72.js} +4 -4
  54. package/dist/index.js +3 -3
  55. package/dist/{llm-RRAVQWE3.js → llm-3KQG5NEP.js} +31 -31
  56. package/dist/{llmLazy-LRW757BZ.js → llmLazy-ENEH3KAB.js} +1 -1
  57. package/dist/{loader-2LT2GMMI.js → loader-D6V3WFL6.js} +4 -4
  58. package/dist/{lsp-XVTWUOP7.js → lsp-CTPOMI7O.js} +6 -6
  59. package/dist/{lspAnchor-WIAD4UCJ.js → lspAnchor-PPPTHRQH.js} +6 -6
  60. package/dist/{mcp-NNXV4YW5.js → mcp-6M34WBA5.js} +7 -7
  61. package/dist/{mentionProcessor-YXD3BYZG.js → mentionProcessor-TS4SITI3.js} +5 -5
  62. package/dist/{messages-JJ6XSPH4.js → messages-BINU6SYX.js} +1 -1
  63. package/dist/{model-SHEZI5VH.js → model-6IW224UU.js} +5 -5
  64. package/dist/{openai-MAEDGVOM.js → openai-O6CGVMYK.js} +5 -5
  65. package/dist/{outputStyles-Y5T4PH3H.js → outputStyles-7PPMLSV6.js} +4 -4
  66. package/dist/{pluginRuntime-EA5NXHW2.js → pluginRuntime-RU5STQ6F.js} +6 -6
  67. package/dist/{pluginValidation-AA3RZDZQ.js → pluginValidation-JTJTB3TB.js} +6 -6
  68. package/dist/prompts-CAPCICF3.js +56 -0
  69. package/dist/{pybAgentSessionLoad-DKPYB2WI.js → pybAgentSessionLoad-ZXQAHTQS.js} +4 -4
  70. package/dist/{pybAgentSessionResume-QBNQXHZX.js → pybAgentSessionResume-R73KFN3V.js} +4 -4
  71. package/dist/{pybAgentStreamJsonSession-5PBYWXYX.js → pybAgentStreamJsonSession-N4SMTC64.js} +1 -1
  72. package/dist/{pybHooks-66OQ6DF7.js → pybHooks-NGJ5OFAI.js} +4 -4
  73. package/dist/query-CYTIVMQ6.js +54 -0
  74. package/dist/{registry-3YQQGXL6.js → registry-FKY6JQ3L.js} +5 -5
  75. package/dist/{ripgrep-ZHLMP6TJ.js → ripgrep-O7MOW25M.js} +3 -3
  76. package/dist/{skillMarketplace-TXDXKVDH.js → skillMarketplace-VK3AYR6Q.js} +3 -3
  77. package/dist/{state-YDKD6B6T.js → state-T57IG35V.js} +2 -2
  78. package/dist/{theme-WSG2IX32.js → theme-ZEFQIPVH.js} +5 -5
  79. package/dist/{toolPermissionSettings-26CM7QG5.js → toolPermissionSettings-ERNXVP7A.js} +6 -6
  80. package/dist/tools-2XLLIKZM.js +55 -0
  81. package/dist/{userInput-BFWEIUZE.js → userInput-JBAUBHGI.js} +33 -33
  82. package/package.json +1 -1
  83. package/dist/REPL-GNHAV3LL.js +0 -50
  84. package/dist/cli-AK6CYCFX.js.map +0 -7
  85. package/dist/commands-5WWNVLIZ.js +0 -54
  86. package/dist/prompts-PMRRQP3L.js +0 -56
  87. package/dist/query-RHLO6AS2.js +0 -54
  88. package/dist/tools-4HKXD3DV.js +0 -55
  89. /package/dist/{REPL-GNHAV3LL.js.map → REPL-64WF5V7K.js.map} +0 -0
  90. /package/dist/{acp-VADDAIVV.js.map → acp-VH2FWCMR.js.map} +0 -0
  91. /package/dist/{agentsValidate-VDPY7LYN.js.map → agentsValidate-4E7AHAMS.js.map} +0 -0
  92. /package/dist/{ask-4ZMUM73X.js.map → ask-R3YZ5B44.js.map} +0 -0
  93. /package/dist/{autoUpdater-RIDDLHLH.js.map → autoUpdater-DCNAXD4F.js.map} +0 -0
  94. /package/dist/{chunk-CGFEVSPI.js.map → chunk-25GZITCX.js.map} +0 -0
  95. /package/dist/{chunk-2FDZ2PEI.js.map → chunk-2OOER4FR.js.map} +0 -0
  96. /package/dist/{chunk-7SWRPT6M.js.map → chunk-3UWTN6DM.js.map} +0 -0
  97. /package/dist/{chunk-VB3UZHV6.js.map → chunk-4ZGZTWMR.js.map} +0 -0
  98. /package/dist/{chunk-YKSGF3T7.js.map → chunk-56IL2VXC.js.map} +0 -0
  99. /package/dist/{chunk-TNOZ27TG.js.map → chunk-5VO2CFAL.js.map} +0 -0
  100. /package/dist/{chunk-277JOCVZ.js.map → chunk-BED7SG2Q.js.map} +0 -0
  101. /package/dist/{chunk-7I4S6UH7.js.map → chunk-BRSPPFSY.js.map} +0 -0
  102. /package/dist/{chunk-PHBWXWFD.js.map → chunk-CSONCQLF.js.map} +0 -0
  103. /package/dist/{chunk-KP7PMNEW.js.map → chunk-EP62LHB7.js.map} +0 -0
  104. /package/dist/{chunk-M6CFQRHR.js.map → chunk-GIXE5FJ2.js.map} +0 -0
  105. /package/dist/{chunk-KX7DKI3A.js.map → chunk-H2ZE5QDY.js.map} +0 -0
  106. /package/dist/{chunk-M3AEV7WD.js.map → chunk-HA7FKBZI.js.map} +0 -0
  107. /package/dist/{chunk-RUMV5QOU.js.map → chunk-KMCUZUZG.js.map} +0 -0
  108. /package/dist/{chunk-JKTDFI2S.js.map → chunk-LRL3MYKR.js.map} +0 -0
  109. /package/dist/{chunk-3JRH6I43.js.map → chunk-MMMMRMOG.js.map} +0 -0
  110. /package/dist/{chunk-PXAQPDGS.js.map → chunk-N3T2WAYN.js.map} +0 -0
  111. /package/dist/{chunk-IYGHQUN2.js.map → chunk-NRQHLVJJ.js.map} +0 -0
  112. /package/dist/{chunk-7AJ4EUUJ.js.map → chunk-QE7PZPHW.js.map} +0 -0
  113. /package/dist/{chunk-FYOORPZ4.js.map → chunk-RQ5X6LFM.js.map} +0 -0
  114. /package/dist/{chunk-JR5WF5M6.js.map → chunk-SE7UGQCE.js.map} +0 -0
  115. /package/dist/{chunk-LXJUYOGP.js.map → chunk-TBEA6BY3.js.map} +0 -0
  116. /package/dist/{chunk-MRG76U66.js.map → chunk-TSAURYF2.js.map} +0 -0
  117. /package/dist/{chunk-VSKWAGTO.js.map → chunk-VP5A6FKG.js.map} +0 -0
  118. /package/dist/{chunk-PJ2XKKDM.js.map → chunk-VY5KEHU5.js.map} +0 -0
  119. /package/dist/{chunk-JTRFDGES.js.map → chunk-X5LLT4P2.js.map} +0 -0
  120. /package/dist/{chunk-KRBHZ2NW.js.map → chunk-XRLMQN3Q.js.map} +0 -0
  121. /package/dist/{chunk-BPY6R2EU.js.map → chunk-YQ2RQUQF.js.map} +0 -0
  122. /package/dist/{commands-5WWNVLIZ.js.map → commands-WPHK776A.js.map} +0 -0
  123. /package/dist/{config-FLSTRDUK.js.map → config-7TO5SQU5.js.map} +0 -0
  124. /package/dist/{context-JQKLNDEK.js.map → context-LRA2DKJT.js.map} +0 -0
  125. /package/dist/{conversationPersistence-RVLIJAVU.js.map → conversationPersistence-Z4QSI5NB.js.map} +0 -0
  126. /package/dist/{conversationTracker-5HLVM6IU.js.map → conversationTracker-B3DMEHMA.js.map} +0 -0
  127. /package/dist/{customCommands-J2RH24UE.js.map → customCommands-6JZ2VUO2.js.map} +0 -0
  128. /package/dist/{env-PWLMV4WE.js.map → env-37ALKFXU.js.map} +0 -0
  129. /package/dist/{file-LY2Z6EYX.js.map → file-7EOMBX72.js.map} +0 -0
  130. /package/dist/{llm-RRAVQWE3.js.map → llm-3KQG5NEP.js.map} +0 -0
  131. /package/dist/{llmLazy-LRW757BZ.js.map → llmLazy-ENEH3KAB.js.map} +0 -0
  132. /package/dist/{loader-2LT2GMMI.js.map → loader-D6V3WFL6.js.map} +0 -0
  133. /package/dist/{lsp-XVTWUOP7.js.map → lsp-CTPOMI7O.js.map} +0 -0
  134. /package/dist/{lspAnchor-WIAD4UCJ.js.map → lspAnchor-PPPTHRQH.js.map} +0 -0
  135. /package/dist/{mcp-NNXV4YW5.js.map → mcp-6M34WBA5.js.map} +0 -0
  136. /package/dist/{mentionProcessor-YXD3BYZG.js.map → mentionProcessor-TS4SITI3.js.map} +0 -0
  137. /package/dist/{messages-JJ6XSPH4.js.map → messages-BINU6SYX.js.map} +0 -0
  138. /package/dist/{model-SHEZI5VH.js.map → model-6IW224UU.js.map} +0 -0
  139. /package/dist/{openai-MAEDGVOM.js.map → openai-O6CGVMYK.js.map} +0 -0
  140. /package/dist/{outputStyles-Y5T4PH3H.js.map → outputStyles-7PPMLSV6.js.map} +0 -0
  141. /package/dist/{pluginRuntime-EA5NXHW2.js.map → pluginRuntime-RU5STQ6F.js.map} +0 -0
  142. /package/dist/{pluginValidation-AA3RZDZQ.js.map → pluginValidation-JTJTB3TB.js.map} +0 -0
  143. /package/dist/{prompts-PMRRQP3L.js.map → prompts-CAPCICF3.js.map} +0 -0
  144. /package/dist/{pybAgentSessionLoad-DKPYB2WI.js.map → pybAgentSessionLoad-ZXQAHTQS.js.map} +0 -0
  145. /package/dist/{pybAgentSessionResume-QBNQXHZX.js.map → pybAgentSessionResume-R73KFN3V.js.map} +0 -0
  146. /package/dist/{pybAgentStreamJsonSession-5PBYWXYX.js.map → pybAgentStreamJsonSession-N4SMTC64.js.map} +0 -0
  147. /package/dist/{pybHooks-66OQ6DF7.js.map → pybHooks-NGJ5OFAI.js.map} +0 -0
  148. /package/dist/{query-RHLO6AS2.js.map → query-CYTIVMQ6.js.map} +0 -0
  149. /package/dist/{registry-3YQQGXL6.js.map → registry-FKY6JQ3L.js.map} +0 -0
  150. /package/dist/{ripgrep-ZHLMP6TJ.js.map → ripgrep-O7MOW25M.js.map} +0 -0
  151. /package/dist/{skillMarketplace-TXDXKVDH.js.map → skillMarketplace-VK3AYR6Q.js.map} +0 -0
  152. /package/dist/{state-YDKD6B6T.js.map → state-T57IG35V.js.map} +0 -0
  153. /package/dist/{theme-WSG2IX32.js.map → theme-ZEFQIPVH.js.map} +0 -0
  154. /package/dist/{toolPermissionSettings-26CM7QG5.js.map → toolPermissionSettings-ERNXVP7A.js.map} +0 -0
  155. /package/dist/{tools-4HKXD3DV.js.map → tools-2XLLIKZM.js.map} +0 -0
  156. /package/dist/{userInput-BFWEIUZE.js.map → userInput-JBAUBHGI.js.map} +0 -0
@@ -2,18 +2,18 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  loadPybAgentSessionMessages
5
- } from "./chunk-PXAQPDGS.js";
5
+ } from "./chunk-N3T2WAYN.js";
6
6
  import {
7
7
  listPybAgentSessions
8
- } from "./chunk-7I4S6UH7.js";
8
+ } from "./chunk-BRSPPFSY.js";
9
9
  import {
10
10
  appendSessionCustomTitleRecord,
11
11
  appendSessionTagRecord
12
- } from "./chunk-MRG76U66.js";
12
+ } from "./chunk-TSAURYF2.js";
13
13
  import {
14
14
  formatValidationResult,
15
15
  validatePluginOrMarketplacePath
16
- } from "./chunk-JKTDFI2S.js";
16
+ } from "./chunk-LRL3MYKR.js";
17
17
  import {
18
18
  ConversationTracker,
19
19
  appendFinishState,
@@ -21,10 +21,10 @@ import {
21
21
  getConversationTrackerForContext,
22
22
  isFinishComplete,
23
23
  mapFinishReason
24
- } from "./chunk-M6CFQRHR.js";
24
+ } from "./chunk-GIXE5FJ2.js";
25
25
  import {
26
26
  FileSystemConversationPersistence
27
- } from "./chunk-KP7PMNEW.js";
27
+ } from "./chunk-EP62LHB7.js";
28
28
  import {
29
29
  beginReplSessionScope
30
30
  } from "./chunk-F4AXICO7.js";
@@ -39,7 +39,7 @@ import {
39
39
  runStopHooks,
40
40
  runUserPromptSubmitHooks,
41
41
  updateHookTranscriptForMessages
42
- } from "./chunk-2FDZ2PEI.js";
42
+ } from "./chunk-2OOER4FR.js";
43
43
  import {
44
44
  DEFAULT_OUTPUT_STYLE,
45
45
  getAvailableOutputStyles,
@@ -48,11 +48,11 @@ import {
48
48
  getOutputStyleSystemPromptAdditions,
49
49
  resolveOutputStyleName,
50
50
  setCurrentOutputStyle
51
- } from "./chunk-JR5WF5M6.js";
51
+ } from "./chunk-SE7UGQCE.js";
52
52
  import {
53
53
  fetchCustomModels,
54
54
  getModelFeatures
55
- } from "./chunk-PHBWXWFD.js";
55
+ } from "./chunk-CSONCQLF.js";
56
56
  import {
57
57
  getSessionState
58
58
  } from "./chunk-XKYHFZEC.js";
@@ -60,7 +60,7 @@ import {
60
60
  queryLLM,
61
61
  queryQuick,
62
62
  verifyApiKey
63
- } from "./chunk-VB3UZHV6.js";
63
+ } from "./chunk-4ZGZTWMR.js";
64
64
  import {
65
65
  DEFAULT_TIMEOUT_MS,
66
66
  FallbackToolUseRejectedMessage,
@@ -74,7 +74,7 @@ import {
74
74
  listMCPServers,
75
75
  loadMergedSettings,
76
76
  normalizeSandboxRuntimeConfigFromSettings
77
- } from "./chunk-KX7DKI3A.js";
77
+ } from "./chunk-H2ZE5QDY.js";
78
78
  import {
79
79
  addMarketplace,
80
80
  disableSkillPlugin,
@@ -87,11 +87,11 @@ import {
87
87
  refreshMarketplaceAsync,
88
88
  removeMarketplace,
89
89
  uninstallSkillPlugin
90
- } from "./chunk-7AJ4EUUJ.js";
90
+ } from "./chunk-QE7PZPHW.js";
91
91
  import {
92
92
  loadToolPermissionContextFromDisk,
93
93
  persistToolPermissionUpdateToDisk
94
- } from "./chunk-RUMV5QOU.js";
94
+ } from "./chunk-KMCUZUZG.js";
95
95
  import {
96
96
  applyToolPermissionContextUpdate,
97
97
  applyToolPermissionContextUpdates,
@@ -102,13 +102,13 @@ import {
102
102
  generateSystemReminders,
103
103
  resetReminderSession,
104
104
  systemReminderService
105
- } from "./chunk-OMCKTGQ5.js";
105
+ } from "./chunk-ZQR3MM2D.js";
106
106
  import {
107
107
  clearAgentCache,
108
108
  getActiveAgents,
109
109
  getAgentByType,
110
110
  getAllAgents
111
- } from "./chunk-IYGHQUN2.js";
111
+ } from "./chunk-NRQHLVJJ.js";
112
112
  import {
113
113
  API_ERROR_MESSAGE_PREFIX,
114
114
  CANCEL_MESSAGE,
@@ -145,7 +145,7 @@ import {
145
145
  reorderMessages,
146
146
  resetAutoCompactTelemetry,
147
147
  stripSystemMessages
148
- } from "./chunk-BPY6R2EU.js";
148
+ } from "./chunk-YQ2RQUQF.js";
149
149
  import {
150
150
  getRequestStatus,
151
151
  setRequestStatus,
@@ -175,7 +175,7 @@ import {
175
175
  normalizeFilePath,
176
176
  readTextContent,
177
177
  writeTextContent
178
- } from "./chunk-M3AEV7WD.js";
178
+ } from "./chunk-HA7FKBZI.js";
179
179
  import {
180
180
  parseBlockEdits
181
181
  } from "./chunk-QWIBSCDN.js";
@@ -185,18 +185,18 @@ import {
185
185
  ParserRegistry,
186
186
  initParser,
187
187
  loadLanguage
188
- } from "./chunk-KRBHZ2NW.js";
188
+ } from "./chunk-XRLMQN3Q.js";
189
189
  import {
190
190
  getSettingsFileCandidates,
191
191
  loadSettingsWithLegacyFallback,
192
192
  readSettingsFile
193
- } from "./chunk-JTRFDGES.js";
193
+ } from "./chunk-X5LLT4P2.js";
194
194
  import {
195
195
  getCustomCommandDirectories,
196
196
  hasCustomCommands,
197
197
  loadCustomCommands,
198
198
  reloadCustomCommands
199
- } from "./chunk-TNOZ27TG.js";
199
+ } from "./chunk-5VO2CFAL.js";
200
200
  import {
201
201
  getSessionPlugins
202
202
  } from "./chunk-BJSWTHRM.js";
@@ -205,7 +205,7 @@ import {
205
205
  buildModelProfileKey,
206
206
  getModelManager,
207
207
  isDefaultSlowAndCapableModel
208
- } from "./chunk-CGFEVSPI.js";
208
+ } from "./chunk-25GZITCX.js";
209
209
  import {
210
210
  getCodeStyle,
211
211
  getContext,
@@ -213,16 +213,16 @@ import {
213
213
  getIsGit,
214
214
  getProjectDocs,
215
215
  getProjectStructureStatisticsBlock
216
- } from "./chunk-FYOORPZ4.js";
216
+ } from "./chunk-RQ5X6LFM.js";
217
217
  import {
218
218
  getRipgrepPath,
219
219
  getRipgrepPolicyMode,
220
220
  resolveRipgrepPolicy,
221
221
  ripGrep
222
- } from "./chunk-277JOCVZ.js";
222
+ } from "./chunk-BED7SG2Q.js";
223
223
  import {
224
224
  getTheme
225
- } from "./chunk-YKSGF3T7.js";
225
+ } from "./chunk-56IL2VXC.js";
226
226
  import {
227
227
  DEFAULT_GLOBAL_CONFIG,
228
228
  enableConfigs,
@@ -235,7 +235,7 @@ import {
235
235
  saveGlobalConfig,
236
236
  setAllPointersToModel,
237
237
  setModelPointer
238
- } from "./chunk-7SWRPT6M.js";
238
+ } from "./chunk-3UWTN6DM.js";
239
239
  import {
240
240
  AbortError
241
241
  } from "./chunk-RQVLBMP7.js";
@@ -244,7 +244,7 @@ import {
244
244
  getCurrentRequest,
245
245
  logUserFriendly,
246
246
  markPhase
247
- } from "./chunk-LXJUYOGP.js";
247
+ } from "./chunk-TBEA6BY3.js";
248
248
  import {
249
249
  ASCII_LOGO,
250
250
  BunShell,
@@ -285,10 +285,10 @@ import {
285
285
  setCwd,
286
286
  shouldApplyToolOutputTruncation,
287
287
  truncateToolOutput
288
- } from "./chunk-VSKWAGTO.js";
288
+ } from "./chunk-VP5A6FKG.js";
289
289
  import {
290
290
  MACRO
291
- } from "./chunk-CEHSLEJ3.js";
291
+ } from "./chunk-TXZ5UTGP.js";
292
292
  import {
293
293
  __export
294
294
  } from "./chunk-I3J4JYES.js";
@@ -469,7 +469,7 @@ var getCommandSubcommandPrefix = memoize(
469
469
  var getCommandPrefix = memoize(
470
470
  async (command4, abortSignal) => {
471
471
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
472
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-RRAVQWE3.js");
472
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-3KQG5NEP.js");
473
473
  const response = await queryQuick2({
474
474
  systemPrompt,
475
475
  userPrompt,
@@ -4271,7 +4271,7 @@ function formatParseError(error) {
4271
4271
  return error instanceof Error ? error.message : String(error);
4272
4272
  }
4273
4273
  async function defaultGateQuery(args) {
4274
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-RRAVQWE3.js");
4274
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-3KQG5NEP.js");
4275
4275
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4276
4276
  const messages = [
4277
4277
  {
@@ -6664,7 +6664,7 @@ var FileEditTool = {
6664
6664
  const originalFileContent = currentFileContent;
6665
6665
  let totalPatch = [];
6666
6666
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6667
- const { findLspAnchor } = await import("./lspAnchor-WIAD4UCJ.js");
6667
+ const { findLspAnchor } = await import("./lspAnchor-PPPTHRQH.js");
6668
6668
  for (const op of editOperations) {
6669
6669
  const normalizedSearch = normalizeLineEndings(op.search);
6670
6670
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -12149,7 +12149,7 @@ async function createAndStoreApiKey(accessToken) {
12149
12149
  }
12150
12150
  saveGlobalConfig(config2);
12151
12151
  try {
12152
- const { resetAnthropicClient } = await import("./llm-RRAVQWE3.js");
12152
+ const { resetAnthropicClient } = await import("./llm-3KQG5NEP.js");
12153
12153
  resetAnthropicClient();
12154
12154
  } catch {
12155
12155
  }
@@ -16573,7 +16573,7 @@ async function refreshPluginRuntimeFromInstalls() {
16573
16573
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
16574
16574
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
16575
16575
  if (dirs.length === 0) return [];
16576
- const { configureSessionPlugins } = await import("./pluginRuntime-EA5NXHW2.js");
16576
+ const { configureSessionPlugins } = await import("./pluginRuntime-RU5STQ6F.js");
16577
16577
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
16578
16578
  return errors;
16579
16579
  }
@@ -17248,7 +17248,7 @@ async function call(onDone, context) {
17248
17248
  ModelConfig,
17249
17249
  {
17250
17250
  onClose: () => {
17251
- import("./model-SHEZI5VH.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17251
+ import("./model-6IW224UU.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17252
17252
  reloadModelManager2();
17253
17253
  triggerModelConfigChange();
17254
17254
  onDone();
@@ -20424,11 +20424,55 @@ function rebuildBlocksForTasks(tasks) {
20424
20424
  blockedBy: normalizeIds(task.blockedBy)
20425
20425
  }));
20426
20426
  }
20427
+ function stripTerminalBlockers(tasks) {
20428
+ const terminalIds = new Set(
20429
+ tasks.filter((task) => task.status === "done" || task.status === "deleted").map((task) => task.id)
20430
+ );
20431
+ if (terminalIds.size === 0) {
20432
+ return { tasks, fixedTaskIds: [], issues: [] };
20433
+ }
20434
+ const fixedTaskIds = /* @__PURE__ */ new Set();
20435
+ const issues = [];
20436
+ const cleaned = tasks.map((task) => {
20437
+ if ((task.status === "done" || task.status === "deleted") && Array.isArray(task.blocks) && task.blocks.length > 0) {
20438
+ fixedTaskIds.add(task.id);
20439
+ issues.push({
20440
+ taskId: task.id,
20441
+ issue: `terminal task retained blocks: ${task.blocks.join(",")}`,
20442
+ fixed: true
20443
+ });
20444
+ return {
20445
+ ...task,
20446
+ blocks: []
20447
+ };
20448
+ }
20449
+ const blockedBy = task.blockedBy ?? [];
20450
+ const invalid = blockedBy.filter((id) => terminalIds.has(id));
20451
+ if (invalid.length === 0) return task;
20452
+ fixedTaskIds.add(task.id);
20453
+ issues.push({
20454
+ taskId: task.id,
20455
+ issue: `blockedBy contained terminal tasks: ${invalid.join(",")}`,
20456
+ fixed: true
20457
+ });
20458
+ return {
20459
+ ...task,
20460
+ blockedBy: blockedBy.filter((id) => !terminalIds.has(id))
20461
+ };
20462
+ });
20463
+ return {
20464
+ tasks: cleaned,
20465
+ fixedTaskIds: Array.from(fixedTaskIds),
20466
+ issues
20467
+ };
20468
+ }
20427
20469
  function persistBlocksForPaths(paths) {
20428
20470
  const tasks = readTasksFromDisk(paths);
20429
- const rebuilt = rebuildBlocksForTasks(tasks);
20471
+ const terminalCleanup = stripTerminalBlockers(tasks);
20472
+ const rebuilt = rebuildBlocksForTasks(terminalCleanup.tasks);
20430
20473
  const byId = new Map(tasks.map((task) => [task.id, task]));
20431
20474
  let updated = 0;
20475
+ const fixedTaskIdSet = new Set(terminalCleanup.fixedTaskIds);
20432
20476
  for (const task of rebuilt) {
20433
20477
  const existing = byId.get(task.id);
20434
20478
  const prevBlocks = normalizeIds(existing?.blocks);
@@ -20445,9 +20489,15 @@ function persistBlocksForPaths(paths) {
20445
20489
  if (!blocksChanged && !blockedByChanged && !missingBlocks && !missingBlockedBy)
20446
20490
  continue;
20447
20491
  updated += 1;
20492
+ fixedTaskIdSet.add(task.id);
20448
20493
  writeJsonAtomic(join8(paths.tasksDir, `${task.id}.json`), serializeTaskRecord(task));
20449
20494
  }
20450
- return { updated, total: rebuilt.length };
20495
+ return {
20496
+ updated,
20497
+ total: rebuilt.length,
20498
+ fixedTaskIds: Array.from(fixedTaskIdSet),
20499
+ issues: terminalCleanup.issues
20500
+ };
20451
20501
  }
20452
20502
  function applyLegacyBlocks(tasks) {
20453
20503
  const byId = /* @__PURE__ */ new Map();
@@ -20646,6 +20696,84 @@ function applyTaskUpdates(task, updates) {
20646
20696
  blockedBy
20647
20697
  };
20648
20698
  }
20699
+ function parseBooleanFlag(value) {
20700
+ const raw = String(value ?? "").trim().toLowerCase();
20701
+ if (["1", "true", "yes", "on"].includes(raw)) return true;
20702
+ if (["0", "false", "no", "off"].includes(raw)) return false;
20703
+ return null;
20704
+ }
20705
+ function isActiveUnlockEnabled() {
20706
+ const parsed = parseBooleanFlag(process.env.PYB_TASK_ACTIVE_UNLOCK_ENABLED);
20707
+ return parsed === true;
20708
+ }
20709
+ function getTaskActiveUnlockGateStatus() {
20710
+ const value = process.env.PYB_TASK_ACTIVE_UNLOCK_ENABLED;
20711
+ const enabled = isActiveUnlockEnabled();
20712
+ return {
20713
+ enabled,
20714
+ mode: enabled ? "active_write" : "read_compute",
20715
+ env: {
20716
+ key: "PYB_TASK_ACTIVE_UNLOCK_ENABLED",
20717
+ value: value ?? null
20718
+ },
20719
+ thresholds: {
20720
+ unlock_propagation_success_rate: 0.999,
20721
+ unlock_write_latency_p99: 100,
20722
+ unlock_partial_write_repair_rate: 1,
20723
+ task_update_continuity_hit_rate: 0.95
20724
+ },
20725
+ rollback: {
20726
+ disableEnv: "PYB_TASK_ACTIVE_UNLOCK_ENABLED=false",
20727
+ rebuildCommand: "pyb task rebuild-blocks"
20728
+ }
20729
+ };
20730
+ }
20731
+ function clearDependencyOnCompletion(completedId, tasks) {
20732
+ const unblocked = [];
20733
+ const partiallyUnblocked = [];
20734
+ const readyNow = [];
20735
+ const touchedTaskIds = /* @__PURE__ */ new Set();
20736
+ const updatedTasks = tasks.map((task) => {
20737
+ if (task.id === completedId) return task;
20738
+ const blockedBy = task.blockedBy ?? [];
20739
+ if (!blockedBy.includes(completedId)) return task;
20740
+ const nextBlockedBy = blockedBy.filter((id) => id !== completedId);
20741
+ const nextTask = {
20742
+ ...task,
20743
+ blockedBy: nextBlockedBy
20744
+ };
20745
+ touchedTaskIds.add(task.id);
20746
+ if (nextBlockedBy.length === 0) {
20747
+ unblocked.push(nextTask);
20748
+ if (nextTask.status === "pending") {
20749
+ readyNow.push(nextTask);
20750
+ }
20751
+ } else {
20752
+ partiallyUnblocked.push({
20753
+ task: nextTask,
20754
+ remainingBlockers: nextBlockedBy
20755
+ });
20756
+ }
20757
+ return nextTask;
20758
+ });
20759
+ const touchedTaskIdsArray = Array.from(touchedTaskIds);
20760
+ const updatedWithReverseCleanup = updatedTasks.map((task) => {
20761
+ if (task.id !== completedId) return task;
20762
+ if (!Array.isArray(task.blocks) || task.blocks.length === 0) return task;
20763
+ return {
20764
+ ...task,
20765
+ blocks: task.blocks.filter((id) => !touchedTaskIds.has(id))
20766
+ };
20767
+ });
20768
+ return {
20769
+ tasks: updatedWithReverseCleanup,
20770
+ unblocked,
20771
+ partiallyUnblocked,
20772
+ readyNow,
20773
+ readyNowIds: readyNow.map((task) => task.id),
20774
+ touchedTaskIds: touchedTaskIdsArray
20775
+ };
20776
+ }
20649
20777
  function createTask(input, options) {
20650
20778
  if (input.status === "open") {
20651
20779
  throw new Error("Task status open is not supported");
@@ -20720,18 +20848,84 @@ function updateTask(id, updates, options) {
20720
20848
  throw new Error(`Task ${id} not found`);
20721
20849
  }
20722
20850
  return withTaskListLock(target, () => {
20723
- const existing = readTaskFile(join8(target.tasksDir, `${id}.json`));
20851
+ const allBefore = readTasksFromDisk(target);
20852
+ const existing = allBefore.find((task) => task.id === id) ?? null;
20724
20853
  if (!existing) {
20725
20854
  throw new Error(`Task ${id} not found`);
20726
20855
  }
20727
20856
  const updated = applyTaskUpdates(existing, updates);
20728
- writeJsonAtomic(join8(target.tasksDir, `${id}.json`), serializeTaskRecord(updated));
20857
+ const byId = new Map(allBefore.map((task) => [task.id, task]));
20858
+ byId.set(updated.id, updated);
20859
+ let unlockResult;
20860
+ if (isActiveUnlockEnabled() && existing.status !== updated.status && (updated.status === "done" || updated.status === "deleted")) {
20861
+ const propagation = clearDependencyOnCompletion(
20862
+ updated.id,
20863
+ Array.from(byId.values())
20864
+ );
20865
+ for (const task of propagation.tasks) {
20866
+ byId.set(task.id, task);
20867
+ }
20868
+ unlockResult = {
20869
+ unblocked: propagation.unblocked,
20870
+ partiallyUnblocked: propagation.partiallyUnblocked,
20871
+ readyNow: propagation.readyNow,
20872
+ unlockSummary: {
20873
+ touchedTaskIds: propagation.touchedTaskIds,
20874
+ propagatedFromTaskId: updated.id,
20875
+ readyNowIds: propagation.readyNowIds
20876
+ }
20877
+ };
20878
+ }
20879
+ const allAfter = Array.from(byId.values()).sort((a, b) => Number(a.id) - Number(b.id));
20880
+ const beforeById = new Map(allBefore.map((task) => [task.id, task]));
20881
+ const forceWriteIds = /* @__PURE__ */ new Set();
20882
+ if (unlockResult) {
20883
+ forceWriteIds.add(updated.id);
20884
+ for (const taskId of unlockResult.unlockSummary.touchedTaskIds) {
20885
+ forceWriteIds.add(taskId);
20886
+ }
20887
+ }
20888
+ for (const task of allAfter) {
20889
+ if (forceWriteIds.has(task.id)) {
20890
+ writeJsonAtomic(join8(target.tasksDir, `${task.id}.json`), serializeTaskRecord(task));
20891
+ continue;
20892
+ }
20893
+ const prev = beforeById.get(task.id);
20894
+ if (!prev) {
20895
+ writeJsonAtomic(join8(target.tasksDir, `${task.id}.json`), serializeTaskRecord(task));
20896
+ continue;
20897
+ }
20898
+ const prevSerialized = JSON.stringify(serializeTaskRecord(prev));
20899
+ const nextSerialized = JSON.stringify(serializeTaskRecord(task));
20900
+ if (prevSerialized === nextSerialized) continue;
20901
+ writeJsonAtomic(join8(target.tasksDir, `${task.id}.json`), serializeTaskRecord(task));
20902
+ }
20729
20903
  const depsChanged = normalizeIds(existing.blockedBy).join(",") !== normalizeIds(updated.blockedBy).join(",") || normalizeIds(existing.blocks).join(",") !== normalizeIds(updated.blocks).join(",");
20730
- if (depsChanged) {
20904
+ if (depsChanged || Boolean(unlockResult)) {
20731
20905
  persistBlocksForPaths(target);
20732
20906
  }
20733
20907
  const refreshed = buildTaskListForPaths(target).find((task) => task.id === updated.id);
20734
- return { task: refreshed ?? updated };
20908
+ if (!unlockResult) {
20909
+ return { task: refreshed ?? updated };
20910
+ }
20911
+ const refreshedList = buildTaskListForPaths(target);
20912
+ const refreshedById = new Map(refreshedList.map((task) => [task.id, task]));
20913
+ return {
20914
+ task: refreshed ?? updated,
20915
+ unlockResult: {
20916
+ unblocked: unlockResult.unblocked.map(
20917
+ (task) => refreshedById.get(task.id) ?? task
20918
+ ),
20919
+ partiallyUnblocked: unlockResult.partiallyUnblocked.map((item) => ({
20920
+ task: refreshedById.get(item.task.id) ?? item.task,
20921
+ remainingBlockers: item.remainingBlockers
20922
+ })),
20923
+ readyNow: unlockResult.readyNow.map(
20924
+ (task) => refreshedById.get(task.id) ?? task
20925
+ ),
20926
+ unlockSummary: unlockResult.unlockSummary
20927
+ }
20928
+ };
20735
20929
  });
20736
20930
  }
20737
20931
  function rebuildTaskBlocks(options) {
@@ -25557,7 +25751,7 @@ function useStatusLine() {
25557
25751
  // src/ui/components/PromptInput.tsx
25558
25752
  async function interpretHashCommand(input) {
25559
25753
  try {
25560
- const { queryQuick: queryQuick2 } = await import("./llm-RRAVQWE3.js");
25754
+ const { queryQuick: queryQuick2 } = await import("./llm-3KQG5NEP.js");
25561
25755
  const systemPrompt = [
25562
25756
  "You're helping the user structure notes that will be added to their PYB.md file.",
25563
25757
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -25870,7 +26064,7 @@ function PromptInput({
25870
26064
  if (messages2.length) {
25871
26065
  if (mode === "bash") {
25872
26066
  onQuery(messages2, newAbortController).then(async () => {
25873
- const { getCwd: getCwd2 } = await import("./state-YDKD6B6T.js");
26067
+ const { getCwd: getCwd2 } = await import("./state-T57IG35V.js");
25874
26068
  setCurrentPwd(getCwd2());
25875
26069
  });
25876
26070
  } else {
@@ -28475,7 +28669,7 @@ function extractLatestAssistantUsage(messages) {
28475
28669
  return null;
28476
28670
  }
28477
28671
  function resolveOverflowJointConfig(toolUseContext) {
28478
- const envEnabled = parseBooleanFlag(process.env.PYB_AUTO_COMPACT_OVERFLOW_JOINT_ENABLED);
28672
+ const envEnabled = parseBooleanFlag2(process.env.PYB_AUTO_COMPACT_OVERFLOW_JOINT_ENABLED);
28479
28673
  const enabled = envEnabled !== null ? envEnabled : typeof toolUseContext?.autoCompactOverflowJointEnabled === "boolean" ? toolUseContext.autoCompactOverflowJointEnabled : true;
28480
28674
  const envHeadroomRatio = parseNumberFlag(process.env.PYB_AUTO_COMPACT_OUTPUT_HEADROOM_RATIO);
28481
28675
  const contextHeadroomRatio = parseNumberFlag(
@@ -28570,7 +28764,7 @@ function extractToolResultText(content) {
28570
28764
  if (!Array.isArray(content)) return "";
28571
28765
  return content.filter((block) => block && typeof block === "object" && block.type === "text").map((block) => String(block.text ?? "")).join("\n");
28572
28766
  }
28573
- function parseBooleanFlag(value) {
28767
+ function parseBooleanFlag2(value) {
28574
28768
  const raw = String(value ?? "").trim().toLowerCase();
28575
28769
  if (["1", "true", "yes", "on"].includes(raw)) return true;
28576
28770
  if (["0", "false", "no", "off"].includes(raw)) return false;
@@ -28582,7 +28776,7 @@ function parseNumberFlag(value) {
28582
28776
  return parsed;
28583
28777
  }
28584
28778
  function resolveCompactionTaskNodeExecutorEnabled(toolUseContext) {
28585
- const envValue = parseBooleanFlag(
28779
+ const envValue = parseBooleanFlag2(
28586
28780
  process.env.PYB_COMPACTION_TASK_NODE_EXECUTOR_ENABLED
28587
28781
  );
28588
28782
  if (envValue !== null) return envValue;
@@ -29300,14 +29494,14 @@ ${contentWithLines}
29300
29494
  var PRUNE_MARKER_CONFLICT_EVENT = "PRUNE_MARKER_CONFLICT";
29301
29495
 
29302
29496
  // src/utils/session/compactionBoundary.ts
29303
- function parseBooleanFlag2(value) {
29497
+ function parseBooleanFlag3(value) {
29304
29498
  const raw = String(value ?? "").trim().toLowerCase();
29305
29499
  if (["1", "true", "yes", "on"].includes(raw)) return true;
29306
29500
  if (["0", "false", "no", "off"].includes(raw)) return false;
29307
29501
  return null;
29308
29502
  }
29309
29503
  function resolveCompactionBoundaryConfig(toolUseContext) {
29310
- const envValue = parseBooleanFlag2(process.env.PYB_COMPACTION_BOUNDARY_ENABLED);
29504
+ const envValue = parseBooleanFlag3(process.env.PYB_COMPACTION_BOUNDARY_ENABLED);
29311
29505
  if (envValue !== null) {
29312
29506
  return {
29313
29507
  enabled: envValue,
@@ -29490,7 +29684,7 @@ function filterAfterCompactionBoundary(messages, options) {
29490
29684
  }
29491
29685
 
29492
29686
  // src/utils/session/toolOutputLifecycle.ts
29493
- function parseBooleanFlag3(value) {
29687
+ function parseBooleanFlag4(value) {
29494
29688
  const raw = String(value ?? "").trim().toLowerCase();
29495
29689
  if (["1", "true", "yes", "on"].includes(raw)) return true;
29496
29690
  if (["0", "false", "no", "off"].includes(raw)) return false;
@@ -29500,7 +29694,7 @@ function resolveToolOutputLifecycleConfig(toolUseContext) {
29500
29694
  const envMode = String(process.env.PYB_TOOL_OUTPUT_LIFECYCLE_MODE ?? "").trim().toLowerCase();
29501
29695
  const contextMode = String(toolUseContext?.toolOutputLifecycleMode ?? "").trim().toLowerCase();
29502
29696
  const mode = envMode === "mutate" || envMode === "observe_only" ? envMode : contextMode === "mutate" || contextMode === "observe_only" ? contextMode : "observe_only";
29503
- const envValue = parseBooleanFlag3(process.env.PYB_TOOL_OUTPUT_LIFECYCLE_ENABLED);
29697
+ const envValue = parseBooleanFlag4(process.env.PYB_TOOL_OUTPUT_LIFECYCLE_ENABLED);
29504
29698
  const enabled = envValue !== null ? envValue : typeof toolUseContext?.toolOutputLifecycleEnabled === "boolean" ? toolUseContext.toolOutputLifecycleEnabled : false;
29505
29699
  const source = envValue !== null ? "env" : typeof toolUseContext?.toolOutputLifecycleEnabled === "boolean" ? "context" : "default";
29506
29700
  const maxAgeTurnsRaw = toolUseContext?.toolOutputLifecycleConfig?.maxAgeTurns ?? process.env.PYB_TOOL_OUTPUT_LIFECYCLE_MAX_AGE_TURNS;
@@ -33702,7 +33896,7 @@ import { homedir as homedir8 } from "os";
33702
33896
  // src/commands/agents/generation.ts
33703
33897
  import { randomUUID as randomUUID6 } from "crypto";
33704
33898
  async function generateAgentWithClaude(prompt) {
33705
- const { queryModel } = await import("./llm-RRAVQWE3.js");
33899
+ const { queryModel } = await import("./llm-3KQG5NEP.js");
33706
33900
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
33707
33901
 
33708
33902
  Return your response as a JSON object with exactly these fields:
@@ -37524,6 +37718,7 @@ export {
37524
37718
  runWithTaskListId,
37525
37719
  runWithTaskListEnv,
37526
37720
  getTaskListPaths,
37721
+ getTaskActiveUnlockGateStatus,
37527
37722
  createTask,
37528
37723
  getTask,
37529
37724
  listTasks,