nolo-cli 0.16.0-alpha.19 → 0.16.0-alpha.20
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/{_executeModel-YY6LVJXJ.js → _executeModel-GRCQXT5R.js} +13 -13
- package/{agentDeleteCommand-TJ2EAYDA.js → agentDeleteCommand-WNL3CNQX.js} +6 -6
- package/{agentEmailCommands-UKEGNW25.js → agentEmailCommands-MPEUMRAS.js} +16 -16
- package/{agentListCommands-WD5XYVGK.js → agentListCommands-YO4AOQMS.js} +8 -8
- package/{agentMachineCommands-OHZ3HKOV.js → agentMachineCommands-WYM6YRYJ.js} +6 -6
- package/{agentRecordCommands-N2JQMKS4.js → agentRecordCommands-BVWSHMIY.js} +16 -16
- package/{agentRunCommand-P2ECE6UJ.js → agentRunCommand-E3ZI6RSF.js} +16 -16
- package/{agentRunControl-P75VPTGS.js → agentRunControl-Y5AFH5PQ.js} +2 -2
- package/{agentRuntimeLocal-K2J7IS6O.js → agentRuntimeLocal-P4VGX6H6.js} +3 -3
- package/{agentSlice-OOLSXBHE.js → agentSlice-D33GU3JL.js} +1 -1
- package/{appDeleteCommands-X7YGULGZ.js → appDeleteCommands-VA4R2SWX.js} +7 -7
- package/{appDeployCommands-IMNPBUN7.js → appDeployCommands-JWMWQNG6.js} +7 -7
- package/{appDeployStatusCommands-2KFZUEET.js → appDeployStatusCommands-KYXGLZSQ.js} +7 -7
- package/{appGetCommands-AYG44S7G.js → appGetCommands-ELOO3JG6.js} +7 -7
- package/{appListCommands-Z7CLYPLH.js → appListCommands-SJUW4RLW.js} +7 -7
- package/{chunk-IOOMJJ4Z.js → chunk-34WPV75U.js} +21 -0
- package/{chunk-RYFZ55YC.js → chunk-5PGGCJGV.js} +3 -3
- package/{chunk-5ICZUVFN.js → chunk-AKVLLMOU.js} +3 -3
- package/{chunk-B26VDWID.js → chunk-BE2GNT5E.js} +1 -1
- package/{chunk-IRQJSVET.js → chunk-E5KQTMMJ.js} +39 -12
- package/{chunk-X3AHTP6B.js → chunk-ENP2ELIL.js} +2 -2
- package/{chunk-SQNQOXQ6.js → chunk-EXAEHRLI.js} +24 -33
- package/{chunk-FKXFCYVO.js → chunk-FQZZLA3C.js} +2 -0
- package/{chunk-JIDA7LBE.js → chunk-GMZZ5EKJ.js} +3 -3
- package/{chunk-BLQ3U7UK.js → chunk-HQNPCMWL.js} +1 -1
- package/{chunk-A7QNCVO5.js → chunk-IQZ6TGVW.js} +1 -1
- package/{chunk-2M54XJFV.js → chunk-J67FKTTY.js} +22 -20
- package/{chunk-CGSHUOC7.js → chunk-JFE7XW4D.js} +1 -1
- package/{chunk-XJITGCTM.js → chunk-JP7REMYP.js} +9 -0
- package/{chunk-KO4PXGVN.js → chunk-KKWJ5VPZ.js} +1 -1
- package/{chunk-OZPVJZBX.js → chunk-L2RRMXNJ.js} +11 -2
- package/{chunk-QSLNKTUG.js → chunk-MUIT5AAM.js} +84 -15
- package/{chunk-3PGT7DEK.js → chunk-N2HYIBLH.js} +2 -2
- package/{chunk-YEFSRF54.js → chunk-PUSK7HXJ.js} +25 -9
- package/{chunk-XYXJ4JRT.js → chunk-RIDWN7AP.js} +1 -1
- package/{chunk-JBWVSKBS.js → chunk-RUTSBLDM.js} +38 -9
- package/{chunk-BDSHV5HO.js → chunk-UIOYWBU7.js} +9 -13
- package/{chunk-TSIYZBTH.js → chunk-VNAEBGDK.js} +1 -1
- package/{chunk-XU6XCPWB.js → chunk-VST53WEL.js} +1 -1
- package/{chunk-QCJITMYO.js → chunk-VVKQFITN.js} +5 -2
- package/{chunk-OOKISU7J.js → chunk-XFYDGBXL.js} +1 -1
- package/{createAgentAutomationAction-EL5ORU35.js → createAgentAutomationAction-ONKZ46XE.js} +2 -2
- package/{createDialogAction-DKED4DHE.js → createDialogAction-7QWJEBKU.js} +3 -3
- package/{createPageAction-BYW4YP54.js → createPageAction-PB3KXZIA.js} +2 -2
- package/{dialogCommands-J7C6MB3Q.js → dialogCommands-YZFU4Q26.js} +7 -7
- package/{dialogSlice-RJCHTUIG.js → dialogSlice-53B5ISGQ.js} +2 -2
- package/{docCreateCommands-Y7OSXNB6.js → docCreateCommands-LOUC5PFB.js} +6 -6
- package/{docDeleteCommands-ALZGQRCE.js → docDeleteCommands-HHPGT4BR.js} +7 -7
- package/{docReadCommands-4BDDESGT.js → docReadCommands-YPSN4HEF.js} +6 -6
- package/{docStore-QWYVY7SV.js → docStore-LJXXRB5W.js} +3 -3
- package/{docUpdateCommands-LU2ZM2VE.js → docUpdateCommands-CJCZO54M.js} +6 -6
- package/{handleSendMessageAction-CUZL72WD.js → handleSendMessageAction-ICGX4QCM.js} +2 -2
- package/index.js +45 -45
- package/{machineCommands-QMODXRTA.js → machineCommands-YLDZXK4D.js} +15 -15
- package/{machineWsRunDispatch-UPWS4PZD.js → machineWsRunDispatch-LTQL3DRE.js} +15 -15
- package/package.json +1 -1
- package/{readlineWorkspace-ZDN3CREA.js → readlineWorkspace-OSPVWNAT.js} +493 -88
- package/{runAgentClientLoop-XKFPXIZC.js → runAgentClientLoop-76SUKKPX.js} +10 -10
- package/{spaceCommands-UG4QHSHD.js → spaceCommands-GIF7MKVD.js} +6 -6
- package/{spaceSlice-LR2XC33A.js → spaceSlice-M4PVN5PO.js} +2 -2
- package/{streamAgentChatTurn-5UOO7W6S.js → streamAgentChatTurn-GCKTFSHQ.js} +12 -12
- package/{tools-VHE5VME5.js → tools-RJVFXOLR.js} +7 -7
- package/{updateDialogTitleAction-OZZQ7SB2.js → updateDialogTitleAction-PSR67DLV.js} +2 -2
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
sortSafeAgentSummaries,
|
|
10
10
|
toSafeAgentSummary
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-JP7REMYP.js";
|
|
12
12
|
import {
|
|
13
13
|
getUserDataItemTimestamp,
|
|
14
14
|
mergeAndDedupUserData
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
} from "./chunk-VF4K2QE6.js";
|
|
29
29
|
import {
|
|
30
30
|
createDocState
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-N2HYIBLH.js";
|
|
32
32
|
import {
|
|
33
33
|
setDialogExtraReferencesAction
|
|
34
34
|
} from "./chunk-JLA4FXYC.js";
|
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
} from "./chunk-63W5N6P3.js";
|
|
41
41
|
import {
|
|
42
42
|
createDialogAction
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-RIDWN7AP.js";
|
|
44
44
|
import {
|
|
45
45
|
addCategory,
|
|
46
46
|
addContentToSpace,
|
|
@@ -71,13 +71,13 @@ import {
|
|
|
71
71
|
updateContentCategory,
|
|
72
72
|
updateContentTitle,
|
|
73
73
|
updateStep
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-UIOYWBU7.js";
|
|
75
75
|
import {
|
|
76
76
|
createAgent,
|
|
77
77
|
runLlm,
|
|
78
78
|
streamAgentChatTurn,
|
|
79
79
|
updateAgent
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-5PGGCJGV.js";
|
|
81
81
|
import {
|
|
82
82
|
buildCodingSkillContentBySlug,
|
|
83
83
|
buildCodingSkillPageKey,
|
|
@@ -151,7 +151,7 @@ import {
|
|
|
151
151
|
formatStatusRunCard,
|
|
152
152
|
formatStopRunCard,
|
|
153
153
|
resolveRunLabel
|
|
154
|
-
} from "./chunk-
|
|
154
|
+
} from "./chunk-FQZZLA3C.js";
|
|
155
155
|
import {
|
|
156
156
|
shareResourceAction
|
|
157
157
|
} from "./chunk-UGUW3FHG.js";
|
|
@@ -5601,6 +5601,9 @@ var interface_locale_default = {
|
|
|
5601
5601
|
windowsDesc: "One-click installer for Windows.",
|
|
5602
5602
|
linuxTitle: "Linux",
|
|
5603
5603
|
linuxDesc: "Native package for your environment.",
|
|
5604
|
+
linuxTarInstallHint: "Extract and run bin/launcher \u2014 no install needed.",
|
|
5605
|
+
linuxDebInstallHint: "sudo apt install ./nolo-desktop_amd64.deb",
|
|
5606
|
+
linuxRpmInstallHint: "sudo dnf install ./nolo-desktop_x86_64.rpm",
|
|
5604
5607
|
macosTitle: "macOS",
|
|
5605
5608
|
macosDesc: "Optimized for Apple Silicon.",
|
|
5606
5609
|
macosDmgInstaller: {
|
|
@@ -5637,7 +5640,6 @@ var interface_locale_default = {
|
|
|
5637
5640
|
pricingTitle: "Pricing Details",
|
|
5638
5641
|
pricingDesc: "View pricing rules",
|
|
5639
5642
|
guideTitle: "User Guide",
|
|
5640
|
-
guideDesc: "Quick start tips",
|
|
5641
5643
|
downloadClientTitle: "Download Client",
|
|
5642
5644
|
downloadClientDesc: "Install Nolo on desktop and mobile devices",
|
|
5643
5645
|
feedbackTitle: "Give Feedback",
|
|
@@ -6828,6 +6830,9 @@ var interface_locale_default = {
|
|
|
6828
6830
|
windowsDesc: "Windows \u4E00\u952E\u5B89\u88C5\u5305\u3002",
|
|
6829
6831
|
linuxTitle: "Linux",
|
|
6830
6832
|
linuxDesc: "\u9002\u914D\u4F60\u672C\u5730\u73AF\u5883\u7684\u539F\u751F\u5305\u3002",
|
|
6833
|
+
linuxTarInstallHint: "\u89E3\u538B\u540E\u8FD0\u884C bin/launcher\uFF0C\u65E0\u9700\u5B89\u88C5\u3002",
|
|
6834
|
+
linuxDebInstallHint: "sudo apt install ./nolo-desktop_amd64.deb",
|
|
6835
|
+
linuxRpmInstallHint: "sudo dnf install ./nolo-desktop_x86_64.rpm",
|
|
6831
6836
|
macosTitle: "macOS",
|
|
6832
6837
|
macosDesc: "\u4E3A Apple Silicon \u4F18\u5316\u3002",
|
|
6833
6838
|
macosDmgInstaller: {
|
|
@@ -6864,7 +6869,6 @@ var interface_locale_default = {
|
|
|
6864
6869
|
pricingTitle: "\u8BA1\u8D39\u8BE6\u60C5",
|
|
6865
6870
|
pricingDesc: "\u67E5\u770B\u4EF7\u683C\u89C4\u5219",
|
|
6866
6871
|
guideTitle: "\u4F7F\u7528\u6307\u5357",
|
|
6867
|
-
guideDesc: "\u5FEB\u901F\u4E0A\u624B\u6280\u5DE7",
|
|
6868
6872
|
downloadClientTitle: "\u4E0B\u8F7D\u5BA2\u6237\u7AEF",
|
|
6869
6873
|
downloadClientDesc: "\u5B89\u88C5\u684C\u9762\u7AEF\u548C\u79FB\u52A8\u7AEF\uFF0C\u6362\u8BBE\u5907\u4E5F\u80FD\u7EE7\u7EED\u7528",
|
|
6870
6874
|
feedbackTitle: "\u610F\u89C1\u53CD\u9988",
|
|
@@ -8091,7 +8095,6 @@ var interface_locale_default = {
|
|
|
8091
8095
|
pricingTitle: "\u8A08\u8CBB\u8A73\u60C5",
|
|
8092
8096
|
pricingDesc: "\u67E5\u770B\u50F9\u683C\u898F\u5247",
|
|
8093
8097
|
guideTitle: "\u4F7F\u7528\u6307\u5357",
|
|
8094
|
-
guideDesc: "\u5FEB\u901F\u4E0A\u624B\u6280\u5DE7",
|
|
8095
8098
|
downloadClientTitle: "\u4E0B\u8F09\u5BA2\u6236\u7AEF",
|
|
8096
8099
|
downloadClientDesc: "\u5B89\u88DD\u684C\u9762\u7AEF\u548C\u884C\u52D5\u7AEF\uFF0C\u63DB\u88DD\u7F6E\u4E5F\u80FD\u7E7C\u7E8C\u7528",
|
|
8097
8100
|
feedbackTitle: "\u610F\u898B\u56DE\u994B",
|
|
@@ -9240,7 +9243,6 @@ var interface_locale_default = {
|
|
|
9240
9243
|
pricingTitle: "\u6599\u91D1\u8A73\u7D30",
|
|
9241
9244
|
pricingDesc: "\u6599\u91D1\u30EB\u30FC\u30EB\u3092\u78BA\u8A8D",
|
|
9242
9245
|
guideTitle: "\u4F7F\u3044\u65B9\u30AC\u30A4\u30C9",
|
|
9243
|
-
guideDesc: "\u30AF\u30A4\u30C3\u30AF\u30B9\u30BF\u30FC\u30C8\u306E\u30B3\u30C4",
|
|
9244
9246
|
downloadClientTitle: "\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
|
|
9245
9247
|
downloadClientDesc: "\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u3068\u30E2\u30D0\u30A4\u30EB\u306B Nolo \u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",
|
|
9246
9248
|
feedbackTitle: "\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF",
|
|
@@ -14250,7 +14252,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
14250
14252
|
const deletedDialogIds = [];
|
|
14251
14253
|
const deletedDialogKeys = [];
|
|
14252
14254
|
const failures = [];
|
|
14253
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
14255
|
+
const { deleteDialog } = await import("./dialogSlice-53B5ISGQ.js");
|
|
14254
14256
|
for (const target of targets) {
|
|
14255
14257
|
try {
|
|
14256
14258
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -14329,7 +14331,7 @@ function formatAgentListCard(agents, maxDisplay = 20) {
|
|
|
14329
14331
|
}
|
|
14330
14332
|
var listAgentsFunctionSchema = {
|
|
14331
14333
|
name: "listAgents",
|
|
14332
|
-
description: "List the current user's Nolo agents as safe summaries.
|
|
14334
|
+
description: "List the current user's Nolo agents as safe summaries. The `agents` array in the JSON result carries each agent's runnable `agentKey` (agent-<userId>-<id> for owned, agent-pub-<id> for public) plus model, apiSource, tools, prices, isOwned, isFavorite. Copy `agentKey` verbatim into startAgentRun/callAgent. Prefer isOwned agents (use your own quota, no platform credits).",
|
|
14333
14335
|
parameters: {
|
|
14334
14336
|
type: "object",
|
|
14335
14337
|
properties: {
|
|
@@ -14378,7 +14380,7 @@ async function listAgentsFunc(args, thunkApi) {
|
|
|
14378
14380
|
}
|
|
14379
14381
|
var readAgentFunctionSchema = {
|
|
14380
14382
|
name: "readAgent",
|
|
14381
|
-
description: "Read one agent's full config from the Nolo workspace. Accepts an agent dbKey (agent-xxx), plain id, alias, or agent URL; resolves it (including public agents via agent-pub-<id>; the server runtime also falls back to handle lookup) and returns the runnable agentKey plus a redacted record with fields such as model, provider, apiSource, tools, prompt, inputPrice, outputPrice, and isPublic. Use it
|
|
14383
|
+
description: "Read one agent's full config from the Nolo workspace. Accepts an agent dbKey (agent-xxx), plain id, alias, or agent URL; resolves it (including public agents via agent-pub-<id>; the server runtime also falls back to handle lookup) and returns the runnable agentKey plus a redacted record with fields such as model, provider, apiSource, tools, prompt, inputPrice, outputPrice, and isPublic. Use it to inspect an agent's full capabilities/credential status before delegation. Note: startAgentRun/callAgent take the exact agentKey from listAgents/readAgent; readAgent is not required before every dispatch when listAgents already gave you the key.",
|
|
14382
14384
|
parameters: {
|
|
14383
14385
|
type: "object",
|
|
14384
14386
|
properties: {
|
|
@@ -21431,7 +21433,7 @@ var callAgentFunctionSchema = {
|
|
|
21431
21433
|
properties: {
|
|
21432
21434
|
agentKey: {
|
|
21433
21435
|
type: "string",
|
|
21434
|
-
description: "\u8981\u8C03\u7528\u7684 Agent \u7684\
|
|
21436
|
+
description: "\u8981\u8C03\u7528\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF0C\u5FC5\u987B\u662F listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08owned: agent-<userId>-<id>\uFF1Bpublic: agent-pub-<id>\uFF09\u6216 readAgent \u8FD4\u56DE\u7684 agentKey\u3002\u53EA\u63A5\u53D7\u7CBE\u786E dbKey\uFF0C\u4E0D\u63A5\u53D7 name/handle/bare id\u3002"
|
|
21435
21437
|
},
|
|
21436
21438
|
task: {
|
|
21437
21439
|
type: "string",
|
|
@@ -22076,7 +22078,7 @@ var startAgentRunFunctionSchema = {
|
|
|
22076
22078
|
properties: {
|
|
22077
22079
|
agentKey: {
|
|
22078
22080
|
type: "string",
|
|
22079
|
-
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\
|
|
22081
|
+
description: "\u8981\u542F\u52A8\u7684 Agent \u7684\u53EF\u8FD0\u884C dbKey\uFF0C\u5FC5\u987B\u662F listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08owned: agent-<userId>-<id>\uFF1Bpublic: agent-pub-<id>\uFF09\u6216 readAgent \u8FD4\u56DE\u7684 agentKey\u3002\u53EA\u63A5\u53D7\u7CBE\u786E dbKey\uFF0C\u4E0D\u63A5\u53D7 name/handle/bare id\u3002"
|
|
22080
22082
|
},
|
|
22081
22083
|
task: {
|
|
22082
22084
|
type: "string",
|
|
@@ -22159,7 +22161,7 @@ async function startAgentRunFunc(args, thunkApi, _context) {
|
|
|
22159
22161
|
// packages/ai/tools/agent/controlAgentRunTool.ts
|
|
22160
22162
|
var controlAgentRunFunctionSchema = {
|
|
22161
22163
|
name: "controlAgentRun",
|
|
22162
|
-
description: "\u89C2\u5BDF\u548C\u63A7\u5236\u540E\u53F0 agent run\u3002\u4E00\u4E2A\u5DE5\u5177\u4E09\u4E2A action\uFF1Alist\uFF08\u5217\u51FA run\uFF0C\u652F\u6301\u6309\u6279\u6B21/\u72B6\u6001\u8FC7\u6EE4\u4E0E\u5206\u9875\uFF09\u3001status\uFF08\u67E5\u5355\u6761 + \u53EF\u9009\u65E5\u5FD7\uFF09\u3001stop\uFF08\u53D6\u6D88 run\uFF09\u3002\u76F8\u5F53\u4E8E Unix \u7684 wait + signal + /proc\u3002\u7528 startAgentRun \u62FF\u5230 runId \u540E\uFF0C\u7528\u672C\u5DE5\u5177\u8DDF\u8FDB\u5EA6\u6216\u53EB\u505C\u3002list \u9ED8\u8BA4\u53EA\u8FD4\u56DE\u6700\u8FD1 20 \u6761\uFF0C\u907F\u514D\u5168\u91CF\u51B2\u7206\u4E0A\u4E0B\u6587\uFF1B\u7528 status/batchId/limit/offset \u53D6\u6240\u9700\u5206\u9875\u3002",
|
|
22164
|
+
description: "\u89C2\u5BDF\u548C\u63A7\u5236\u540E\u53F0 agent run\u3002\u4E00\u4E2A\u5DE5\u5177\u4E09\u4E2A action\uFF1Alist\uFF08\u5217\u51FA run\uFF0C\u652F\u6301\u6309\u6279\u6B21/\u72B6\u6001\u8FC7\u6EE4\u4E0E\u5206\u9875\uFF09\u3001status\uFF08\u67E5\u5355\u6761 + \u53EF\u9009\u65E5\u5FD7\uFF09\u3001stop\uFF08\u53D6\u6D88 run\uFF09\u3002\u76F8\u5F53\u4E8E Unix \u7684 wait + signal + /proc\u3002\u7528 startAgentRun \u62FF\u5230 runId \u540E\uFF0C\u7528\u672C\u5DE5\u5177\u8DDF\u8FDB\u5EA6\u6216\u53EB\u505C\u3002list \u9ED8\u8BA4\u53EA\u8FD4\u56DE\u6700\u8FD1 20 \u6761\uFF0C\u907F\u514D\u5168\u91CF\u51B2\u7206\u4E0A\u4E0B\u6587\uFF1B\u7528 status/batchId/limit/offset \u53D6\u6240\u9700\u5206\u9875\u3002\u6CE8\u610F\uFF1A\u7528\u6237\u754C\u9762\u5DF2\u7ECF\u5728\u72EC\u7ACB\u5B9E\u65F6\u663E\u793A\u6BCF\u6761 run \u7684\u72B6\u6001\uFF0C\u672C\u5DE5\u5177\u662F\u7ED9\u4F60\u81EA\u5DF1\u505A\u51B3\u7B56\u7528\u7684\uFF0C\u4E0D\u662F\u7528\u6765\u7ED9\u7528\u6237\u6C47\u62A5\u8FDB\u5EA6\u7684\u2014\u2014\u4E0D\u5FC5\u4E3A\u4E86\u300C\u8BA9\u7528\u6237\u770B\u5230\u72B6\u6001\u300D\u800C\u8F6E\u8BE2\uFF0C\u4E5F\u4E0D\u8981\u628A\u8FD4\u56DE\u503C\u590D\u8FF0\u7ED9\u7528\u6237\u3002",
|
|
22163
22165
|
parameters: {
|
|
22164
22166
|
type: "object",
|
|
22165
22167
|
properties: {
|
|
@@ -22174,7 +22176,7 @@ var controlAgentRunFunctionSchema = {
|
|
|
22174
22176
|
},
|
|
22175
22177
|
tailLines: {
|
|
22176
22178
|
type: "number",
|
|
22177
|
-
description: "\u53EF\u9009\u3002action=status \u65F6\uFF1A0=\u53EA\u8FD4\u56DE\u72B6\u6001\u6458\u8981\uFF0C>0=\u540C\u65F6\u8FD4\u56DE\u6700\u8FD1 N \u884C\u65E5\u5FD7\uFF08\u9ED8\u8BA4 0\uFF09\u3002",
|
|
22179
|
+
description: "\u53EF\u9009\u3002action=status \u65F6\uFF1A0=\u53EA\u8FD4\u56DE\u72B6\u6001\u6458\u8981\uFF0C>0=\u540C\u65F6\u8FD4\u56DE\u6700\u8FD1 N \u884C\u65E5\u5FD7\uFF08\u9ED8\u8BA4 0\uFF09\u3002\u672C\u5730 run \u7684\u72B6\u6001\u6458\u8981\u91CC\u5E26 progress\uFF08toolCalls/llmCalls/fileEdits\u3001inFlight=\u6B64\u523B\u5728\u6267\u884C\u4EC0\u4E48\u3001idleMs=\u8DDD\u4E0A\u6B21\u4E8B\u4EF6\u591A\u4E45\uFF09\uFF0C\u8DB3\u4EE5\u5224\u65AD\u300C\u5728\u5E72\u6D3B\u300D\u8FD8\u662F\u300C\u5361\u4F4F\u4E86\u300D\u2014\u2014\u5148\u770B\u5B83\uFF0C\u53EA\u6709\u786E\u5B9E\u53EF\u7591\u6216\u5DF2\u5931\u8D25\u65F6\u624D tailLines>0 \u62C9\u65E5\u5FD7\u3002",
|
|
22178
22180
|
default: 0
|
|
22179
22181
|
},
|
|
22180
22182
|
batchId: {
|
|
@@ -23514,7 +23516,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
23514
23516
|
if (!executionInput) {
|
|
23515
23517
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
23516
23518
|
}
|
|
23517
|
-
const { findToolExecutor: findToolExecutor2 } = await import("./tools-
|
|
23519
|
+
const { findToolExecutor: findToolExecutor2 } = await import("./tools-RJVFXOLR.js");
|
|
23518
23520
|
const { executor } = findToolExecutor2(run.toolName);
|
|
23519
23521
|
toolRunStarted({
|
|
23520
23522
|
id: run.id,
|
|
@@ -23538,7 +23540,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
23538
23540
|
const latestState = thunkApi.getState();
|
|
23539
23541
|
const userId = latestState.auth?.currentUser?.userId;
|
|
23540
23542
|
if (userId) {
|
|
23541
|
-
const { fetchUserSpaceMemberships } = await import("./spaceSlice-
|
|
23543
|
+
const { fetchUserSpaceMemberships } = await import("./spaceSlice-M4PVN5PO.js");
|
|
23542
23544
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
23543
23545
|
}
|
|
23544
23546
|
}
|
|
@@ -26021,7 +26023,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
26021
26023
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
26022
26024
|
};
|
|
26023
26025
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
26024
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
26026
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-LJXXRB5W.js");
|
|
26025
26027
|
if (getDocState().pageKey === id) {
|
|
26026
26028
|
applyExternalDocUpdate({
|
|
26027
26029
|
slateData: finalSlateData,
|
|
@@ -107,8 +107,17 @@ function toSafeAgentSummary(record, options) {
|
|
|
107
107
|
const isOwnedByRecord = Boolean(currentUserId) && (typeof record?.userId === "string" && record.userId === currentUserId || typeof record?.ownerId === "string" && record.ownerId === currentUserId);
|
|
108
108
|
const isOwnedByDbKey = Boolean(currentUserId) && typeof record?.dbKey === "string" && record.dbKey.startsWith(`agent-${currentUserId}-`);
|
|
109
109
|
const isOwned = isOwnedByRecord || isOwnedByDbKey;
|
|
110
|
+
let agentKey;
|
|
111
|
+
if (Boolean(currentUserId) && id) {
|
|
112
|
+
if (isOwned) {
|
|
113
|
+
agentKey = `agent-${currentUserId}-${id}`;
|
|
114
|
+
} else if (publicKey) {
|
|
115
|
+
agentKey = publicKey;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
110
118
|
return {
|
|
111
119
|
id,
|
|
120
|
+
...agentKey !== void 0 ? { agentKey } : {},
|
|
112
121
|
...publicKey !== void 0 ? { publicKey } : {},
|
|
113
122
|
name,
|
|
114
123
|
handle,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
i18n_default,
|
|
3
3
|
toolRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-J67FKTTY.js";
|
|
5
5
|
import {
|
|
6
6
|
canonicalizeToolNames
|
|
7
7
|
} from "./chunk-ZZ2MH7LE.js";
|
|
@@ -146,6 +146,7 @@ var sanitizeToolForProvider = (tool, provider) => {
|
|
|
146
146
|
var translatedFunctionCache = /* @__PURE__ */ new Map();
|
|
147
147
|
var prepareToolsResultCache = /* @__PURE__ */ new Map();
|
|
148
148
|
var PREPARE_TOOLS_CACHE_LIMIT = 128;
|
|
149
|
+
var warnedUnknownToolNames = /* @__PURE__ */ new Set();
|
|
149
150
|
function getTranslation(keys, defaultVal) {
|
|
150
151
|
for (const key of keys) {
|
|
151
152
|
if (i18n_default.exists(key)) {
|
|
@@ -247,7 +248,15 @@ var prepareTools = (toolNames, options) => {
|
|
|
247
248
|
}
|
|
248
249
|
const prepared = canonicalNames.map((toolName) => {
|
|
249
250
|
const regTool = toolRegistry[toolName];
|
|
250
|
-
if (!regTool)
|
|
251
|
+
if (!regTool) {
|
|
252
|
+
if (!warnedUnknownToolNames.has(toolName)) {
|
|
253
|
+
warnedUnknownToolNames.add(toolName);
|
|
254
|
+
console.warn(
|
|
255
|
+
`[prepareTools] unknown tool name "${toolName}" ignored (not in toolRegistry); likely stale agent config from a renamed/deprecated tool.`
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
return regTool;
|
|
259
|
+
}
|
|
251
260
|
return {
|
|
252
261
|
...regTool,
|
|
253
262
|
function: translateSchemaCached(regTool.function)
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
inlineImageUrlsForCustomProvider,
|
|
6
6
|
prepareTools,
|
|
7
7
|
shouldInlineImageUrlsForAgent
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-L2RRMXNJ.js";
|
|
9
9
|
import {
|
|
10
10
|
performFetchRequest
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-EXAEHRLI.js";
|
|
12
12
|
import {
|
|
13
13
|
createSSEParser,
|
|
14
14
|
createToolRunId,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
toolRunSetPending,
|
|
20
20
|
toolRunStarted,
|
|
21
21
|
toolRunSucceeded
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-J67FKTTY.js";
|
|
23
23
|
import {
|
|
24
24
|
getPublicImageAgentMode
|
|
25
25
|
} from "./chunk-VIDPVFP3.js";
|
|
@@ -29,13 +29,13 @@ import {
|
|
|
29
29
|
messageStreaming,
|
|
30
30
|
selectCurrentSpaceId,
|
|
31
31
|
updateToolMessage
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-UIOYWBU7.js";
|
|
33
33
|
import {
|
|
34
34
|
streamAgentChatTurn
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-5PGGCJGV.js";
|
|
36
36
|
import {
|
|
37
37
|
EMPTY_ASSISTANT_REPAIR_PROMPT
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-VVKQFITN.js";
|
|
39
39
|
import {
|
|
40
40
|
accumulateToolCallDelta,
|
|
41
41
|
createThinkParserState,
|
|
@@ -1223,6 +1223,7 @@ function applyDelta(state, delta) {
|
|
|
1223
1223
|
const reasoningChunk = delta.reasoning_content ?? delta.reasoning ?? "";
|
|
1224
1224
|
if (reasoningChunk) {
|
|
1225
1225
|
next.reasoningBuffer = (next.reasoningBuffer || "") + reasoningChunk;
|
|
1226
|
+
hasNewVisibleContent = true;
|
|
1226
1227
|
}
|
|
1227
1228
|
if (Array.isArray(delta.tool_calls) && delta.tool_calls.length > 0) {
|
|
1228
1229
|
const accumulated = accumulateToolCallChunks(
|
|
@@ -1268,6 +1269,7 @@ function applyDelta(state, delta) {
|
|
|
1268
1269
|
next.thinkState = parsed.state;
|
|
1269
1270
|
if (parsed.reasoning) {
|
|
1270
1271
|
next.reasoningBuffer = (next.reasoningBuffer || "") + parsed.reasoning;
|
|
1272
|
+
hasNewVisibleContent = true;
|
|
1271
1273
|
}
|
|
1272
1274
|
if (parsed.content) {
|
|
1273
1275
|
next = {
|
|
@@ -1296,6 +1298,58 @@ function emitStreamingUpdate(hasNewVisibleContent, state, ctx) {
|
|
|
1296
1298
|
})
|
|
1297
1299
|
);
|
|
1298
1300
|
}
|
|
1301
|
+
function createStreamThrottler(emitUpdate, options) {
|
|
1302
|
+
let pendingState = null;
|
|
1303
|
+
let timerId = null;
|
|
1304
|
+
const defaultSchedule = (cb) => {
|
|
1305
|
+
if (typeof window !== "undefined" && typeof window.requestAnimationFrame === "function") {
|
|
1306
|
+
return window.requestAnimationFrame(cb);
|
|
1307
|
+
}
|
|
1308
|
+
return setTimeout(cb, 16);
|
|
1309
|
+
};
|
|
1310
|
+
const defaultCancel = (id) => {
|
|
1311
|
+
if (typeof window !== "undefined" && typeof window.cancelAnimationFrame === "function") {
|
|
1312
|
+
window.cancelAnimationFrame(id);
|
|
1313
|
+
return;
|
|
1314
|
+
}
|
|
1315
|
+
clearTimeout(id);
|
|
1316
|
+
};
|
|
1317
|
+
const scheduleFn = options?.schedule ?? defaultSchedule;
|
|
1318
|
+
const cancelFn = options?.cancel ?? defaultCancel;
|
|
1319
|
+
return {
|
|
1320
|
+
push(state) {
|
|
1321
|
+
pendingState = state;
|
|
1322
|
+
if (timerId === null) {
|
|
1323
|
+
timerId = scheduleFn(() => {
|
|
1324
|
+
timerId = null;
|
|
1325
|
+
if (pendingState !== null) {
|
|
1326
|
+
const stateToEmit = pendingState;
|
|
1327
|
+
pendingState = null;
|
|
1328
|
+
emitUpdate(stateToEmit);
|
|
1329
|
+
}
|
|
1330
|
+
});
|
|
1331
|
+
}
|
|
1332
|
+
},
|
|
1333
|
+
flush() {
|
|
1334
|
+
if (timerId !== null) {
|
|
1335
|
+
cancelFn(timerId);
|
|
1336
|
+
timerId = null;
|
|
1337
|
+
}
|
|
1338
|
+
if (pendingState !== null) {
|
|
1339
|
+
const stateToEmit = pendingState;
|
|
1340
|
+
pendingState = null;
|
|
1341
|
+
emitUpdate(stateToEmit);
|
|
1342
|
+
}
|
|
1343
|
+
},
|
|
1344
|
+
cancel() {
|
|
1345
|
+
if (timerId !== null) {
|
|
1346
|
+
cancelFn(timerId);
|
|
1347
|
+
timerId = null;
|
|
1348
|
+
}
|
|
1349
|
+
pendingState = null;
|
|
1350
|
+
}
|
|
1351
|
+
};
|
|
1352
|
+
}
|
|
1299
1353
|
function validateAndPartitionToolCalls(state) {
|
|
1300
1354
|
const validCalls = [];
|
|
1301
1355
|
const invalidCalls = [];
|
|
@@ -1510,7 +1564,8 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1510
1564
|
parentMessageId,
|
|
1511
1565
|
messageMetadata,
|
|
1512
1566
|
disableToolsForThisRequest = false,
|
|
1513
|
-
quickChatPerfStartedAt
|
|
1567
|
+
quickChatPerfStartedAt,
|
|
1568
|
+
streamThrottlerOptions
|
|
1514
1569
|
}) => {
|
|
1515
1570
|
const { dispatch, getState, signal: thunkSignal } = thunkApi;
|
|
1516
1571
|
const dialogId = extractCustomId(dialogKey);
|
|
@@ -1557,6 +1612,16 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1557
1612
|
let lastFinishReason = null;
|
|
1558
1613
|
let activeMessageMetadata = messageMetadata;
|
|
1559
1614
|
let emptyCompletionRetryUsed = false;
|
|
1615
|
+
const throttler = createStreamThrottler((latestState) => {
|
|
1616
|
+
emitStreamingUpdate(true, latestState, {
|
|
1617
|
+
dispatch,
|
|
1618
|
+
agentConfig,
|
|
1619
|
+
messageId,
|
|
1620
|
+
msgKey,
|
|
1621
|
+
dialogId,
|
|
1622
|
+
messageMetadata: activeMessageMetadata
|
|
1623
|
+
});
|
|
1624
|
+
}, streamThrottlerOptions);
|
|
1560
1625
|
const buildMeta = () => ({
|
|
1561
1626
|
hasToolCalls: Array.isArray(streamState.assistantToolCalls) && streamState.assistantToolCalls.length > 0,
|
|
1562
1627
|
hasPendingInteraction: hasPendingInteractionOverall,
|
|
@@ -1664,6 +1729,7 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1664
1729
|
while (true) {
|
|
1665
1730
|
const { done, value } = await readStreamChunkWithTimeout(reader, signal);
|
|
1666
1731
|
if (done) {
|
|
1732
|
+
throttler.flush();
|
|
1667
1733
|
const producedNothing = streamState.contentBuffer.length === 0 && !streamState.reasoningBuffer.trim() && (streamState.assistantToolCalls?.length ?? 0) === 0;
|
|
1668
1734
|
if (producedNothing && !emptyCompletionRetryUsed && !streamState.hasHandedOff && !streamState.alreadyFinalized && !signal.aborted) {
|
|
1669
1735
|
emptyCompletionRetryUsed = true;
|
|
@@ -1683,6 +1749,7 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1683
1749
|
dialogId
|
|
1684
1750
|
});
|
|
1685
1751
|
if (retryResponse.ok && retryResponse.body) {
|
|
1752
|
+
throttler.cancel();
|
|
1686
1753
|
streamState = createInitialStreamState();
|
|
1687
1754
|
parseSSE = createSSEParser();
|
|
1688
1755
|
decoder = new TextDecoder();
|
|
@@ -1732,6 +1799,7 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1732
1799
|
continue;
|
|
1733
1800
|
}
|
|
1734
1801
|
if (data.error) {
|
|
1802
|
+
throttler.flush();
|
|
1735
1803
|
const errorMsg = `Error: ${formatStreamErrorMessage(data)}`;
|
|
1736
1804
|
streamState = {
|
|
1737
1805
|
...streamState,
|
|
@@ -1760,19 +1828,18 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1760
1828
|
{ dialogKey }
|
|
1761
1829
|
);
|
|
1762
1830
|
}
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
messageMetadata: activeMessageMetadata
|
|
1770
|
-
});
|
|
1831
|
+
if (hasNewVisibleContent) {
|
|
1832
|
+
throttler.push(streamState);
|
|
1833
|
+
}
|
|
1834
|
+
if (Array.isArray(delta.tool_calls) && delta.tool_calls.length > 0) {
|
|
1835
|
+
throttler.flush();
|
|
1836
|
+
}
|
|
1771
1837
|
const finishReason = choice.finish_reason;
|
|
1772
1838
|
if (finishReason) {
|
|
1773
1839
|
lastFinishReason = finishReason;
|
|
1774
1840
|
streamState.finishReason = finishReason;
|
|
1775
1841
|
if (finishReason === "tool_calls") {
|
|
1842
|
+
throttler.flush();
|
|
1776
1843
|
if (streamState.totalUsage) {
|
|
1777
1844
|
dispatch(tokenUsageLiveUpdate({
|
|
1778
1845
|
input_tokens: streamState.totalUsage.prompt_tokens ?? streamState.totalUsage.input_tokens,
|
|
@@ -1813,6 +1880,7 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1813
1880
|
}
|
|
1814
1881
|
}
|
|
1815
1882
|
} catch (error) {
|
|
1883
|
+
throttler.flush();
|
|
1816
1884
|
let errorText;
|
|
1817
1885
|
const isAbort = isAbortError(error);
|
|
1818
1886
|
if (isAbort) {
|
|
@@ -1834,6 +1902,7 @@ var sendOpenAICompletionsRequest = async ({
|
|
|
1834
1902
|
}
|
|
1835
1903
|
streamState = await finalizeStream(streamState, finalizeCtx);
|
|
1836
1904
|
} finally {
|
|
1905
|
+
throttler.cancel();
|
|
1837
1906
|
logQuickChatPerfStage(quickChatPerfStartedAt, "openai-completions-stream-finished", {
|
|
1838
1907
|
dialogKey
|
|
1839
1908
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
updateContentTitle
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UIOYWBU7.js";
|
|
4
4
|
import {
|
|
5
5
|
require_date_fns
|
|
6
6
|
} from "./chunk-M76ECQRD.js";
|
|
@@ -367,7 +367,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
367
367
|
}
|
|
368
368
|
}
|
|
369
369
|
async function createDocState(args, thunkApi) {
|
|
370
|
-
const { createPageAction } = await import("./createPageAction-
|
|
370
|
+
const { createPageAction } = await import("./createPageAction-PB3KXZIA.js");
|
|
371
371
|
return createPageAction(args, thunkApi);
|
|
372
372
|
}
|
|
373
373
|
function subscribe(listener) {
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-AAODAAUQ.js";
|
|
8
8
|
import {
|
|
9
9
|
parseToolArgumentsJson
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VVKQFITN.js";
|
|
11
11
|
import {
|
|
12
12
|
createThinkParserState,
|
|
13
13
|
createToolCallAccumulator,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
requiresBareImageUrl,
|
|
20
20
|
toBareImageUrlMessages
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-34WPV75U.js";
|
|
22
22
|
import {
|
|
23
23
|
shouldStripReasoningContentForOutbound,
|
|
24
24
|
toOpenAiCompatibleMessages
|
|
@@ -1139,7 +1139,8 @@ var ProcessRegistry = class {
|
|
|
1139
1139
|
command: proc.command,
|
|
1140
1140
|
label: proc.label,
|
|
1141
1141
|
startedAt: Date.now(),
|
|
1142
|
-
status: "running"
|
|
1142
|
+
status: "running",
|
|
1143
|
+
persist: proc.persist ?? false
|
|
1143
1144
|
});
|
|
1144
1145
|
}
|
|
1145
1146
|
list() {
|
|
@@ -1162,9 +1163,9 @@ var ProcessRegistry = class {
|
|
|
1162
1163
|
}
|
|
1163
1164
|
return false;
|
|
1164
1165
|
}
|
|
1165
|
-
stopAll(signal = "SIGTERM") {
|
|
1166
|
+
stopAll(signal = "SIGTERM", opts) {
|
|
1166
1167
|
for (const item of this.processes.values()) {
|
|
1167
|
-
if (item.status === "running") {
|
|
1168
|
+
if (item.status === "running" && (opts?.includePersist || !item.persist)) {
|
|
1168
1169
|
try {
|
|
1169
1170
|
process.kill(-item.pgid, signal);
|
|
1170
1171
|
} catch {
|
|
@@ -1629,6 +1630,10 @@ function buildLaunchProcessTool() {
|
|
|
1629
1630
|
label: {
|
|
1630
1631
|
type: "string",
|
|
1631
1632
|
description: "Optional friendly label for the process."
|
|
1633
|
+
},
|
|
1634
|
+
persist: {
|
|
1635
|
+
type: "boolean",
|
|
1636
|
+
description: "Mark the process as persistent so it survives the current TUI/session exit (kept running in the background when the conversation closes). Defaults to false. Use for long-lived services (e.g. a desktop dev server) you want to keep alive after the session ends."
|
|
1632
1637
|
}
|
|
1633
1638
|
},
|
|
1634
1639
|
required: ["command"]
|
|
@@ -1641,7 +1646,7 @@ function buildListProcessesTool() {
|
|
|
1641
1646
|
type: "function",
|
|
1642
1647
|
function: {
|
|
1643
1648
|
name: "listProcesses",
|
|
1644
|
-
description: "List currently registered background processes launched via launchProcess. Returns array of {pid, label, command, status, startedAt}.",
|
|
1649
|
+
description: "List currently registered background processes launched via launchProcess. Returns array of {pid, label, command, status, startedAt, persist}.",
|
|
1645
1650
|
parameters: {
|
|
1646
1651
|
type: "object",
|
|
1647
1652
|
properties: {}
|
|
@@ -1785,6 +1790,16 @@ var SEARCH_OUTPUT_CHAR_LIMIT = 2e4;
|
|
|
1785
1790
|
function readTrimmedString(value) {
|
|
1786
1791
|
return asOptionalTrimmedString(value);
|
|
1787
1792
|
}
|
|
1793
|
+
function readBoolean(parsed, key) {
|
|
1794
|
+
const val = parsed[key];
|
|
1795
|
+
if (typeof val === "boolean") return val;
|
|
1796
|
+
if (typeof val === "string") {
|
|
1797
|
+
const lower = val.trim().toLowerCase();
|
|
1798
|
+
if (lower === "true") return true;
|
|
1799
|
+
if (lower === "false") return false;
|
|
1800
|
+
}
|
|
1801
|
+
return void 0;
|
|
1802
|
+
}
|
|
1788
1803
|
function resolveExecShellTimeoutMs(override) {
|
|
1789
1804
|
const fromOverride = asOptionalPositiveFiniteNumber(override);
|
|
1790
1805
|
if (fromOverride !== void 0) return fromOverride;
|
|
@@ -2990,7 +3005,7 @@ async function searchFilesTool(args) {
|
|
|
2990
3005
|
const literal = parsed.literal === true;
|
|
2991
3006
|
const caseSensitive = parsed.caseSensitive === false ? false : true;
|
|
2992
3007
|
const requestedPath = pickFirstAlias(parsed, PATH_FIELD_ALIASES) ?? ".";
|
|
2993
|
-
const includeIgnored = parsed.includeIgnored === true;
|
|
3008
|
+
const includeIgnored = parsed.includeIgnored === true || args.workspaceRoot.includes(".worktrees");
|
|
2994
3009
|
const searchPath = await resolveLocalWorkspaceToolPath({
|
|
2995
3010
|
workspaceRoot: args.workspaceRoot,
|
|
2996
3011
|
requestedPath,
|
|
@@ -3266,7 +3281,7 @@ async function globFilesTool(args) {
|
|
|
3266
3281
|
const exclude = readWorkspaceExcludeGlobs(parsed);
|
|
3267
3282
|
const maxResults = readWorkspaceMaxResults(parsed, warnings);
|
|
3268
3283
|
const requestedPath = pickFirstAlias(parsed, PATH_FIELD_ALIASES) ?? ".";
|
|
3269
|
-
const includeIgnored = parsed.includeIgnored === true;
|
|
3284
|
+
const includeIgnored = parsed.includeIgnored === true || args.workspaceRoot.includes(".worktrees");
|
|
3270
3285
|
const searchPath = await resolveLocalWorkspaceToolPath({
|
|
3271
3286
|
workspaceRoot: args.workspaceRoot,
|
|
3272
3287
|
requestedPath,
|
|
@@ -3502,6 +3517,7 @@ async function launchProcessTool(args) {
|
|
|
3502
3517
|
}
|
|
3503
3518
|
const labelArg = readTrimmedString(parsed.label);
|
|
3504
3519
|
const label = labelArg || deriveLabel(command);
|
|
3520
|
+
const persist = readBoolean(parsed, "persist");
|
|
3505
3521
|
const fullCommand = buildWorkspaceShellCommand({
|
|
3506
3522
|
toolName: args.call.name,
|
|
3507
3523
|
command,
|
|
@@ -3526,7 +3542,7 @@ async function launchProcessTool(args) {
|
|
|
3526
3542
|
}
|
|
3527
3543
|
const pgid = detached ? pid : pid;
|
|
3528
3544
|
const registry2 = getProcessRegistry();
|
|
3529
|
-
registry2.add({ pid, pgid, command, label });
|
|
3545
|
+
registry2.add({ pid, pgid, command, label, persist });
|
|
3530
3546
|
const cleanupChildOnHostSignal = (signal) => {
|
|
3531
3547
|
try {
|
|
3532
3548
|
if (detached) {
|