nolo-cli 0.33.0-alpha.9 → 0.34.0-alpha.3
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-2WR4RTZZ.js → _executeModel-TMUXL7J5.js} +64 -65
- package/{action-OQWPNKAH.js → action-KMBZ3LCZ.js} +12 -12
- package/{addContentAction-YVINZQTF.js → addContentAction-KQ44UT2U.js} +10 -10
- package/{addDialogAgentAction-6IOCIEPI.js → addDialogAgentAction-ILSDCMYL.js} +9 -9
- package/{agentDeleteCommand-H22WRYC6.js → agentDeleteCommand-KA2IQAPG.js} +40 -39
- package/{agentEmailCommands-DGJVCMCG.js → agentEmailCommands-UIYBGCZW.js} +74 -75
- package/{agentListCommands-6NWMLIMQ.js → agentListCommands-L6JNUOLH.js} +47 -37
- package/{agentMachineCommands-5MUO6RDI.js → agentMachineCommands-5CQW5NZR.js} +37 -36
- package/agentProviderCommands-65ZC2WB4.js +122 -0
- package/{agentPullCommand-YH5GEBK4.js → agentPullCommand-TSWAJPS2.js} +1 -1
- package/agentRecordCommands-VUDJQIZH.js +112 -0
- package/agentRunCommand-EJWYF3BL.js +132 -0
- package/{agentRunControl-SCIVRZWX.js → agentRunControl-7MUPSYDQ.js} +7 -1
- package/{agentRuntimeLocal-PRAR3NCW.js → agentRuntimeLocal-XXBMDMBU.js} +33 -33
- package/{agentSlice-AMDSTXP5.js → agentSlice-HTIEYKIU.js} +12 -12
- package/agentSuperviseCommands-MKWW3ICX.js +640 -0
- package/{appDeleteCommands-L5PKC42V.js → appDeleteCommands-OUBL6VHB.js} +35 -34
- package/{appDeployCommands-3J7Z4XWV.js → appDeployCommands-BZSS2MX4.js} +35 -34
- package/{appDeployStatusCommands-YTRPXE72.js → appDeployStatusCommands-P2ZQOY5X.js} +35 -34
- package/{appGetCommands-JVXV5WXD.js → appGetCommands-WCFWQZZM.js} +35 -34
- package/{appListCommands-7KDEOJSO.js → appListCommands-FVJ3QNL7.js} +35 -34
- package/{authCommand-6Y5LTMZB.js → authCommand-B2XRHNJH.js} +19 -19
- package/{authCommands-EAPFGNHN.js → authCommands-GWABTFMR.js} +6 -6
- package/{chatQueueReduxAdapter-ZKSS6XRV.js → chatQueueReduxAdapter-ZP2ZS63U.js} +28 -28
- package/{chunk-UM4H3URE.js → chunk-23KKIMD5.js} +7 -7
- package/chunk-2BWU4ORW.js +2574 -0
- package/{chunk-2UECQ7RE.js → chunk-3AOLVADY.js} +1 -1
- package/{chunk-M2YMQOLC.js → chunk-4APLX2RT.js} +75 -10
- package/{chunk-ZHYK3N56.js → chunk-4AWH4LQA.js} +3 -1
- package/{chunk-3GZXL6FM.js → chunk-4DMPISV6.js} +7 -3
- package/{chunk-BQ3OHLR5.js → chunk-5GQ6XCJY.js} +1217 -691
- package/{chunk-GOIDVXK5.js → chunk-5LDKQUOT.js} +21 -8
- package/{chunk-OIQPORYI.js → chunk-64KIQZA2.js} +175 -2
- package/{chunk-6XIE5ZGI.js → chunk-6HIGYUBQ.js} +1 -1
- package/chunk-6XG52ZQ6.js +146 -0
- package/{chunk-FMEVI5TG.js → chunk-7CH6U3FL.js} +1 -1
- package/chunk-AA2YUJNV.js +54 -0
- package/{chunk-7INB7NXF.js → chunk-AE5GVFMG.js} +294 -54
- package/{chunk-UNOTBWZZ.js → chunk-B6H5XCT2.js} +8 -8
- package/{chunk-NNWHHCVP.js → chunk-BMB563Y6.js} +10 -4
- package/{chunk-DFUPZE6V.js → chunk-C6ELZQ7H.js} +249 -34
- package/{chunk-7KNERA53.js → chunk-E2OQ5N2F.js} +87 -13
- package/{chunk-6HYVJV7B.js → chunk-ESHYE7WU.js} +2 -1
- package/{chunk-KHCLMKZZ.js → chunk-EY7V7REW.js} +280 -6
- package/{chunk-JZPBVBIY.js → chunk-FD36SCCD.js} +19 -8
- package/{chunk-DKMOY3QI.js → chunk-FGLKRJDI.js} +54 -3
- package/{chunk-MQWVAOIU.js → chunk-FT4XBCK4.js} +33 -158
- package/{chunk-2QTEYCR7.js → chunk-FTM4KUOZ.js} +17 -17
- package/{chunk-U4TRT5V4.js → chunk-GEPHJJW4.js} +1 -1
- package/{chunk-7YYHKBJP.js → chunk-GKHV4UH5.js} +1 -1
- package/{chunk-2IVEXF7P.js → chunk-GUYMR3JL.js} +6 -33
- package/{chunk-YDTYDA5W.js → chunk-GZRMWK5R.js} +6 -4
- package/{chunk-X664KVEV.js → chunk-HHBXCRJS.js} +204 -123
- package/{chunk-AN7DGYMW.js → chunk-I7VDDN45.js} +4579 -3131
- package/{chunk-DSBGWT2C.js → chunk-IEEEWIVO.js} +10 -10
- package/{chunk-75U775RZ.js → chunk-IFS5CUEH.js} +1 -1
- package/{chunk-WLH5BAKX.js → chunk-IIOHYLIG.js} +9 -4
- package/{chunk-UEAUAXYS.js → chunk-ILZY5B4U.js} +2063 -214
- package/chunk-IMHO5LC6.js +370 -0
- package/{chunk-ADLYMQB6.js → chunk-IZCHPD7T.js} +52 -3
- package/{chunk-ITIA6OAQ.js → chunk-IZNJDUJ4.js} +5 -5
- package/{chunk-X2DAEZ3X.js → chunk-J5NMOM35.js} +1 -1
- package/{chunk-RPRRIFXV.js → chunk-JI2TIPLP.js} +1 -1
- package/{chunk-EGRJC4ZN.js → chunk-JIADXJYU.js} +1 -1
- package/{chunk-IHEC7VBF.js → chunk-K4KIFRIN.js} +1 -1
- package/{chunk-WJSW43QZ.js → chunk-L3JWI7WX.js} +0 -1
- package/{chunk-3RUW3ONU.js → chunk-LD6Y6RJY.js} +4 -4
- package/chunk-M3JQWYBC.js +387 -0
- package/{chunk-GM6PU7B6.js → chunk-MEYIRKDN.js} +0 -1
- package/{chunk-6YXDOOSH.js → chunk-MGIHZ5CJ.js} +4 -4
- package/{chunk-4F5M2MW5.js → chunk-MJWX4JQO.js} +2 -2
- package/{chunk-Q5ITEGIN.js → chunk-N4XRDM26.js} +1 -1
- package/{chunk-5CS33IBL.js → chunk-NQ4N4IGO.js} +11 -12
- package/{chunk-ZZ2MH7LE.js → chunk-O6OSWFZQ.js} +0 -1
- package/{chunk-RJKIB55Y.js → chunk-OSCSEJJR.js} +15 -8
- package/{chunk-HUCT7HID.js → chunk-P2I7ELDC.js} +3 -3
- package/{chunk-BXPBZVRE.js → chunk-PILJX4DH.js} +285 -251
- package/{chunk-SCUETSRP.js → chunk-PV734VZX.js} +1 -1
- package/{chunk-XLLTJXAD.js → chunk-QI3CHZUT.js} +39 -2672
- package/{chunk-WNHST4IE.js → chunk-RKRXAL3V.js} +5451 -5013
- package/{chunk-7E72JMBB.js → chunk-SMPAUSX5.js} +46 -5
- package/{chunk-5X4GQ53C.js → chunk-TLBZMLLJ.js} +7 -7
- package/{chunk-ASDXPOJH.js → chunk-U6QQLXWI.js} +1 -1
- package/{chunk-NUO3QFWD.js → chunk-UNHKVD2N.js} +1 -1
- package/{chunk-GE6IWA5N.js → chunk-UNZDCI3O.js} +126 -1
- package/{chunk-CPYYM4RJ.js → chunk-V5GA74HI.js} +19 -5
- package/{chunk-FXFGNOT2.js → chunk-VFVCYIRQ.js} +1 -1
- package/{chunk-G7E4NWFE.js → chunk-W445DPVT.js} +1 -1
- package/{chunk-EMW55KKX.js → chunk-WBZE7C6S.js} +1 -1
- package/{chunk-3UG2IIZ3.js → chunk-WN5AJG5I.js} +1 -1
- package/{chunk-KSRFVP36.js → chunk-WRN7L5CS.js} +1 -1
- package/{chunk-GJXRIOLS.js → chunk-WRP5TTM6.js} +4 -84
- package/chunk-X2K2JSO4.js +163 -0
- package/{chunk-OR2HNLVO.js → chunk-X6EN3KJX.js} +279 -477
- package/{chunk-VWY2CZD2.js → chunk-XMFDQYWA.js} +3 -3
- package/{chunk-IKWTTKWG.js → chunk-XQES6LXQ.js} +2 -2
- package/{chunk-IR6W62Q6.js → chunk-XT73C4VH.js} +18 -21
- package/{chunk-7L5CQQIT.js → chunk-Y5W623XU.js} +15 -15
- package/{chunk-RY57GLGW.js → chunk-YPREESF4.js} +42 -5
- package/{chunk-BQXOGBFN.js → chunk-YZ2WE6CW.js} +2 -2
- package/{chunk-DNQK7M7K.js → chunk-Z7COG62J.js} +4 -4
- package/{chunk-3WXRAHCG.js → chunk-ZBB3MZR3.js} +3 -3
- package/{cliExecutor-DW3PHGEL.js → cliExecutor-BBUVQU4L.js} +2 -2
- package/{clipboardy-MMBYVRLF.js → clipboardy-PRUHGPGC.js} +4 -3
- package/{codingSkills-DY5MINPG.js → codingSkills-6F4EQFCM.js} +4 -5
- package/cooldownCommands-C2SZLEEO.js +90 -0
- package/{createAgentAutomationAction-GVSJL2CI.js → createAgentAutomationAction-TGUXUZCY.js} +28 -30
- package/createDialogAction-FD5AEOUF.js +58 -0
- package/{createPageAction-M2VDKBYS.js → createPageAction-NPC3LYNK.js} +31 -34
- package/{dbSlice-UI2VCBLG.js → dbSlice-PIQGICNM.js} +9 -9
- package/{deleteFile-XQXPBFFB.js → deleteFile-NPZ64DFN.js} +4 -4
- package/{dialogCommands-26DBYNBT.js → dialogCommands-ZF2RSNCG.js} +37 -36
- package/{dialogSlice-FFGLRCBL.js → dialogSlice-6BINHWQT.js} +27 -27
- package/dist-VODFSGNG.js +7442 -0
- package/{docCreateCommands-F2ASWG6B.js → docCreateCommands-4VQ5MOHP.js} +36 -36
- package/{docDeleteCommands-A4URDZPI.js → docDeleteCommands-M7WLNVPB.js} +37 -37
- package/{docReadCommands-DO6VHDZD.js → docReadCommands-6LU6P2WT.js} +36 -36
- package/{docStore-EDAE7RNT.js → docStore-SIUFLABN.js} +29 -31
- package/{docUpdateCommands-ZTXZ3RTP.js → docUpdateCommands-S2LX4ENL.js} +39 -39
- package/{fetchMessages-7QRCCRYK.js → fetchMessages-CUEFN4GQ.js} +4 -4
- package/{getPricing-L2ENXWHV.js → getPricing-P3E2WRIH.js} +5 -5
- package/{handleSendMessageAction-CIRLGHOC.js → handleSendMessageAction-QVG5YNZY.js} +29 -29
- package/index.js +92 -77
- package/{localDialogRead-SLMPV5SK.js → localDialogRead-P7CHFMIC.js} +1 -1
- package/{localRuntimeAuthority-E3R24J4T.js → localRuntimeAuthority-S77B5QVB.js} +6 -2
- package/{localRuntimeDb-DDZCJFQZ.js → localRuntimeDb-N3H3HQ7G.js} +1 -1
- package/{machineCommands-NIQNCYJV.js → machineCommands-OSEBN7BZ.js} +76 -77
- package/{machineInfo-M6KB6HZN.js → machineInfo-66ZFUMLE.js} +1 -1
- package/{machineWsRunDispatch-EMTSQGAR.js → machineWsRunDispatch-NTJQCIIF.js} +68 -69
- package/{models-OX2S5C6Q.js → models-L7S2EKPM.js} +2 -2
- package/package.json +1 -1
- package/{read-2VHEHCAN.js → read-6C2XD3YZ.js} +5 -5
- package/{readDocTool-CSWD6NPC.js → readDocTool-Y7AB365O.js} +1 -1
- package/{readlineWorkspace-A2JBJWLI.js → readlineWorkspace-JPME5S7A.js} +4860 -3476
- package/{removeDialogAgentAction-2T7BPM3T.js → removeDialogAgentAction-KG5WMJRZ.js} +13 -13
- package/{runAgentClientLoop-BV4736ED.js → runAgentClientLoop-SOKEXCUF.js} +61 -61
- package/{runtimeDoctorCommands-KIKM6BIO.js → runtimeDoctorCommands-HT4O2PXL.js} +6 -6
- package/{setDialogExtraReferencesAction-GPT37HTW.js → setDialogExtraReferencesAction-O2NLXMSM.js} +10 -10
- package/{setPrimaryDialogAgentAction-3746P7IW.js → setPrimaryDialogAgentAction-FYYUY7PB.js} +13 -13
- package/{settingSlice-FIFOQ6OR.js → settingSlice-GPLI6E3M.js} +11 -11
- package/{skillDiscovery-KLLKXPUO.js → skillDiscovery-GPUDHDTZ.js} +3 -4
- package/{slateUtils-VO2FU36K.js → slateUtils-RIZES3PV.js} +1 -1
- package/{spaceCommands-AYZQHDB3.js → spaceCommands-Z5JLMFFJ.js} +223 -37
- package/{spaceSlice-43BNF22B.js → spaceSlice-Z3BGCLGX.js} +28 -30
- package/{streamAgentChatTurn-OLLRSITV.js → streamAgentChatTurn-INF5RGK4.js} +115 -129
- package/{switchDialogAgentAction-MQTUTQHL.js → switchDialogAgentAction-GH5P6Q3Z.js} +9 -9
- package/{chunk-IDAU4UFS.js → syncMapping-N6RGXGBW.js} +11 -11
- package/{tableCommands-QE47K72R.js → tableCommands-PQUJ55AS.js} +3 -3
- package/{tools-2SI3FXLL.js → tools-ZELMSJZ3.js} +45 -47
- package/{tuiSummaryLlmCaller-EAWQ3IZX.js → tuiSummaryLlmCaller-LH7F2SP7.js} +18 -18
- package/{updateCommands-AK2RDOFR.js → updateCommands-MNDUIKN7.js} +2 -2
- package/{updateDialogTitleAction-YJEQFYOA.js → updateDialogTitleAction-EDUCIB7G.js} +31 -33
- package/agentRecordCommands-YMGKT2WF.js +0 -113
- package/agentRunCommand-LYEMVQJH.js +0 -131
- package/chunk-AETZ7AD6.js +0 -274
- package/chunk-D5JI6VDM.js +0 -1800
- package/chunk-M3JEW6N6.js +0 -193
- package/chunk-ZURFOV5J.js +0 -105
- package/chunk-ZWS6DUHX.js +0 -480
- package/createDialogAction-VVR46Q2A.js +0 -61
- package/syncMapping-RK2MANUX.js +0 -43
- package/{chunk-KMSZPTM6.js → chunk-2WKUUY2E.js} +3 -3
- package/{chunk-CWMSB67P.js → chunk-AGGIDPCZ.js} +0 -0
- package/{chunk-SAQQLJZ5.js → chunk-JDSUTNYY.js} +3 -3
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveRunLogPath,
|
|
3
|
+
resolveRunReportJsonPath,
|
|
4
|
+
resolveRunReportPath,
|
|
5
|
+
resolveRunsDir
|
|
6
|
+
} from "./chunk-E2OQ5N2F.js";
|
|
7
|
+
|
|
8
|
+
// packages/cli/agentRunReport.ts
|
|
9
|
+
import { homedir as nodeHomedir } from "node:os";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import * as nodeFs from "node:fs";
|
|
12
|
+
import {
|
|
13
|
+
execFileSync as nodeExecFileSync,
|
|
14
|
+
spawnSync as nodeSpawnSync
|
|
15
|
+
} from "node:child_process";
|
|
16
|
+
function formatDuration(startedAt, endedAt, now) {
|
|
17
|
+
const start = new Date(startedAt).getTime();
|
|
18
|
+
const end = endedAt ? new Date(endedAt).getTime() : (now ?? /* @__PURE__ */ new Date()).getTime();
|
|
19
|
+
if (isNaN(start)) return "-";
|
|
20
|
+
const elapsedMs = Math.max(0, (isNaN(end) ? Date.now() : end) - start);
|
|
21
|
+
const seconds = Math.floor(elapsedMs / 1e3) % 60;
|
|
22
|
+
const minutes = Math.floor(elapsedMs / 6e4) % 60;
|
|
23
|
+
const hours = Math.floor(elapsedMs / 36e5);
|
|
24
|
+
if (hours > 0) return `${hours}h ${minutes}m ${seconds}s`;
|
|
25
|
+
if (minutes > 0) return `${minutes}m ${seconds}s`;
|
|
26
|
+
return `${seconds}s`;
|
|
27
|
+
}
|
|
28
|
+
function extractTailLines(text, count) {
|
|
29
|
+
if (!text) return [];
|
|
30
|
+
const lines = String(text).split(/\r?\n/);
|
|
31
|
+
if (lines.length > 0 && lines[lines.length - 1] === "") lines.pop();
|
|
32
|
+
return lines.slice(Math.max(0, lines.length - count));
|
|
33
|
+
}
|
|
34
|
+
function formatCodeBlockCell(lines) {
|
|
35
|
+
if (lines.length === 0) return "-";
|
|
36
|
+
const escaped = lines.map((line) => line.replace(/\|/g, "\\|")).join("<br>");
|
|
37
|
+
return `<pre>${escaped}</pre>`;
|
|
38
|
+
}
|
|
39
|
+
function executeDoDCommand(cmd, cwd, deps = {}) {
|
|
40
|
+
const spawnSync = deps.spawnSync ?? nodeSpawnSync;
|
|
41
|
+
try {
|
|
42
|
+
const res = spawnSync(cmd, {
|
|
43
|
+
shell: true,
|
|
44
|
+
cwd: cwd || process.cwd(),
|
|
45
|
+
timeout: 12e4,
|
|
46
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
47
|
+
encoding: "utf8"
|
|
48
|
+
});
|
|
49
|
+
if (res.error) {
|
|
50
|
+
const errCode = res.error.code;
|
|
51
|
+
if (errCode === "ETIMEDOUT" || res.signal === "SIGTERM" || res.signal === "SIGKILL") {
|
|
52
|
+
return {
|
|
53
|
+
command: cmd,
|
|
54
|
+
exitCode: "timeout",
|
|
55
|
+
stdoutTail: extractTailLines(res.stdout, 20),
|
|
56
|
+
stderrTail: extractTailLines(res.stderr || res.error.message, 10)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
command: cmd,
|
|
61
|
+
exitCode: "error",
|
|
62
|
+
stdoutTail: extractTailLines(res.stdout, 20),
|
|
63
|
+
stderrTail: extractTailLines(res.stderr || res.error.message, 10)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (res.status === null && (res.signal === "SIGTERM" || res.signal === "SIGKILL")) {
|
|
67
|
+
return {
|
|
68
|
+
command: cmd,
|
|
69
|
+
exitCode: "timeout",
|
|
70
|
+
stdoutTail: extractTailLines(res.stdout, 20),
|
|
71
|
+
stderrTail: extractTailLines(res.stderr, 10)
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const exitCode = typeof res.status === "number" ? res.status : "error";
|
|
75
|
+
return {
|
|
76
|
+
command: cmd,
|
|
77
|
+
exitCode,
|
|
78
|
+
stdoutTail: extractTailLines(res.stdout, 20),
|
|
79
|
+
stderrTail: extractTailLines(res.stderr, 10)
|
|
80
|
+
};
|
|
81
|
+
} catch (err) {
|
|
82
|
+
return {
|
|
83
|
+
command: cmd,
|
|
84
|
+
exitCode: "error",
|
|
85
|
+
stdoutTail: [],
|
|
86
|
+
stderrTail: extractTailLines(err instanceof Error ? err.message : String(err), 10)
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function collectGitSummary(cwd, spawnHead, deps = {}) {
|
|
91
|
+
const targetCwd = cwd || process.cwd();
|
|
92
|
+
const execFile = deps.execFileSync ?? nodeExecFileSync;
|
|
93
|
+
try {
|
|
94
|
+
const isRepo = execFile("git", ["rev-parse", "--is-inside-work-tree"], {
|
|
95
|
+
cwd: targetCwd,
|
|
96
|
+
encoding: "utf8",
|
|
97
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
98
|
+
timeout: 5e3
|
|
99
|
+
}).trim();
|
|
100
|
+
if (isRepo !== "true") {
|
|
101
|
+
return { isGitRepo: false };
|
|
102
|
+
}
|
|
103
|
+
let modifiedCount = 0;
|
|
104
|
+
let untrackedCount = 0;
|
|
105
|
+
try {
|
|
106
|
+
const statusOut = execFile("git", ["status", "--porcelain"], {
|
|
107
|
+
cwd: targetCwd,
|
|
108
|
+
encoding: "utf8",
|
|
109
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
110
|
+
timeout: 1e4
|
|
111
|
+
});
|
|
112
|
+
const statusLines = statusOut.split(/\r?\n/).filter((l) => l.trim().length > 0);
|
|
113
|
+
for (const line of statusLines) {
|
|
114
|
+
if (line.startsWith("??")) {
|
|
115
|
+
untrackedCount += 1;
|
|
116
|
+
} else {
|
|
117
|
+
modifiedCount += 1;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
} catch (err) {
|
|
121
|
+
return {
|
|
122
|
+
isGitRepo: true,
|
|
123
|
+
error: `git status \u5931\u8D25: ${err instanceof Error ? err.message : String(err)}`
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
let commits;
|
|
127
|
+
if (spawnHead) {
|
|
128
|
+
try {
|
|
129
|
+
const logOut = execFile(
|
|
130
|
+
"git",
|
|
131
|
+
["log", `${spawnHead}..HEAD`, "--oneline", "-n", "20"],
|
|
132
|
+
{
|
|
133
|
+
cwd: targetCwd,
|
|
134
|
+
encoding: "utf8",
|
|
135
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
136
|
+
timeout: 1e4
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
commits = logOut.split(/\r?\n/).filter((l) => l.trim().length > 0).slice(0, 20);
|
|
140
|
+
} catch (logErr) {
|
|
141
|
+
commits = [`(git log \u5931\u8D25: ${logErr instanceof Error ? logErr.message : String(logErr)})`];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
isGitRepo: true,
|
|
146
|
+
modifiedCount,
|
|
147
|
+
untrackedCount,
|
|
148
|
+
spawnHead,
|
|
149
|
+
commits
|
|
150
|
+
};
|
|
151
|
+
} catch (err) {
|
|
152
|
+
return {
|
|
153
|
+
isGitRepo: false,
|
|
154
|
+
error: err instanceof Error ? err.message : String(err)
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function parseDoDResultsFromMarkdown(markdown) {
|
|
159
|
+
const dodResults = [];
|
|
160
|
+
const lines = markdown.split(/\r?\n/);
|
|
161
|
+
let inDoDSection = false;
|
|
162
|
+
for (const line of lines) {
|
|
163
|
+
if (line.startsWith("## DoD \u9A8C\u6536\u7ED3\u679C")) {
|
|
164
|
+
inDoDSection = true;
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (inDoDSection && line.startsWith("## ")) {
|
|
168
|
+
inDoDSection = false;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
if (inDoDSection && line.startsWith("|")) {
|
|
172
|
+
const cells = line.split("|").map((c) => c.trim()).filter((c) => c.length > 0);
|
|
173
|
+
if (cells.length >= 2) {
|
|
174
|
+
if (cells[0] === "\u547D\u4EE4" || cells[0].startsWith("---")) continue;
|
|
175
|
+
const cmd = cells[0].replace(/^`|`$/g, "").trim();
|
|
176
|
+
const codeRaw = cells[1].trim();
|
|
177
|
+
let exitCode;
|
|
178
|
+
if (codeRaw === "timeout") exitCode = "timeout";
|
|
179
|
+
else if (codeRaw === "error") exitCode = "error";
|
|
180
|
+
else {
|
|
181
|
+
const parsedNum = parseInt(codeRaw, 10);
|
|
182
|
+
exitCode = isNaN(parsedNum) ? "error" : parsedNum;
|
|
183
|
+
}
|
|
184
|
+
dodResults.push({ command: cmd, exitCode });
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const passed = dodResults.length > 0 && dodResults.every((r) => r.exitCode === 0);
|
|
189
|
+
return { passed, dodResults };
|
|
190
|
+
}
|
|
191
|
+
function extractChildAgentOutput(logPath, deps = {}) {
|
|
192
|
+
if (!logPath) return void 0;
|
|
193
|
+
const fs = deps.fs ?? nodeFs;
|
|
194
|
+
let raw;
|
|
195
|
+
try {
|
|
196
|
+
raw = fs.readFileSync(logPath, "utf8");
|
|
197
|
+
} catch {
|
|
198
|
+
return void 0;
|
|
199
|
+
}
|
|
200
|
+
const stripped = raw.replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g, "").replace(/\x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]/g, "").replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "");
|
|
201
|
+
const lines = stripped.split(/\r?\n/);
|
|
202
|
+
let lastMarkerLineIdx = -1;
|
|
203
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
204
|
+
const line = lines[i];
|
|
205
|
+
if (/^(?:agent-[^\s>]+|[a-zA-Z0-9_@/.-]+)\s*>\s*/.test(line)) {
|
|
206
|
+
lastMarkerLineIdx = i;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (lastMarkerLineIdx === -1) return void 0;
|
|
211
|
+
const collectedLines = [];
|
|
212
|
+
const firstLine = lines[lastMarkerLineIdx];
|
|
213
|
+
const firstMarkerIdx = firstLine.indexOf(" > ");
|
|
214
|
+
collectedLines.push(firstLine.slice(firstMarkerIdx + 3));
|
|
215
|
+
for (let j = lastMarkerLineIdx + 1; j < lines.length; j++) {
|
|
216
|
+
const line = lines[j];
|
|
217
|
+
if (line.startsWith("[nolo] dialog") || line.startsWith("[nolo] background dialog")) {
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
collectedLines.push(line);
|
|
221
|
+
}
|
|
222
|
+
const joined = collectedLines.join("\n").trim();
|
|
223
|
+
if (!joined) return void 0;
|
|
224
|
+
const MAX_CHARS = 2e3;
|
|
225
|
+
const chars = Array.from(joined);
|
|
226
|
+
if (chars.length > MAX_CHARS) {
|
|
227
|
+
return `${chars.slice(0, MAX_CHARS).join("")}
|
|
228
|
+
|
|
229
|
+
...(\u622A\u65AD\uFF0C\u5B8C\u6574\u65E5\u5FD7\u8BF7\u67E5\u770B log)...`;
|
|
230
|
+
}
|
|
231
|
+
return joined;
|
|
232
|
+
}
|
|
233
|
+
async function buildRunReportData(record, deps = {}) {
|
|
234
|
+
const now = (deps.now ?? (() => /* @__PURE__ */ new Date()))();
|
|
235
|
+
const duration = formatDuration(record.startedAt, record.endedAt, now);
|
|
236
|
+
const edits = record.activity?.counters?.fileEdits ?? 0;
|
|
237
|
+
const tools = record.activity?.counters?.toolCalls ?? 0;
|
|
238
|
+
const llmCalls = record.activity?.counters?.llmCalls ?? 0;
|
|
239
|
+
const activityStr = `${edits} edits, ${tools} tools`;
|
|
240
|
+
const exitCodeStr = typeof record.exitCode === "number" ? String(record.exitCode) : "-";
|
|
241
|
+
const agentDisplay = record.agentName ? `${record.agentName} (${record.agentKey})` : record.agentKey;
|
|
242
|
+
const dialogIdStr = record.dialogId || "-";
|
|
243
|
+
const resolvedLogPath = record.logPath || resolveRunLogPath(record.runId, deps.env, deps.homedir);
|
|
244
|
+
const runsDir = resolveRunsDir(deps.env, deps.homedir);
|
|
245
|
+
const reportPath = resolveRunReportPath(record.runId, deps.env, deps.homedir);
|
|
246
|
+
const reportJsonPath = resolveRunReportJsonPath(record.runId, deps.env, deps.homedir);
|
|
247
|
+
const msgPath = record.msgFile ?? join(runsDir, `${record.runId}.msg.md`);
|
|
248
|
+
const fs = deps.fs ?? nodeFs;
|
|
249
|
+
const msgPathExists = fs.existsSync(msgPath);
|
|
250
|
+
const childOutput = extractChildAgentOutput(resolvedLogPath, deps);
|
|
251
|
+
const lines = [];
|
|
252
|
+
lines.push(`# Run \u9A8C\u6536\u62A5\u544A: ${record.runId}`);
|
|
253
|
+
lines.push("");
|
|
254
|
+
lines.push("## \u6982\u8981");
|
|
255
|
+
lines.push("");
|
|
256
|
+
lines.push("| \u5B57\u6BB5 | \u503C |");
|
|
257
|
+
lines.push("| --- | --- |");
|
|
258
|
+
lines.push(`| runId | ${record.runId} |`);
|
|
259
|
+
lines.push(`| agent | ${agentDisplay} |`);
|
|
260
|
+
lines.push(`| status | ${record.status} |`);
|
|
261
|
+
lines.push(`| exitCode | ${exitCodeStr} |`);
|
|
262
|
+
lines.push(`| \u5F00\u59CB\u65F6\u95F4 | ${record.startedAt} |`);
|
|
263
|
+
lines.push(`| \u7ED3\u675F\u65F6\u95F4 | ${record.endedAt ?? "-"} |`);
|
|
264
|
+
lines.push(`| \u8017\u65F6 | ${duration} |`);
|
|
265
|
+
lines.push(`| activity | ${activityStr} |`);
|
|
266
|
+
lines.push(`| dialogId | ${dialogIdStr} |`);
|
|
267
|
+
lines.push("");
|
|
268
|
+
lines.push("## \u5B50 Agent \u4EA7\u51FA");
|
|
269
|
+
lines.push("");
|
|
270
|
+
if (childOutput) {
|
|
271
|
+
lines.push(childOutput);
|
|
272
|
+
} else {
|
|
273
|
+
lines.push(`\uFF08\u65E0\u6CD5\u4ECE log \u63D0\u53D6\u6700\u7EC8\u7B54\u590D\uFF0C\u5B8C\u6574\u65E5\u5FD7\uFF1A${resolvedLogPath}\uFF09`);
|
|
274
|
+
}
|
|
275
|
+
lines.push("");
|
|
276
|
+
lines.push("## \u7ED3\u679C\u53BB\u54EA\u53D6");
|
|
277
|
+
lines.push("");
|
|
278
|
+
if (record.dialogId) {
|
|
279
|
+
lines.push(
|
|
280
|
+
`- \u5BF9\u8BDD\u8BB0\u5F55: ${record.dialogId}\uFF08\u53EF\u7528 controlAgentRun(action:"status", runId:"${record.runId}") \u67E5\u770B\uFF0C\u6216\u7EC8\u7AEF\u8FD0\u884C nolo dialog read ${record.dialogId}\uFF09`
|
|
281
|
+
);
|
|
282
|
+
} else {
|
|
283
|
+
lines.push("- \u5BF9\u8BDD\u8BB0\u5F55: \u65E0\uFF08\u672A\u6301\u4E45\u5316\u6216 ephemeral run\uFF09");
|
|
284
|
+
}
|
|
285
|
+
lines.push(`- \u5B8C\u6574\u65E5\u5FD7: ${resolvedLogPath}`);
|
|
286
|
+
if (msgPathExists) {
|
|
287
|
+
lines.push(`- \u4EFB\u52A1\u8F93\u5165: ${msgPath}`);
|
|
288
|
+
}
|
|
289
|
+
lines.push(`- \u9A8C\u6536\u62A5\u544A (Markdown): ${reportPath}`);
|
|
290
|
+
lines.push(`- \u9A8C\u6536\u62A5\u544A (JSON): ${reportJsonPath}`);
|
|
291
|
+
lines.push("");
|
|
292
|
+
let dodResults;
|
|
293
|
+
if (record.dodCommands && record.dodCommands.length > 0) {
|
|
294
|
+
dodResults = [];
|
|
295
|
+
lines.push("## DoD \u9A8C\u6536\u7ED3\u679C");
|
|
296
|
+
lines.push("");
|
|
297
|
+
lines.push("| \u547D\u4EE4 | exit code | stdout (\u5C3E\u90E8 20 \u884C) | stderr (\u5C3E\u90E8 10 \u884C) |");
|
|
298
|
+
lines.push("| --- | --- | --- | --- |");
|
|
299
|
+
for (const cmd of record.dodCommands) {
|
|
300
|
+
const result = executeDoDCommand(cmd, record.cwd, deps);
|
|
301
|
+
dodResults.push(result);
|
|
302
|
+
const codeStr = typeof result.exitCode === "number" ? String(result.exitCode) : result.exitCode;
|
|
303
|
+
const stdoutCell = formatCodeBlockCell(result.stdoutTail);
|
|
304
|
+
const stderrCell = formatCodeBlockCell(result.stderrTail);
|
|
305
|
+
const cmdCell = `\`${cmd.replace(/\|/g, "\\|")}\``;
|
|
306
|
+
lines.push(`| ${cmdCell} | ${codeStr} | ${stdoutCell} | ${stderrCell} |`);
|
|
307
|
+
}
|
|
308
|
+
lines.push("");
|
|
309
|
+
}
|
|
310
|
+
let gitSummary;
|
|
311
|
+
if (record.spawnHead) {
|
|
312
|
+
const summary = collectGitSummary(record.cwd, record.spawnHead, deps);
|
|
313
|
+
if (summary.isGitRepo && summary.commits && summary.commits.length > 0 && !summary.error && !summary.commits[0]?.startsWith("(")) {
|
|
314
|
+
gitSummary = summary;
|
|
315
|
+
lines.push("## Git \u6458\u8981");
|
|
316
|
+
lines.push("");
|
|
317
|
+
lines.push(`- \u65B0\u589E Commit (${record.spawnHead}..HEAD):`);
|
|
318
|
+
for (const c of summary.commits) {
|
|
319
|
+
lines.push(` - ${c}`);
|
|
320
|
+
}
|
|
321
|
+
lines.push("");
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
lines.push("---");
|
|
325
|
+
lines.push(`_\u751F\u6210\u65F6\u95F4: ${now.toISOString()}_`);
|
|
326
|
+
lines.push("");
|
|
327
|
+
const markdown = lines.join("\n");
|
|
328
|
+
const report = {
|
|
329
|
+
runId: record.runId,
|
|
330
|
+
agentKey: record.agentKey,
|
|
331
|
+
...record.agentName ? { agentName: record.agentName } : {},
|
|
332
|
+
status: record.status,
|
|
333
|
+
...typeof record.exitCode === "number" ? { exitCode: record.exitCode } : {},
|
|
334
|
+
startedAt: record.startedAt,
|
|
335
|
+
...record.endedAt ? { endedAt: record.endedAt } : {},
|
|
336
|
+
duration,
|
|
337
|
+
activity: { fileEdits: edits, toolCalls: tools, llmCalls },
|
|
338
|
+
...record.dialogId ? { dialogId: record.dialogId } : {},
|
|
339
|
+
...childOutput ? { childOutputTail: childOutput } : {},
|
|
340
|
+
...dodResults ? { dodResults } : {},
|
|
341
|
+
...gitSummary ? { gitSummary } : {},
|
|
342
|
+
generatedAt: now.toISOString()
|
|
343
|
+
};
|
|
344
|
+
return { markdown, report };
|
|
345
|
+
}
|
|
346
|
+
async function generateRunReport(record, deps = {}) {
|
|
347
|
+
const fs = deps.fs ?? nodeFs;
|
|
348
|
+
const env = deps.env ?? process.env;
|
|
349
|
+
const homedir = deps.homedir ?? nodeHomedir;
|
|
350
|
+
const runsDir = resolveRunsDir(env, homedir);
|
|
351
|
+
const reportPath = resolveRunReportPath(record.runId, env, homedir);
|
|
352
|
+
const reportJsonPath = resolveRunReportJsonPath(record.runId, env, homedir);
|
|
353
|
+
const { markdown, report } = await buildRunReportData(record, deps);
|
|
354
|
+
const shouldWrite = deps.forceReport === true || env.NOLO_RUN_REPORT === "1";
|
|
355
|
+
if (shouldWrite) {
|
|
356
|
+
try {
|
|
357
|
+
fs.mkdirSync(runsDir, { recursive: true });
|
|
358
|
+
fs.writeFileSync(reportPath, markdown, "utf8");
|
|
359
|
+
fs.writeFileSync(reportJsonPath, JSON.stringify(report, null, 2), "utf8");
|
|
360
|
+
} catch (err) {
|
|
361
|
+
console.warn(`[nolo] failed to write run report file to ${reportPath}:`, err);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
return { reportPath, reportJsonPath, markdown, report };
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
export {
|
|
368
|
+
parseDoDResultsFromMarkdown,
|
|
369
|
+
generateRunReport
|
|
370
|
+
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
asRecordOrEmpty
|
|
3
3
|
} from "./chunk-KX6YBIHG.js";
|
|
4
|
-
import {
|
|
5
|
-
asOptionalFiniteNumber
|
|
6
|
-
} from "./chunk-WWC7I6TA.js";
|
|
7
4
|
import {
|
|
8
5
|
asNonEmptyStringArray,
|
|
9
6
|
asTrimmedNonEmptyStringArray
|
|
10
7
|
} from "./chunk-I42VC5KR.js";
|
|
8
|
+
import {
|
|
9
|
+
asOptionalFiniteNumber
|
|
10
|
+
} from "./chunk-WWC7I6TA.js";
|
|
11
11
|
import {
|
|
12
12
|
isOwnedAgentKey,
|
|
13
13
|
ownedAgentKey,
|
|
@@ -146,6 +146,53 @@ function redactAgentRecordForWorkspaceTool(record) {
|
|
|
146
146
|
return redacted;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
+
// packages/ai/agent/agentSelectionPriority.ts
|
|
150
|
+
function parseAgentTimestamp(value) {
|
|
151
|
+
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
152
|
+
if (typeof value === "string") {
|
|
153
|
+
const parsed = Date.parse(value);
|
|
154
|
+
if (Number.isFinite(parsed)) return parsed;
|
|
155
|
+
}
|
|
156
|
+
return 0;
|
|
157
|
+
}
|
|
158
|
+
function isUserConfiguredAgent(agent) {
|
|
159
|
+
return agent.isOAuth === true || agent.isOwned === true && agent.apiSource === "custom";
|
|
160
|
+
}
|
|
161
|
+
function resolveAgentSelectionPriority(agent) {
|
|
162
|
+
const favorite = agent.isFavorite === true;
|
|
163
|
+
const configured = isUserConfiguredAgent(agent);
|
|
164
|
+
if (favorite && configured) return 0;
|
|
165
|
+
if (favorite) return 1;
|
|
166
|
+
if (configured) return 2;
|
|
167
|
+
if (agent.isOwned === true) return 3;
|
|
168
|
+
return 4;
|
|
169
|
+
}
|
|
170
|
+
function compareAgentSelection(left, right) {
|
|
171
|
+
const priorityDiff = resolveAgentSelectionPriority(left) - resolveAgentSelectionPriority(right);
|
|
172
|
+
if (priorityDiff !== 0) return priorityDiff;
|
|
173
|
+
const leftFav = left.isFavorite === true;
|
|
174
|
+
const rightFav = right.isFavorite === true;
|
|
175
|
+
if (leftFav && rightFav) {
|
|
176
|
+
const leftFavAt = parseAgentTimestamp(left.favoritedAt);
|
|
177
|
+
const rightFavAt = parseAgentTimestamp(right.favoritedAt);
|
|
178
|
+
if (leftFavAt !== rightFavAt) return rightFavAt - leftFavAt;
|
|
179
|
+
}
|
|
180
|
+
const leftUpdated = parseAgentTimestamp(left.updatedAt ?? left.createdAt);
|
|
181
|
+
const rightUpdated = parseAgentTimestamp(right.updatedAt ?? right.createdAt);
|
|
182
|
+
return rightUpdated - leftUpdated;
|
|
183
|
+
}
|
|
184
|
+
var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6\uFF08\u4E0E\u5217\u8868\u6392\u5E8F\u771F\u503C\u4E25\u683C\u4E00\u81F4\uFF09\uFF1A
|
|
185
|
+
1. \u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08isFavorite=true \u4E14 isOAuth=true \u6216 apiSource="custom"\uFF0C\u7528\u6237\u79C1\u6709\u8BA2\u9605/\u51ED\u636E\u4F18\u5148\uFF0C\u4E0D\u70E7\u5E73\u53F0 credits\uFF09
|
|
186
|
+
2. \u5176\u4ED6\u6536\u85CF Agent\uFF08isFavorite=true\uFF09
|
|
187
|
+
3. \u672A\u6536\u85CF\u7684 OAuth / \u81EA\u5B9A\u4E49 Agent\uFF08isOAuth=true \u6216 apiSource="custom"\uFF09
|
|
188
|
+
4. \u5176\u4ED6\u81EA\u5EFA Agent\uFF08isOwned=true\uFF09
|
|
189
|
+
5. \u516C\u5F00 / \u5E73\u53F0 Agent\uFF08apiSource="platform" \u6216\u793E\u533A\u516C\u5F00\uFF09
|
|
190
|
+
\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
|
|
191
|
+
- \u9009\u4EBA\u4E0E\u4EFB\u52A1\u5339\u914D\u53C2\u8003\uFF1A
|
|
192
|
+
* **\u80FD\u529B\u5339\u914D**\uFF1A\u82E5\u4EFB\u52A1\u660E\u786E\u9700\u8981\u7279\u5B9A\u989D\u5916\u80FD\u529B\uFF08\u6D4F\u89C8\u5668/\u56FE\u7247/\u8868\u683C/\u90AE\u4EF6/\u6570\u636E\u5E93\uFF09\uFF0C\u4F18\u5148\u7B5B\u9009 tools \u5B57\u6BB5\u8986\u76D6\u5BF9\u5E94\u80FD\u529B\u7684\u5019\u9009\uFF1B
|
|
193
|
+
* **\u6210\u672C\u4E0E\u914D\u989D**\uFF1A\u5728\u6EE1\u8DB3\u80FD\u529B\u7684\u540C\u6863\u5019\u9009\u4E2D\uFF0C\u4F18\u5148\u9009\u62E9\u6210\u672C\u4F4E\uFF08\u4F4E inputPrice\uFF09\u6216\u8D70\u7528\u6237\u81EA\u5EFA/\u79C1\u6709\u51ED\u636E\u7684\u901A\u9053\uFF1B
|
|
194
|
+
* **tools \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF0C\u4E0D\u53CD\u6620 coding \u80FD\u529B**\uFF1AwriteFile/editFile/execBash/applyEdit/gitCommit \u7B49\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`;
|
|
195
|
+
|
|
149
196
|
// packages/agent-runtime/noloWorkspaceTools.ts
|
|
150
197
|
var NOLO_WORKSPACE_TOOL_NAMES = [
|
|
151
198
|
"listDialogs",
|
|
@@ -619,6 +666,8 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
619
666
|
}
|
|
620
667
|
|
|
621
668
|
export {
|
|
669
|
+
compareAgentSelection,
|
|
670
|
+
AGENT_SELECTION_PRIORITY_INSTRUCTIONS,
|
|
622
671
|
buildAgentRuntimeAgentLookupKeys,
|
|
623
672
|
shouldFetchAgentRuntimeRecordRemotely,
|
|
624
673
|
resolveRuntimeToolSurfaceForAgent,
|
|
@@ -11,22 +11,22 @@ import {
|
|
|
11
11
|
getAntigravityUserAgent,
|
|
12
12
|
normalizeAntigravityTokenPayload,
|
|
13
13
|
refreshAntigravityToken
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-PV734VZX.js";
|
|
15
15
|
import {
|
|
16
16
|
writeOAuthCredential
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-FD36SCCD.js";
|
|
18
18
|
import {
|
|
19
19
|
toErrorMessage
|
|
20
20
|
} from "./chunk-HNMXYYJR.js";
|
|
21
21
|
import {
|
|
22
22
|
asOptionalFiniteNumber
|
|
23
23
|
} from "./chunk-WWC7I6TA.js";
|
|
24
|
-
import {
|
|
25
|
-
asTrimmedString
|
|
26
|
-
} from "./chunk-3EUW3WEO.js";
|
|
27
24
|
import {
|
|
28
25
|
isRecord
|
|
29
26
|
} from "./chunk-KUG52IAP.js";
|
|
27
|
+
import {
|
|
28
|
+
asTrimmedString
|
|
29
|
+
} from "./chunk-3EUW3WEO.js";
|
|
30
30
|
|
|
31
31
|
// packages/cli/oauth/callback-server.ts
|
|
32
32
|
import { createServer } from "node:http";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
selectCurrentServer,
|
|
3
3
|
selectRemoteServers
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-B6H5XCT2.js";
|
|
5
5
|
import {
|
|
6
6
|
createUserKey,
|
|
7
7
|
extractAgentInfo,
|
|
@@ -10,16 +10,16 @@ import {
|
|
|
10
10
|
sanitizeShareData,
|
|
11
11
|
shareKey,
|
|
12
12
|
toNonEmptyString
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2WKUUY2E.js";
|
|
14
14
|
import {
|
|
15
15
|
noloDeleteRequest,
|
|
16
16
|
noloWriteRequest,
|
|
17
17
|
selectIdentityUser,
|
|
18
18
|
selectIdentityUserId
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-HHBXCRJS.js";
|
|
20
20
|
import {
|
|
21
21
|
normalizeTimeFields
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-L3JWI7WX.js";
|
|
23
23
|
|
|
24
24
|
// packages/share/action.ts
|
|
25
25
|
var generateToken = () => {
|