nolo-cli 0.211.0 → 0.213.0
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-VVQEOY3D.js → _executeModel-CUJLCFWR.js} +57 -54
- package/{action-U235TV4P.js → action-DF5UYSJF.js} +4 -4
- package/{addContentAction-7C76J7ST.js → addContentAction-WERAONNY.js} +9 -9
- package/{addDialogAgentAction-KTYANUEC.js → addDialogAgentAction-7VI7YRML.js} +16 -13
- package/{agentDeleteCommand-WHRU6VDJ.js → agentDeleteCommand-XJORXPGU.js} +80 -76
- package/{agentEmailCommands-ALLHXPW3.js → agentEmailCommands-XTYYFR6Z.js} +85 -80
- package/{agentListCommands-POKMEKMS.js → agentListCommands-OBLRBLHS.js} +237 -115
- package/{agentMachineCommands-WJLZLBPI.js → agentMachineCommands-5FMT3OT5.js} +33 -31
- package/{agentProviderCommands-MN3ABDME.js → agentProviderCommands-Q5O33MED.js} +33 -4
- package/{agentRecordCommands-OULZW3KM.js → agentRecordCommands-ZQ7SVYGG.js} +75 -70
- package/{agentRunCommand-ZNG4LGNQ.js → agentRunCommand-WS7IGO2W.js} +77 -73
- package/{agentRunControl-AF7BMR22.js → agentRunControl-TAMHJQSR.js} +8 -7
- package/{agentRuntimeLocal-YMUHFV5M.js → agentRuntimeLocal-SOO2OPJG.js} +30 -27
- package/{agentSlice-WNGUIMQZ.js → agentSlice-CHR6KOZN.js} +13 -13
- package/{appDeleteCommands-6MXPLAVF.js → appDeleteCommands-GUP6P5YE.js} +34 -32
- package/{appDeployCommands-ERRSVASW.js → appDeployCommands-MH2FX4O5.js} +34 -32
- package/{appDeployStatusCommands-ULICISLI.js → appDeployStatusCommands-SUHN3HPJ.js} +34 -32
- package/{appGetCommands-WYYYWROF.js → appGetCommands-YWDEX6Z4.js} +34 -32
- package/{appListCommands-DFCUCRCV.js → appListCommands-ZQVMLPAY.js} +34 -32
- package/{authCommand-ZJMWXFMA.js → authCommand-PWX2ZNUP.js} +15 -15
- package/{authCommands-WK6E42L2.js → authCommands-HV3EAU3V.js} +2 -2
- package/{builtinSkillRegistry-HH75G5J3.js → builtinSkillRegistry-2QETTQPM.js} +5 -4
- package/{chromeOpsCommands-HEN5AX2J.js → chromeOpsCommands-DIVM2K3T.js} +1 -1
- package/{chunk-TRZP7JZ7.js → chunk-2QHFH3DR.js} +1 -0
- package/{chunk-XE4Q46FF.js → chunk-3CGG2PAL.js} +1 -1
- package/{chunk-YUXQAVRD.js → chunk-3UKL3HPD.js} +251 -14
- package/{chunk-BSISWVB4.js → chunk-4I7ERB7F.js} +1 -1
- package/{chunk-5ORJGHTL.js → chunk-4T2WNOY7.js} +6 -6
- package/{chunk-W5VC7F7V.js → chunk-5MQRBSMW.js} +84 -91
- package/{chunk-YLTLB5A7.js → chunk-6DWMYIUY.js} +7 -6
- package/chunk-6VLJ6YA7.js +11751 -0
- package/{chunk-KSTEXKL6.js → chunk-75XIDFBW.js} +4 -3
- package/{chunk-BTYQAODF.js → chunk-7BT37FK3.js} +196 -308
- package/{chunk-27E2CBBY.js → chunk-7OCO4TDT.js} +1 -1
- package/{chunk-V3M6IXQI.js → chunk-7QTZCMKL.js} +335 -131
- package/chunk-7RFNTILS.js +2213 -0
- package/{chunk-NHQKWPLP.js → chunk-7Y4YTDQF.js} +25 -23
- package/{chunk-CKAHAVMK.js → chunk-A7TFUNZO.js} +35 -25
- package/{chunk-PJNFNEJE.js → chunk-ALQ3657A.js} +28 -2
- package/{chunk-NV572QM3.js → chunk-BBJ22CLB.js} +15 -15
- package/chunk-CJEIOP3E.js +0 -0
- package/{chunk-4WCEC56C.js → chunk-COFEN36Z.js} +2 -2
- package/{chunk-25OB36GU.js → chunk-CRHOO2ZR.js} +4 -4
- package/{chunk-NTSRCTUX.js → chunk-CTPXME7U.js} +2 -2
- package/{chunk-TPCDYNJK.js → chunk-EHGEOAHI.js} +3 -3
- package/{chunk-Y2WUYX4I.js → chunk-EHSZD5OI.js} +1 -1
- package/{chunk-SU3QL7YG.js → chunk-FUGMREBO.js} +2 -2
- package/{chunk-UMEGDH6A.js → chunk-FW6YHHLI.js} +8 -8
- package/chunk-FY7F4Q6X.js +127 -0
- package/{chunk-25M2K6OA.js → chunk-G2BQWAVT.js} +3 -3
- package/chunk-G7MLNNEX.js +84 -0
- package/{chunk-DQLB4NQ3.js → chunk-GPVRUGGY.js} +2 -2
- package/{chunk-RQ22OZD7.js → chunk-H2TJUNCH.js} +1 -1
- package/{chunk-XPHZK3PJ.js → chunk-H4UOTUOX.js} +165 -51
- package/{chunk-CVCRAO6Q.js → chunk-H5HF7TJA.js} +9 -7
- package/{chunk-OP7PTBAJ.js → chunk-H7PPIYWP.js} +9 -9
- package/{chunk-QQM464AL.js → chunk-HPFCI4SK.js} +3 -3
- package/chunk-HRMJUN5J.js +26 -0
- package/{chunk-WI6OGHXJ.js → chunk-HSVBJRF4.js} +5 -5
- package/{chunk-RYWO5AKN.js → chunk-HUBHAQK2.js} +10 -10
- package/{chunk-LKDF3ATR.js → chunk-INUFILG6.js} +1 -1
- package/{chunk-NXCGNS4N.js → chunk-IXNGOHV5.js} +2 -2
- package/{chunk-ET2CWLIJ.js → chunk-J2NHJ7WX.js} +4 -4
- package/{chunk-ECX3NKRD.js → chunk-JY5NGFFH.js} +11 -0
- package/chunk-KC4XDTT3.js +227 -0
- package/{chunk-ADBWFYJD.js → chunk-KFLT5KAD.js} +9 -9
- package/{chunk-PLYWH7XM.js → chunk-KIM6CLW5.js} +7 -7
- package/{chunk-7IYBN7IA.js → chunk-LLRPJECG.js} +22 -13
- package/{chunk-3J3U3KXB.js → chunk-MDB67IWP.js} +5 -5
- package/chunk-MMA3LZ3W.js +105 -0
- package/{chunk-XDMGY5IU.js → chunk-MOIJOHA5.js} +227 -11
- package/{chunk-NLT32XBZ.js → chunk-NJLL224W.js} +2 -2
- package/{chunk-JBOUVTZX.js → chunk-NOKUNJON.js} +15 -4
- package/{chunk-C2XZM3K4.js → chunk-NSAPDIN2.js} +12 -27
- package/{chunk-PAFTGNWA.js → chunk-O2TZF4AI.js} +2 -2
- package/{chunk-UIOEHFF6.js → chunk-OQHIVPG4.js} +1 -0
- package/{chunk-TCTSYFDM.js → chunk-OQPKUBPB.js} +19 -6
- package/{chunk-X4F26D5K.js → chunk-P5L7CXOC.js} +58 -33
- package/{chunk-OXME3PEE.js → chunk-PCLE46CE.js} +1 -1
- package/{chunk-UCPAVEQB.js → chunk-PYRUW7XN.js} +1 -1
- package/{chunk-YXOBCDNW.js → chunk-QG4AOSON.js} +12 -49
- package/{chunk-RXCCWVA2.js → chunk-QHPRUL4O.js} +3 -3
- package/{chunk-I5PBXF7O.js → chunk-R5O4QAWG.js} +1 -1
- package/{chunk-HD3WR3TD.js → chunk-RLBNLZVC.js} +1 -1
- package/{chunk-SN5XE6GQ.js → chunk-RPQXPZZF.js} +4 -4
- package/{chunk-ZOO3WJIE.js → chunk-RSHTSUEG.js} +948 -108
- package/{chunk-6HVBI6TI.js → chunk-RZOV7OMV.js} +12 -229
- package/{chunk-D2MDMY2M.js → chunk-SVYO6AO7.js} +7 -1
- package/{chunk-IIHY4ZAI.js → chunk-TAKB25RM.js} +8 -4
- package/{chunk-ZN5AH4BY.js → chunk-TX5EYMGT.js} +6 -6
- package/{chunk-CKOO42G5.js → chunk-UHJGXRJ4.js} +4 -4
- package/{chunk-M4NTDZG3.js → chunk-UYD5HQ6T.js} +857 -295
- package/{chunk-WTKYP6QO.js → chunk-V5Y3R6BT.js} +114 -6
- package/{chunk-3RQVYR4B.js → chunk-VNYYOX3V.js} +59 -20
- package/{chunk-4LEGTOSR.js → chunk-VO4WSAVP.js} +3 -3
- package/{chunk-LNYHAKBP.js → chunk-W4S457LU.js} +1 -1
- package/{chunk-RIALQUSF.js → chunk-WMTBPBMP.js} +6 -6
- package/chunk-WPORQFYN.js +74 -0
- package/{chunk-Y6M7KJOA.js → chunk-WRYQ35LQ.js} +5 -5
- package/{chunk-YKFP6UGT.js → chunk-WYDI6TGM.js} +17 -17
- package/{chunk-SCYQJPGA.js → chunk-X7SDOJUM.js} +147 -20
- package/chunk-XFYFMTOM.js +92 -0
- package/{chunk-LT3EAHJY.js → chunk-XHQC4PXX.js} +65 -49
- package/{chunk-2WZXXAQD.js → chunk-YB3YZK56.js} +67 -1
- package/{chunk-JKW6LERJ.js → chunk-YJAFKXMU.js} +14 -14
- package/{chunk-GSQNH63I.js → chunk-YTF4WH7J.js} +3 -19
- package/{chunk-DA7CTWT4.js → chunk-YWSEPJ7C.js} +5 -5
- package/{chunk-3V2QMRNN.js → chunk-ZL5RAEEB.js} +3 -3
- package/{chunk-NEZGPBL7.js → chunk-ZNWI6OVT.js} +2 -2
- package/{chunk-MBS6CTZB.js → chunk-ZXOUUDCG.js} +266 -2014
- package/cliAgentConfigHelpers-WJBZQTLW.js +41 -0
- package/{commandRegistry-FI2IOQ3U.js → commandRegistry-W63CYRZJ.js} +91 -87
- package/{contentThunks-5LKNNDGY.js → contentThunks-U7PL5MQD.js} +27 -26
- package/{cooldownCommands-YXLWOXWR.js → cooldownCommands-TIGUHXTD.js} +3 -3
- package/{createAgentAutomationAction-TI4QG4CY.js → createAgentAutomationAction-OLBQDD6R.js} +27 -26
- package/{createDialogAction-TJ3JKLO4.js → createDialogAction-SVH6B3SB.js} +29 -28
- package/{createPageAction-GKXT6WEH.js → createPageAction-F4DIWZ2Z.js} +29 -28
- package/{dbSlice-LPMZ2DGJ.js → dbSlice-BVH2YZPQ.js} +8 -8
- package/{deleteFile-EPUQHKPA.js → deleteFile-5YOEKV4U.js} +4 -4
- package/{dialogCommands-IWPXIZ5P.js → dialogCommands-KHIEPY3M.js} +38 -36
- package/{dialogSlice-ZWNNS7GZ.js → dialogSlice-ZCTDV2PZ.js} +25 -24
- package/{dialogUsageCommand-ZCPPHPJ5.js → dialogUsageCommand-7KCPYGHG.js} +1 -1
- package/{docCreateCommands-HFSPKJSI.js → docCreateCommands-DPMZI7G5.js} +32 -30
- package/{docDeleteCommands-CRL62POH.js → docDeleteCommands-IRQQLUBT.js} +34 -33
- package/{docReadCommands-QOTOX3XW.js → docReadCommands-LK37XH6L.js} +32 -30
- package/{docStore-WYLRB7ED.js → docStore-V2KECILA.js} +11 -11
- package/{docUpdateCommands-7BMH4MCA.js → docUpdateCommands-O6T3HJHH.js} +32 -30
- package/{fetchMessages-YY4SATNR.js → fetchMessages-NR4KNQLO.js} +3 -3
- package/{getPricing-OQXBJ6VZ.js → getPricing-2MNMXEVG.js} +3 -3
- package/{handleSendMessageAction-P27YP2DQ.js → handleSendMessageAction-2PE25WM3.js} +49 -47
- package/hostCredentialCreate-S233UMAP.js +357 -0
- package/index.js +7 -7
- package/{keys-P4ZDOVJW.js → keys-BEGDOTRL.js} +3 -1
- package/{localDialogRead-5VCMQQZF.js → localDialogRead-7NNDVVF7.js} +1 -1
- package/{localRuntimeAdapter-GP6ZSSO3.js → localRuntimeAdapter-KY6WXNBR.js} +82 -75
- package/{machineCommands-6Z6H4BFX.js → machineCommands-Q6HA3IXF.js} +74 -69
- package/{machineWsRunDispatch-F2ZIXMYM.js → machineWsRunDispatch-WWJQ6WR3.js} +74 -69
- package/{memberThunks-YSEFJF47.js → memberThunks-7EDJADWU.js} +9 -9
- package/package.json +1 -1
- package/{projectArchive-PIGEOX3D.js → projectArchive-DRTDIMEV.js} +29 -28
- package/{providerPresetApply-ZYMLQA46.js → providerPresetApply-YXGV6NXB.js} +4 -4
- package/{providerRegistry-E34XWDLJ.js → providerRegistry-S6UL6UNA.js} +4 -4
- package/{read-DIIQBOOO.js → read-4V2RMG7N.js} +4 -4
- package/{readDocTool-HXYGOEA7.js → readDocTool-BH6ATGQO.js} +1 -1
- package/{readlineWorkspace-UG25G7KC.js → readlineWorkspace-2W4WRCOU.js} +437 -217
- package/{removeDialogAgentAction-ALJDUJ2E.js → removeDialogAgentAction-LYAZGNKW.js} +18 -15
- package/{runAgentClientLoop-IO5F7TCZ.js → runAgentClientLoop-J2VQBS2Z.js} +55 -52
- package/{runtimeDoctorCommands-PGAA47G5.js → runtimeDoctorCommands-QAI3MBKQ.js} +6 -6
- package/{secretCommands-ZCZ4KVET.js → secretCommands-LXDWOLZ6.js} +4 -4
- package/{setDialogExtraReferencesAction-O3SVMD5A.js → setDialogExtraReferencesAction-OCRPGPYH.js} +11 -11
- package/{setPrimaryDialogAgentAction-HE7RVFFF.js → setPrimaryDialogAgentAction-HFJDQIBU.js} +19 -16
- package/{settingThunks-BWWJQG4L.js → settingThunks-RAMHMTGM.js} +13 -12
- package/{spaceCommands-UAELIFEI.js → spaceCommands-KVJZVKVO.js} +32 -31
- package/{streamAgentChatTurn-VUKZQYJR.js → streamAgentChatTurn-GHBMJJ6S.js} +63 -60
- package/{switchDialogAgentAction-3VZS7SOS.js → switchDialogAgentAction-EBRMW3RA.js} +16 -13
- package/{tools-VRXJAVYI.js → tools-EWKCPKMS.js} +49 -46
- package/{tuiSummaryLlmCaller-TGCHZLSW.js → tuiSummaryLlmCaller-ALQYUUWB.js} +48 -19
- package/{updateCommands-Q6CYAEYJ.js → updateCommands-ZQYU6SCI.js} +5 -3
- package/{updateDialogTitleAction-MULWCJCW.js → updateDialogTitleAction-5GGMBTDF.js} +40 -72
- package/usageCommand-F4IPVMIZ.js +32 -0
- package/usageRebuildCommand-HAW2AD5N.js +626 -0
- package/{windowsSelfUpdate-XSQVF2GK.js → windowsSelfUpdate-257DV2T6.js} +2 -2
- package/{workloadLifecycle-4BEQHMSD.js → workloadLifecycle-4C42SVBD.js} +1 -0
- package/chunk-4LCOCOR5.js +0 -50
- package/chunk-7AUQ3WCW.js +0 -51
- package/chunk-ZRAU6T47.js +0 -56
- package/{agentFavoriteCommands-GAFEXKKP.js → agentFavoriteCommands-EDK743YA.js} +1 -1
- package/{agentGrantCommands-V5FOQKFD.js → agentGrantCommands-RQWK2TEV.js} +1 -1
- package/{agentPullCommand-2JMJP5BS.js → agentPullCommand-6EM3URVK.js} +1 -1
- package/{chunk-A2ZMIRLN.js → chunk-INN4LTAJ.js} +5 -5
- package/{chunk-PV6JJAUB.js → chunk-TCZHTTUU.js} +8 -8
- package/{chunk-AKE53VMW.js → chunk-ZCWRMUWT.js} +0 -0
- package/{tableCommands-D7WR4QSM.js → tableCommands-MP6VFSVT.js} +3 -3
|
@@ -2,10 +2,6 @@ import {
|
|
|
2
2
|
asRecordOrEmpty
|
|
3
3
|
} from "./chunk-KX6YBIHG.js";
|
|
4
4
|
import {
|
|
5
|
-
canonicalizeToolName
|
|
6
|
-
} from "./chunk-AKE53VMW.js";
|
|
7
|
-
import {
|
|
8
|
-
isOwnedAgentKey,
|
|
9
5
|
ownedAgentKey,
|
|
10
6
|
publicAgentKey
|
|
11
7
|
} from "./chunk-M2EJHDJP.js";
|
|
@@ -13,8 +9,7 @@ import {
|
|
|
13
9
|
isRecord
|
|
14
10
|
} from "./chunk-KUG52IAP.js";
|
|
15
11
|
import {
|
|
16
|
-
asNonEmptyStringArray
|
|
17
|
-
asTrimmedNonEmptyStringArray
|
|
12
|
+
asNonEmptyStringArray
|
|
18
13
|
} from "./chunk-I42VC5KR.js";
|
|
19
14
|
import {
|
|
20
15
|
asOptionalFiniteNumber
|
|
@@ -23,212 +18,6 @@ import {
|
|
|
23
18
|
asOptionalTrimmedString
|
|
24
19
|
} from "./chunk-G3SUCT4W.js";
|
|
25
20
|
|
|
26
|
-
// packages/agent-runtime/runtimeToolSurface.ts
|
|
27
|
-
var DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS = [
|
|
28
|
-
"listDialogs",
|
|
29
|
-
"readDialog",
|
|
30
|
-
"queryDialogsBySubjectRef",
|
|
31
|
-
"deleteDialogs",
|
|
32
|
-
"listAgents",
|
|
33
|
-
"readAgent",
|
|
34
|
-
"listSpaces",
|
|
35
|
-
"readSpace",
|
|
36
|
-
"readDoc",
|
|
37
|
-
"readSkillDoc",
|
|
38
|
-
"loadSkill",
|
|
39
|
-
"listTables",
|
|
40
|
-
"queryTableRows",
|
|
41
|
-
"cliWhoami",
|
|
42
|
-
"cliDoctor",
|
|
43
|
-
"list_cloud_resources",
|
|
44
|
-
"cloud_probe"
|
|
45
|
-
// cloud_exec 故意不在此清单:硬边界是「永不默认开 exec」。它只在 agent 显式启用时出现,
|
|
46
|
-
// 且只读 run 会被 HIGH_RISK_MUTATION_TOOL_NAMES 挡住(runtimeToolSurface.test.ts 钉住)。
|
|
47
|
-
];
|
|
48
|
-
var DEFAULT_SUBTASK_REFERENCE_NOLO_WORKSPACE_TOOLS = [
|
|
49
|
-
"readDialog",
|
|
50
|
-
"queryDialogsBySubjectRef",
|
|
51
|
-
"readDoc",
|
|
52
|
-
"queryTableRows"
|
|
53
|
-
];
|
|
54
|
-
var HIGH_RISK_MUTATION_TOOL_NAMES = [
|
|
55
|
-
"writeFile",
|
|
56
|
-
"editFile",
|
|
57
|
-
"deleteDialogs",
|
|
58
|
-
"deleteMemory",
|
|
59
|
-
"taskStop",
|
|
60
|
-
// 能力包(loadSkill 授予)里的写/删/部署/记忆写入/进程启动类工具:
|
|
61
|
-
// 只读 run 的授予通道会过同一份 blockedToolNames,名单缺项即可被绕过。
|
|
62
|
-
// 契约测试(runtimeToolSurface.test.ts)按名字关键字钉住 CAPABILITY_PACKS 的分类。
|
|
63
|
-
"applyEdit",
|
|
64
|
-
"applyLineEdits",
|
|
65
|
-
"launchProcess",
|
|
66
|
-
"rememberMemory",
|
|
67
|
-
"appFileWrite",
|
|
68
|
-
"appFileReplace",
|
|
69
|
-
"appDeploy",
|
|
70
|
-
"appDelete",
|
|
71
|
-
"createTable",
|
|
72
|
-
"addTableRow",
|
|
73
|
-
"addTableRows",
|
|
74
|
-
"updateTableRow",
|
|
75
|
-
"deleteTableRow",
|
|
76
|
-
// 媒体任务译文写回:改写 job 的 translate 产物(服务端零计费、无外部副作用),
|
|
77
|
-
// 但仍是「写」,只读 run 不该拿到写回能力;契约测试按名字关键字钉住这份分类。
|
|
78
|
-
"writeTranslations",
|
|
79
|
-
// 编排副作用:startAgentRun 会另起一次 run(子 run 的只读与否由调用方参数决定),
|
|
80
|
-
// controlAgentRun 能追加指令/停止它;只读 run 不应拿到这两个(review A-1)。
|
|
81
|
-
"startAgentRun",
|
|
82
|
-
"controlAgentRun",
|
|
83
|
-
// 受控云端执行:在用户拥有的云资源上跑任意命令,不可重放、副作用在云端。
|
|
84
|
-
// 硬边界:它永不进 DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS(见该清单注释),
|
|
85
|
-
// 必须由 agent 显式启用才出现;这里进名单保证只读 run 即使被显式要求也拿不到。
|
|
86
|
-
"cloud_exec"
|
|
87
|
-
];
|
|
88
|
-
function resolveReadOnlyToolConstraints(additionalBlockedTools) {
|
|
89
|
-
return {
|
|
90
|
-
blockedToolNames: [
|
|
91
|
-
...HIGH_RISK_MUTATION_TOOL_NAMES,
|
|
92
|
-
...additionalBlockedTools ?? []
|
|
93
|
-
]
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
function applyToolSurfaceConstraints(surface, constraints) {
|
|
97
|
-
const allowed = constraints.allowedToolNames == null ? null : new Set(asTrimmedNonEmptyStringArray(constraints.allowedToolNames));
|
|
98
|
-
const blocked = new Set(asTrimmedNonEmptyStringArray(constraints.blockedToolNames ?? []));
|
|
99
|
-
const narrow = (names) => names.filter(
|
|
100
|
-
(name) => (allowed === null || allowed.has(name)) && !blocked.has(name)
|
|
101
|
-
);
|
|
102
|
-
return {
|
|
103
|
-
...surface,
|
|
104
|
-
explicitToolNames: narrow(surface.explicitToolNames),
|
|
105
|
-
injectedToolNames: narrow(surface.injectedToolNames),
|
|
106
|
-
finalToolNames: narrow(surface.finalToolNames)
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
function resolveRequestToolSurface(args) {
|
|
110
|
-
const normalize = (name) => canonicalizeToolName(name.trim().replace(/^functions\./i, ""));
|
|
111
|
-
const names = (values) => new Set(values.map(normalize));
|
|
112
|
-
const allowed = args.profile?.allowedToolNames == null ? null : names(args.profile.allowedToolNames);
|
|
113
|
-
const blocked = names(args.profile?.blockedToolNames ?? []);
|
|
114
|
-
const supported = args.backend ? names(args.backend.toolNames) : null;
|
|
115
|
-
const scope = args.backend?.scopedToolNames ? names(args.backend.scopedToolNames) : null;
|
|
116
|
-
const filteredTools = [];
|
|
117
|
-
const finalToolNames = args.requestedToolNames.filter((toolName) => {
|
|
118
|
-
const name = normalize(toolName);
|
|
119
|
-
const reason = allowed && !allowed.has(name) ? "profile-not-allowed" : blocked.has(name) ? "profile-blocked" : supported && (!scope || scope.has(name)) && !supported.has(name) ? "backend-unsupported" : null;
|
|
120
|
-
if (!reason) return true;
|
|
121
|
-
filteredTools.push({ toolName, reason });
|
|
122
|
-
return false;
|
|
123
|
-
});
|
|
124
|
-
return { finalToolNames, filteredTools };
|
|
125
|
-
}
|
|
126
|
-
function uniqueToolNames(values) {
|
|
127
|
-
return [...new Set(asTrimmedNonEmptyStringArray(values))];
|
|
128
|
-
}
|
|
129
|
-
function canInjectPrivateDefaults(args) {
|
|
130
|
-
if (!args.currentUserId) return false;
|
|
131
|
-
if (args.invocationVisibility !== "private") return false;
|
|
132
|
-
if (args.agentOwnerId && args.agentOwnerId === args.currentUserId) return true;
|
|
133
|
-
if (args.trustedPrivateInvocation === true) return true;
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
function explicitOnlyReason(args) {
|
|
137
|
-
if (!args.currentUserId || !args.agentOwnerId) {
|
|
138
|
-
return "explicit-only-missing-identity";
|
|
139
|
-
}
|
|
140
|
-
if (args.invocationVisibility === "public") return "explicit-only-public";
|
|
141
|
-
if (args.invocationVisibility === "shared") return "explicit-only-shared";
|
|
142
|
-
if (args.agentOwnerId !== args.currentUserId) {
|
|
143
|
-
return "explicit-only-owner-mismatch";
|
|
144
|
-
}
|
|
145
|
-
return "explicit-only-anonymous";
|
|
146
|
-
}
|
|
147
|
-
function resolveRuntimeToolSurface(args) {
|
|
148
|
-
const explicitToolNames = uniqueToolNames(args.explicitToolNames ?? []);
|
|
149
|
-
if (canInjectPrivateDefaults(args)) {
|
|
150
|
-
const baseInjected = args.injectPrivateDefaults === false ? args.defaultInjectedToolNames ?? DEFAULT_SUBTASK_REFERENCE_NOLO_WORKSPACE_TOOLS : args.defaultInjectedToolNames ?? DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS;
|
|
151
|
-
const injectedToolNames2 = uniqueToolNames([
|
|
152
|
-
...baseInjected,
|
|
153
|
-
...args.additionalRequiredToolNames ?? []
|
|
154
|
-
]);
|
|
155
|
-
return {
|
|
156
|
-
explicitToolNames,
|
|
157
|
-
injectedToolNames: injectedToolNames2,
|
|
158
|
-
finalToolNames: uniqueToolNames([
|
|
159
|
-
...explicitToolNames,
|
|
160
|
-
...injectedToolNames2
|
|
161
|
-
]),
|
|
162
|
-
auditReason: "private-authenticated-defaults"
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
const injectedToolNames = uniqueToolNames(args.additionalRequiredToolNames ?? []);
|
|
166
|
-
return {
|
|
167
|
-
explicitToolNames,
|
|
168
|
-
injectedToolNames,
|
|
169
|
-
finalToolNames: uniqueToolNames([
|
|
170
|
-
...explicitToolNames,
|
|
171
|
-
...injectedToolNames
|
|
172
|
-
]),
|
|
173
|
-
auditReason: explicitOnlyReason(args)
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
function isPublicRuntimeAgentRef(value) {
|
|
177
|
-
return typeof value === "string" && value.startsWith("agent-pub-");
|
|
178
|
-
}
|
|
179
|
-
function inferOwnerIdFromRuntimeAgentKey(value) {
|
|
180
|
-
if (typeof value !== "string") return null;
|
|
181
|
-
const privateAgentMatch = value.match(/^agent-([^-]+)-(.+)$/);
|
|
182
|
-
if (privateAgentMatch && privateAgentMatch[1] !== "pub") {
|
|
183
|
-
return privateAgentMatch[1];
|
|
184
|
-
}
|
|
185
|
-
return null;
|
|
186
|
-
}
|
|
187
|
-
function resolveRuntimeToolSurfaceForAgent(args) {
|
|
188
|
-
const agentKey = typeof args.agentKey === "string" ? args.agentKey : "";
|
|
189
|
-
const currentUserId = typeof args.currentUserId === "string" ? args.currentUserId : "";
|
|
190
|
-
const inferredOwnerId = args.agentOwnerId ?? (currentUserId && isOwnedAgentKey(agentKey, currentUserId) ? currentUserId : inferOwnerIdFromRuntimeAgentKey(agentKey));
|
|
191
|
-
const publicRef = isPublicRuntimeAgentRef(agentKey);
|
|
192
|
-
const visibility = args.trustedPrivateInvocation === true ? "private" : publicRef || args.isPublic === true || args.sharingLevel === "public" ? "public" : "private";
|
|
193
|
-
return resolveRuntimeToolSurface({
|
|
194
|
-
explicitToolNames: args.explicitToolNames,
|
|
195
|
-
currentUserId: args.currentUserId,
|
|
196
|
-
agentOwnerId: inferredOwnerId,
|
|
197
|
-
invocationVisibility: visibility,
|
|
198
|
-
runtimeHost: args.runtimeHost,
|
|
199
|
-
trustedPrivateInvocation: args.trustedPrivateInvocation,
|
|
200
|
-
injectPrivateDefaults: args.injectPrivateDefaults,
|
|
201
|
-
defaultInjectedToolNames: args.defaultInjectedToolNames,
|
|
202
|
-
additionalRequiredToolNames: args.additionalRequiredToolNames
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
var SECRET_FIELD_NAMES = [
|
|
206
|
-
"apikey",
|
|
207
|
-
"api_key",
|
|
208
|
-
"secret",
|
|
209
|
-
"token",
|
|
210
|
-
"authorization",
|
|
211
|
-
"credential",
|
|
212
|
-
"password"
|
|
213
|
-
];
|
|
214
|
-
function isSecretFieldName(key) {
|
|
215
|
-
const normalized = key.toLowerCase();
|
|
216
|
-
return SECRET_FIELD_NAMES.some((name) => normalized.includes(name));
|
|
217
|
-
}
|
|
218
|
-
function redactAgentRecordForWorkspaceTool(record) {
|
|
219
|
-
if (Array.isArray(record)) return record.map(redactAgentRecordForWorkspaceTool);
|
|
220
|
-
if (!isRecord(record)) return record;
|
|
221
|
-
const redacted = {};
|
|
222
|
-
for (const [key, value] of Object.entries(record)) {
|
|
223
|
-
if (isSecretFieldName(key)) {
|
|
224
|
-
redacted[key] = "[redacted]";
|
|
225
|
-
continue;
|
|
226
|
-
}
|
|
227
|
-
redacted[key] = Array.isArray(value) || isRecord(value) ? redactAgentRecordForWorkspaceTool(value) : value;
|
|
228
|
-
}
|
|
229
|
-
return redacted;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
21
|
// packages/agent-runtime/dialogReadProjection.ts
|
|
233
22
|
var DEFAULT_READ_DIALOG_MAX_RESPONSE_CHARS = 32e3;
|
|
234
23
|
var MIN_RESPONSE_BUDGET_CHARS = 1024;
|
|
@@ -840,6 +629,8 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
840
629
|
function: {
|
|
841
630
|
name,
|
|
842
631
|
description,
|
|
632
|
+
// Responses otherwise normalizes optional selectors into required fields.
|
|
633
|
+
...name === "loadSkill" ? { strict: false } : {},
|
|
843
634
|
parameters: {
|
|
844
635
|
type: "object",
|
|
845
636
|
properties,
|
|
@@ -888,11 +679,11 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
888
679
|
description: "Confirmed dialog ids or dbKeys to delete."
|
|
889
680
|
}
|
|
890
681
|
}, ["query"]);
|
|
891
|
-
add("listAgents", "List agents for delegation. Default scope='
|
|
682
|
+
add("listAgents", "List agents for delegation. Default scope='all' returns the user's favorites, owned, OAuth, custom API, and local agents plus the public marketplace; scope='public' discovers shared/marketplace agents only. Public agents may consume platform credits. Copy the agentKey verbatim; use the runnable agentKey exactly and do not infer it from the display name. publicOnly is deprecated compatibility for scope='public'. All agents in the selected scope are listed; cooldown and quota status are advisory annotations, not dispatch gates.", {
|
|
892
683
|
query: stringToolParam("Optional case-insensitive search substring matching agent name, model, provider, handle, or agentKey."),
|
|
893
|
-
scope: { type: "string", enum: ["
|
|
684
|
+
scope: { type: "string", enum: ["all", "public"], description: "Discovery scope; all is the default and includes the public marketplace." },
|
|
894
685
|
publicOnly: { type: "boolean", description: "Deprecated compatibility alias for scope='public'." },
|
|
895
|
-
showUnavailable: { type: "boolean", description: "
|
|
686
|
+
showUnavailable: { type: "boolean", description: "Deprecated no-op. Agents are always listed regardless of cooldown; availability annotations are advisory only." },
|
|
896
687
|
verbose: { type: "boolean", description: "Return full safe-summary details when supported." },
|
|
897
688
|
compact: { type: "boolean", description: "Return compact projection retaining admission evidence while omitting verbose text." },
|
|
898
689
|
limit: { type: "number", description: "Maximum number of agents to return for pagination." },
|
|
@@ -1271,7 +1062,6 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
1271
1062
|
const scope = noloStringArg(args.scope);
|
|
1272
1063
|
if (scope) cliArgs.push("--scope", scope);
|
|
1273
1064
|
if (args.publicOnly === true) cliArgs.push("--public-only");
|
|
1274
|
-
if (args.showUnavailable === true) cliArgs.push("--show-unavailable");
|
|
1275
1065
|
if (args.verbose === true) cliArgs.push("--verbose");
|
|
1276
1066
|
if (args.compact === true) cliArgs.push("--compact");
|
|
1277
1067
|
const limitVal = args.limit;
|
|
@@ -1510,19 +1300,17 @@ function compareAgentSelection(left, right) {
|
|
|
1510
1300
|
const rightUpdated = parseAgentTimestamp(right.updatedAt ?? right.createdAt);
|
|
1511
1301
|
return rightUpdated - leftUpdated;
|
|
1512
1302
|
}
|
|
1513
|
-
var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF1A\
|
|
1514
|
-
1. \
|
|
1515
|
-
2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bowner_subscription\uFF1A\u975E\u81EA\u6709 Agent\uFF0C\u8DD1\u5176 owner \u7684\u8BA2\u9605\u901A\u9053\u2014\u2014\u4F60\u4E0E\u5E73\u53F0\u90FD\u4E0D\u51FA\u94B1\uFF0C\u4E0D\u9002\u7528\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u95E8\uFF0C\u4E5F\u4E0D\u5360\u4F60\u7684\u989D\u5EA6\uFF0C\u53EF\u76F4\u63A5\u4F7F\u7528\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF09\u3002
|
|
1303
|
+
var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF1A\u9009\u4EBA\u5951\u7EA6\uFF08listAgents \u9ED8\u8BA4 scope="all"\uFF09\uFF1A
|
|
1304
|
+
1. \u5019\u9009\u53D1\u73B0\uFF1A\u9ED8\u8BA4\u8C03\u7528 listAgents()\uFF08\u9ED8\u8BA4 scope="all"\uFF09\uFF0C\u4E00\u6B21\u626B\u63CF\u8986\u76D6\u6536\u85CF\u3001\u81EA\u6709\u3001OAuth \u8BA2\u9605\u3001\u81EA\u5B9A\u4E49 API\u3001\u672C\u5730\u4E0E\u516C\u5F00 Agent\u3002
|
|
1305
|
+
2. \u6210\u672C\u5F52\u5C5E\u8BC6\u522B\uFF1A\u6839\u636E billingSource \u660E\u786E\u5224\u5B9A\uFF08user_subscription\uFF1A\u7528\u6237\u8BA2\u9605/OAuth\uFF1Buser_api\uFF1A\u7528\u6237\u81EA\u5B9A\u4E49 API\uFF1Blocal\uFF1A\u672C\u5730\u8FD0\u884C\uFF1Bowner_subscription\uFF1A\u975E\u81EA\u6709 Agent\uFF0C\u8DD1\u5176 owner \u7684\u8BA2\u9605\u901A\u9053\u2014\u2014\u4F60\u4E0E\u5E73\u53F0\u90FD\u4E0D\u51FA\u94B1\uFF0C\u4E0D\u9002\u7528\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u95E8\uFF0C\u4E5F\u4E0D\u5360\u4F60\u7684\u989D\u5EA6\uFF0C\u53EF\u76F4\u63A5\u4F7F\u7528\uFF1Bplatform_credits\uFF1A\u5E73\u53F0\u79EF\u5206\uFF0C\u5FC5\u987B\u5148\u53D6\u5F97\u7528\u6237\u660E\u786E\u6263\u8D39\u6388\u6743\u624D\u80FD\u6D3E\u53D1\uFF09\u3002
|
|
1516
1306
|
3. \u4F18\u5148\u7EA7\u6392\u5E8F\uFF08\u4E0E\u5217\u8868\u6392\u5E8F\u771F\u503C\u4E00\u81F4\uFF09\uFF1A
|
|
1517
1307
|
(1) \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription"\uFF0F"owner_subscription" \u6216 "user_api"\uFF0CisFavorite=true\uFF1A\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF09
|
|
1518
1308
|
(2) \u5176\u4ED6\u6536\u85CF Agent\uFF08isFavorite=true\uFF09
|
|
1519
1309
|
(3) \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08billingSource="user_subscription"\uFF0F"owner_subscription" \u6216 "user_api"\uFF09
|
|
1520
1310
|
(4) \u5176\u4ED6\u81EA\u5EFA Agent\uFF08isOwned=true\uFF09
|
|
1521
1311
|
(5) \u516C\u5F00 / \u5E73\u53F0 Agent\uFF08billingSource="platform_credits" \u6216\u793E\u533A\u516C\u5F00\uFF09
|
|
1522
|
-
\u540C\u6863\u4F4D\u4E0B\u6536\u85CF\u9879\u6309\u6700\u8FD1\u6536\u85CF\uFF08favoritedAt\uFF09\u4F18\u5148\uFF0C\u5176\u4F59\u6309\u6700\u8FD1\u66F4\u65B0\uFF08updatedAt\uFF09\u4F18\u5148\u3002
|
|
1523
1312
|
\u6B64\u6392\u5E8F\u662F\u5019\u9009\u4F18\u5148\u7EA7\u5206\u7EC4\uFF08\u4E0D\u662F\u6A21\u578B\u80FD\u529B tier\uFF09\uFF0C\u53EA\u51B3\u5B9A\u5019\u9009\u8D44\u683C\u4E0E\u5206\u7EC4\u5148\u540E\uFF0C\u4E0D\u4EE3\u8868\u300C\u6392\u7B2C\u4E00\u7684\u5C31\u8BE5\u9009\u300D\uFF1A\u7EC4\u5185\u6309\u300C\u9009\u4EBA\u300D\u56DB\u6B65\uFF08\u9886\u57DF\u80DC\u4EFB\u5148\u884C\u3001tier \u5F31\u5148\u9A8C\uFF09\u4E0E\u5F53\u6B21\u53EF\u7528\u6027\u6311\u9009\uFF08reviewer \u89C1\u300Creviewer \u9009\u4EBA\u300D\uFF09\u3002
|
|
1524
|
-
|
|
1525
|
-
- \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\u5E76\u56E0\u6B64\u8FDB\u5165 preferred discovery\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u4F46\u6CE8\u610F\u533A\u5206\uFF1AbillingSource="owner_subscription" \u7684\u6536\u85CF Agent\uFF08\u975E\u81EA\u6709\u3001\u8DD1 owner \u7684\u8BA2\u9605\u901A\u9053\uFF09\u4E0D\u5C5E\u4E8E\u6B64\u5217\u2014\u2014\u5B83\u662F\u53EF\u76F4\u63A5\u4F7F\u7528\u7684\uFF0C\u4E0D\u4EA7\u751F\u4EFB\u4F55\u6263\u8D39\uFF0C\u4E0D\u8981\u5BF9\u5B83\u7D22\u53D6\u6263\u8D39\u6388\u6743\u3001\u4E5F\u4E0D\u8981\u56E0\u6B64\u6539\u6D3E\u5E73\u53F0 Agent\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
|
|
1313
|
+
- \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u4F46\u6CE8\u610F\u533A\u5206\uFF1AbillingSource="owner_subscription" \u7684\u6536\u85CF Agent\uFF08\u975E\u81EA\u6709\u3001\u8DD1 owner \u7684\u8BA2\u9605\u901A\u9053\uFF09\u4E0D\u5C5E\u4E8E\u6B64\u5217\u2014\u2014\u5B83\u662F\u53EF\u76F4\u63A5\u4F7F\u7528\u7684\uFF0C\u4E0D\u4EA7\u751F\u4EFB\u4F55\u6263\u8D39\uFF0C\u4E0D\u8981\u5BF9\u5B83\u7D22\u53D6\u6263\u8D39\u6388\u6743\u3001\u4E5F\u4E0D\u8981\u56E0\u6B64\u6539\u6D3E\u5E73\u53F0 Agent\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
|
|
1526
1314
|
- \u5339\u914D\u53C2\u8003\uFF1A\u6309\u4EFB\u52A1\u6240\u9700\u80FD\u529B\u7B5B tools \u5B57\u6BB5\uFF1B\u540C\u6863\u5019\u9009\u4F18\u5148\u6210\u672C\u4F4E\uFF08\u4F4E inputPrice\uFF09\u6216\u8D70\u7528\u6237\u79C1\u6709\u51ED\u636E\u7684\u901A\u9053\u3002tools \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF0C\u4E0D\u53CD\u6620 coding \u80FD\u529B\u2014\u2014\u4EE3\u7801\u5DE5\u5177\u7531 host \u81EA\u52A8\u6CE8\u5165\uFF0Ctools=[] \u4E0D\u4EE3\u8868\u4E0D\u80FD\u5199\u4EE3\u7801\uFF0C\u4E0D\u8981\u636E\u6B64\u6392\u9664\u5019\u9009\u3002
|
|
1527
1315
|
- reset-aware economics\uFF08\u53EA\u4F5C\u540C\u6863\u3001\u9002\u5408\u3001\u5F53\u524D\u53EF\u7528\u5019\u9009\u4E4B\u95F4\u7684\u7ECF\u6D4E\u504F\u597D\uFF0C\u4E0D\u8986\u76D6\u6536\u85CF\u786C\u95E8\u3001\u80FD\u529B\u5339\u914D\u6216\u53EF\u7528\u6027\uFF09\uFF1AlistAgents \u5DF2\u66B4\u9732 economics\uFF08\u5B98\u65B9\u5CF0\u8C37\u4EF7\u683C/\u914D\u989D\u500D\u7387\uFF09\u548C quota\uFF08\u4E0A\u6E38\u771F\u5B9E remaining/limit/utilization/resetAt \u7A97\u53E3\uFF09\u3002\u5BF9\u4E8E billingSource="user_subscription"\uFF0C\u82E5 quota \u7A97\u53E3\u540C\u65F6\u7ED9\u51FA\u672A\u7528\u989D\u5EA6\u4FE1\u53F7\uFF08remaining/limit \u6216 utilization\uFF09\u4E14 resetAt \u5728\u672A\u6765\uFF0C\u4E14\u8BE5\u7A97\u53E3\u4EE3\u8868\u8BA2\u9605\u989D\u5EA6\u672C\u8EAB\uFF08\u5982 Claude \u8BA2\u9605\u7684 5h/7d \u914D\u989D\u7A97\u53E3\u8FD9\u7C7B\u4E0D\u7528\u5C31\u4F5C\u5E9F\u7684\u5DF2\u4ED8\u989D\u5EA6\uFF09\uFF0C\u800C\u4E0D\u662F\u7EAF\u541E\u5410\u5BB9\u91CF\uFF0C\u5219\u8FD9\u90E8\u5206\u5DF2\u4ED8\u989D\u5EA6\u4F1A\u5728 reset \u540E\u5931\u6548\uFF1B\u5728\u8D28\u91CF/\u80FD\u529B\u90FD\u8DB3\u591F\u65F6\uFF0Creset \u8D8A\u8FD1\u4E14\u672A\u7528\u989D\u5EA6\u8D8A\u591A\uFF0C\u8D8A\u5E94\u4F18\u5148\u6D88\u8017\uFF0C\u907F\u514D\u628A\u5DF2\u4ED8\u6B3E\u989D\u5EA6\u767D\u767D\u8FC7\u671F\u540E\u518D\u53BB\u4EA7\u751F PAYG / platform \u6210\u672C\u3002\u4E0D\u8981\u56E0\u4E3A\u53EA\u6709 resetAt \u5C31\u63A8\u65AD\u201C\u8FD8\u6709\u53EF\u7528\u989D\u5EA6\u201D\uFF0C\u4E5F\u4E0D\u8981\u628A billingSource="user_api" \u7684 requests/tokens rate-limit reset\u3001nextAvailableAt\uFF08429 \u51B7\u5374\u6062\u590D\uFF09\u8BEF\u5F53\u6210\u201C\u5DF2\u4ED8\u989D\u5EA6\u8FC7\u671F\u201D\uFF1B\u5B83\u4EEC\u662F\u5BB9\u91CF/\u53EF\u7528\u6027\u4FE1\u53F7\uFF0C\u4E0D\u662F\u7ECF\u6D4E\u4F18\u60E0\u3002\u901A\u7528 requests/tokens rate-limit \u5BB9\u91CF\u7A97\u53E3\u5373\u4F7F\u51FA\u73B0\u5728 billingSource="user_subscription" \u901A\u9053\u4E0A\uFF0C\u4E5F\u53EA\u662F\u901F\u7387\u5BB9\u91CF\u800C\u975E\u4F1A\u8FC7\u671F\u7684\u5DF2\u4ED8\u8D44\u4EA7\uFF0C\u4E0D\u5F97\u89E6\u53D1\u8BE5\u504F\u597D\uFF1B\u5206\u4E0D\u6E05\u7A97\u53E3\u8BED\u4E49\u65F6\u6309\u5BB9\u91CF\u5904\u7406\uFF0C\u4E0D\u6309\u7ECF\u6D4E\u8D44\u4EA7\u5904\u7406\u3002owner_subscription \u4E0D\u5360\u5F53\u524D\u7528\u6237\u989D\u5EA6\uFF0C\u4ECD\u6309\u201C\u8C03\u7528\u8005\u4E0E\u5E73\u53F0\u96F6\u65B0\u589E\u6210\u672C\u201D\u7406\u89E3\uFF0C\u4F46\u4E0D\u8981\u628A owner \u7684 quota \u5F53\u6210\u5F53\u524D\u7528\u6237\u9700\u8981\u4E3B\u52A8\u70E7\u5B8C\u7684\u8D44\u4EA7\u3002\u82E5 economics \u663E\u793A\u5373\u5C06\u8DE8 peak/off_peak \u6216 quotaMultiplier/priceMultiplier \u5C06\u53D8\u5316\uFF0C\u628A changesAt \u4E0E\u4EFB\u52A1\u9884\u8BA1\u65F6\u957F\u4E00\u8D77\u8003\u8651\uFF1B\u8BC1\u636E\u4E0D\u8DB3\u65F6\u4FDD\u6301 neutral\uFF0C\u4E0D\u731C\u3002
|
|
1528
1316
|
- isOwned=true\u3001isOAuth=true \u6216 apiSource="custom" \u7684\u5019\u9009\u6309\u4F18\u5148\u7EA7\u5951\u7EA6\u5904\u7406\u3002
|
|
@@ -1534,15 +1322,9 @@ var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6
|
|
|
1534
1322
|
\u672A\u5217\u51FA\u7684 model \u6216 dimension \u8868\u793A\u6CA1\u6709 curated evidence\uFF1A\u4E0D\u662F 0\uFF0C\u4E5F\u4E0D\u662F\u8F83\u5F31\u3002\u54EA\u4E9B dimension \u66F4\u91CD\u8981\u7531\u5F53\u524D\u4EFB\u52A1\u51B3\u5B9A\uFF0C\u4E0D\u8981\u5199\u6B7B\u6743\u91CD\u3002
|
|
1535
1323
|
- speedContext \u901F\u5EA6\u89C4\u5219\uFF1A\u4E0A\u4E0B\u6587\u660E\u786E\u7684\u6267\u884C\u578B\u4EFB\u52A1\uFF08\u76EE\u6807/\u6587\u4EF6/\u9A8C\u6536\u5DF2\u8BB2\u6E05\uFF0C\u53EA\u9700\u7167\u505A\uFF09\u4E2D\uFF0C\u514D\u8D39\u79C1\u6709\u901A\u9053\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF09\u4E4B\u95F4\u901F\u5EA6\u4F18\u5148\uFF1A\u5148\u770B firstOutput\uFF08\u9996\u4E2A\u8F93\u51FA\u8017\u65F6\uFF0C\u8D8A\u77ED\u8D8A\u597D\uFF09\uFF0C\u518D\u770B tps\uFF08\u8D8A\u9AD8\u8D8A\u597D\uFF09\u3002\u901F\u5EA6\u6392\u5E8F\u53EA\u770B observed \u884C\uFF08\u672C\u7528\u6237\u771F\u5B9E\u8C03\u7528\uFF09\uFF0C\u4E0D\u5B58\u5728\u5176\u5B83\u6570\u636E\u6765\u6E90\u3002\u672C\u6761\u5728\u514D\u8D39\u79C1\u6709\u901A\u9053\u5185\u90E8\u8986\u76D6\u4E0A\u9762\u7684\u4F18\u5148\u7EA7\u5206\u7EC4 (1)~(4) \u6392\u5E8F\uFF0C\u4F46\u53EA\u5728\u300C\u9009\u4EBA\u300D\u7B5B\u51FA\u7684\u80DC\u4EFB\u5019\u9009\u4E4B\u95F4\u6BD4\u8F83\u901F\u5EA6\uFF1A\u4E0D\u80FD\u56E0\u66F4\u5FEB\u628A\u4E0D\u80DC\u4EFB\u7684\u5019\u9009\u6392\u4E0A\u6765\uFF1B\u6536\u85CF\u4E0D\u4F5C\u5206\u7EC4\u95E8\u69DB\uFF0C\u53EA\u5728\u901F\u5EA6\u76F8\u8FD1\u65F6\u4F5C\u6B21\u7EA7\u6392\u5E8F\uFF1B\u6536\u85CF\u4F18\u5148\u786C\u95E8\u4ECD\u53EA\u7EA6\u675F\u4E0D\u5F97\u6539\u6D3E platform_credits\u3002\u63A2\u7D22\u578B\u4EFB\u52A1\u548C\u6DF1\u5EA6 review \u4ECD\u4EE5\u80FD\u529B\u4F18\u5148\uFF0C\u901F\u5EA6\u4E0D\u4F5C\u4E3B\u4F9D\u636E\u3002\u901F\u5EA6\u53EA\u5728\u514D\u8D39\u79C1\u6709\u901A\u9053\u4E4B\u95F4\u6BD4\u8F83\uFF0C\u4E0D\u8986\u76D6\u5E73\u53F0\u79EF\u5206\u6388\u6743\u4E0E 429 \u544A\u77E5\u5951\u7EA6\uFF0C\u4E0D\u80FD\u56E0\u4E3A\u5E73\u53F0 Agent \u66F4\u5FEB\u5C31\u6539\u6D3E\u5E73\u53F0\u3002
|
|
1536
1324
|
\u6BCF\u884C\u90FD\u662F observed=\u672C\u7528\u6237\u6700\u8FD1\u771F\u5B9E\u8C03\u7528\uFF08n=\u6837\u672C\u6570\uFF0C\u6837\u672C\u5C11\u65F6\u53EF\u4FE1\u5EA6\u4F4E\uFF09\uFF1Btps=n/a \u8868\u793A\u65E0\u53EF\u4FE1\u541E\u5410\u6837\u672C\uFF0C\u4E0D\u4EE3\u8868\u6162\u3002\u672A\u5217\u51FA\u7684 model \u8868\u793A\u6CA1\u6709\u901F\u5EA6\u6570\u636E\uFF0C\u4E0D\u662F\u6162\u3002\u7981\u6B62\u628A\u901F\u5EA6\u4E0E qualityContext \u5408\u6210\u603B\u5206\u3002
|
|
1537
|
-
- 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\
|
|
1325
|
+
- 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\u5728 listAgents \u7684 agents[].availabilityStatus \u4E3A rate_limited \u6216 quota_exhausted \u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1BavailabilityStatus \u4E0E nextAvailableAt \u4EC5\u662F\u53C2\u8003\u4FE1\u606F\uFF0C\u4E0D\u62E6\u6D3E\u53D1\uFF0C\u4E0D\u5F97\u4EC5\u51ED\u51B7\u5374\u6807\u6CE8\u6392\u9664\u5019\u9009\uFF1B\u7528\u6237\u4ECD\u53EF\u7167\u5E38\u6D3E\u53D1\u5E76\u83B7\u5F97\u4E0A\u6E38\u771F\u5B9E\u7ED3\u679C\u3002`;
|
|
1538
1326
|
|
|
1539
1327
|
export {
|
|
1540
|
-
HIGH_RISK_MUTATION_TOOL_NAMES,
|
|
1541
|
-
resolveReadOnlyToolConstraints,
|
|
1542
|
-
applyToolSurfaceConstraints,
|
|
1543
|
-
resolveRequestToolSurface,
|
|
1544
|
-
resolveRuntimeToolSurfaceForAgent,
|
|
1545
|
-
redactAgentRecordForWorkspaceTool,
|
|
1546
1328
|
DEFAULT_READ_DIALOG_MAX_RESPONSE_CHARS,
|
|
1547
1329
|
projectDialogReadForAgent,
|
|
1548
1330
|
createStreamingDialogReadProjector,
|
|
@@ -1570,6 +1352,7 @@ export {
|
|
|
1570
1352
|
buildNoloWorkspaceCommandArgs,
|
|
1571
1353
|
DEFAULT_SUBTASK_MAX_TOOL_CALLS,
|
|
1572
1354
|
DEFAULT_SUBTASK_MAX_WALL_CLOCK_MS,
|
|
1355
|
+
resolveSubtaskBudgetLimits,
|
|
1573
1356
|
resolveDispatchedSubtaskBudget,
|
|
1574
1357
|
createSubtaskBudgetTracker,
|
|
1575
1358
|
buildSubtaskBudgetExhaustedContent,
|
|
@@ -77,11 +77,17 @@ var buildTombstoneRecord = (record, nowIso) => {
|
|
|
77
77
|
updatedAt: nowIso
|
|
78
78
|
};
|
|
79
79
|
};
|
|
80
|
+
var buildRestorePatch = (nowIso) => ({
|
|
81
|
+
deletedAt: null,
|
|
82
|
+
restoredAt: nowIso,
|
|
83
|
+
updatedAt: nowIso
|
|
84
|
+
});
|
|
80
85
|
|
|
81
86
|
export {
|
|
82
87
|
getRecordTimestamp,
|
|
83
88
|
getTombstoneTimestamp,
|
|
84
89
|
isTombstoneRecord,
|
|
85
90
|
shouldReplaceWithNextRecord,
|
|
86
|
-
buildTombstoneRecord
|
|
91
|
+
buildTombstoneRecord,
|
|
92
|
+
buildRestorePatch
|
|
87
93
|
};
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
require_formatISO
|
|
3
|
+
} from "./chunk-WPORQFYN.js";
|
|
4
4
|
import {
|
|
5
5
|
getActiveDialogKey
|
|
6
6
|
} from "./chunk-OWYYDMGJ.js";
|
|
7
7
|
import {
|
|
8
8
|
patch,
|
|
9
9
|
selectById
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FW6YHHLI.js";
|
|
11
|
+
import {
|
|
12
|
+
__toESM
|
|
13
|
+
} from "./chunk-4VNS5WPM.js";
|
|
11
14
|
|
|
12
15
|
// packages/chat/dialog/actions/setDialogExtraReferencesAction.ts
|
|
16
|
+
var import_formatISO = __toESM(require_formatISO());
|
|
13
17
|
var setDialogExtraReferencesAction = async (extraReferences, thunkApi) => {
|
|
14
18
|
const { dispatch, getState } = thunkApi;
|
|
15
19
|
const state = getState();
|
|
@@ -29,7 +33,7 @@ var setDialogExtraReferencesAction = async (extraReferences, thunkApi) => {
|
|
|
29
33
|
dbKey: currentDialogKey,
|
|
30
34
|
changes: {
|
|
31
35
|
extraReferences: extraReferences ?? [],
|
|
32
|
-
updatedAt:
|
|
36
|
+
updatedAt: (0, import_formatISO.default)(/* @__PURE__ */ new Date())
|
|
33
37
|
}
|
|
34
38
|
})
|
|
35
39
|
).unwrap();
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
clipMultilineText,
|
|
3
3
|
fetchAndSerializeTable,
|
|
4
4
|
waitForAbortableDelay
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HUBHAQK2.js";
|
|
6
6
|
import {
|
|
7
7
|
isGatewayHttpStatus
|
|
8
8
|
} from "./chunk-NF64D32W.js";
|
|
@@ -15,27 +15,27 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
resolvePageReadMarkdown,
|
|
17
17
|
slateToSimplifiedMarkdown
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-RLBNLZVC.js";
|
|
19
19
|
import {
|
|
20
20
|
extractCategorizedMentions
|
|
21
21
|
} from "./chunk-AGIM7IMJ.js";
|
|
22
22
|
import {
|
|
23
23
|
fetchAndCacheMessages
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-ZXOUUDCG.js";
|
|
25
25
|
import {
|
|
26
26
|
createSpaceKey
|
|
27
27
|
} from "./chunk-UAD2WT54.js";
|
|
28
28
|
import {
|
|
29
29
|
read
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-FW6YHHLI.js";
|
|
31
31
|
import {
|
|
32
32
|
getRuntimeServerContext
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-PYRUW7XN.js";
|
|
34
34
|
import {
|
|
35
35
|
extractRuntimePageCapabilities,
|
|
36
36
|
resolveBuiltinSkillPage,
|
|
37
37
|
resolveSkillGraphFromRoots
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-WRYQ35LQ.js";
|
|
39
39
|
import {
|
|
40
40
|
isAbortError
|
|
41
41
|
} from "./chunk-7DPNBQSV.js";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
ANTIGRAVITY_CLOUD_CODE_BASE_URL,
|
|
6
6
|
isAntigravityCloudCodeBaseUrl,
|
|
7
7
|
isAntigravityOAuthAgent
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KIM6CLW5.js";
|
|
9
9
|
import {
|
|
10
10
|
isOpenAiResponsesModel,
|
|
11
11
|
resolvePlatformChatCompletionsEndpoint,
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
findModelConfig
|
|
16
16
|
} from "./chunk-SM3NSZJV.js";
|
|
17
|
-
import {
|
|
18
|
-
asOptionalTrimmedString
|
|
19
|
-
} from "./chunk-G3SUCT4W.js";
|
|
20
17
|
import {
|
|
21
18
|
asTrimmedLowercaseString
|
|
22
19
|
} from "./chunk-QSJ3HFEF.js";
|
|
20
|
+
import {
|
|
21
|
+
asOptionalTrimmedString
|
|
22
|
+
} from "./chunk-G3SUCT4W.js";
|
|
23
23
|
|
|
24
24
|
// packages/agent-runtime/agentCallPlan.ts
|
|
25
25
|
var CODEX_RESPONSES_URL = "https://chatgpt.com/backend-api/codex/responses";
|