nolo-cli 0.202.0-alpha.2 → 0.203.0-alpha.1
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-IPRTPSW7.js → _executeModel-KOODDFV3.js} +16 -16
- package/{agentDeleteCommand-6HFA37FH.js → agentDeleteCommand-HCZZPPAB.js} +17 -16
- package/{agentEmailCommands-TDBNVIAT.js → agentEmailCommands-5R2ST7IA.js} +19 -18
- package/{agentListCommands-YSQSDQM3.js → agentListCommands-POQKNVWF.js} +3 -3
- package/{agentMachineCommands-5W23BLFR.js → agentMachineCommands-UZ7I4VL3.js} +3 -3
- package/{agentProviderCommands-5ALOQLE5.js → agentProviderCommands-MEFUIECN.js} +30 -12
- package/{agentRecordCommands-SRIMZZFK.js → agentRecordCommands-SSSJLCIP.js} +18 -17
- package/{agentRunCommand-BLYHIN6S.js → agentRunCommand-FXGB7HRK.js} +19 -18
- package/{agentRuntimeLocal-FE66EBRC.js → agentRuntimeLocal-M2RCAORY.js} +2 -2
- package/{agentSlice-BFDKYW6H.js → agentSlice-H47GA3AE.js} +1 -1
- package/{appDeleteCommands-BEVZGCAG.js → appDeleteCommands-JI6AEOJO.js} +4 -4
- package/{appDeployCommands-E7TFCHSP.js → appDeployCommands-W3W4T7BU.js} +4 -4
- package/{appDeployStatusCommands-MYY5Z5G3.js → appDeployStatusCommands-QXPI3XS4.js} +4 -4
- package/{appGetCommands-HNED5JUU.js → appGetCommands-SQV3MNFW.js} +4 -4
- package/{appListCommands-MSBFWPIY.js → appListCommands-DMYRVV7E.js} +4 -4
- package/{authCommand-W34UWJGR.js → authCommand-KPTIANH2.js} +1 -1
- package/{builtinSkillRegistry-NJVHQIKY.js → builtinSkillRegistry-HH75G5J3.js} +2 -2
- package/{chromeOpsCommands-USKE4B4K.js → chromeOpsCommands-JFT4J4LQ.js} +1 -1
- package/{chunk-HKWGI3TM.js → chunk-4HAB2O5R.js} +235 -11
- package/{chunk-OIB4GARE.js → chunk-4JBJG7XB.js} +3 -3
- package/{chunk-WPQGLJHU.js → chunk-76QKMZCM.js} +2 -2
- package/{chunk-SSK4WNJA.js → chunk-7BIC2DPF.js} +1 -1
- package/{chunk-LAYFVGS4.js → chunk-7KWQ3AWS.js} +9 -9
- package/{chunk-HKMPGHFZ.js → chunk-A46X4DUK.js} +4 -4
- package/{chunk-BLFZULEQ.js → chunk-DP7YE3D3.js} +2 -2
- package/{chunk-TWVVTUNG.js → chunk-E4KACSRR.js} +2 -2
- package/{chunk-CLTGWJVT.js → chunk-E4LYPSYM.js} +2 -0
- package/{chunk-5E4FSR4J.js → chunk-EPJFGQYO.js} +1 -1
- package/{chunk-YAGFPXOX.js → chunk-FIFPSUK7.js} +128 -7
- package/{chunk-326HCB6L.js → chunk-G7RADKSA.js} +8 -8
- package/{chunk-DKZJJ2NQ.js → chunk-I5PBXF7O.js} +1 -1
- package/{chunk-KDUYNEJ5.js → chunk-IK6AAUGM.js} +1 -1
- package/{chunk-SUBNV2JH.js → chunk-IT2QLZ7M.js} +2 -2
- package/{chunk-DHJXDGC3.js → chunk-JL3YTCPQ.js} +1 -1
- package/{chunk-BRZTSZBG.js → chunk-L2F7JJZX.js} +21 -121
- package/{chunk-C7PKPHK6.js → chunk-LK46VB57.js} +5 -5
- package/{chunk-Q7GNBUT4.js → chunk-NEZGPBL7.js} +2 -2
- package/{chunk-ETTDZBK5.js → chunk-OBOAMKAA.js} +3 -3
- package/{chunk-3CWF2EUZ.js → chunk-QUJ3IHEK.js} +1 -1
- package/{chunk-E2FC5RMU.js → chunk-S2ZXDWPU.js} +29 -8
- package/{chunk-RS66RJLA.js → chunk-TEI5QWP3.js} +1 -1
- package/{chunk-6OEPWZV7.js → chunk-TPCDYNJK.js} +3 -0
- package/{chunk-D57YYGMD.js → chunk-VF2CQVMR.js} +2 -2
- package/{chunk-YV2RSLM4.js → chunk-W6L3E75W.js} +4 -4
- package/{chunk-ASG7VWPK.js → chunk-WKJCPU4B.js} +3 -3
- package/chunk-WOAZVUSN.js +126 -0
- package/{chunk-RIKSN62L.js → chunk-Y6KUC75Q.js} +3 -3
- package/{chunk-LEX6DEH4.js → chunk-Y6M7KJOA.js} +1 -1
- package/{commandRegistry-ZU3RX7A2.js → commandRegistry-YYGDQ353.js} +59 -59
- package/{contentThunks-I4IHSDTM.js → contentThunks-CUBCGUNV.js} +3 -3
- package/{cooldownCommands-5SJ74DNP.js → cooldownCommands-BLRMLW7Q.js} +1 -1
- package/{createAgentAutomationAction-WQCH5HR2.js → createAgentAutomationAction-QKYRYNB7.js} +3 -3
- package/{createDialogAction-CKMZK5JQ.js → createDialogAction-X6YMBBIP.js} +5 -5
- package/{createPageAction-QAZHQGY7.js → createPageAction-UISPQP64.js} +3 -3
- package/{dialogCommands-NEQ6NW5H.js → dialogCommands-XBAEKJVC.js} +4 -4
- package/{dialogSlice-GEGACCH2.js → dialogSlice-JPKOEWA7.js} +2 -2
- package/{docCreateCommands-EXV267FP.js → docCreateCommands-XBI32MGB.js} +3 -3
- package/{docDeleteCommands-TSBILA2Z.js → docDeleteCommands-7EKY3XJR.js} +3 -3
- package/{docReadCommands-AKVYHITD.js → docReadCommands-LWDKFZKJ.js} +3 -3
- package/{docStore-B4EFT53J.js → docStore-YUQJ22PU.js} +1 -1
- package/{docUpdateCommands-G6GULDGZ.js → docUpdateCommands-VFB53K4G.js} +3 -3
- package/{handleSendMessageAction-4BACQWOG.js → handleSendMessageAction-OBYLLUON.js} +11 -11
- package/index.js +6 -6
- package/{localRuntimeAdapter-MTDULOUZ.js → localRuntimeAdapter-FZ7E66VZ.js} +17 -16
- package/{machineCommands-OGHHBRV3.js → machineCommands-3VBUV3VZ.js} +18 -17
- package/{machineWsRunDispatch-R6DNC3H7.js → machineWsRunDispatch-SJMADAGT.js} +18 -17
- package/package.json +1 -1
- package/{readlineWorkspace-NC2O4DQP.js → readlineWorkspace-SHYYZ7XS.js} +22 -21
- package/{runAgentClientLoop-QKV66PX5.js → runAgentClientLoop-2FDKWHUB.js} +14 -14
- package/{secretCommands-MKU25CDP.js → secretCommands-S2DDPIQ4.js} +1 -1
- package/{settingThunks-4WU7YE62.js → settingThunks-SWYDFUYT.js} +3 -3
- package/{spaceCommands-J7BRTTM3.js → spaceCommands-BFES7F7G.js} +2 -2
- package/{streamAgentChatTurn-GM3UNSLS.js → streamAgentChatTurn-VQGUVTAC.js} +28 -18
- package/{tools-UJLEQBKI.js → tools-JMEDZDIA.js} +10 -10
- package/{updateCommands-RVDAFHBT.js → updateCommands-LEJRRVBB.js} +3 -3
- package/{updateDialogTitleAction-24QO27NT.js → updateDialogTitleAction-QGH4ZL4E.js} +3 -3
- package/{windowsSelfUpdate-N2VH2OBW.js → windowsSelfUpdate-LSSQLXVS.js} +2 -2
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCliLocalRuntimeAdapter,
|
|
3
3
|
summarizeEndpoint
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-L2F7JJZX.js";
|
|
5
5
|
import {
|
|
6
6
|
clipMultilineText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-LK46VB57.js";
|
|
8
8
|
import {
|
|
9
9
|
runLocalAgentTurn
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4JBJG7XB.js";
|
|
11
11
|
import {
|
|
12
12
|
applyToolSurfaceConstraints
|
|
13
13
|
} from "./chunk-2Q3LOAFE.js";
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
} from "./chunk-Y6ROFCZO.js";
|
|
39
39
|
import {
|
|
40
40
|
t
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-E4LYPSYM.js";
|
|
42
42
|
import {
|
|
43
43
|
asTrimmedNonEmptyStringArray
|
|
44
44
|
} from "./chunk-I42VC5KR.js";
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
} from "./chunk-Y6ROFCZO.js";
|
|
16
16
|
import {
|
|
17
17
|
scheduleWindowsSelfUpdate
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-EPJFGQYO.js";
|
|
19
19
|
import {
|
|
20
20
|
t
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-E4LYPSYM.js";
|
|
22
22
|
|
|
23
23
|
// packages/cli/updateCommands.ts
|
|
24
24
|
import { existsSync, readFileSync, accessSync, constants } from "node:fs";
|
|
@@ -981,6 +981,7 @@ var secretStrings = {
|
|
|
981
981
|
nolo secret set <name> <value|json> Set a secret via argv (legacy; discouraged: exposes secrets in shell history and process list)
|
|
982
982
|
nolo secret delete <name> Delete a secret
|
|
983
983
|
nolo secret run --with <names> -- <cmd> Safely inject secret environment variables and run a command
|
|
984
|
+
Env var name = secret name upper-cased, non-alphanumerics -> _ (my_api_key -> MY_API_KEY)
|
|
984
985
|
nolo secret bind <alias> <ref> [--env <ENV_NAME>] Bind a managed credential reference to an alias
|
|
985
986
|
nolo secret list-bindings List configured secret alias bindings
|
|
986
987
|
nolo secret unbind <alias> Remove a secret alias binding
|
|
@@ -993,6 +994,7 @@ var secretStrings = {
|
|
|
993
994
|
nolo secret set <name> <value|json> \u901A\u8FC7\u547D\u4EE4\u884C\u53C2\u6570\u8BBE\u7F6E secret\uFF08\u517C\u5BB9\u65E7\u8BED\u6CD5\uFF1B\u4E0D\u63A8\u8350\uFF1A\u51ED\u636E\u4F1A\u66B4\u9732\u5728\u8FDB\u7A0B\u5217\u8868\u4E0E shell \u5386\u53F2\u4E2D\uFF09
|
|
994
995
|
nolo secret delete <name> \u5220\u9664\u6307\u5B9A\u7684 secret
|
|
995
996
|
nolo secret run --with <names> -- <cmd> \u5B89\u5168\u6CE8\u5165 secret \u73AF\u5883\u53D8\u91CF\u5E76\u6267\u884C\u5B50\u547D\u4EE4
|
|
997
|
+
\u73AF\u5883\u53D8\u91CF\u540D = \u79D8\u94A5\u540D\u5168\u5927\u5199\u3001\u975E\u5B57\u6BCD\u6570\u5B57\u66FF\u6362\u4E3A _\uFF08my_api_key -> MY_API_KEY\uFF09
|
|
996
998
|
nolo secret bind <alias> <ref> [--env <ENV_NAME>] \u5C06\u53D7\u63A7\u51ED\u636E\u5F15\u7528\u7ED1\u5B9A\u5230\u522B\u540D
|
|
997
999
|
nolo secret list-bindings \u5217\u51FA\u5DF2\u914D\u7F6E\u7684 secret \u522B\u540D\u7ED1\u5B9A
|
|
998
1000
|
nolo secret unbind <alias> \u89E3\u9664\u6307\u5B9A\u7684 secret \u522B\u540D\u7ED1\u5B9A
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
inlineImageUrlsForCustomProvider,
|
|
6
6
|
prepareTools,
|
|
7
7
|
shouldInlineImageUrlsForAgent
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-DP7YE3D3.js";
|
|
9
9
|
import {
|
|
10
10
|
CONFIRMATION_INPUT_KEYS,
|
|
11
11
|
INVALID_TOOL_ARGS_REPLACEMENT,
|
|
@@ -14,16 +14,16 @@ import {
|
|
|
14
14
|
performFetchRequest,
|
|
15
15
|
sanitizeOutboundMessages,
|
|
16
16
|
stripModelToolArgs
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-W6L3E75W.js";
|
|
18
18
|
import {
|
|
19
19
|
findToolExecutor,
|
|
20
20
|
toolDefinitionsByName
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4HAB2O5R.js";
|
|
22
22
|
import {
|
|
23
23
|
classifyApiError,
|
|
24
24
|
classifyGenerationError,
|
|
25
25
|
extractErrorDiagnostics
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-Y6KUC75Q.js";
|
|
27
27
|
import {
|
|
28
28
|
createSSEParser,
|
|
29
29
|
createToolRunId,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
toolRunSetPending,
|
|
33
33
|
toolRunStarted,
|
|
34
34
|
toolRunSucceeded
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-LK46VB57.js";
|
|
36
36
|
import {
|
|
37
37
|
getPublicImageAgentMode
|
|
38
38
|
} from "./chunk-VIDPVFP3.js";
|
|
@@ -43,17 +43,22 @@ import {
|
|
|
43
43
|
addToolMessage,
|
|
44
44
|
messageStreamEnd,
|
|
45
45
|
messageStreaming,
|
|
46
|
+
toast,
|
|
46
47
|
toolResultNeedsUserConfirmation,
|
|
47
48
|
updateToolMessage
|
|
48
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-G7RADKSA.js";
|
|
49
50
|
import {
|
|
50
51
|
streamAgentChatTurn
|
|
51
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-OBOAMKAA.js";
|
|
52
53
|
import {
|
|
53
54
|
addActiveController,
|
|
55
|
+
getActiveDialogKey,
|
|
54
56
|
removeActiveController,
|
|
55
57
|
tokenUsageLiveUpdate
|
|
56
58
|
} from "./chunk-OWYYDMGJ.js";
|
|
59
|
+
import {
|
|
60
|
+
require_react
|
|
61
|
+
} from "./chunk-YDH3FDFQ.js";
|
|
57
62
|
import {
|
|
58
63
|
selectCurrentServer
|
|
59
64
|
} from "./chunk-HWZT5DKX.js";
|
|
@@ -120,6 +125,9 @@ import {
|
|
|
120
125
|
import {
|
|
121
126
|
asOptionalTrimmedString
|
|
122
127
|
} from "./chunk-G3SUCT4W.js";
|
|
128
|
+
import {
|
|
129
|
+
__toESM
|
|
130
|
+
} from "./chunk-4VNS5WPM.js";
|
|
123
131
|
|
|
124
132
|
// packages/integrations/openai/filterAndCleanMessages.ts
|
|
125
133
|
var isValidMessagePart = (part) => {
|
|
@@ -333,6 +341,115 @@ async function persistToolMessages(dispatch, messages, options = {}) {
|
|
|
333
341
|
}
|
|
334
342
|
}
|
|
335
343
|
|
|
344
|
+
// packages/app/appInspector/appInspectorStore.ts
|
|
345
|
+
var import_react = __toESM(require_react());
|
|
346
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
347
|
+
var version = 0;
|
|
348
|
+
var previewOpen = false;
|
|
349
|
+
var previewUrl = null;
|
|
350
|
+
var previewTarget = null;
|
|
351
|
+
var notify = () => {
|
|
352
|
+
for (const listener of listeners) {
|
|
353
|
+
try {
|
|
354
|
+
listener();
|
|
355
|
+
} catch {
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
var bump = () => {
|
|
360
|
+
version += 1;
|
|
361
|
+
notify();
|
|
362
|
+
};
|
|
363
|
+
function openPreviewTarget(target) {
|
|
364
|
+
previewOpen = true;
|
|
365
|
+
previewTarget = target;
|
|
366
|
+
if (target.kind === "dev" || target.kind === "url") {
|
|
367
|
+
previewUrl = target.url;
|
|
368
|
+
} else {
|
|
369
|
+
previewUrl = null;
|
|
370
|
+
}
|
|
371
|
+
bump();
|
|
372
|
+
}
|
|
373
|
+
function getPreviewTarget() {
|
|
374
|
+
return previewTarget;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// packages/app/appInspector/htmlArtifactClient.ts
|
|
378
|
+
async function readHtmlArtifact(id, options) {
|
|
379
|
+
const fetchFn = options?.fetchImpl ?? (typeof fetch !== "undefined" ? fetch : void 0);
|
|
380
|
+
if (!fetchFn) {
|
|
381
|
+
throw new Error("fetch is not available in current environment");
|
|
382
|
+
}
|
|
383
|
+
const base = options?.serverOrigin ? options.serverOrigin.replace(/\/+$/, "") : "";
|
|
384
|
+
const url = `${base}/api/html-artifacts`;
|
|
385
|
+
const headers = {
|
|
386
|
+
"Content-Type": "application/json"
|
|
387
|
+
};
|
|
388
|
+
if (options?.authToken) {
|
|
389
|
+
headers.Authorization = `Bearer ${options.authToken}`;
|
|
390
|
+
}
|
|
391
|
+
const response = await fetchFn(url, {
|
|
392
|
+
method: "POST",
|
|
393
|
+
headers,
|
|
394
|
+
credentials: "include",
|
|
395
|
+
body: JSON.stringify({
|
|
396
|
+
action: "read",
|
|
397
|
+
id
|
|
398
|
+
})
|
|
399
|
+
});
|
|
400
|
+
if (!response.ok) {
|
|
401
|
+
const errorText = await response.text().catch(() => "");
|
|
402
|
+
throw new Error(`\u8BFB\u53D6 HTML \u6210\u54C1\u5931\u8D25 (${response.status}): ${errorText || response.statusText}`);
|
|
403
|
+
}
|
|
404
|
+
const data = await response.json();
|
|
405
|
+
if (!data?.artifact) {
|
|
406
|
+
throw new Error("\u670D\u52A1\u7AEF\u672A\u8FD4\u56DE\u6709\u6548\u7684 HTML \u6210\u54C1\u5BF9\u8C61");
|
|
407
|
+
}
|
|
408
|
+
return data.artifact;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// packages/chat/messages/web/htmlArtifactEventChannel.ts
|
|
412
|
+
var latestExecution = 0;
|
|
413
|
+
async function receiveHtmlArtifactToolResult(toolName, result, dialogKey, isError = false) {
|
|
414
|
+
if (isError || toolName !== "createHtmlArtifact" && toolName !== "updateHtmlArtifact") return;
|
|
415
|
+
let data = result;
|
|
416
|
+
if (typeof data === "string") {
|
|
417
|
+
try {
|
|
418
|
+
data = JSON.parse(data);
|
|
419
|
+
} catch {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
if (!data || data.error) return;
|
|
424
|
+
data = data.rawData ?? data;
|
|
425
|
+
if (!data || typeof data !== "object" || data.error) return;
|
|
426
|
+
const artifact = data.artifact ?? data;
|
|
427
|
+
if (!artifact || typeof artifact !== "object") return;
|
|
428
|
+
const id = data.id ?? artifact.id;
|
|
429
|
+
const ownerDialog = data.dialogKey ?? artifact.dialogKey;
|
|
430
|
+
if (typeof id !== "string" || !id || ownerDialog !== dialogKey || getActiveDialogKey() !== dialogKey) return;
|
|
431
|
+
const execution = ++latestExecution;
|
|
432
|
+
const targetBeforeRead = getPreviewTarget();
|
|
433
|
+
try {
|
|
434
|
+
const latest = await readHtmlArtifact(id);
|
|
435
|
+
if (execution !== latestExecution || getActiveDialogKey() !== dialogKey || getPreviewTarget() !== targetBeforeRead) return;
|
|
436
|
+
if (latest.id !== id || latest.dialogKey !== dialogKey || !latest.html) throw new Error("\u6210\u54C1\u8BFB\u53D6\u7ED3\u679C\u4E0D\u5339\u914D");
|
|
437
|
+
openPreviewTarget({ kind: "artifact", artifactId: latest.id, dialogKey: latest.dialogKey, title: latest.title, html: latest.html });
|
|
438
|
+
} catch {
|
|
439
|
+
if (execution === latestExecution && getActiveDialogKey() === dialogKey) {
|
|
440
|
+
toast.error("\u7F51\u9875\u5DF2\u4FDD\u5B58\uFF0C\u4F46\u8BFB\u53D6\u6700\u65B0\u5185\u5BB9\u5931\u8D25\u3002\u8BF7\u5728\u7ED3\u679C\u5361\u7247\u4E2D\u91CD\u8BD5\u6253\u5F00\u3002");
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
function deliverHtmlArtifactToolResult(toolName, content, dialogKey) {
|
|
445
|
+
if (!dialogKey || toolName !== "createHtmlArtifact" && toolName !== "updateHtmlArtifact") {
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
void receiveHtmlArtifactToolResult(toolName, content, dialogKey).catch(
|
|
449
|
+
(error) => console.error("[htmlArtifact] live result delivery failed", error)
|
|
450
|
+
);
|
|
451
|
+
}
|
|
452
|
+
|
|
336
453
|
// packages/ai/chat/updateTotalUsage.ts
|
|
337
454
|
function updateTotalUsage(currentUsage, newUsageChunk) {
|
|
338
455
|
if (!newUsageChunk) {
|
|
@@ -762,6 +879,9 @@ var handleToolCalls = createAsyncThunk(
|
|
|
762
879
|
const toolName = result.toolName;
|
|
763
880
|
let rawResult = result.rawResult;
|
|
764
881
|
let toolPayload = result.toolPayload;
|
|
882
|
+
if (toolPayload?.status === "succeeded") {
|
|
883
|
+
deliverHtmlArtifactToolResult(toolName, rawResult, dialogKey);
|
|
884
|
+
}
|
|
765
885
|
if (toolName) {
|
|
766
886
|
const completedToolMessage = {
|
|
767
887
|
...runningToolMessage,
|
|
@@ -1975,6 +2095,7 @@ ${errorText}`
|
|
|
1975
2095
|
export {
|
|
1976
2096
|
filterAndCleanMessages,
|
|
1977
2097
|
persistToolMessages,
|
|
2098
|
+
deliverHtmlArtifactToolResult,
|
|
1978
2099
|
handleToolCalls,
|
|
1979
2100
|
updateTotalUsage,
|
|
1980
2101
|
readStreamChunk,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-523DITKR.js";
|
|
12
12
|
import {
|
|
13
13
|
runLlm
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OBOAMKAA.js";
|
|
15
15
|
import {
|
|
16
16
|
isMediaToolConfirmation
|
|
17
17
|
} from "./chunk-QYPE3TS3.js";
|
|
@@ -11077,7 +11077,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
11077
11077
|
runtimeOptions: args.runtimeOptions
|
|
11078
11078
|
});
|
|
11079
11079
|
if (agentKeyToUse) {
|
|
11080
|
-
const { streamAgentChatTurn } = await import("./agentSlice-
|
|
11080
|
+
const { streamAgentChatTurn } = await import("./agentSlice-H47GA3AE.js");
|
|
11081
11081
|
await dispatch(
|
|
11082
11082
|
streamAgentChatTurn({
|
|
11083
11083
|
agentKey: agentKeyToUse,
|
|
@@ -13891,7 +13891,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
13891
13891
|
}
|
|
13892
13892
|
if (isCurrentDialog) {
|
|
13893
13893
|
await thunkApi.dispatch(resetMsgs());
|
|
13894
|
-
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-
|
|
13894
|
+
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-JPKOEWA7.js");
|
|
13895
13895
|
dispatch(clearPendingAttachments2());
|
|
13896
13896
|
}
|
|
13897
13897
|
return { dialogKey, isCurrentDialog, attachmentPlan };
|
|
@@ -13899,15 +13899,15 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
13899
13899
|
|
|
13900
13900
|
// packages/chat/dialog/dialogSlice.ts
|
|
13901
13901
|
var runCreateDialogAction = async (args, thunkApi) => {
|
|
13902
|
-
const { createDialogAction } = await import("./createDialogAction-
|
|
13902
|
+
const { createDialogAction } = await import("./createDialogAction-X6YMBBIP.js");
|
|
13903
13903
|
return createDialogAction(args, thunkApi);
|
|
13904
13904
|
};
|
|
13905
13905
|
var runCreateAgentAutomationAction = async (args, thunkApi) => {
|
|
13906
|
-
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-
|
|
13906
|
+
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-QKYRYNB7.js");
|
|
13907
13907
|
return createAgentAutomationAction(args, thunkApi);
|
|
13908
13908
|
};
|
|
13909
13909
|
var runUpdateDialogTitleAction = async (args, thunkApi) => {
|
|
13910
|
-
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-
|
|
13910
|
+
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-QGH4ZL4E.js");
|
|
13911
13911
|
return updateDialogTitleAction(args, thunkApi);
|
|
13912
13912
|
};
|
|
13913
13913
|
var runAddDialogAgentAction = async (args, thunkApi) => {
|
|
@@ -13931,7 +13931,7 @@ var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
|
|
|
13931
13931
|
return setDialogExtraReferencesAction(args, thunkApi);
|
|
13932
13932
|
};
|
|
13933
13933
|
var runHandleSendMessageAction = async (args, thunkApi) => {
|
|
13934
|
-
const { handleSendMessageAction } = await import("./handleSendMessageAction-
|
|
13934
|
+
const { handleSendMessageAction } = await import("./handleSendMessageAction-OBYLLUON.js");
|
|
13935
13935
|
return handleSendMessageAction(args, thunkApi);
|
|
13936
13936
|
};
|
|
13937
13937
|
function clearDialogState() {
|
|
@@ -13944,7 +13944,7 @@ var createPageAndAddReference = createAsyncThunk(
|
|
|
13944
13944
|
async (payload, { dispatch, getState, rejectWithValue }) => {
|
|
13945
13945
|
const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
|
|
13946
13946
|
try {
|
|
13947
|
-
const { createDocState } = await import("./docStore-
|
|
13947
|
+
const { createDocState } = await import("./docStore-YUQJ22PU.js");
|
|
13948
13948
|
const pageKey = await createDocState(
|
|
13949
13949
|
{ slateData, title },
|
|
13950
13950
|
{ dispatch, getState }
|
|
@@ -92,7 +92,7 @@ var buildIdentityBlock = (input) => {
|
|
|
92
92
|
var DELETE_SAFETY_RED_LINE = [
|
|
93
93
|
"\u3010\u5220\u9664\u5B89\u5168\u7EA2\u7EBF \xB7 \u6700\u9AD8\u4F18\u5148\u7EA7\u3011",
|
|
94
94
|
"\u9664\u4E0B\u8FF0\u552F\u4E00\u4F8B\u5916\u5916\uFF0C\u4EFB\u4F55\u5220\u9664\u64CD\u4F5C\uFF08\u6587\u4EF6\u3001\u6570\u636E\u3001\u5E73\u53F0/\u8FDC\u7AEF\u5185\u5BB9\u3001\u6D88\u606F\u7B49\uFF0C\u65E0\u8BBA\u5355\u6761\u6216\u6279\u91CF\uFF09\u6267\u884C\u524D\uFF0C\u5FC5\u987B\u5148\u5411\u7528\u6237\u5448\u73B0\u5B8C\u6574\u5F85\u5220\u6E05\u5355\uFF08\u540D\u79F0/\u8DEF\u5F84/\u6807\u9898\u7B49\u53EF\u8BC6\u522B\u4FE1\u606F\uFF0C\u4E0D\u5F97\u622A\u65AD\uFF09\uFF0C\u5E76\u83B7\u5F97\u7528\u6237\u660E\u786E\u786E\u8BA4\u540E\u624D\u53EF\u6267\u884C\uFF1B\u4E25\u7981\u7528\u6A21\u7CCA\u5B9A\u4F4D\uFF08\u5982\u201C\u5217\u8868\u6700\u4E0B\u65B9\u201D\uFF09\u6307\u4EE3\u5220\u9664\u76EE\u6807\uFF0C\u4E25\u7981\u5148\u5220\u540E\u62A5\u3002\u5B88\u536B\u68C0\u67E5\u4E0E\u5220\u9664\u52A8\u4F5C**\u4E0D\u5F97\u7528 `;` \u8FDE\u63A5**\u2014\u2014\u5FC5\u987B\u7528 `&&`/`if` \u8BA9\u5220\u9664\u52A8\u4F5C\u5904\u5728\u5B88\u536B\u7684\u6210\u8D25\u8DEF\u5F84\u4E0A\uFF0C\u5426\u5219\u5B88\u536B\u6253\u5370\u7684\u300C\u6709\u5DEE\u5F02 \u2192 \u4E0D\u5220\u300D\u62E6\u4E0D\u4F4F\u7D27\u968F\u5176\u540E\u88AB `;` \u4E32\u8054\u6267\u884C\u7684\u5220\u9664\u547D\u4EE4\uFF082026-10-07 \u771F\u5B9E\u8E29\u5751\uFF09\u3002\uFF082026-09-26 \u6279\u91CF\u8BEF\u5220\u4E8B\u6545\u6559\u8BAD\uFF09",
|
|
95
|
-
"\u552F\u4E00\u4F8B\u5916\xB7\u53EF\u9A8C\u8BC1\u6062\u590D\u7684\u4EFB\u52A1\u6E05\u7406\uFF1A\u672C\u6B21\u4EFB\u52A1\u4EB2\u81EA\u521B\u5EFA/\u542F\u52A8\u3001\u4E14\u6E05\u7406\u524D\u5DF2\u7528\u5B9E\u9645\u547D\u4EE4\u9010\u9879\u9A8C\u8BC1\u300C\u8981\u5220\u7684\u5168\u90E8\u5185\u5BB9\u53E6\u6709\u5B8C\u6574\u526F\u672C\u3001\u5220\u4E86\u53EF\u65E0\u635F\u6062\u590D\u300D\u7684\u8D44\u6E90\uFF0C\u53EF\u514D\u4E8B\u524D\u6E05\u5355\u4E0E\u786E\u8BA4\uFF0C\u6E05\u7406\u540E\u5728\u6C47\u62A5\u4E2D\u9010\u9879\u5217\u660E\uFF1B\u7CBE\u786E\u5B9A\u4F4D\u4ECD\u5FC5\u987B\u3002\u4EC5\u9650\uFF1A\u2460 \u5DF2\u5B8C\u6574\u5408\u5165\u4FDD\u7559\u7684\u96C6\u6210\u5206\u652F\uFF08git merge-base --is-ancestor \u9A8C\u8BC1\uFF09\u7684\u672C\u5730\u5206\u652F\u4E0E worktree\uFF0C\u4E14\u9664 a)\u3001b) \
|
|
95
|
+
"\u552F\u4E00\u4F8B\u5916\xB7\u53EF\u9A8C\u8BC1\u6062\u590D\u7684\u4EFB\u52A1\u6E05\u7406\uFF1A\u672C\u6B21\u4EFB\u52A1\u4EB2\u81EA\u521B\u5EFA/\u542F\u52A8\u3001\u4E14\u6E05\u7406\u524D\u5DF2\u7528\u5B9E\u9645\u547D\u4EE4\u9010\u9879\u9A8C\u8BC1\u300C\u8981\u5220\u7684\u5168\u90E8\u5185\u5BB9\u53E6\u6709\u5B8C\u6574\u526F\u672C\u3001\u5220\u4E86\u53EF\u65E0\u635F\u6062\u590D\u300D\u7684\u8D44\u6E90\uFF0C\u53EF\u514D\u4E8B\u524D\u6E05\u5355\u4E0E\u786E\u8BA4\uFF0C\u6E05\u7406\u540E\u5728\u6C47\u62A5\u4E2D\u9010\u9879\u5217\u660E\uFF1B\u7CBE\u786E\u5B9A\u4F4D\u4ECD\u5FC5\u987B\u3002\u4EC5\u9650\uFF1A\u2460 \u5DF2\u5B8C\u6574\u5408\u5165\u4FDD\u7559\u7684\u96C6\u6210\u5206\u652F\uFF08git merge-base --is-ancestor \u9A8C\u8BC1\uFF09\u7684\u672C\u5730\u5206\u652F\u4E0E worktree\uFF0C\u4E14\u9664 a)\u3001b)\u3001c) \u4E09\u7C7B\u5916\uFF0C`git status --porcelain --ignored` \u8F93\u51FA\u5FC5\u987B\u4E3A\u7A7A\uFF1Aa) `!! node_modules/`\uFF08\u53CA `packages/*/node_modules/`\uFF09\u2014\u2014\u987B\u786E\u8BA4\u5C5E\u4F9D\u8D56\u5B89\u88C5\u4EA7\u7269\uFF0C\u4E14\u80FD\u7528\u4ED3\u5E93\u5185\u65E2\u6709\u547D\u4EE4\uFF08\u5982 `bun install`\uFF0C\u914D\u5408\u4ED3\u5E93\u5185 `bun.lock` \u4E0E `package.json`\uFF09\u65E0\u635F\u91CD\u5EFA\uFF1Bnode_modules \u91CC\u82E5\u6DF7\u6709\u975E\u4F9D\u8D56\u4EA7\u7269\uFF08\u4F8B\u5982\u672C\u5730\u624B\u5DE5\u653E\u7F6E\u7684\u811A\u672C\u3001\u8865\u4E01\u8FC7\u7684\u5305\u3001\u6216\u6307\u5411 worktree \u5916\u7684\u7B26\u53F7\u94FE\u63A5\uFF09\uFF0C\u5219\u8BE5\u76EE\u5F55\u6574\u4F53\u4E0D\u7B97\u53EF\u518D\u751F\uFF0C\u9700\u6309\u539F\u8DEF\u5F84\u9010\u9879\u5224\u65AD\uFF1Bb) \u88AB\u5FFD\u7565\u7684**\u53EF\u518D\u751F\u6784\u5EFA\u4EA7\u7269**\uFF08\u5982 `*.tsbuildinfo`\u3001\u6784\u5EFA/\u7F16\u8BD1\u7F13\u5B58\uFF09\u2014\u2014\u987B\u9010\u9879\u5217\u51FA\u8DEF\u5F84\uFF0C\u5E76\u7ED9\u51FA\u80FD\u91CD\u65B0\u751F\u6210\u5B83\u7684**\u4ED3\u5E93\u5185\u65E2\u6709\u547D\u4EE4**\uFF08\u5F53\u6B21\u5B9E\u9645\u6267\u884C\u901A\u8FC7\uFF1B\u6307\u4E0D\u51FA\u547D\u4EE4\u6216\u8DD1\u4E0D\u901A\u7684\u4E00\u5F8B\u4E0D\u653E\u884C\uFF09\uFF0C\u786E\u8BA4\u53EF\u7531\u8BE5\u547D\u4EE4\u65E0\u635F\u518D\u751F\u3001\u4E0D\u542B\u552F\u4E00\u7ED3\u679C\u6216\u7528\u6237\u6570\u636E\u3001\u4E14\u4E0D\u662F\u624B\u5DE5\u6539\u52A8\u8FC7\u7684\u4EA7\u7269\uFF1Bc) \u5F53\u6B21\u4EFB\u52A1\u81EA\u5EFA worktree \u5185\u3001**\u672C\u6B21\u4EFB\u52A1\u4EA7\u751F**\u7684 `.nolo/spills/`\uFF08\u5DE5\u5177\u8F93\u51FA\u6EA2\u51FA\u65E5\u5FD7\u843D\u70B9\uFF0C\u7531 `resolveSpillDirectory` \u4EA7\u751F\uFF09\u2014\u2014\u5C5E\u53EF\u518D\u751F\u4E2D\u95F4\u4EA7\u7269\uFF0C\u53EF\u968F\u8BE5 worktree \u4E00\u5E76\u6E05\u7406\uFF1B\u4E0B\u5217\u4E00\u5F8B\u4E0D\u5C5E\u6B64\u7C7B\uFF1A`.env*` \u7B49\u51ED\u8BC1\u3001`data/`\u3001`nolo/`\u3001`.nolo/` \u4E2D\u9664\u672C\u6B21\u4EFB\u52A1\u4EA7\u751F\u7684 `spills/` \u5916\u7684\u5185\u5BB9\uFF08\u5982 `credentials/`\uFF09\u3001\u4EFB\u4F55\u6570\u636E\u5E93/LevelDB/WAL/\u5BA1\u8BA1/\u65E5\u5FD7/\u62A5\u544A/\u5BFC\u51FA\u76EE\u5F55\u3001`artifacts/`\u3001\u624B\u5DE5\u6539\u52A8\u8FC7\u7684 `dist/`\u3001`public/` \u4E0B\u7684\u4EA7\u7269\u76EE\u5F55\uFF1B\u300C\u5DF2\u88AB gitignore\u300D\u300C\u662F\u6784\u5EFA\u4EA7\u7269\u300D\u300C\u53EF\u91CD\u65B0\u6784\u5EFA\u300D\u7B49\u672A\u7ECF\u547D\u4EE4\u6838\u5B9E\u7684\u8BF4\u6CD5\u4E0D\u6784\u6210\u653E\u884C\u7406\u7531\u3002\u6CE8\u610F `git worktree remove` \u4E0D\u4F1A\u56E0 ignored \u5185\u5BB9\u800C\u62D2\u7EDD\uFF08\u4F1A\u8FDE\u5176\u4E00\u5E76\u5220\u9664\uFF09\uFF0C\u672C\u4F8B\u5916\u6CA1\u6709\u673A\u68B0\u515C\u5E95\uFF0C\u4E0A\u8FF0\u9010\u9879\u6838\u5B9E\u662F\u552F\u4E00\u9632\u7EBF\uFF1B\u53EA\u7528\u4E0D\u5E26 --force \u7684 git worktree remove \u4E0E git branch -d\uFF0C\u7981\u6B62 -D\u3001--force\u3001rm -rf \u66FF\u4EE3\uFF1B\u2461 \u672C\u6B21\u521B\u5EFA\u3001\u5185\u5BB9\u53EA\u662F\u53EF\u518D\u751F\u4E2D\u95F4\u4EA7\u7269\uFF08\u65E5\u5FD7\u3001\u63A2\u9488\u811A\u672C\u3001\u622A\u56FE\u3001\u6784\u5EFA\u7F13\u5B58\uFF09\u7684 /tmp \u6587\u4EF6\uFF0C\u542B\u552F\u4E00\u7ED3\u679C\u6216\u7528\u6237\u6570\u636E\u7684\u4E0D\u7B97\uFF1B\u2462 \u672C\u6B21\u542F\u52A8\u3001\u6309\u5F53\u6B21\u8BB0\u5F55\u7684 PID \u6838\u5B9E\u8EAB\u4EFD\u3001\u7EC8\u6B62\u4E0D\u4E22\u672A\u4FDD\u5B58\u72B6\u6001\u7684\u540E\u53F0\u8FDB\u7A0B\u3002\u201C\u6709\u5907\u4EFD\u201D\u201C\u5728 /tmp\u201D\u201C\u5DF2\u5408\u5E76\u201D\u7B49\u672A\u7ECF\u547D\u4EE4\u6838\u5B9E\u7684\u5224\u65AD\u4E0D\u6784\u6210\u9A8C\u8BC1\uFF1B\u4EFB\u4E00\u9879\u65E0\u6CD5\u9A8C\u8BC1\uFF0C\u4E00\u5F8B\u56DE\u5230\u4E0A\u9762\u7684\u786E\u8BA4\u6D41\u7A0B\u3002\u7528\u6237\u6570\u636E\u3001\u8FDC\u7AEF/\u5E73\u53F0\u5185\u5BB9\u3001\u4ED6\u4EBA\u6216\u65E2\u6709\u7684\u6587\u4EF6\u3001\u5206\u652F\u3001stash \u6C38\u8FDC\u4E0D\u9002\u7528\u6B64\u4F8B\u5916\u3002"
|
|
96
96
|
].join("\n");
|
|
97
97
|
|
|
98
98
|
// packages/agent-runtime/credentialHygiene.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchReferenceContents,
|
|
3
3
|
resolveReferenceAssets
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Y6KUC75Q.js";
|
|
5
5
|
import {
|
|
6
6
|
updateTokensAction
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-G7RADKSA.js";
|
|
8
8
|
import {
|
|
9
9
|
applyUpdateTokensFulfilled
|
|
10
10
|
} from "./chunk-OWYYDMGJ.js";
|
|
@@ -20,6 +20,12 @@ import {
|
|
|
20
20
|
OAUTH_PROVIDER_REFS,
|
|
21
21
|
buildLocalAgentLookupKeys
|
|
22
22
|
} from "./chunk-U7HTU2S7.js";
|
|
23
|
+
import {
|
|
24
|
+
customNativeAuthHeaders,
|
|
25
|
+
isCallerCancellation,
|
|
26
|
+
resolveCustomNativeApiKeyHeader,
|
|
27
|
+
resolveCustomNativeEndpoint
|
|
28
|
+
} from "./chunk-WOAZVUSN.js";
|
|
23
29
|
import {
|
|
24
30
|
LOCAL_CODEX_AGENT_ID,
|
|
25
31
|
LOCAL_CODEX_AGENT_KEY,
|
|
@@ -57,11 +63,11 @@ import {
|
|
|
57
63
|
import {
|
|
58
64
|
inferCaptureIntent,
|
|
59
65
|
resolveUserSkillRuntime
|
|
60
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-NEZGPBL7.js";
|
|
61
67
|
import {
|
|
62
68
|
inlineImageUrlsForCustomProvider,
|
|
63
69
|
prepareTools
|
|
64
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-DP7YE3D3.js";
|
|
65
71
|
import {
|
|
66
72
|
getServerProviderSecret
|
|
67
73
|
} from "./chunk-HS7MLR74.js";
|
|
@@ -83,7 +89,7 @@ import {
|
|
|
83
89
|
resolveCliLocalRuntimeKeyCapability,
|
|
84
90
|
resolveCliLocalSpawnDispatch,
|
|
85
91
|
resolveStartAgentRunCwd
|
|
86
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-4HAB2O5R.js";
|
|
87
93
|
import {
|
|
88
94
|
fetchWithTransientRetry,
|
|
89
95
|
isTransientFetchError
|
|
@@ -95,7 +101,7 @@ import {
|
|
|
95
101
|
import {
|
|
96
102
|
resolveAgentRequiredPackIds,
|
|
97
103
|
resolveUserEnabledSkills
|
|
98
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-I5PBXF7O.js";
|
|
99
105
|
import {
|
|
100
106
|
applyBuiltinAgentRuntimeOverride,
|
|
101
107
|
applyTokenUsageToDayStats,
|
|
@@ -104,14 +110,14 @@ import {
|
|
|
104
110
|
resolveBuiltinPlatformAgentConfig,
|
|
105
111
|
runKeyed,
|
|
106
112
|
validateAskChoiceInput
|
|
107
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-G7RADKSA.js";
|
|
108
114
|
import {
|
|
109
115
|
BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
|
|
110
116
|
BUILTIN_TITLE_LLM_CONFIG
|
|
111
117
|
} from "./chunk-523DITKR.js";
|
|
112
118
|
import {
|
|
113
119
|
fetchServerSyncedCredential
|
|
114
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-OBOAMKAA.js";
|
|
115
121
|
import {
|
|
116
122
|
getDefaultCliLocalRuntimeDb
|
|
117
123
|
} from "./chunk-P64WRQYV.js";
|
|
@@ -127,7 +133,7 @@ import {
|
|
|
127
133
|
applySystemBuiltinSkillFilter,
|
|
128
134
|
expandEnabledPacks,
|
|
129
135
|
resolveEffectiveEnabledPacks
|
|
130
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-TPCDYNJK.js";
|
|
131
137
|
import {
|
|
132
138
|
DEFAULT_HYBRID_READ_TIMEOUT_MS,
|
|
133
139
|
Duration_exports,
|
|
@@ -171,7 +177,7 @@ import {
|
|
|
171
177
|
runExecShellGates,
|
|
172
178
|
validateConfiguredRootExecutionLease,
|
|
173
179
|
verifyOwnerRouteAck
|
|
174
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-4JBJG7XB.js";
|
|
175
181
|
import {
|
|
176
182
|
accumulateGeminiChunks,
|
|
177
183
|
buildGeminiGenerateContentRequest,
|
|
@@ -275,9 +281,6 @@ import {
|
|
|
275
281
|
import {
|
|
276
282
|
compactWhitespace
|
|
277
283
|
} from "./chunk-DWLEOOGR.js";
|
|
278
|
-
import {
|
|
279
|
-
isAbortError
|
|
280
|
-
} from "./chunk-7DPNBQSV.js";
|
|
281
284
|
import {
|
|
282
285
|
createOAuthTokenStore,
|
|
283
286
|
isTokenExpired,
|
|
@@ -380,7 +383,7 @@ import {
|
|
|
380
383
|
import {
|
|
381
384
|
agentRunCardLabels,
|
|
382
385
|
t
|
|
383
|
-
} from "./chunk-
|
|
386
|
+
} from "./chunk-E4LYPSYM.js";
|
|
384
387
|
import {
|
|
385
388
|
createTokenDialogIndexKey,
|
|
386
389
|
createTokenKey,
|
|
@@ -2876,113 +2879,6 @@ var resolveCodexOAuthTransport = async (ctx) => {
|
|
|
2876
2879
|
return null;
|
|
2877
2880
|
};
|
|
2878
2881
|
|
|
2879
|
-
// packages/agent-runtime/customNativeWire.ts
|
|
2880
|
-
var CHAT_COMPLETIONS_SUFFIX = /\/chat\/completions\/?$/;
|
|
2881
|
-
function resolveCustomNativeBase(endpoint) {
|
|
2882
|
-
return endpoint.replace(CHAT_COMPLETIONS_SUFFIX, "").replace(/\/+$/, "");
|
|
2883
|
-
}
|
|
2884
|
-
var NATIVE_PATH_SUFFIX = {
|
|
2885
|
-
"openai-responses": "/responses",
|
|
2886
|
-
"anthropic-messages": "/messages"
|
|
2887
|
-
};
|
|
2888
|
-
var ANTHROPIC_MESSAGES_VERSION = "2023-06-01";
|
|
2889
|
-
var OPENCODE_HOST = "opencode.ai";
|
|
2890
|
-
var OPENCODE_ZEN_GO_PREFIX = "/zen/go";
|
|
2891
|
-
var OPENCODE_INFERENCE_GO_PREFIX = "/inference/go";
|
|
2892
|
-
function normalizeOpencodeGoGeminiBase(base, wire) {
|
|
2893
|
-
if (wire !== "gemini") return base;
|
|
2894
|
-
const schemeEnd = base.indexOf("://");
|
|
2895
|
-
if (schemeEnd <= 0 || base.slice(0, schemeEnd).toLowerCase() !== "https") return base;
|
|
2896
|
-
const authorityStart = schemeEnd + 3;
|
|
2897
|
-
const pathStart = base.indexOf("/", authorityStart);
|
|
2898
|
-
if (pathStart < 0) return base;
|
|
2899
|
-
const host = base.slice(authorityStart, pathStart).toLowerCase();
|
|
2900
|
-
if (host !== OPENCODE_HOST) return base;
|
|
2901
|
-
const pathAndQuery = base.slice(pathStart);
|
|
2902
|
-
const isZenGoPath = pathAndQuery === OPENCODE_ZEN_GO_PREFIX || pathAndQuery.startsWith(`${OPENCODE_ZEN_GO_PREFIX}/`);
|
|
2903
|
-
if (!isZenGoPath) return base;
|
|
2904
|
-
return `${base.slice(0, authorityStart)}${OPENCODE_HOST}${OPENCODE_INFERENCE_GO_PREFIX}${pathAndQuery.slice(
|
|
2905
|
-
OPENCODE_ZEN_GO_PREFIX.length
|
|
2906
|
-
)}`;
|
|
2907
|
-
}
|
|
2908
|
-
function resolveCustomNativeEndpoint(endpoint, wire, model) {
|
|
2909
|
-
const base = normalizeOpencodeGoGeminiBase(resolveCustomNativeBase(endpoint), wire);
|
|
2910
|
-
switch (wire) {
|
|
2911
|
-
case "gemini":
|
|
2912
|
-
return `${base}/models/${model}:streamGenerateContent?alt=sse`;
|
|
2913
|
-
case "openai-responses":
|
|
2914
|
-
case "anthropic-messages": {
|
|
2915
|
-
const suffix = NATIVE_PATH_SUFFIX[wire];
|
|
2916
|
-
return base.endsWith(suffix) ? base : `${base}${suffix}`;
|
|
2917
|
-
}
|
|
2918
|
-
}
|
|
2919
|
-
}
|
|
2920
|
-
var RESERVED_CUSTOM_NATIVE_AUTH_HEADERS = [
|
|
2921
|
-
// 凭据之外、由通道自己决定的头
|
|
2922
|
-
"accept",
|
|
2923
|
-
"accept-encoding",
|
|
2924
|
-
"anthropic-version",
|
|
2925
|
-
"content-type",
|
|
2926
|
-
"content-length",
|
|
2927
|
-
"user-agent",
|
|
2928
|
-
"x-opencode-session",
|
|
2929
|
-
// 请求走私 / 连接语义(hop-by-hop 与 Host/Cookie 家族)
|
|
2930
|
-
"connection",
|
|
2931
|
-
"cookie",
|
|
2932
|
-
"host",
|
|
2933
|
-
"keep-alive",
|
|
2934
|
-
"proxy-authenticate",
|
|
2935
|
-
"proxy-authorization",
|
|
2936
|
-
"proxy-connection",
|
|
2937
|
-
"te",
|
|
2938
|
-
"trailer",
|
|
2939
|
-
"transfer-encoding",
|
|
2940
|
-
"upgrade"
|
|
2941
|
-
];
|
|
2942
|
-
var HTTP_HEADER_TOKEN_RE = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
2943
|
-
var CustomNativeApiKeyHeaderError = class extends Error {
|
|
2944
|
-
code = "INVALID_API_KEY_HEADER";
|
|
2945
|
-
constructor(message) {
|
|
2946
|
-
super(message);
|
|
2947
|
-
this.name = "CustomNativeApiKeyHeaderError";
|
|
2948
|
-
}
|
|
2949
|
-
};
|
|
2950
|
-
function resolveCustomNativeApiKeyHeader(apiKeyHeader) {
|
|
2951
|
-
const headerName = apiKeyHeader?.trim();
|
|
2952
|
-
if (!headerName) return void 0;
|
|
2953
|
-
if (!HTTP_HEADER_TOKEN_RE.test(headerName)) {
|
|
2954
|
-
throw new CustomNativeApiKeyHeaderError(
|
|
2955
|
-
`Invalid apiKeyHeader "${headerName}": not a valid HTTP header name (spaces, ":", CR/LF, control characters and other non-token characters are not allowed).`
|
|
2956
|
-
);
|
|
2957
|
-
}
|
|
2958
|
-
if (RESERVED_CUSTOM_NATIVE_AUTH_HEADERS.includes(headerName.toLowerCase())) {
|
|
2959
|
-
throw new CustomNativeApiKeyHeaderError(
|
|
2960
|
-
`Invalid apiKeyHeader "${headerName}": reserved header, it cannot be used as the API key header.`
|
|
2961
|
-
);
|
|
2962
|
-
}
|
|
2963
|
-
return headerName;
|
|
2964
|
-
}
|
|
2965
|
-
function customNativeAuthHeaderValue(headerName, apiKey) {
|
|
2966
|
-
return headerName.toLowerCase() === "authorization" ? apiKey.startsWith("Bearer ") ? apiKey : `Bearer ${apiKey}` : apiKey;
|
|
2967
|
-
}
|
|
2968
|
-
function customNativeAuthHeaders(wire, apiKey, apiKeyHeader) {
|
|
2969
|
-
const overrideName = resolveCustomNativeApiKeyHeader(apiKeyHeader);
|
|
2970
|
-
switch (wire) {
|
|
2971
|
-
case "gemini":
|
|
2972
|
-
return overrideName ? { [overrideName]: customNativeAuthHeaderValue(overrideName, apiKey) } : { "x-goog-api-key": apiKey };
|
|
2973
|
-
case "openai-responses":
|
|
2974
|
-
return overrideName ? { [overrideName]: customNativeAuthHeaderValue(overrideName, apiKey) } : { Authorization: `Bearer ${apiKey}` };
|
|
2975
|
-
case "anthropic-messages":
|
|
2976
|
-
return {
|
|
2977
|
-
...overrideName ? { [overrideName]: customNativeAuthHeaderValue(overrideName, apiKey) } : { "x-api-key": apiKey },
|
|
2978
|
-
"anthropic-version": ANTHROPIC_MESSAGES_VERSION
|
|
2979
|
-
};
|
|
2980
|
-
}
|
|
2981
|
-
}
|
|
2982
|
-
function isCallerCancellation(error, callerSignal) {
|
|
2983
|
-
return isAbortError(error) || callerSignal?.aborted === true;
|
|
2984
|
-
}
|
|
2985
|
-
|
|
2986
2882
|
// packages/agent-runtime/customNativeProvider.ts
|
|
2987
2883
|
var TRANSPORT_LABEL = {
|
|
2988
2884
|
"gemini": "gemini-native-custom",
|
|
@@ -3957,8 +3853,12 @@ var resolveOwnerOAuthProxyTransport = async (ctx) => {
|
|
|
3957
3853
|
model: providerConfig.model,
|
|
3958
3854
|
provider: providerConfig.provider,
|
|
3959
3855
|
...streamed.tool_calls ? { tool_calls: streamed.tool_calls } : {},
|
|
3960
|
-
...streamed.reasoning_content ? { reasoning_content: streamed.reasoning_content } : {}
|
|
3961
|
-
|
|
3856
|
+
...streamed.reasoning_content ? { reasoning_content: streamed.reasoning_content } : {},
|
|
3857
|
+
...streamed.finish_reason ? { finish_reason: streamed.finish_reason } : {},
|
|
3858
|
+
...streamed.stream_complete ? { stream_complete: true } : {},
|
|
3859
|
+
...streamed.streamTruncated ? { stream_truncated: true } : {}
|
|
3860
|
+
// owner_required 不上报 usage:N1 约束,客户端不产生可计费 token 记录;
|
|
3861
|
+
// 流完整性证据(finish_reason / stream_complete / stream_truncated)与计费无关,必须透传。
|
|
3962
3862
|
};
|
|
3963
3863
|
}
|
|
3964
3864
|
const raw = await res.text().catch(() => "");
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
normalizeSystemBuiltinSkills,
|
|
8
8
|
normalizeTonePresetSetting,
|
|
9
9
|
resolveUserEnabledSkills
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-I5PBXF7O.js";
|
|
11
11
|
import {
|
|
12
12
|
isSkillSummaryMarker
|
|
13
13
|
} from "./chunk-VF4K2QE6.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-RXUKDHS5.js";
|
|
17
17
|
import {
|
|
18
18
|
fetchAndCacheTableRows
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7BIC2DPF.js";
|
|
20
20
|
import {
|
|
21
21
|
createSpaceKey
|
|
22
22
|
} from "./chunk-UAD2WT54.js";
|
|
@@ -42,10 +42,10 @@ import {
|
|
|
42
42
|
import {
|
|
43
43
|
listBuiltinSkills,
|
|
44
44
|
resolveBuiltinSkillByName
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-Y6M7KJOA.js";
|
|
46
46
|
import {
|
|
47
47
|
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-TPCDYNJK.js";
|
|
49
49
|
import {
|
|
50
50
|
parseSkillDocProtocol
|
|
51
51
|
} from "./chunk-AETZ7AD6.js";
|
|
@@ -783,7 +783,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
783
783
|
if (!executionInput) {
|
|
784
784
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
785
785
|
}
|
|
786
|
-
const { findToolExecutor } = await import("./tools-
|
|
786
|
+
const { findToolExecutor } = await import("./tools-JMEDZDIA.js");
|
|
787
787
|
const { executor } = findToolExecutor(run.toolName);
|
|
788
788
|
toolRunStarted({
|
|
789
789
|
id: run.id,
|