pybao-cli 1.4.52 → 1.4.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/REPL-ETXBX4GD.js +46 -0
- package/dist/{acp-QYEU24FQ.js → acp-BBK67FZZ.js} +29 -29
- package/dist/{agentsValidate-755OIS5R.js → agentsValidate-BCIRX632.js} +7 -7
- package/dist/{ask-DZPBLG26.js → ask-VG4YM3A7.js} +28 -28
- package/dist/{autoUpdater-TYGW5WLI.js → autoUpdater-ZTZNG6MQ.js} +3 -3
- package/dist/{chunk-BRKYVW3X.js → chunk-33IRPD3C.js} +3 -3
- package/dist/{chunk-DWNHYJME.js → chunk-5N2LR5UC.js} +4 -4
- package/dist/{chunk-VSGJTKCW.js → chunk-6JK5BGNC.js} +1 -1
- package/dist/{chunk-GFD2DNDU.js → chunk-A4J6UBNK.js} +2 -2
- package/dist/{chunk-NXAHOIRY.js → chunk-AFVEZLTD.js} +2 -2
- package/dist/{chunk-OX2MB4Q2.js → chunk-B4JRDZFF.js} +3 -3
- package/dist/{chunk-WTHNVU5P.js → chunk-CJ44MBCI.js} +3 -3
- package/dist/{chunk-2HMRIM4L.js → chunk-CO4JIH76.js} +48 -136
- package/dist/{chunk-2HMRIM4L.js.map → chunk-CO4JIH76.js.map} +2 -2
- package/dist/{chunk-2BHQOW7O.js → chunk-ERGKRFDJ.js} +4 -4
- package/dist/{chunk-EBSC7C7P.js → chunk-HKKI5CUW.js} +3 -3
- package/dist/{chunk-4LMBJZXO.js → chunk-IEWJUZZ4.js} +1 -1
- package/dist/{chunk-CACSIWAN.js → chunk-IZQSETD3.js} +1 -1
- package/dist/{chunk-KMM3X3B5.js → chunk-J5FWFAJE.js} +5 -32
- package/dist/chunk-J5FWFAJE.js.map +7 -0
- package/dist/{chunk-OBAKKVHK.js → chunk-JK4U5YCO.js} +1 -1
- package/dist/{chunk-KFQPMAFO.js → chunk-JMNAD5PO.js} +3 -3
- package/dist/{chunk-NCHARDNR.js → chunk-JXFMOIM3.js} +1 -1
- package/dist/{chunk-NCHARDNR.js.map → chunk-JXFMOIM3.js.map} +1 -1
- package/dist/{chunk-OMMS565Z.js → chunk-KQBOSZTO.js} +2 -2
- package/dist/{chunk-FTYUYN6L.js → chunk-KURHDENJ.js} +1 -1
- package/dist/{chunk-SEIO7WV7.js → chunk-MDTAHWRA.js} +1 -1
- package/dist/{chunk-XDWCDTQK.js → chunk-MKAUTQIV.js} +2 -2
- package/dist/{chunk-FVNXJG2K.js → chunk-N7BSSU3C.js} +2 -2
- package/dist/{chunk-H6QOGXMT.js → chunk-N7HOL2FL.js} +3 -3
- package/dist/{chunk-LHL4VQUV.js → chunk-OF6NW3CH.js} +1 -1
- package/dist/{chunk-RCASKKDU.js → chunk-OTLOWUV5.js} +2 -2
- package/dist/{chunk-VTHHH4MB.js → chunk-R7JCTOLR.js} +4 -4
- package/dist/{chunk-232RVCMQ.js → chunk-R7WBU6WF.js} +3 -3
- package/dist/{chunk-EF6YCOC4.js → chunk-SLX2OHBV.js} +4 -4
- package/dist/{chunk-R3QXCIEI.js → chunk-T7TN326S.js} +1 -1
- package/dist/{chunk-LTNUANEK.js → chunk-XO4WYS66.js} +39 -110
- package/dist/{chunk-LTNUANEK.js.map → chunk-XO4WYS66.js.map} +2 -2
- package/dist/{chunk-CIPSRLKQ.js → chunk-YSI7SECE.js} +1 -1
- package/dist/{cli-WGYHJPFZ.js → cli-ETJKNFLN.js} +88 -88
- package/dist/cli-ETJKNFLN.js.map +7 -0
- package/dist/commands-Y3MZUUJF.js +50 -0
- package/dist/{config-AGAJCFQD.js → config-E2UT2BHP.js} +4 -4
- package/dist/{context-ZOZD4S7X.js → context-NF6UL2WQ.js} +6 -6
- package/dist/{customCommands-4GSMRRC4.js → customCommands-K5TOBWOG.js} +4 -4
- package/dist/{env-RPUIAXPD.js → env-YPNG4GCZ.js} +2 -2
- package/dist/{file-HFMWEHAT.js → file-5HB5JDXE.js} +4 -4
- package/dist/index.js +3 -3
- package/dist/{llm-CP2G3BZQ.js → llm-HPFALZTO.js} +29 -29
- package/dist/{llmLazy-7GLWRPMO.js → llmLazy-XVV3PCWC.js} +1 -1
- package/dist/{loader-RJUX5HRI.js → loader-F4IFI6TI.js} +4 -4
- package/dist/{lsp-4PS6EN3E.js → lsp-OXYIZORL.js} +6 -6
- package/dist/{lspAnchor-QPHIEGKU.js → lspAnchor-PE3Z6SSS.js} +6 -6
- package/dist/{mcp-Z5GOR6OF.js → mcp-OUNIDN7C.js} +7 -7
- package/dist/{mentionProcessor-ZPSEF4XC.js → mentionProcessor-SR75ZPZL.js} +5 -5
- package/dist/{messages-7PZIS7S6.js → messages-RIUPLGZZ.js} +1 -1
- package/dist/{model-OMBFATWA.js → model-6CB447EG.js} +5 -5
- package/dist/{openai-ZFDYT7H5.js → openai-NMN24LHZ.js} +5 -5
- package/dist/{outputStyles-LK7EH6PS.js → outputStyles-S4QVJQ2M.js} +4 -4
- package/dist/{pluginRuntime-PFAQAL5X.js → pluginRuntime-VVPWXAOG.js} +6 -6
- package/dist/{pluginValidation-F6UPGXZP.js → pluginValidation-4X76H7AS.js} +6 -6
- package/dist/prompts-6WUAD4N6.js +52 -0
- package/dist/{pybAgentSessionLoad-PQX3FKEC.js → pybAgentSessionLoad-FQQDJPAZ.js} +4 -4
- package/dist/{pybAgentSessionResume-FTGMQQ4B.js → pybAgentSessionResume-FW2PPCMQ.js} +4 -4
- package/dist/{pybAgentStreamJsonSession-GQZLIIQS.js → pybAgentStreamJsonSession-ANEZ2MDI.js} +1 -1
- package/dist/{pybHooks-7SOKY4A3.js → pybHooks-VX6L72CF.js} +4 -4
- package/dist/query-KOXXXDL6.js +54 -0
- package/dist/{registry-HEA2CKWA.js → registry-CS624VEB.js} +5 -5
- package/dist/{ripgrep-S4IOHQNI.js → ripgrep-E3KEWB5J.js} +3 -3
- package/dist/{skillMarketplace-GLH5WP4Y.js → skillMarketplace-ZDK43624.js} +3 -3
- package/dist/{state-DYO5HDW5.js → state-NPZMMSLQ.js} +2 -2
- package/dist/{theme-FMEMGZ2J.js → theme-EDG2CUW3.js} +5 -5
- package/dist/{toolPermissionSettings-J2R2EOVJ.js → toolPermissionSettings-YAZJAQU7.js} +6 -6
- package/dist/tools-B2QJ3TNV.js +51 -0
- package/dist/{userInput-IZB262ZP.js → userInput-PJ4OVVPF.js} +30 -30
- package/package.json +1 -1
- package/dist/REPL-5YY25SRP.js +0 -46
- package/dist/chunk-KMM3X3B5.js.map +0 -7
- package/dist/cli-WGYHJPFZ.js.map +0 -7
- package/dist/commands-6JEO2KAK.js +0 -50
- package/dist/prompts-3I2J4KDX.js +0 -52
- package/dist/query-MZKEYXCU.js +0 -54
- package/dist/tools-OLRB4MMF.js +0 -51
- /package/dist/{REPL-5YY25SRP.js.map → REPL-ETXBX4GD.js.map} +0 -0
- /package/dist/{acp-QYEU24FQ.js.map → acp-BBK67FZZ.js.map} +0 -0
- /package/dist/{agentsValidate-755OIS5R.js.map → agentsValidate-BCIRX632.js.map} +0 -0
- /package/dist/{ask-DZPBLG26.js.map → ask-VG4YM3A7.js.map} +0 -0
- /package/dist/{autoUpdater-TYGW5WLI.js.map → autoUpdater-ZTZNG6MQ.js.map} +0 -0
- /package/dist/{chunk-BRKYVW3X.js.map → chunk-33IRPD3C.js.map} +0 -0
- /package/dist/{chunk-DWNHYJME.js.map → chunk-5N2LR5UC.js.map} +0 -0
- /package/dist/{chunk-VSGJTKCW.js.map → chunk-6JK5BGNC.js.map} +0 -0
- /package/dist/{chunk-GFD2DNDU.js.map → chunk-A4J6UBNK.js.map} +0 -0
- /package/dist/{chunk-NXAHOIRY.js.map → chunk-AFVEZLTD.js.map} +0 -0
- /package/dist/{chunk-OX2MB4Q2.js.map → chunk-B4JRDZFF.js.map} +0 -0
- /package/dist/{chunk-WTHNVU5P.js.map → chunk-CJ44MBCI.js.map} +0 -0
- /package/dist/{chunk-2BHQOW7O.js.map → chunk-ERGKRFDJ.js.map} +0 -0
- /package/dist/{chunk-EBSC7C7P.js.map → chunk-HKKI5CUW.js.map} +0 -0
- /package/dist/{chunk-4LMBJZXO.js.map → chunk-IEWJUZZ4.js.map} +0 -0
- /package/dist/{chunk-CACSIWAN.js.map → chunk-IZQSETD3.js.map} +0 -0
- /package/dist/{chunk-OBAKKVHK.js.map → chunk-JK4U5YCO.js.map} +0 -0
- /package/dist/{chunk-KFQPMAFO.js.map → chunk-JMNAD5PO.js.map} +0 -0
- /package/dist/{chunk-OMMS565Z.js.map → chunk-KQBOSZTO.js.map} +0 -0
- /package/dist/{chunk-FTYUYN6L.js.map → chunk-KURHDENJ.js.map} +0 -0
- /package/dist/{chunk-SEIO7WV7.js.map → chunk-MDTAHWRA.js.map} +0 -0
- /package/dist/{chunk-XDWCDTQK.js.map → chunk-MKAUTQIV.js.map} +0 -0
- /package/dist/{chunk-FVNXJG2K.js.map → chunk-N7BSSU3C.js.map} +0 -0
- /package/dist/{chunk-H6QOGXMT.js.map → chunk-N7HOL2FL.js.map} +0 -0
- /package/dist/{chunk-LHL4VQUV.js.map → chunk-OF6NW3CH.js.map} +0 -0
- /package/dist/{chunk-RCASKKDU.js.map → chunk-OTLOWUV5.js.map} +0 -0
- /package/dist/{chunk-VTHHH4MB.js.map → chunk-R7JCTOLR.js.map} +0 -0
- /package/dist/{chunk-232RVCMQ.js.map → chunk-R7WBU6WF.js.map} +0 -0
- /package/dist/{chunk-EF6YCOC4.js.map → chunk-SLX2OHBV.js.map} +0 -0
- /package/dist/{chunk-R3QXCIEI.js.map → chunk-T7TN326S.js.map} +0 -0
- /package/dist/{chunk-CIPSRLKQ.js.map → chunk-YSI7SECE.js.map} +0 -0
- /package/dist/{commands-6JEO2KAK.js.map → commands-Y3MZUUJF.js.map} +0 -0
- /package/dist/{config-AGAJCFQD.js.map → config-E2UT2BHP.js.map} +0 -0
- /package/dist/{context-ZOZD4S7X.js.map → context-NF6UL2WQ.js.map} +0 -0
- /package/dist/{customCommands-4GSMRRC4.js.map → customCommands-K5TOBWOG.js.map} +0 -0
- /package/dist/{env-RPUIAXPD.js.map → env-YPNG4GCZ.js.map} +0 -0
- /package/dist/{file-HFMWEHAT.js.map → file-5HB5JDXE.js.map} +0 -0
- /package/dist/{llm-CP2G3BZQ.js.map → llm-HPFALZTO.js.map} +0 -0
- /package/dist/{llmLazy-7GLWRPMO.js.map → llmLazy-XVV3PCWC.js.map} +0 -0
- /package/dist/{loader-RJUX5HRI.js.map → loader-F4IFI6TI.js.map} +0 -0
- /package/dist/{lsp-4PS6EN3E.js.map → lsp-OXYIZORL.js.map} +0 -0
- /package/dist/{lspAnchor-QPHIEGKU.js.map → lspAnchor-PE3Z6SSS.js.map} +0 -0
- /package/dist/{mcp-Z5GOR6OF.js.map → mcp-OUNIDN7C.js.map} +0 -0
- /package/dist/{mentionProcessor-ZPSEF4XC.js.map → mentionProcessor-SR75ZPZL.js.map} +0 -0
- /package/dist/{messages-7PZIS7S6.js.map → messages-RIUPLGZZ.js.map} +0 -0
- /package/dist/{model-OMBFATWA.js.map → model-6CB447EG.js.map} +0 -0
- /package/dist/{openai-ZFDYT7H5.js.map → openai-NMN24LHZ.js.map} +0 -0
- /package/dist/{outputStyles-LK7EH6PS.js.map → outputStyles-S4QVJQ2M.js.map} +0 -0
- /package/dist/{pluginRuntime-PFAQAL5X.js.map → pluginRuntime-VVPWXAOG.js.map} +0 -0
- /package/dist/{pluginValidation-F6UPGXZP.js.map → pluginValidation-4X76H7AS.js.map} +0 -0
- /package/dist/{prompts-3I2J4KDX.js.map → prompts-6WUAD4N6.js.map} +0 -0
- /package/dist/{pybAgentSessionLoad-PQX3FKEC.js.map → pybAgentSessionLoad-FQQDJPAZ.js.map} +0 -0
- /package/dist/{pybAgentSessionResume-FTGMQQ4B.js.map → pybAgentSessionResume-FW2PPCMQ.js.map} +0 -0
- /package/dist/{pybAgentStreamJsonSession-GQZLIIQS.js.map → pybAgentStreamJsonSession-ANEZ2MDI.js.map} +0 -0
- /package/dist/{pybHooks-7SOKY4A3.js.map → pybHooks-VX6L72CF.js.map} +0 -0
- /package/dist/{query-MZKEYXCU.js.map → query-KOXXXDL6.js.map} +0 -0
- /package/dist/{registry-HEA2CKWA.js.map → registry-CS624VEB.js.map} +0 -0
- /package/dist/{ripgrep-S4IOHQNI.js.map → ripgrep-E3KEWB5J.js.map} +0 -0
- /package/dist/{skillMarketplace-GLH5WP4Y.js.map → skillMarketplace-ZDK43624.js.map} +0 -0
- /package/dist/{state-DYO5HDW5.js.map → state-NPZMMSLQ.js.map} +0 -0
- /package/dist/{theme-FMEMGZ2J.js.map → theme-EDG2CUW3.js.map} +0 -0
- /package/dist/{toolPermissionSettings-J2R2EOVJ.js.map → toolPermissionSettings-YAZJAQU7.js.map} +0 -0
- /package/dist/{tools-OLRB4MMF.js.map → tools-B2QJ3TNV.js.map} +0 -0
- /package/dist/{userInput-IZB262ZP.js.map → userInput-PJ4OVVPF.js.map} +0 -0
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
NotebookEditTool,
|
|
16
16
|
SkillTool,
|
|
17
17
|
SlashCommandTool,
|
|
18
|
-
TaskStoreConflictError,
|
|
19
18
|
WebFetchTool,
|
|
20
19
|
WebSearchTool,
|
|
21
20
|
applyMarkdown,
|
|
@@ -37,57 +36,57 @@ import {
|
|
|
37
36
|
runWithTaskListEnv,
|
|
38
37
|
runWithTaskListId,
|
|
39
38
|
updateTask
|
|
40
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-CO4JIH76.js";
|
|
41
40
|
import {
|
|
42
41
|
queryLLM
|
|
43
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-SLX2OHBV.js";
|
|
44
43
|
import {
|
|
45
44
|
FallbackToolUseRejectedMessage,
|
|
46
45
|
MCPTool,
|
|
47
46
|
getClients,
|
|
48
47
|
getMCPTools
|
|
49
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-5N2LR5UC.js";
|
|
50
49
|
import {
|
|
51
50
|
emitReminderEvent
|
|
52
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-J5FWFAJE.js";
|
|
53
52
|
import {
|
|
54
53
|
getActiveAgents,
|
|
55
54
|
getAgentByType,
|
|
56
55
|
getAvailableAgentTypes
|
|
57
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-MKAUTQIV.js";
|
|
58
57
|
import {
|
|
59
58
|
INTERRUPT_MESSAGE,
|
|
60
59
|
createAssistantMessage,
|
|
61
60
|
createUserMessage,
|
|
62
61
|
getLastAssistantMessageId
|
|
63
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-YSI7SECE.js";
|
|
64
63
|
import {
|
|
65
64
|
formatDuration,
|
|
66
65
|
formatNumber
|
|
67
66
|
} from "./chunk-OUXHGDLH.js";
|
|
68
67
|
import {
|
|
69
68
|
getAbsolutePath
|
|
70
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-A4J6UBNK.js";
|
|
71
70
|
import {
|
|
72
71
|
LspFacade,
|
|
73
72
|
formatDiagnosticsPretty
|
|
74
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-ERGKRFDJ.js";
|
|
75
74
|
import {
|
|
76
75
|
getModelManager
|
|
77
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-R7WBU6WF.js";
|
|
78
77
|
import {
|
|
79
78
|
getContext
|
|
80
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-R7JCTOLR.js";
|
|
81
80
|
import {
|
|
82
81
|
filesToTree,
|
|
83
82
|
ripGrepWithStatus
|
|
84
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-6JK5BGNC.js";
|
|
85
84
|
import {
|
|
86
85
|
getTheme
|
|
87
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-KURHDENJ.js";
|
|
88
87
|
import {
|
|
89
88
|
debug
|
|
90
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-IZQSETD3.js";
|
|
91
90
|
import {
|
|
92
91
|
BunShell,
|
|
93
92
|
getCwd,
|
|
@@ -98,7 +97,7 @@ import {
|
|
|
98
97
|
overwriteLog,
|
|
99
98
|
readTaskOutput,
|
|
100
99
|
resolveXdgDataPath
|
|
101
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-OF6NW3CH.js";
|
|
102
101
|
|
|
103
102
|
// src/tools/index.ts
|
|
104
103
|
import { memoize as memoize2 } from "lodash-es";
|
|
@@ -777,7 +776,7 @@ async function analyzeOutputWithLsp(output, exitCode) {
|
|
|
777
776
|
if (exitCode !== 0 || errorCount > 0 || warningCount > 0) {
|
|
778
777
|
try {
|
|
779
778
|
const { isAbsolute: isAbsolute3, resolve: resolve4 } = await import("path");
|
|
780
|
-
const { getSessionRoot: getSessionRoot2 } = await import("./state-
|
|
779
|
+
const { getSessionRoot: getSessionRoot2 } = await import("./state-NPZMMSLQ.js");
|
|
781
780
|
const lines = output.split("\n");
|
|
782
781
|
const uniqueFiles = /* @__PURE__ */ new Set();
|
|
783
782
|
const lspSuggestions = [];
|
|
@@ -1150,7 +1149,7 @@ var DeleteTool = {
|
|
|
1150
1149
|
}
|
|
1151
1150
|
if (!force) {
|
|
1152
1151
|
try {
|
|
1153
|
-
const { LspFacade: LspFacade2 } = await import("./lsp-
|
|
1152
|
+
const { LspFacade: LspFacade2 } = await import("./lsp-OXYIZORL.js");
|
|
1154
1153
|
const referenceDetail = await LspFacade2.checkFileReferences(fullPath);
|
|
1155
1154
|
if (referenceDetail) {
|
|
1156
1155
|
failedItems.push(
|
|
@@ -3040,7 +3039,7 @@ function formatTaskDetails(task) {
|
|
|
3040
3039
|
return description ?? blockedText;
|
|
3041
3040
|
}
|
|
3042
3041
|
function getStatusIcon(status) {
|
|
3043
|
-
if (status === "done" || status === "
|
|
3042
|
+
if (status === "done" || status === "deleted") return "\u2705";
|
|
3044
3043
|
if (status === "in_progress") return "\u{1F504}";
|
|
3045
3044
|
if (status === "blocked") return "\u26D4";
|
|
3046
3045
|
return "\u23F8\uFE0F";
|
|
@@ -3053,7 +3052,7 @@ function getStatusColor(status) {
|
|
|
3053
3052
|
function renderTask(task) {
|
|
3054
3053
|
const details = formatTaskDetails(task);
|
|
3055
3054
|
const color = getStatusColor(task.status);
|
|
3056
|
-
const isFinished = task.status === "done" || task.status === "
|
|
3055
|
+
const isFinished = task.status === "done" || task.status === "deleted";
|
|
3057
3056
|
return /* @__PURE__ */ React9.createElement(Box9, { key: task.id, flexDirection: "column" }, /* @__PURE__ */ React9.createElement(Box9, { flexDirection: "row", gap: 1 }, /* @__PURE__ */ React9.createElement(Text9, null, "\u23BF"), /* @__PURE__ */ React9.createElement(Text9, { color, dimColor: isFinished }, getStatusIcon(task.status)), /* @__PURE__ */ React9.createElement(
|
|
3058
3057
|
Text9,
|
|
3059
3058
|
{
|
|
@@ -3089,13 +3088,13 @@ function ListRenderer({
|
|
|
3089
3088
|
}
|
|
3090
3089
|
function TaskList(props) {
|
|
3091
3090
|
const tasks = props.tasks ?? listTasks({ listId: props.listId });
|
|
3092
|
-
const visibleTasks = tasks.filter((task) => task.status !== "
|
|
3091
|
+
const visibleTasks = tasks.filter((task) => task.status !== "deleted");
|
|
3093
3092
|
const computed = calculateReadyBlocked(visibleTasks);
|
|
3094
3093
|
const ready = (props.ready ?? computed.ready).filter(
|
|
3095
|
-
(task) => task.status !== "
|
|
3094
|
+
(task) => task.status !== "deleted"
|
|
3096
3095
|
);
|
|
3097
3096
|
const blocked = (props.blocked ?? computed.blocked).filter(
|
|
3098
|
-
(task) => task.status !== "
|
|
3097
|
+
(task) => task.status !== "deleted"
|
|
3099
3098
|
);
|
|
3100
3099
|
const total = visibleTasks.length;
|
|
3101
3100
|
if (total === 0) {
|
|
@@ -3134,7 +3133,8 @@ var jsonValueSchema = z9.lazy(
|
|
|
3134
3133
|
);
|
|
3135
3134
|
var metadataSchema = z9.record(jsonValueSchema);
|
|
3136
3135
|
function mapStatusToOutput(status) {
|
|
3137
|
-
if (status === "done"
|
|
3136
|
+
if (status === "done") return "completed";
|
|
3137
|
+
if (status === "deleted") return "deleted";
|
|
3138
3138
|
if (status === "blocked") return "pending";
|
|
3139
3139
|
return status;
|
|
3140
3140
|
}
|
|
@@ -3143,7 +3143,6 @@ function toTaskListItem(task) {
|
|
|
3143
3143
|
id: task.id,
|
|
3144
3144
|
subject: task.subject,
|
|
3145
3145
|
status: mapStatusToOutput(task.status),
|
|
3146
|
-
owner: task.assignee,
|
|
3147
3146
|
blockedBy: task.blockedBy ?? []
|
|
3148
3147
|
};
|
|
3149
3148
|
}
|
|
@@ -3154,15 +3153,9 @@ function toTaskDetail(task) {
|
|
|
3154
3153
|
description: task.description,
|
|
3155
3154
|
activeForm: task.activeForm,
|
|
3156
3155
|
status: mapStatusToOutput(task.status),
|
|
3157
|
-
tags: task.tags,
|
|
3158
|
-
assignee: task.assignee,
|
|
3159
3156
|
metadata: task.metadata,
|
|
3160
|
-
archived: task.archived,
|
|
3161
3157
|
blocks: task.blocks ?? [],
|
|
3162
|
-
blockedBy: task.blockedBy ?? []
|
|
3163
|
-
parent: task.parent,
|
|
3164
|
-
related: task.related ?? [],
|
|
3165
|
-
legacyTodoId: task.legacyTodoId
|
|
3158
|
+
blockedBy: task.blockedBy ?? []
|
|
3166
3159
|
};
|
|
3167
3160
|
}
|
|
3168
3161
|
function toTaskGetDetail(task) {
|
|
@@ -3215,7 +3208,6 @@ NOTE that you should not use this tool if you are only updating status or detail
|
|
|
3215
3208
|
- listId is optional; omit to use the default list.
|
|
3216
3209
|
- TaskCreate only supports single-task creation; create multiple tasks one by one.
|
|
3217
3210
|
- For multi-step plans, create the structured task list without dependencies and add blockedBy later via TaskUpdate.
|
|
3218
|
-
- status can be pending, in_progress, blocked, done, or archived.
|
|
3219
3211
|
- activeForm is required and must not equal subject.
|
|
3220
3212
|
- blockedBy is always stored as an array (empty when not used).
|
|
3221
3213
|
- description and blockedBy are kept separate in JSON; any joining is only for terminal rendering.
|
|
@@ -3459,7 +3451,7 @@ import { z as z12 } from "zod";
|
|
|
3459
3451
|
|
|
3460
3452
|
// src/tools/interaction/TaskListTool/prompt.ts
|
|
3461
3453
|
var DESCRIPTION8 = "Review planned tasks, readiness, and blockers";
|
|
3462
|
-
var PROMPT8 = `Use this tool to list tasks and understand readiness. It returns ready and blocked groupings to help prioritize work. TaskList only returns id/subject/status/
|
|
3454
|
+
var PROMPT8 = `Use this tool to list tasks and understand readiness. It returns ready and blocked groupings to help prioritize work. TaskList only returns id/subject/status/blockedBy for summaries; use TaskGet for details.
|
|
3463
3455
|
|
|
3464
3456
|
## When to Use This Tool
|
|
3465
3457
|
Use this tool proactively in these scenarios:
|
|
@@ -3478,7 +3470,7 @@ Skip using this tool when:
|
|
|
3478
3470
|
NOTE that TaskList is for summaries and readiness; use TaskGet for details.
|
|
3479
3471
|
|
|
3480
3472
|
## Input Notes
|
|
3481
|
-
- status filters the returned items; omit to exclude
|
|
3473
|
+
- status filters the returned items; omit to exclude deleted tasks by default.
|
|
3482
3474
|
- blockedBy may be empty early in planning and will appear as dependencies are added.
|
|
3483
3475
|
|
|
3484
3476
|
## Examples of When to Use TaskList
|
|
@@ -3504,19 +3496,20 @@ Assistant: I'll list tasks to show the updated ready/blocked breakdown.
|
|
|
3504
3496
|
|
|
3505
3497
|
// src/tools/interaction/TaskListTool/TaskListTool.tsx
|
|
3506
3498
|
var inputSchema11 = z12.strictObject({
|
|
3507
|
-
status: z12.enum(["pending", "in_progress", "completed"]).optional()
|
|
3499
|
+
status: z12.enum(["pending", "in_progress", "completed", "deleted"]).optional()
|
|
3508
3500
|
});
|
|
3509
3501
|
var filterByStatus = (tasks, statuses) => {
|
|
3510
3502
|
if (!statuses || statuses.length === 0) {
|
|
3511
|
-
return tasks.filter((item) => item.status !== "
|
|
3503
|
+
return tasks.filter((item) => item.status !== "deleted");
|
|
3512
3504
|
}
|
|
3513
3505
|
const allowed = new Set(statuses);
|
|
3514
3506
|
return tasks.filter((item) => allowed.has(item.status));
|
|
3515
3507
|
};
|
|
3516
3508
|
var mapStatusFilterInput = (input) => {
|
|
3517
3509
|
if (!input) return void 0;
|
|
3518
|
-
if (input === "completed") return ["done"
|
|
3519
|
-
if (input === "
|
|
3510
|
+
if (input === "completed") return ["done"];
|
|
3511
|
+
if (input === "deleted") return ["deleted"];
|
|
3512
|
+
if (input === "pending") return ["pending", "blocked"];
|
|
3520
3513
|
return ["in_progress"];
|
|
3521
3514
|
};
|
|
3522
3515
|
var TaskListTool = {
|
|
@@ -3587,10 +3580,10 @@ var PROMPT9 = `Use this tool to update an existing task. It is the primary way t
|
|
|
3587
3580
|
## When to Use This Tool
|
|
3588
3581
|
Use this tool proactively in these scenarios:
|
|
3589
3582
|
|
|
3590
|
-
1. You need to change task fields (subject/description/status
|
|
3591
|
-
2. You need to adjust dependencies (blockedBy
|
|
3592
|
-
3. You need to move a task across states (pending \u2192 in_progress \u2192
|
|
3593
|
-
4. You are moving a task across states (pending \u2192 in_progress \u2192
|
|
3583
|
+
1. You need to change task fields (subject/description/status).
|
|
3584
|
+
2. You need to adjust dependencies (blockedBy).
|
|
3585
|
+
3. You need to move a task across states (pending \u2192 in_progress \u2192 completed).
|
|
3586
|
+
4. You are moving a task across states (pending \u2192 in_progress \u2192 completed).
|
|
3594
3587
|
|
|
3595
3588
|
## When NOT to Use This Tool
|
|
3596
3589
|
|
|
@@ -3603,11 +3596,9 @@ NOTE that TaskUpdate should be used when you need to persist task changes.
|
|
|
3603
3596
|
## Input Notes
|
|
3604
3597
|
- taskId is required.
|
|
3605
3598
|
- listId is optional; omit to use the default list.
|
|
3606
|
-
- If you provide status=done/archived and a parent exists, parent must already be completed.
|
|
3607
3599
|
- Dependencies are validated for cycles; invalid cycles will be rejected.
|
|
3608
3600
|
- Use TaskUpdate to add blockedBy after tasks are created.
|
|
3609
3601
|
- You can set metadata.planFinalized="true" to trigger a full dependency validation pass.
|
|
3610
|
-
- If an update fails due to a conflict, refetch the task and retry.
|
|
3611
3602
|
- activeForm must be provided; it is not generated from subject.
|
|
3612
3603
|
- blockedBy is always stored as an array (empty when not used).
|
|
3613
3604
|
- description and blockedBy are kept separate in JSON; any joining is only for terminal rendering.
|
|
@@ -3620,7 +3611,7 @@ NOTE that TaskUpdate should be used when you need to persist task changes.
|
|
|
3620
3611
|
## Status Notes
|
|
3621
3612
|
- Use in_progress for the task you are actively working on.
|
|
3622
3613
|
- Use blocked when dependencies prevent progress and set blockedBy.
|
|
3623
|
-
- Use
|
|
3614
|
+
- Use completed only when all dependencies are satisfied.
|
|
3624
3615
|
|
|
3625
3616
|
## Examples of When to Use TaskUpdate
|
|
3626
3617
|
|
|
@@ -3642,15 +3633,9 @@ Assistant: I'll set metadata.planFinalized to trigger the global validation.
|
|
|
3642
3633
|
*Updates metadata.planFinalized to "true"*
|
|
3643
3634
|
</example>
|
|
3644
3635
|
|
|
3645
|
-
<example>
|
|
3646
|
-
User: The task update failed due to a conflict.
|
|
3647
|
-
Assistant: I'll refetch the task and retry the update.
|
|
3648
|
-
*Fetches task, then updates again*
|
|
3649
|
-
</example>
|
|
3650
3636
|
`;
|
|
3651
3637
|
|
|
3652
3638
|
// src/tools/interaction/TaskUpdateTool/TaskUpdateTool.tsx
|
|
3653
|
-
var isCompletedStatus = (status) => status === "done" || status === "archived";
|
|
3654
3639
|
var normalizeDeps = (items) => [...items ?? []].filter(Boolean).sort();
|
|
3655
3640
|
var mergeDeps = (current, additions) => {
|
|
3656
3641
|
const merged = [];
|
|
@@ -3682,11 +3667,10 @@ var mergeMetadata = (existing, updates) => {
|
|
|
3682
3667
|
var mapStatusInput = (status) => {
|
|
3683
3668
|
if (!status) return void 0;
|
|
3684
3669
|
if (status === "completed") return "done";
|
|
3685
|
-
if (status === "deleted") return "
|
|
3670
|
+
if (status === "deleted") return "deleted";
|
|
3686
3671
|
return status;
|
|
3687
3672
|
};
|
|
3688
3673
|
var depsChanged = (prev, next) => {
|
|
3689
|
-
if (prev.parent !== next.parent) return true;
|
|
3690
3674
|
const prevBlockedBy = normalizeDeps(prev.blockedBy);
|
|
3691
3675
|
const nextBlockedBy = normalizeDeps(next.blockedBy);
|
|
3692
3676
|
if (prevBlockedBy.length !== nextBlockedBy.length) return true;
|
|
@@ -3699,19 +3683,11 @@ var depsChanged = (prev, next) => {
|
|
|
3699
3683
|
for (let i = 0; i < prevBlocks.length; i += 1) {
|
|
3700
3684
|
if (prevBlocks[i] !== nextBlocks[i]) return true;
|
|
3701
3685
|
}
|
|
3702
|
-
const prevRelated = normalizeDeps(prev.related);
|
|
3703
|
-
const nextRelated = normalizeDeps(next.related);
|
|
3704
|
-
if (prevRelated.length !== nextRelated.length) return true;
|
|
3705
|
-
for (let i = 0; i < prevRelated.length; i += 1) {
|
|
3706
|
-
if (prevRelated[i] !== nextRelated[i]) return true;
|
|
3707
|
-
}
|
|
3708
3686
|
return false;
|
|
3709
3687
|
};
|
|
3710
3688
|
var getDepsSnapshot = (task) => ({
|
|
3711
3689
|
blocks: task.blocks ?? [],
|
|
3712
|
-
blockedBy: task.blockedBy ?? []
|
|
3713
|
-
parent: task.parent,
|
|
3714
|
-
related: task.related ?? []
|
|
3690
|
+
blockedBy: task.blockedBy ?? []
|
|
3715
3691
|
});
|
|
3716
3692
|
var getMissingBlockedBy = (blockedBy, ids) => (blockedBy ?? []).filter((id) => !ids.has(id));
|
|
3717
3693
|
var isPlanFinalized = (metadata) => {
|
|
@@ -3734,7 +3710,6 @@ var inputSchema12 = z13.strictObject({
|
|
|
3734
3710
|
description: z13.string().optional(),
|
|
3735
3711
|
activeForm: z13.string().optional(),
|
|
3736
3712
|
status: z13.enum(["pending", "in_progress", "completed", "deleted"]).optional(),
|
|
3737
|
-
owner: z13.string().optional(),
|
|
3738
3713
|
metadata: metadataSchema.optional(),
|
|
3739
3714
|
addBlockedBy: z13.array(z13.string()).optional(),
|
|
3740
3715
|
addBlocks: z13.array(z13.string()).optional()
|
|
@@ -3806,7 +3781,6 @@ var TaskUpdateTool = {
|
|
|
3806
3781
|
description: input.description ?? existing.description,
|
|
3807
3782
|
activeForm: input.activeForm ?? existing.activeForm,
|
|
3808
3783
|
status: mappedStatus ?? existing.status,
|
|
3809
|
-
assignee: input.owner ?? existing.assignee,
|
|
3810
3784
|
metadata: mergedMetadata ?? existing.metadata,
|
|
3811
3785
|
blockedBy: mergedBlockedBy
|
|
3812
3786
|
};
|
|
@@ -3885,7 +3859,7 @@ var TaskUpdateTool = {
|
|
|
3885
3859
|
}
|
|
3886
3860
|
const nextMetadata = mergedMetadata ?? existing.metadata;
|
|
3887
3861
|
if (isPlanFinalized(nextMetadata) && !isPlanFinalized(existing.metadata)) {
|
|
3888
|
-
const activeTasks = candidateTasks.filter((task) => task.status !== "
|
|
3862
|
+
const activeTasks = candidateTasks.filter((task) => task.status !== "deleted");
|
|
3889
3863
|
const ordered = [...activeTasks].sort(compareTaskId);
|
|
3890
3864
|
const firstTaskId = ordered[0]?.id;
|
|
3891
3865
|
for (const task of activeTasks) {
|
|
@@ -3916,27 +3890,6 @@ var TaskUpdateTool = {
|
|
|
3916
3890
|
}
|
|
3917
3891
|
}
|
|
3918
3892
|
}
|
|
3919
|
-
if (mappedStatus && isCompletedStatus(mappedStatus)) {
|
|
3920
|
-
const parentId = updatedTask.parent;
|
|
3921
|
-
if (parentId) {
|
|
3922
|
-
const parentTask = tasks.find((task) => task.id === parentId);
|
|
3923
|
-
if (!parentTask || !isCompletedStatus(parentTask.status)) {
|
|
3924
|
-
yield {
|
|
3925
|
-
type: "result",
|
|
3926
|
-
data: createTaskToolError({
|
|
3927
|
-
type: "validation",
|
|
3928
|
-
code: "TASK_PARENT_INCOMPLETE",
|
|
3929
|
-
message: "Cannot complete task while parent is incomplete",
|
|
3930
|
-
details: {
|
|
3931
|
-
taskId: existing.id,
|
|
3932
|
-
parentId
|
|
3933
|
-
}
|
|
3934
|
-
})
|
|
3935
|
-
};
|
|
3936
|
-
return;
|
|
3937
|
-
}
|
|
3938
|
-
}
|
|
3939
|
-
}
|
|
3940
3893
|
try {
|
|
3941
3894
|
for (const task of tasks) {
|
|
3942
3895
|
if (!addBlocksTargets.has(task.id)) continue;
|
|
@@ -3962,7 +3915,6 @@ var TaskUpdateTool = {
|
|
|
3962
3915
|
description: input.description,
|
|
3963
3916
|
activeForm: input.activeForm,
|
|
3964
3917
|
status: mappedStatus,
|
|
3965
|
-
assignee: input.owner,
|
|
3966
3918
|
metadata: metadataUpdate,
|
|
3967
3919
|
blockedBy: mergedBlockedBy
|
|
3968
3920
|
}
|
|
@@ -4001,29 +3953,6 @@ var TaskUpdateTool = {
|
|
|
4001
3953
|
}
|
|
4002
3954
|
};
|
|
4003
3955
|
} catch (error) {
|
|
4004
|
-
if (error instanceof TaskStoreConflictError) {
|
|
4005
|
-
emitReminderEvent("task:conflict_detected", {
|
|
4006
|
-
listId,
|
|
4007
|
-
taskId: error.taskId,
|
|
4008
|
-
expected: error.expectedBaseVersion,
|
|
4009
|
-
actual: error.actualBaseVersion,
|
|
4010
|
-
timestamp: Date.now()
|
|
4011
|
-
});
|
|
4012
|
-
yield {
|
|
4013
|
-
type: "result",
|
|
4014
|
-
data: createTaskToolError({
|
|
4015
|
-
type: "conflict",
|
|
4016
|
-
code: error.code,
|
|
4017
|
-
message: error.message,
|
|
4018
|
-
details: {
|
|
4019
|
-
taskId: error.taskId,
|
|
4020
|
-
expected: error.expectedBaseVersion,
|
|
4021
|
-
actual: error.actualBaseVersion
|
|
4022
|
-
}
|
|
4023
|
-
})
|
|
4024
|
-
};
|
|
4025
|
-
return;
|
|
4026
|
-
}
|
|
4027
3956
|
const message = error instanceof Error ? error.message : "Task update failed";
|
|
4028
3957
|
yield {
|
|
4029
3958
|
type: "result",
|