nolo-cli 0.84.0-alpha.1 → 0.84.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/README.md +2 -2
- package/{_executeModel-IULR47HG.js → _executeModel-BPUR2QYH.js} +51 -50
- package/{action-D22U6CTH.js → action-P4TNFGAD.js} +11 -11
- package/{addContentAction-XAPUTGL4.js → addContentAction-MB2HHMDZ.js} +9 -9
- package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-S2NRBCWW.js} +9 -9
- package/{agentDeleteCommand-2S4WCDQC.js → agentDeleteCommand-MNAA6MIG.js} +32 -30
- package/{agentEmailCommands-V3ADGHX7.js → agentEmailCommands-SK34WJKU.js} +70 -66
- package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
- package/{agentListCommands-EPK3S274.js → agentListCommands-I26MKI4T.js} +55 -36
- package/{agentMachineCommands-XMZWK7P3.js → agentMachineCommands-M6QDR6P3.js} +32 -30
- package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-X3UNW77C.js} +87 -0
- package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-O5MPVJ5E.js} +3 -3
- package/agentRecordCommands-HTHLO2MM.js +129 -0
- package/{agentRunCommand-VUWNWC7C.js → agentRunCommand-IAIRCMTH.js} +70 -65
- package/{agentRunControl-T44MESII.js → agentRunControl-AVJR4JW4.js} +2 -2
- package/{agentRuntimeLocal-YRONTDLM.js → agentRuntimeLocal-3WTYYIT2.js} +32 -26
- package/{agentSlice-2P7OJFES.js → agentSlice-TVP3HINW.js} +10 -10
- package/{appDeleteCommands-YS7UGMP3.js → appDeleteCommands-SB5TNLKY.js} +32 -30
- package/{appDeployCommands-XIE5Z4BE.js → appDeployCommands-2IPKZINV.js} +32 -30
- package/{appDeployStatusCommands-54UDVYET.js → appDeployStatusCommands-K63TFUID.js} +32 -30
- package/{appGetCommands-6XYLBCRN.js → appGetCommands-VU2SLNEH.js} +32 -30
- package/{appListCommands-VEGH7SF5.js → appListCommands-S3T4DJ36.js} +32 -30
- package/{authCommand-JIEOFHXW.js → authCommand-HGP2XTKC.js} +185 -28
- package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
- package/builtinSkillRegistry-Q2VVY3SC.js +33 -0
- package/{chatQueueReduxAdapter-GPYCH5Z2.js → chatQueueReduxAdapter-TWIYKVIZ.js} +25 -25
- package/{chromeCommands-VOIRNJBL.js → chromeCommands-FZYAU75D.js} +1 -1
- package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-62P2Q2YB.js} +31 -1
- package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
- package/{chunk-BOYUESO7.js → chunk-3AMA42ZI.js} +1 -1
- package/{chunk-RZOJRTKR.js → chunk-3BGIKIPF.js} +444 -920
- package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
- package/{chunk-EBKMQULC.js → chunk-3IUWIAHP.js} +13 -15
- package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
- package/{chunk-4SZ37KLL.js → chunk-3VUWPRFW.js} +50 -30
- package/{chunk-WL2RKIBF.js → chunk-3YIAR5UI.js} +1 -1
- package/{chunk-DWUCB2A3.js → chunk-42V6BK2E.js} +1 -1
- package/{chunk-AX7RMXSH.js → chunk-4MK3I7Y4.js} +38 -4
- package/{chunk-PF6O3GR3.js → chunk-52Q2IW2X.js} +1340 -1273
- package/{chunk-Y3NZYLPG.js → chunk-5MEYHVIB.js} +1 -1
- package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
- package/chunk-5ZUL4CUO.js +10 -0
- package/{chunk-6YTOJY35.js → chunk-6D2JFXLY.js} +35 -0
- package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
- package/{chunk-FZGV4FGK.js → chunk-6GFOD3TK.js} +260 -140
- package/{chunk-TMPLPCVX.js → chunk-6OZ36FXI.js} +2 -2
- package/{chunk-PZM3EENV.js → chunk-6Z7MY3V7.js} +1 -1
- package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
- package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
- package/chunk-ACTMNVHM.js +93 -0
- package/{chunk-ZZCJUXUI.js → chunk-AHAHBQMU.js} +2 -2
- package/{chunk-BJCWNHVU.js → chunk-BFDFRLLQ.js} +2 -2
- package/chunk-BMQ2MJUK.js +153 -0
- package/chunk-BNGW5ASC.js +344 -0
- package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
- package/{chunk-73BR2IQT.js → chunk-CWQINZEA.js} +127 -7
- package/{chunk-HTMVBPOF.js → chunk-DD6XE56O.js} +19 -72
- package/{chunk-CADAR6QU.js → chunk-EYAQT56M.js} +4 -3
- package/{chunk-CJCJF5XB.js → chunk-FDTR4QJ6.js} +4 -2
- package/{chunk-D6XYLSOS.js → chunk-FKNWP6SG.js} +1 -1
- package/{chunk-3VPDELAP.js → chunk-FP76KI2Y.js} +1500 -84
- package/chunk-FV3JEYR3.js +870 -0
- package/{chunk-GCJ3IS5M.js → chunk-GIVFXPWK.js} +177 -6
- package/chunk-GMZLP5DV.js +82 -0
- package/{chunk-LHDV2QUI.js → chunk-GNCCNNZD.js} +4 -2
- package/{chunk-XWNRAIUL.js → chunk-GP5LKBUZ.js} +6 -16
- package/{chunk-PZCTYKGU.js → chunk-GQBOR3G6.js} +2 -2
- package/{chunk-NFT2AOK5.js → chunk-H4AHY5BU.js} +13 -85
- package/{chunk-FNGAF7C4.js → chunk-HAFJ3NDE.js} +137 -12
- package/{chunk-ZVN6I33J.js → chunk-HCT7U36O.js} +9 -5
- package/{chunk-7QVPPOEC.js → chunk-HKNXJGEC.js} +43 -43
- package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
- package/{chunk-OZX2IPKM.js → chunk-HYJFRTLW.js} +2 -2
- package/{chunk-HH65VA5U.js → chunk-I3TQJXQ7.js} +109 -6
- package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
- package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
- package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
- package/{chunk-DUJWWUGV.js → chunk-K36IXSCQ.js} +1 -1
- package/{chunk-KRMWO2NN.js → chunk-KAUSRTO6.js} +3 -3
- package/{chunk-7FWPLK4M.js → chunk-LJ5VW2UJ.js} +1 -1
- package/{chunk-GHEJJGJI.js → chunk-LMREEBWT.js} +833 -109
- package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
- package/chunk-LVIFM7VW.js +1625 -0
- package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
- package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
- package/{chunk-KEZNSFGD.js → chunk-MZYBSTMH.js} +11 -173
- package/chunk-OCZKATRC.js +129 -0
- package/{chunk-MXUSPS2N.js → chunk-OIVSQH2O.js} +1510 -1592
- package/{chunk-E36HZARC.js → chunk-P5EVSOPA.js} +93 -17
- package/{chunk-SZLVDREM.js → chunk-PBA4UJBK.js} +3 -3
- package/{chunk-URWDSZRW.js → chunk-PMAIQX7A.js} +3 -3
- package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
- package/{chunk-AJHEFRGJ.js → chunk-Q67DOFOO.js} +214 -5
- package/{chunk-UZ6XXCVR.js → chunk-QDSINZM3.js} +15 -2
- package/{chunk-NRALD3CC.js → chunk-QSHEEA5N.js} +54 -10
- package/chunk-QU7KDSZX.js +677 -0
- package/{chunk-T25L377S.js → chunk-RPJUFEGR.js} +10 -10
- package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
- package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
- package/{chunk-BKJO7LDP.js → chunk-U4OKDZFH.js} +6 -6
- package/{chunk-DM4FBSWG.js → chunk-UDVH2P4A.js} +7 -7
- package/{chunk-4EJ5QYB5.js → chunk-UEVXFHQB.js} +2 -2
- package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
- package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
- package/{chunk-YFADVSZE.js → chunk-VRTTFDBM.js} +7 -6
- package/{chunk-U7YP7ECK.js → chunk-WP5UXDA5.js} +84 -13
- package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
- package/{chunk-3QPYFHAH.js → chunk-XD2MJFUG.js} +1 -1
- package/{chunk-IDGYOD2O.js → chunk-XP3VVAPG.js} +3174 -223
- package/{chunk-ETLZZQJE.js → chunk-Z2PV6O2T.js} +121 -26
- package/{chunk-BZNGCVAW.js → chunk-Z5625XML.js} +4 -4
- package/{contentThunks-THSCADSK.js → contentThunks-JYWI7G7I.js} +26 -26
- package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-REAWYVTY.js} +2 -2
- package/{createAgentAutomationAction-WGN3UQ5A.js → createAgentAutomationAction-Z4SUJ54Y.js} +26 -26
- package/{createDialogAction-3EN2NLH7.js → createDialogAction-RCHFLVJ2.js} +29 -29
- package/{createPageAction-4VK473QV.js → createPageAction-YK2253XQ.js} +28 -28
- package/{dbSlice-GKGGFNOB.js → dbSlice-A6C6H32X.js} +8 -8
- package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
- package/{dialogCommands-PS4NWYY7.js → dialogCommands-X4UOZQWX.js} +36 -32
- package/{dialogSlice-CLV7SVOZ.js → dialogSlice-IVTWLCE2.js} +31 -25
- package/{docCreateCommands-4KANZJR6.js → docCreateCommands-VD6TGHG4.js} +33 -31
- package/{docDeleteCommands-F2S2TRUF.js → docDeleteCommands-OT3R2G4W.js} +34 -32
- package/{docReadCommands-B2WDPZQE.js → docReadCommands-2G7BIXSH.js} +33 -31
- package/{docStore-TDLCHWPF.js → docStore-UENKCCDX.js} +9 -9
- package/{docUpdateCommands-E7TKHRIO.js → docUpdateCommands-45MVJKZA.js} +33 -31
- package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
- package/{getPricing-QVTUQQTM.js → getPricing-LUSEABA6.js} +4 -4
- package/{handleSendMessageAction-AHL3ZHE4.js → handleSendMessageAction-LM2J4HC3.js} +66 -74
- package/index.js +99 -86
- package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
- package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
- package/{machineCommands-OTABVXOA.js → machineCommands-6N6MQIE6.js} +69 -65
- package/{machineWsRunDispatch-V4EVQSMZ.js → machineWsRunDispatch-7MFKVQCR.js} +65 -61
- package/{memberThunks-KATHH3F4.js → memberThunks-P2ECUJ56.js} +9 -9
- package/{models-GS72DVJS.js → models-T3SG6MJ5.js} +2 -2
- package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
- package/package.json +1 -1
- package/pdf-U6KSUEZZ.js +26435 -0
- package/providerPresetApply-XI3WUPTI.js +214 -0
- package/providerRegistry-KEPWWGXD.js +31 -0
- package/{read-LC6HVYBN.js → read-COE3ZYR6.js} +5 -4
- package/{readDocTool-N3ERJHHF.js → readDocTool-5USN4A6V.js} +1 -1
- package/{readlineWorkspace-IIT3FQ6I.js → readlineWorkspace-JWBON5CX.js} +291 -135
- package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-W66BJ7CF.js} +12 -12
- package/{runAgentClientLoop-7TQM7IAR.js → runAgentClientLoop-TA4SSPHE.js} +49 -49
- package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
- package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-2ALKG3WA.js} +10 -10
- package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-TQZB55F6.js} +12 -12
- package/{settingSlice-OEJA4NQO.js → settingSlice-P4ZW7K5X.js} +10 -10
- package/{spaceCommands-FSYH7AL4.js → spaceCommands-6NSAXB7D.js} +31 -29
- package/{streamAgentChatTurn-6EF6TVFK.js → streamAgentChatTurn-X5ENGUIS.js} +126 -65
- package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-3KI72HHS.js} +9 -9
- package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
- package/{toolApiClient-VGYUB4P5.js → toolApiClient-G3M73RTB.js} +3 -3
- package/{tools-R3QNWWTD.js → tools-XRQR7ZZR.js} +45 -45
- package/tuiSummaryLlmCaller-UFGFOIIW.js +128 -0
- package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
- package/{updateDialogTitleAction-F3EUOWOB.js → updateDialogTitleAction-ESUUD3GT.js} +46 -29
- package/agentRecordCommands-WFPWLWOF.js +0 -125
- package/chunk-FMODTASJ.js +0 -109
- package/chunk-I42VC5KR.js +0 -15
- package/chunk-NB5SIWC4.js +0 -611
- package/chunk-NG4UT4K4.js +0 -79
- package/codingSkills-7S6523WH.js +0 -48
- package/tuiSummaryLlmCaller-PWOXTCBF.js +0 -116
- package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
- package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
- package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildSkillDocMarkdown
|
|
3
|
+
} from "./chunk-Q554LLSI.js";
|
|
1
4
|
import {
|
|
2
5
|
SYSTEM_AGENT_CAPABILITIES,
|
|
3
6
|
SYSTEM_AGENT_CAPABILITY_IDS
|
|
4
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QDSINZM3.js";
|
|
8
|
+
import {
|
|
9
|
+
createKey
|
|
10
|
+
} from "./chunk-VMFTFOWF.js";
|
|
5
11
|
|
|
6
12
|
// packages/ai/tools/codeWorkDiscipline.ts
|
|
7
13
|
var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09
|
|
@@ -44,6 +50,9 @@ var TOOL_PACKS = {
|
|
|
44
50
|
// queryModelUsage / queryUserGrowthReport:server-only 工具(web/CLI executor
|
|
45
51
|
// 直接返回 serverOnlyResult),不随 CORE 常驻——server 端由 agent 显式
|
|
46
52
|
// tools 配置按需挂载(utilityServerTools 执行器),web 端不再挂死 schema。
|
|
53
|
+
// setTodoList 已移至「conversation-todo」系统能力包(defaultEnabled:true)
|
|
54
|
+
// 作为唯一 owner——single source of truth:普通 agent 默认仍有 setTodoList,
|
|
55
|
+
// 但关闭「对话 Todo」开关即可真正摘掉它(CORE 常驻时该开关形同虚设)。
|
|
47
56
|
CORE: [
|
|
48
57
|
"read",
|
|
49
58
|
"createDoc",
|
|
@@ -52,8 +61,9 @@ var TOOL_PACKS = {
|
|
|
52
61
|
"updateSelf",
|
|
53
62
|
"ask_user",
|
|
54
63
|
"createAgentAutomation",
|
|
55
|
-
"
|
|
56
|
-
"
|
|
64
|
+
"updateAgentAutomation",
|
|
65
|
+
"deleteAgentAutomation",
|
|
66
|
+
"notifyUser"
|
|
57
67
|
],
|
|
58
68
|
// L2 - 联网搜索:与 CAPABILITY_PACKS「web-search」对齐。
|
|
59
69
|
// 社交读工具属于「social-reader」包,不得因 exa_search 被旁路注入。
|
|
@@ -73,7 +83,6 @@ var TOOL_PACKS = {
|
|
|
73
83
|
"launchProcess",
|
|
74
84
|
"listProcesses",
|
|
75
85
|
"taskWait",
|
|
76
|
-
"taskLogs",
|
|
77
86
|
"taskStop",
|
|
78
87
|
// watchCompletion:push 后登记「业务终态订阅」,部署结束时服务端唤醒父对话
|
|
79
88
|
// (等待期间 0 轮询 0 token)。与代码工作流同链路(push → CI → 通知),随
|
|
@@ -273,7 +282,10 @@ function resolveEffectiveEnabledPacks(args) {
|
|
|
273
282
|
];
|
|
274
283
|
}
|
|
275
284
|
var SYSTEM_BUILTIN_SKILL_PACK_IDS = SYSTEM_AGENT_CAPABILITY_IDS;
|
|
276
|
-
var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = [
|
|
285
|
+
var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = [
|
|
286
|
+
"agent-orchestration",
|
|
287
|
+
"conversation-todo"
|
|
288
|
+
];
|
|
277
289
|
function getDefaultSystemCapabilityTools() {
|
|
278
290
|
const ids = DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS;
|
|
279
291
|
return SYSTEM_AGENT_CAPABILITY_PACKS.filter((pack) => ids.includes(pack.id)).flatMap((pack) => [...pack.tools]);
|
|
@@ -366,6 +378,160 @@ function applyDefaultWebToolPacks(args) {
|
|
|
366
378
|
return [...enhanced];
|
|
367
379
|
}
|
|
368
380
|
|
|
381
|
+
// packages/ai/skills/builtinObjectSkills.ts
|
|
382
|
+
var BUILTIN_OBJECT_SKILL_IDS = {
|
|
383
|
+
table: "builtin-table-skill-v1",
|
|
384
|
+
doc: "builtin-doc-skill-v1",
|
|
385
|
+
// key 改名为 code-style(它本来就叫「编码风格技能」,"code" 这个名字是它抢的,
|
|
386
|
+
// 与「代码执行」能力包撞车)。**id 值保持不变**——skillId 与页面 key 都从它派生,
|
|
387
|
+
// 改了会让存量 agent.references 失配。
|
|
388
|
+
"code-style": "builtin-code-skill-v1",
|
|
389
|
+
image: "builtin-image-skill-v1",
|
|
390
|
+
file: "builtin-file-skill-v1",
|
|
391
|
+
pagebuilder: "builtin-pagebuilder-skill-v1"
|
|
392
|
+
};
|
|
393
|
+
var SKILL_DEFS = {
|
|
394
|
+
doc: {
|
|
395
|
+
id: BUILTIN_OBJECT_SKILL_IDS.doc,
|
|
396
|
+
name: "\u6587\u6863\u7F16\u8F91\u6280\u80FD",
|
|
397
|
+
description: "\u63D0\u4F9B\u6587\u6863\u8BFB\u53D6\u4E0E\u66F4\u65B0\u80FD\u529B\uFF0C\u4F9B\u6587\u6863\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u6587\u6863\u3001\u6DA6\u8272\u3001\u6539\u5199\u3001\u7EED\u5199\u3001\u6392\u7248\u3001\u6587\u7AE0\u3001document\u3001polish\u3002",
|
|
398
|
+
toolNames: ["readDoc", "updateDoc"],
|
|
399
|
+
promptPatch: [
|
|
400
|
+
"\u6587\u6863\u7F16\u8F91\u6307\u5357\uFF1A",
|
|
401
|
+
"1. \u4FEE\u6539\u524D\u5148 readDoc \u8BFB\u53D6\u5F53\u524D\u6587\u6863\u771F\u503C\uFF0C\u518D\u57FA\u4E8E\u73B0\u6709\u5185\u5BB9\u7528 updateDoc \u505A\u5B9A\u70B9\u589E\u91CF\u7F16\u8F91\u3002",
|
|
402
|
+
"2. \u4E0D\u8981\u8131\u79BB\u73B0\u6709\u5185\u5BB9\u7A7A\u60F3\u91CD\u5199\uFF1B\u6DA6\u8272/\u6539\u5199/\u7EED\u5199\u90FD\u5E94\u4FDD\u7559\u7528\u6237\u539F\u6709\u7684\u7ED3\u6784\u4E0E\u4E8B\u5B9E\u3002"
|
|
403
|
+
].join("\n")
|
|
404
|
+
},
|
|
405
|
+
table: {
|
|
406
|
+
id: BUILTIN_OBJECT_SKILL_IDS.table,
|
|
407
|
+
name: "\u8868\u683C\u7F16\u8F91\u6280\u80FD",
|
|
408
|
+
description: "\u63D0\u4F9B\u8868\u683C\u521B\u5EFA\u3001\u67E5\u8BE2\u3001\u65B0\u589E\u3001\u66F4\u65B0\u4E0E\u5220\u9664\u80FD\u529B\uFF0C\u4F9B\u8868\u683C\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u8868\u683C\u3001\u5EFA\u8868\u3001\u65B0\u589E\u4E00\u884C\u3001\u8BB0\u5F55\u3001\u5B57\u6BB5\u3001table\u3001spreadsheet\u3001csv\u3002",
|
|
409
|
+
// 与 app-builder 能力包共用同一份清单(TOOL_PACKS.TABLE)。
|
|
410
|
+
// 以前两边各抄一份,改一个忘另一个就会静默不同步。
|
|
411
|
+
toolNames: [...TOOL_PACKS.TABLE],
|
|
412
|
+
promptPatch: [
|
|
413
|
+
"\u8868\u683C\u64CD\u4F5C\u6307\u5357\uFF1A",
|
|
414
|
+
"1. \u7528\u6237\u8981\u65B0\u5EFA\u8868\u683C\u65F6\uFF0C\u8C03\u7528 createTable\uFF0C\u5E76\u4ECE\u9700\u6C42\u63A8\u65AD\u5408\u7406\u7684\u5B57\u6BB5\u8BBE\u8BA1\uFF08\u5B57\u6BB5\u540D\u3001\u7C7B\u578B\u3001\u5FC5\u586B\u3001\u53EF\u9009\u503C\uFF09\u3002",
|
|
415
|
+
"2. \u65B0\u589E\u8BB0\u5F55\u5FC5\u987B\u8C03\u7528 addTableRow / addTableRows\uFF0C\u4E0D\u8981\u53EA\u5728\u56DE\u7B54\u91CC\u53E3\u5934\u63CF\u8FF0\u3002",
|
|
416
|
+
"3. addTableRow \u7684 values \u662F\u5BF9\u8C61\uFF0Ckey \u5FC5\u987B\u7528\u5B57\u6BB5\u540D\uFF08name\uFF0C\u4E0D\u662F\u663E\u793A\u540D label\uFF09\uFF1B\u5C3D\u91CF\u4ECE\u7528\u6237\u81EA\u7136\u8BED\u8A00\u63A8\u65AD\u5E76\u586B\u6EE1\u76F8\u5173\u5B57\u6BB5\uFF0C\u5FC5\u586B\u5B57\u6BB5\u5C24\u5176\u6CE8\u610F\uFF1B\u7528\u6237\u6CA1\u63D0\u5230\u7684\u5B57\u6BB5\u53EF\u7528\u7A7A\u5B57\u7B26\u4E32\u6216 null \u5360\u4F4D\uFF1B\u7EDD\u4E0D\u8981\u4F20\u7A7A\u5BF9\u8C61 {}\u3002",
|
|
417
|
+
"4. \u66F4\u65B0\u6216\u5220\u9664\u524D\uFF0C\u5148\u7528 queryTableRows \u786E\u8BA4\u76EE\u6807\u884C\uFF0C\u5FC5\u8981\u65F6\u5411\u7528\u6237\u786E\u8BA4\u76EE\u6807\u884C/\u5B57\u6BB5\u3002"
|
|
418
|
+
].join("\n")
|
|
419
|
+
},
|
|
420
|
+
"code-style": {
|
|
421
|
+
id: BUILTIN_OBJECT_SKILL_IDS["code-style"],
|
|
422
|
+
name: "\u7F16\u7801\u98CE\u683C\u6280\u80FD",
|
|
423
|
+
description: "\u63D0\u4F9B\u7F16\u7801\u89C4\u8303\u4E0E\u98CE\u683C\u7EA6\u675F\uFF0C\u4F9B\u4EE3\u7801\u4EFB\u52A1\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u4EE3\u7801\u3001\u7F16\u7801\u3001\u91CD\u6784\u3001\u4FEEbug\u3001code\u3001refactor\u3001bugfix\u3001coding-style\u3002",
|
|
424
|
+
toolNames: [],
|
|
425
|
+
promptPatch: [
|
|
426
|
+
"\u7F16\u7801\u98CE\u683C\u4E0E\u89C4\u8303\u6307\u5357\uFF1A",
|
|
427
|
+
"1. \u6587\u4EF6\u62C6\u5206\uFF1A\u4F18\u5148\u62C6\u5206\u4E3A\u591A\u6587\u4EF6\uFF08MANY SMALL FILES\uFF09\uFF0C\u5178\u578B\u957F\u5EA6 200-400 \u884C\uFF0C\u5355\u6587\u4EF6\u6700\u591A 800 \u884C\uFF08800 max\uFF09\u3002",
|
|
428
|
+
"2. \u51FD\u6570\u4E0E\u5D4C\u5957\uFF1A\u51FD\u6570\u4FDD\u6301\u77ED\u5C0F\uFF08<50 lines\uFF09\uFF0C\u4F18\u5148\u4F7F\u7528 early returns \u63D0\u524D\u8FD4\u56DE\uFF0C\u5D4C\u5957\u5C42\u7EA7\u4E0D\u8D85\u8FC7 4 \u5C42\uFF08nesting \u22644\uFF09\u3002",
|
|
429
|
+
"3. \u4E0D\u53EF\u53D8\u6027\uFF08immutability\uFF09\uFF1A\u4FDD\u6301\u6570\u636E\u4E0D\u53EF\u53D8\uFF0C\u4E0D\u8981\u539F\u5730 mutate \u73B0\u6709\u5BF9\u8C61\u6216\u6570\u7EC4\uFF0C\u5FC5\u987B\u8FD4\u56DE\u65B0\u5BF9\u8C61/\u6570\u7EC4\u3002",
|
|
430
|
+
"4. \u9519\u8BEF\u5904\u7406\u4E0E\u6821\u9A8C\uFF1A\u663E\u5F0F\u5904\u7406\u6240\u6709\u9519\u8BEF\uFF08explicit error handling\uFF09\uFF0C\u5728\u7CFB\u7EDF\u8FB9\u754C\u5B8C\u6210\u6821\u9A8C\uFF08validate at boundaries\uFF09\uFF0C\u4E0D\u9690\u5F0F\u541E\u9519\u3002",
|
|
431
|
+
"5. \u5B8C\u6210\u524D Checklist\uFF1A\u5B8C\u6210\u524D\u81EA\u67E5\u51FD\u6570/\u6587\u4EF6\u5C3A\u5BF8\u3001\u5D4C\u5957\u6DF1\u5EA6\u3001\u4E0D\u53EF\u53D8\u6027\u4E0E\u8FB9\u754C\u9519\u8BEF\u5904\u7406\u3002"
|
|
432
|
+
].join("\n")
|
|
433
|
+
},
|
|
434
|
+
image: {
|
|
435
|
+
id: BUILTIN_OBJECT_SKILL_IDS.image,
|
|
436
|
+
name: "\u56FE\u7247\u5206\u6790\u6280\u80FD",
|
|
437
|
+
description: "\u63D0\u4F9B\u56FE\u7247\u7406\u89E3\u3001\u63CF\u8FF0\u4E0E\u6574\u7406\u5EFA\u8BAE\u80FD\u529B\uFF0C\u4F9B\u56FE\u7247\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u56FE\u7247\u3001\u56FE\u50CF\u3001\u5206\u6790\u3001\u63CF\u8FF0\u3001\u547D\u540D\u3001\u6574\u7406\u3001image\u3001photo\u3001picture\u3002",
|
|
438
|
+
toolNames: [],
|
|
439
|
+
promptPatch: [
|
|
440
|
+
"\u56FE\u7247\u5206\u6790\u6307\u5357\uFF1A",
|
|
441
|
+
"1. \u5F53\u524D\u9636\u6BB5\u91CD\u70B9\u56F4\u7ED5\u5F53\u524D\u56FE\u7247\u505A\u7406\u89E3\u3001\u63CF\u8FF0\u3001\u63D0\u70BC\u91CD\u70B9\u3001\u7ED9\u51FA\u547D\u540D/\u6574\u7406\u5EFA\u8BAE\u548C\u540E\u7EED\u5904\u7406\u5EFA\u8BAE\u3002",
|
|
442
|
+
"2. \u4E0D\u8981\u5047\u88C5\u5DF2\u7ECF\u5177\u5907\u590D\u6742\u56FE\u7247\u7F16\u8F91\u80FD\u529B\uFF1B\u5982\u679C\u7528\u6237\u8981\u66F4\u5F3A\u64CD\u4F5C\uFF0C\u660E\u786E\u8BF4\u660E\u5F53\u524D\u53EF\u505A\u7684\u662F\u5206\u6790\u4E0E\u7EC4\u7EC7\u3002"
|
|
443
|
+
].join("\n")
|
|
444
|
+
},
|
|
445
|
+
file: {
|
|
446
|
+
id: BUILTIN_OBJECT_SKILL_IDS.file,
|
|
447
|
+
name: "\u6587\u4EF6\u5904\u7406\u6280\u80FD",
|
|
448
|
+
description: "\u63D0\u4F9B\u6587\u4EF6\u7406\u89E3\u3001\u6574\u7406\u4E0E\u5904\u7406\u5EFA\u8BAE\u80FD\u529B\uFF0C\u4F9B\u6587\u4EF6\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u6587\u4EF6\u3001\u89E3\u6790\u3001\u63D0\u53D6\u3001\u6574\u7406\u3001\u5904\u7406\u3001file\u3001document\u3001pdf\u3002",
|
|
449
|
+
toolNames: [],
|
|
450
|
+
promptPatch: [
|
|
451
|
+
"\u6587\u4EF6\u5904\u7406\u6307\u5357\uFF1A",
|
|
452
|
+
"1. \u5F53\u524D\u9636\u6BB5\u91CD\u70B9\u56F4\u7ED5\u5F53\u524D\u6587\u4EF6\u63D0\u4F9B\u7406\u89E3\u3001\u6574\u7406\u3001\u63D0\u53D6\u4E0E\u540E\u7EED\u5904\u7406\u5EFA\u8BAE\u3002",
|
|
453
|
+
"2. \u4E0D\u8981\u5047\u88C5\u5DF2\u7ECF\u5B8C\u6210\u6587\u4EF6\u5185\u5BB9\u89E3\u6790\uFF1B\u5FC5\u8981\u65F6\u660E\u786E\u544A\u8BC9\u7528\u6237\u5F53\u524D\u66F4\u591A\u662F\u5360\u4F4D\u578B\u5DE5\u4F5C\u6D41\u5165\u53E3\uFF0C\u7B49\u5F85\u540E\u7EED\u63A5\u5165\u66F4\u5B8C\u6574\u7684\u6587\u4EF6\u5904\u7406\u80FD\u529B\u3002"
|
|
454
|
+
].join("\n")
|
|
455
|
+
},
|
|
456
|
+
pagebuilder: {
|
|
457
|
+
id: BUILTIN_OBJECT_SKILL_IDS.pagebuilder,
|
|
458
|
+
name: "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u6280\u80FD",
|
|
459
|
+
description: "\u628A\u4E00\u53E5\u8BDD\u9700\u6C42\u53D8\u6210\u53EF\u770B\u7684\u4EA4\u4E92\u9875\u9762\u3001\u62A5\u544A\u3001\u770B\u677F\u3001\u4E3B\u9875\u3001\u6559\u7A0B\u3001\u5BF9\u6BD4\u9875\u6216\u8BA1\u5212\u9875\u3002\u4EFB\u4F55 agent \u5728\u9700\u8981\u8F93\u51FA\u53EF\u4EA4\u4E92\u53EF\u89C6\u5316\u6D88\u606F\u65F6\u6309\u9700\u52A0\u8F7D\u3002\u89E6\u53D1\u8BCD\uFF1A\u9875\u9762\u3001\u62A5\u8868\u3001\u770B\u677F\u3001\u65E5\u62A5\u3001\u5468\u62A5\u3001\u4E3B\u9875\u3001\u6559\u7A0B\u3001\u5BF9\u6BD4\u9875\u3001\u8BA1\u5212\u9875\u3001\u53EF\u89C6\u5316\u3001\u4EA4\u4E92\u9875\u9762\u3001\u4EEA\u8868\u76D8\u3001dashboard\u3001report\u3001page\u3001landing\u3002",
|
|
460
|
+
toolNames: [],
|
|
461
|
+
promptPatch: [
|
|
462
|
+
"\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u89C4\u5219\uFF1A",
|
|
463
|
+
"\u4F60\u73B0\u5728\u7684\u4EFB\u52A1\u662F\u628A\u7528\u6237\u9700\u6C42\u53D8\u6210\u4E00\u4E2A\u53EF\u770B\u7684\u4EA4\u4E92\u9875\u9762/\u62A5\u544A/\u770B\u677F/\u4E3B\u9875/\u6559\u7A0B/\u5BF9\u6BD4\u9875/\u8BA1\u5212\u9875\u3002\u7528\u6237\u770B\u4E0D\u5230\u6E90\u7801\uFF0C\u53EA\u4F1A\u770B\u5230\u9875\u9762\u7ED3\u679C\u3002",
|
|
464
|
+
"",
|
|
465
|
+
"\u7EDD\u5BF9\u89C4\u5219\uFF1A",
|
|
466
|
+
"1. \u53EA\u8F93\u51FA\u4E00\u4E2A Markdown \u4EE3\u7801\u5757\uFF0C\u4EE3\u7801\u5757\u8BED\u8A00\u5FC5\u987B\u662F tsx preview\u3002",
|
|
467
|
+
"2. \u4EE3\u7801\u5757\u5916\u4E0D\u8981\u8F93\u51FA\u89E3\u91CA\u3001\u524D\u8A00\u3001\u7ED3\u5C3E\u3001\u6E05\u5355\u6216\u601D\u8003\u8FC7\u7A0B\u3002",
|
|
468
|
+
"3. \u4EE3\u7801\u5FC5\u987B\u5B9A\u4E49\u9876\u5C42 function Example()\uFF0C\u4E0D\u8981\u8C03\u7528 render()\uFF0C\u4E0D\u8981 export default\u3002",
|
|
469
|
+
"4. \u4E0D\u8981\u5199 import\u3002\u8FD0\u884C\u73AF\u5883\u5DF2\u7ECF\u63D0\u4F9B React\u3001useState\u3001useEffect\u3001useMemo\u3001useCallback\u3001useRef\u3001ReactECharts\u3001react-icons/lu \u7684\u56FE\u6807\u7EC4\u4EF6\u3002",
|
|
470
|
+
"5. \u6240\u6709\u4EA4\u4E92\u5FC5\u987B\u5728 Example \u5185\u7528 React state \u5B9E\u73B0\uFF0C\u6309\u94AE\u3001Tab\u3001FAQ\u3001\u6B65\u9AA4\u5207\u6362\u3001\u7B5B\u9009\u90FD\u8981\u771F\u7684\u53EF\u70B9\u51FB\u3002",
|
|
471
|
+
"6. \u4E3A\u4E3B\u8981\u533A\u5757\u52A0 data-artifact-section \u5C5E\u6027\u3002",
|
|
472
|
+
"7. \u751F\u6210\u7ED3\u679C\u4F18\u5148\u662F\u4E00\u9875\u5B8C\u6574\u53EF\u7528\u7684\u9875\u9762\uFF0C\u4E0D\u8981\u53EA\u505A\u5B64\u7ACB\u5361\u7247\u6216\u4E00\u4E2A\u56FE\u3002",
|
|
473
|
+
"8. \u5982\u679C\u7528\u6237\u6CA1\u6709\u7ED9\u5177\u4F53\u6570\u636E\uFF0C\u53EF\u4EE5\u751F\u6210\u5408\u7406\u7684\u793A\u4F8B\u6570\u636E\uFF0C\u4F46\u8981\u4FDD\u6301\u4E1A\u52A1\u53EF\u4FE1\u3002",
|
|
474
|
+
"",
|
|
475
|
+
"\u5404\u7C7B\u9875\u9762\u9ED8\u8BA4\u7ED3\u6784\uFF1A",
|
|
476
|
+
"- \u4FE1\u606F\u5C55\u793A\u7C7B\uFF08\u4E3B\u9875\u3001\u4EA7\u54C1\u4ECB\u7ECD\u3001\u670D\u52A1\u9875\u3001\u4F5C\u54C1\u96C6\u3001\u6D3B\u52A8\u9875\uFF09\uFF1A\u9996\u5C4F\u5B9A\u4F4D\u3001\u670D\u52A1/\u80FD\u529B\u5361\u7247\u3001\u4EE3\u8868\u6210\u679C\u5361\u7247\u3001\u53EF\u4FE1\u80CC\u4E66\u3001\u8054\u7CFB\u6216\u884C\u52A8\u6309\u94AE\u3002",
|
|
477
|
+
"- \u6570\u636E\u5206\u6790\u7C7B\uFF08\u65E5\u62A5\u3001\u5468\u62A5\u3001\u770B\u677F\u3001\u8D28\u68C0\u3001\u9500\u552E\u6F0F\u6597\u3001\u53CD\u9988\u5206\u6790\uFF09\uFF1A\u9876\u90E8\u6458\u8981\u3001\u6838\u5FC3\u6307\u6807\u3001\u8D8B\u52BF\u56FE\u3001\u660E\u7EC6\u8868\u683C\u6216\u5F02\u5E38\u5217\u8868\u3001\u4E0B\u4E00\u6B65\u5EFA\u8BAE\u3002",
|
|
478
|
+
"- \u6D41\u7A0B\u8BF4\u660E\u7C7B\uFF08\u6559\u7A0B\u3001SOP\u3001onboarding\u3001\u64CD\u4F5C\u6307\u5357\u3001\u8BFE\u7A0B\u6B65\u9AA4\uFF09\uFF1A\u5B66\u4E60\u76EE\u6807\u3001\u6B65\u9AA4\u5361\u7247\u3001\u793A\u4F8B/\u7EC3\u4E60\u3001\u68C0\u67E5\u6E05\u5355\u6216\u4E0B\u4E00\u6B65\u6309\u94AE\u3002",
|
|
479
|
+
"- \u51B3\u7B56\u6BD4\u8F83\u7C7B\uFF08\u65B9\u6848\u5BF9\u6BD4\u3001\u4EA7\u54C1\u9009\u578B\u3001\u7ADE\u54C1\u5206\u6790\u3001\u91C7\u8D2D\u5EFA\u8BAE\uFF09\uFF1A\u5BF9\u6BD4\u7EF4\u5EA6\u8868\u683C\u3001\u4F18\u7F3A\u70B9\u5361\u7247\u3001\u8BC4\u5206\u6216\u9002\u914D\u5EA6\u3001\u63A8\u8350\u7ED3\u8BBA\u3002",
|
|
480
|
+
"- \u8BA1\u5212\u6392\u5E03\u7C7B\uFF08\u9879\u76EE\u8BA1\u5212\u3001\u5B66\u4E60\u8BA1\u5212\u3001\u5185\u5BB9\u65E5\u5386\u3001\u53D1\u5E03\u8282\u594F\uFF09\uFF1A\u9636\u6BB5\u76EE\u6807\u3001\u4EFB\u52A1\u5217\u8868\u3001\u4F18\u5148\u7EA7\u3001\u91CC\u7A0B\u7891\u5361\u7247\u3001\u98CE\u9669\u63D0\u9192\u3002",
|
|
481
|
+
"- \u6DF7\u5408\u6C47\u62A5\u7C7B\uFF08\u878D\u8D44\u9875\u3001\u9879\u76EE\u6982\u89C8\u3001\u590D\u6742\u6C47\u62A5\uFF09\uFF1A\u81F3\u5C11\u5305\u542B MetricCard\u3001Chart\u3001Table \u548C Section\uFF0C\u4E0D\u8981\u53EA\u505A\u5355\u4E00\u5217\u8868\u3002",
|
|
482
|
+
"- \u6559\u7A0B/\u6B65\u9AA4/FAQ/Tab/\u7B5B\u9009/\u9875\u9762\u5185\u8DF3\u8F6C\u5FC5\u987B\u505A\u6210\u771F\u5B9E\u53EF\u70B9\u51FB\u4EA4\u4E92\u3002",
|
|
483
|
+
"",
|
|
484
|
+
"\u4EE3\u7801\u98CE\u683C\uFF1A",
|
|
485
|
+
"1. \u4F7F\u7528\u5185\u8054 style \u6216\u7EC4\u4EF6\u5185 <style>\uFF0C\u4E0D\u8981\u4F9D\u8D56 Tailwind \u6216\u5916\u90E8 CSS\u3002",
|
|
486
|
+
"2. \u9875\u9762\u5BBD\u5EA6\u3001\u95F4\u8DDD\u3001\u5B57\u53F7\u8981\u9002\u5408\u6D88\u606F\u5185\u9884\u89C8\uFF1B\u4E0D\u8981\u7528\u8FC7\u5927\u7684\u843D\u5730\u9875 hero\u3002",
|
|
487
|
+
"3. \u989C\u8272\u8981\u514B\u5236\uFF0C\u6709\u5C42\u6B21\uFF1B\u907F\u514D\u6574\u9875\u5355\u4E00\u84DD\u7D2B\u6E10\u53D8\u3002",
|
|
488
|
+
"4. \u8868\u683C\u3001\u56FE\u8868\u3001\u5361\u7247\u3001\u6309\u94AE\u90FD\u8981\u6709 hover/active/focus \u7684\u7EC6\u8282\u3002",
|
|
489
|
+
"5. \u5FC5\u8981\u65F6\u4F7F\u7528 ReactECharts \u753B\u56FE\uFF1B\u7B80\u5355\u67F1\u72B6\u56FE\u4E5F\u53EF\u4EE5\u7528 div \u5B9E\u73B0\uFF0C\u4FDD\u8BC1\u7A33\u5B9A\u3002",
|
|
490
|
+
"6. \u4EE3\u7801\u5C3D\u91CF\u77ED\u800C\u5B8C\u6574\uFF0C\u9ED8\u8BA4 150-260 \u884C\u4EE5\u5185\u3002",
|
|
491
|
+
"",
|
|
492
|
+
"\u8F93\u51FA\u683C\u5F0F\u793A\u4F8B\uFF1A",
|
|
493
|
+
"```tsx preview",
|
|
494
|
+
"function Example() {",
|
|
495
|
+
" const [tab, setTab] = useState('overview');",
|
|
496
|
+
" return <main><section data-artifact-section>...</section></main>;",
|
|
497
|
+
"}",
|
|
498
|
+
"```"
|
|
499
|
+
].join("\n")
|
|
500
|
+
}
|
|
501
|
+
};
|
|
502
|
+
function buildBuiltinObjectSkillConfig(kind) {
|
|
503
|
+
const def = SKILL_DEFS[kind];
|
|
504
|
+
return {
|
|
505
|
+
version: "0.1",
|
|
506
|
+
kind: "skill",
|
|
507
|
+
id: def.id,
|
|
508
|
+
name: def.name,
|
|
509
|
+
description: def.description,
|
|
510
|
+
triggerMode: "explicit",
|
|
511
|
+
toolNames: def.toolNames,
|
|
512
|
+
promptPatch: def.promptPatch
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
function buildBuiltinObjectSkillDbKey(kind, userId) {
|
|
516
|
+
return createKey("page" /* DOC */, userId, BUILTIN_OBJECT_SKILL_IDS[kind]);
|
|
517
|
+
}
|
|
518
|
+
function buildBuiltinObjectSkillReference(kind, userId) {
|
|
519
|
+
return {
|
|
520
|
+
dbKey: buildBuiltinObjectSkillDbKey(kind, userId),
|
|
521
|
+
title: SKILL_DEFS[kind].name,
|
|
522
|
+
type: "instruction"
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
function buildBuiltinObjectSkillPageContent(kind) {
|
|
526
|
+
const def = SKILL_DEFS[kind];
|
|
527
|
+
return buildSkillDocMarkdown({
|
|
528
|
+
body: `# ${def.name}
|
|
529
|
+
|
|
530
|
+
${def.description}`,
|
|
531
|
+
skillConfig: buildBuiltinObjectSkillConfig(kind)
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
|
|
369
535
|
export {
|
|
370
536
|
buildCodeWorkDiscipline,
|
|
371
537
|
TOOL_PACKS,
|
|
@@ -379,5 +545,10 @@ export {
|
|
|
379
545
|
FORCED_TOOLS,
|
|
380
546
|
applyDisabledTools,
|
|
381
547
|
addDefaultLightWebToolsForConfiguredAgents,
|
|
382
|
-
applyDefaultWebToolPacks
|
|
548
|
+
applyDefaultWebToolPacks,
|
|
549
|
+
BUILTIN_OBJECT_SKILL_IDS,
|
|
550
|
+
buildBuiltinObjectSkillConfig,
|
|
551
|
+
buildBuiltinObjectSkillDbKey,
|
|
552
|
+
buildBuiltinObjectSkillReference,
|
|
553
|
+
buildBuiltinObjectSkillPageContent
|
|
383
554
|
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// packages/agent-runtime/sseFrames.ts
|
|
2
|
+
async function* readSseFrames(response) {
|
|
3
|
+
const reader = response.body?.getReader();
|
|
4
|
+
if (!reader) {
|
|
5
|
+
throw new Error("SSE response did not include a readable body.");
|
|
6
|
+
}
|
|
7
|
+
const decoder = new TextDecoder();
|
|
8
|
+
let buffer = "";
|
|
9
|
+
while (true) {
|
|
10
|
+
const { done, value } = await reader.read();
|
|
11
|
+
if (done) break;
|
|
12
|
+
buffer += decoder.decode(value, { stream: true });
|
|
13
|
+
let boundary = findSseFrameBoundary(buffer);
|
|
14
|
+
while (boundary) {
|
|
15
|
+
yield buffer.slice(0, boundary.index);
|
|
16
|
+
buffer = buffer.slice(boundary.index + boundary.separatorLength);
|
|
17
|
+
boundary = findSseFrameBoundary(buffer);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const remaining = decoder.decode();
|
|
21
|
+
if (remaining) {
|
|
22
|
+
buffer += remaining;
|
|
23
|
+
let boundary = findSseFrameBoundary(buffer);
|
|
24
|
+
while (boundary) {
|
|
25
|
+
yield buffer.slice(0, boundary.index);
|
|
26
|
+
buffer = buffer.slice(boundary.index + boundary.separatorLength);
|
|
27
|
+
boundary = findSseFrameBoundary(buffer);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (buffer.trim()) yield buffer;
|
|
31
|
+
}
|
|
32
|
+
function findSseFrameBoundary(buffer) {
|
|
33
|
+
const lfLf = buffer.indexOf("\n\n");
|
|
34
|
+
const crLfCrLf = buffer.indexOf("\r\n\r\n");
|
|
35
|
+
if (lfLf === -1 && crLfCrLf === -1) return null;
|
|
36
|
+
const useLf = lfLf !== -1 && (crLfCrLf === -1 || lfLf < crLfCrLf);
|
|
37
|
+
return useLf ? { index: lfLf, separatorLength: 2 } : { index: crLfCrLf, separatorLength: 4 };
|
|
38
|
+
}
|
|
39
|
+
async function* streamSseDataValues(response, parse) {
|
|
40
|
+
const reader = response.body?.getReader();
|
|
41
|
+
if (!reader) return;
|
|
42
|
+
const decoder = new TextDecoder();
|
|
43
|
+
let buffer = "";
|
|
44
|
+
while (true) {
|
|
45
|
+
const { done, value } = await reader.read();
|
|
46
|
+
if (done) break;
|
|
47
|
+
buffer += decoder.decode(value, { stream: true });
|
|
48
|
+
const lines = buffer.split("\n");
|
|
49
|
+
buffer = lines.pop() ?? "";
|
|
50
|
+
for (const line of lines) {
|
|
51
|
+
const parsed = parse(line);
|
|
52
|
+
if (parsed) yield parsed;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const remaining = decoder.decode();
|
|
56
|
+
if (remaining) {
|
|
57
|
+
buffer += remaining;
|
|
58
|
+
const lines = buffer.split("\n");
|
|
59
|
+
buffer = lines.pop() ?? "";
|
|
60
|
+
for (const line of lines) {
|
|
61
|
+
const parsed = parse(line);
|
|
62
|
+
if (parsed) yield parsed;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (buffer.trim()) {
|
|
66
|
+
const parsed = parse(buffer);
|
|
67
|
+
if (parsed) yield parsed;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async function readSseDataValues(response, parse) {
|
|
71
|
+
const values = [];
|
|
72
|
+
for await (const value of streamSseDataValues(response, parse)) {
|
|
73
|
+
values.push(value);
|
|
74
|
+
}
|
|
75
|
+
return values;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export {
|
|
79
|
+
readSseFrames,
|
|
80
|
+
streamSseDataValues,
|
|
81
|
+
readSseDataValues
|
|
82
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trimTrailingSlash
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6OZ36FXI.js";
|
|
4
4
|
import {
|
|
5
5
|
toErrorMessage
|
|
6
6
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -129,7 +129,9 @@ async function refreshAntigravityToken(credential, deps = {}) {
|
|
|
129
129
|
payload = {};
|
|
130
130
|
}
|
|
131
131
|
if (!response.ok) {
|
|
132
|
-
const
|
|
132
|
+
const errorCode = typeof payload.error === "string" && payload.error.trim() ? payload.error.trim() : void 0;
|
|
133
|
+
const errorDescription = typeof payload.error_description === "string" && payload.error_description.trim() ? payload.error_description.trim() : void 0;
|
|
134
|
+
const detail = (errorCode && errorDescription && errorDescription !== errorCode ? `${errorCode}: ${errorDescription}` : errorCode ?? errorDescription ?? rawBodyText.trim()) || `HTTP ${response.status}`;
|
|
133
135
|
throw new Error(`Antigravity token refresh failed: ${detail}`);
|
|
134
136
|
}
|
|
135
137
|
if (typeof payload.access_token !== "string" || !payload.access_token.trim()) {
|
|
@@ -2,8 +2,9 @@ import {
|
|
|
2
2
|
parsePositiveFiniteNumberOrFallback
|
|
3
3
|
} from "./chunk-Y5GCAMGP.js";
|
|
4
4
|
import {
|
|
5
|
-
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
6
|
-
|
|
5
|
+
DEFAULT_SYSTEM_AGENT_CAPABILITIES,
|
|
6
|
+
noloAgentId
|
|
7
|
+
} from "./chunk-QDSINZM3.js";
|
|
7
8
|
import {
|
|
8
9
|
asRecordOrEmpty
|
|
9
10
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -13,25 +14,22 @@ import {
|
|
|
13
14
|
toTimestampMs,
|
|
14
15
|
upsert,
|
|
15
16
|
write
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VRTTFDBM.js";
|
|
17
18
|
import {
|
|
18
19
|
createUserKey,
|
|
19
20
|
createUserPreferenceKey,
|
|
20
21
|
ulid
|
|
21
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-VMFTFOWF.js";
|
|
22
23
|
import {
|
|
23
24
|
asTrimmedLowercaseString
|
|
24
25
|
} from "./chunk-QSJ3HFEF.js";
|
|
25
|
-
import {
|
|
26
|
-
BUILTIN_NOLO_AGENT_KEY
|
|
27
|
-
} from "./chunk-5J7W2VWW.js";
|
|
28
26
|
import {
|
|
29
27
|
asyncThunkCreator,
|
|
30
28
|
buildCreateSlice,
|
|
31
29
|
createAction,
|
|
32
30
|
createAsyncThunk,
|
|
33
31
|
createSelector
|
|
34
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-UKWGR5SS.js";
|
|
35
33
|
import {
|
|
36
34
|
getAllServers,
|
|
37
35
|
getIsDesktopApp,
|
|
@@ -1016,12 +1014,6 @@ var withSettingsRecordSchema = (changes) => ({
|
|
|
1016
1014
|
schemaVersion: SETTINGS_RECORD_SCHEMA_VERSION
|
|
1017
1015
|
});
|
|
1018
1016
|
|
|
1019
|
-
// packages/core/init.ts
|
|
1020
|
-
var nolotusId = "0e95801d90";
|
|
1021
|
-
var ADMIN_IDS = /* @__PURE__ */ new Set([nolotusId]);
|
|
1022
|
-
var isSystemAdmin = (userId) => userId != null && ADMIN_IDS.has(userId);
|
|
1023
|
-
var noloAgentId = BUILTIN_NOLO_AGENT_KEY;
|
|
1024
|
-
|
|
1025
1017
|
// packages/app/settings/settingNormalizers.ts
|
|
1026
1018
|
var hasOwn = (target, key) => Object.prototype.hasOwnProperty.call(target, key);
|
|
1027
1019
|
var normalizeDefaultAgentIdSetting = (value) => {
|
|
@@ -1994,8 +1986,6 @@ export {
|
|
|
1994
1986
|
AGENT_UPDATE_FIELD_NAMES,
|
|
1995
1987
|
normalizeAgentUpdateFieldList,
|
|
1996
1988
|
SYSTEM_DEFAULT_AGENT_ID,
|
|
1997
|
-
nolotusId,
|
|
1998
|
-
isSystemAdmin,
|
|
1999
1989
|
normalizeSettingChanges,
|
|
2000
1990
|
LOCAL_FIRST_APPEARANCE_KEYS,
|
|
2001
1991
|
LOCAL_ONLY_SETTINGS_KEYS,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getModelConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OIVSQH2O.js";
|
|
4
4
|
import {
|
|
5
5
|
isPlatformHostedDeepseekModel,
|
|
6
6
|
isPlatformHostedOpenAIImageModel,
|
|
7
7
|
resolvePlatformHostedRouting
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-Q67DOFOO.js";
|
|
9
9
|
import {
|
|
10
10
|
asTrimmedLowercaseString
|
|
11
11
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
readSseFrames
|
|
3
|
+
} from "./chunk-GMZLP5DV.js";
|
|
1
4
|
import {
|
|
2
5
|
sanitizeForOutbound
|
|
3
6
|
} from "./chunk-CQ3WA2NE.js";
|
|
@@ -35,15 +38,16 @@ import {
|
|
|
35
38
|
resolvePlatformAuthToken,
|
|
36
39
|
resolvePlatformServerUrl,
|
|
37
40
|
resolveProviderTransportDecision
|
|
38
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-6OZ36FXI.js";
|
|
39
42
|
import {
|
|
40
43
|
clipCompactText,
|
|
41
44
|
isMeaningfulChatCompletionOutput,
|
|
42
45
|
isMeaningfulResponsesOutput
|
|
43
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-P5EVSOPA.js";
|
|
44
47
|
import {
|
|
45
|
-
NOLO_CLIENT_VERSION_HEADER
|
|
46
|
-
|
|
48
|
+
NOLO_CLIENT_VERSION_HEADER,
|
|
49
|
+
isPlatformMimoProviderModel
|
|
50
|
+
} from "./chunk-Q67DOFOO.js";
|
|
47
51
|
import {
|
|
48
52
|
isRecord
|
|
49
53
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -346,83 +350,6 @@ function flushChatCompletionStream(state) {
|
|
|
346
350
|
}
|
|
347
351
|
}
|
|
348
352
|
|
|
349
|
-
// packages/agent-runtime/sseFrames.ts
|
|
350
|
-
async function* readSseFrames(response) {
|
|
351
|
-
const reader = response.body?.getReader();
|
|
352
|
-
if (!reader) {
|
|
353
|
-
throw new Error("SSE response did not include a readable body.");
|
|
354
|
-
}
|
|
355
|
-
const decoder = new TextDecoder();
|
|
356
|
-
let buffer = "";
|
|
357
|
-
while (true) {
|
|
358
|
-
const { done, value } = await reader.read();
|
|
359
|
-
if (done) break;
|
|
360
|
-
buffer += decoder.decode(value, { stream: true });
|
|
361
|
-
let boundary = findSseFrameBoundary(buffer);
|
|
362
|
-
while (boundary) {
|
|
363
|
-
yield buffer.slice(0, boundary.index);
|
|
364
|
-
buffer = buffer.slice(boundary.index + boundary.separatorLength);
|
|
365
|
-
boundary = findSseFrameBoundary(buffer);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
const remaining = decoder.decode();
|
|
369
|
-
if (remaining) {
|
|
370
|
-
buffer += remaining;
|
|
371
|
-
let boundary = findSseFrameBoundary(buffer);
|
|
372
|
-
while (boundary) {
|
|
373
|
-
yield buffer.slice(0, boundary.index);
|
|
374
|
-
buffer = buffer.slice(boundary.index + boundary.separatorLength);
|
|
375
|
-
boundary = findSseFrameBoundary(buffer);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
if (buffer.trim()) yield buffer;
|
|
379
|
-
}
|
|
380
|
-
function findSseFrameBoundary(buffer) {
|
|
381
|
-
const lfLf = buffer.indexOf("\n\n");
|
|
382
|
-
const crLfCrLf = buffer.indexOf("\r\n\r\n");
|
|
383
|
-
if (lfLf === -1 && crLfCrLf === -1) return null;
|
|
384
|
-
const useLf = lfLf !== -1 && (crLfCrLf === -1 || lfLf < crLfCrLf);
|
|
385
|
-
return useLf ? { index: lfLf, separatorLength: 2 } : { index: crLfCrLf, separatorLength: 4 };
|
|
386
|
-
}
|
|
387
|
-
async function* streamSseDataValues(response, parse) {
|
|
388
|
-
const reader = response.body?.getReader();
|
|
389
|
-
if (!reader) return;
|
|
390
|
-
const decoder = new TextDecoder();
|
|
391
|
-
let buffer = "";
|
|
392
|
-
while (true) {
|
|
393
|
-
const { done, value } = await reader.read();
|
|
394
|
-
if (done) break;
|
|
395
|
-
buffer += decoder.decode(value, { stream: true });
|
|
396
|
-
const lines = buffer.split("\n");
|
|
397
|
-
buffer = lines.pop() ?? "";
|
|
398
|
-
for (const line of lines) {
|
|
399
|
-
const parsed = parse(line);
|
|
400
|
-
if (parsed) yield parsed;
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
const remaining = decoder.decode();
|
|
404
|
-
if (remaining) {
|
|
405
|
-
buffer += remaining;
|
|
406
|
-
const lines = buffer.split("\n");
|
|
407
|
-
buffer = lines.pop() ?? "";
|
|
408
|
-
for (const line of lines) {
|
|
409
|
-
const parsed = parse(line);
|
|
410
|
-
if (parsed) yield parsed;
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
if (buffer.trim()) {
|
|
414
|
-
const parsed = parse(buffer);
|
|
415
|
-
if (parsed) yield parsed;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
async function readSseDataValues(response, parse) {
|
|
419
|
-
const values = [];
|
|
420
|
-
for await (const value of streamSseDataValues(response, parse)) {
|
|
421
|
-
values.push(value);
|
|
422
|
-
}
|
|
423
|
-
return values;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
353
|
// packages/agent-runtime/platformChatProvider.ts
|
|
427
354
|
var PlatformStreamInterruptedError = class extends Error {
|
|
428
355
|
code = "PLATFORM_STREAM_INTERRUPTED";
|
|
@@ -465,7 +392,11 @@ function isAbortOrTimeoutError(error) {
|
|
|
465
392
|
}
|
|
466
393
|
var CHAT_PROXY_PATH = "/api/v1/chat";
|
|
467
394
|
function shouldDisableThinking(providerConfig) {
|
|
468
|
-
return providerConfig.provider.toLowerCase() === "mimo" || /xiaomimimo\.com/i.test(providerConfig.endpoint)
|
|
395
|
+
return providerConfig.provider.toLowerCase() === "mimo" || /xiaomimimo\.com/i.test(providerConfig.endpoint) || // 平台托管 MiMo(provider=nolo + mimo-v2.6-*):endpoint 通常已解析成
|
|
396
|
+
// api.xiaomimimo.com/...(上面的正则已命中),但 transport=direct 时
|
|
397
|
+
// endpoint 是 nolo 服务器地址——模型 id 判据保证两跳都关掉 thinking
|
|
398
|
+
// (上游 thinking 默认 enabled)。
|
|
399
|
+
isPlatformMimoProviderModel(providerConfig.provider, providerConfig.model);
|
|
469
400
|
}
|
|
470
401
|
function isResponsesEndpoint(endpoint) {
|
|
471
402
|
return /\/responses$/i.test(endpoint.trim());
|
|
@@ -921,9 +852,6 @@ export {
|
|
|
921
852
|
applyChatCompletionDelta,
|
|
922
853
|
flushChatCompletionStream,
|
|
923
854
|
providerHttpFailure,
|
|
924
|
-
readSseFrames,
|
|
925
|
-
streamSseDataValues,
|
|
926
|
-
readSseDataValues,
|
|
927
855
|
createResponsesToolAccumulator,
|
|
928
856
|
applyResponsesToolEvent,
|
|
929
857
|
finalizeResponsesToolCalls,
|