nolo-cli 0.103.0-alpha.2 → 0.104.0-alpha.2

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.
Files changed (54) hide show
  1. package/{_executeModel-3UCNJCQA.js → _executeModel-4W7C3ACS.js} +10 -10
  2. package/{agentDeleteCommand-2YAHAZFJ.js → agentDeleteCommand-YB3S2LPY.js} +1 -1
  3. package/{agentEmailCommands-WLYF3JRS.js → agentEmailCommands-AQZVMNLR.js} +10 -10
  4. package/{agentListCommands-JP7S7PT2.js → agentListCommands-3GWH4E4G.js} +3 -62
  5. package/{agentMachineCommands-HNGAR5GI.js → agentMachineCommands-R5AVYYN3.js} +2 -2
  6. package/{agentRecordCommands-SXFPW3DL.js → agentRecordCommands-JY4IWSSQ.js} +10 -10
  7. package/{agentRunCommand-JIQ4HY4D.js → agentRunCommand-7VTYZY3Q.js} +11 -10
  8. package/{agentRuntimeLocal-VXZSDIGT.js → agentRuntimeLocal-FRUE5P2V.js} +5 -1
  9. package/{agentSlice-SICQBMCM.js → agentSlice-6LBOYNKN.js} +1 -1
  10. package/{appDeleteCommands-32MHLR4L.js → appDeleteCommands-JPWTSFID.js} +1 -1
  11. package/{appDeployCommands-WCQOUSOB.js → appDeployCommands-YCVY2UYO.js} +1 -1
  12. package/{appDeployStatusCommands-6QKB7DYN.js → appDeployStatusCommands-JMCEIKTI.js} +1 -1
  13. package/{appGetCommands-SFAPP5PB.js → appGetCommands-EXWT3QAE.js} +1 -1
  14. package/{appListCommands-EKUBDRUO.js → appListCommands-PKRLSWRE.js} +1 -1
  15. package/{chatQueueReduxAdapter-HHMUDNXL.js → chatQueueReduxAdapter-WFROMKD3.js} +2 -2
  16. package/{chunk-XS5SWEDQ.js → chunk-2J5Y72GY.js} +1 -1
  17. package/{chunk-DNUUJ45N.js → chunk-3ZW5ZJMM.js} +2 -2
  18. package/{chunk-OZGZPSEG.js → chunk-A6FMKU7M.js} +1 -1
  19. package/chunk-BMQ2MJUK.js +153 -0
  20. package/{chunk-RSONHHPE.js → chunk-DJWMIXDZ.js} +2 -2
  21. package/{chunk-IONPPCL5.js → chunk-EEGDMATE.js} +65 -0
  22. package/{chunk-XVZ22N6C.js → chunk-FQUHIG5X.js} +8 -8
  23. package/{chunk-TQBHNYVR.js → chunk-H66KLASO.js} +8 -8
  24. package/{chunk-6VFARHZW.js → chunk-LC43IGO4.js} +291 -130
  25. package/{chunk-AGVEIAQA.js → chunk-NXUYQBDZ.js} +5 -5
  26. package/{chunk-LW4VFPAY.js → chunk-O7EBSHZR.js} +48 -8
  27. package/{chunk-F2RNI7ZR.js → chunk-RJ4QOQDA.js} +13 -5
  28. package/{chunk-CUQEXCAU.js → chunk-S6JLBH6Z.js} +1 -1
  29. package/{chunk-3WLK2JQ5.js → chunk-U3JZVWIB.js} +3 -3
  30. package/{chunk-4EG4QFTK.js → chunk-VLI5LVL5.js} +3 -3
  31. package/{chunk-B3TVQ6PI.js → chunk-W324THOB.js} +2 -2
  32. package/{chunk-3N3W7KBB.js → chunk-YY7I6GQ3.js} +3 -3
  33. package/{contentThunks-S4S7QPSO.js → contentThunks-LXOZUD2Y.js} +3 -3
  34. package/{createAgentAutomationAction-ODGL2YGP.js → createAgentAutomationAction-M5NDEIC6.js} +3 -3
  35. package/{createDialogAction-GFKRXTK4.js → createDialogAction-TDFOINOY.js} +4 -4
  36. package/{createPageAction-FBV3OWX7.js → createPageAction-WY5ZKP2M.js} +3 -3
  37. package/{dialogCommands-5J56DFWN.js → dialogCommands-YVMHDEOX.js} +1 -1
  38. package/{dialogSlice-LEO27SQG.js → dialogSlice-HSGREZGA.js} +2 -2
  39. package/{docCreateCommands-KYI2DC2U.js → docCreateCommands-7UTWDYJU.js} +1 -1
  40. package/{docDeleteCommands-67REUSRY.js → docDeleteCommands-GG6BJ4PS.js} +1 -1
  41. package/{docReadCommands-HOSVSBDJ.js → docReadCommands-QHMQVSLP.js} +1 -1
  42. package/{docStore-MNX5MHA5.js → docStore-IIS36NGG.js} +1 -1
  43. package/{docUpdateCommands-EMGCSMXY.js → docUpdateCommands-QPL6IVUK.js} +1 -1
  44. package/{handleSendMessageAction-YB6KQFJS.js → handleSendMessageAction-FEHCWMN2.js} +6 -48
  45. package/index.js +41 -41
  46. package/{machineCommands-7GVQCUAK.js → machineCommands-7DEUPY32.js} +10 -10
  47. package/{machineWsRunDispatch-XA7TD7Z7.js → machineWsRunDispatch-D2NHL3P7.js} +10 -10
  48. package/package.json +1 -1
  49. package/{readlineWorkspace-WA7JNI6J.js → readlineWorkspace-JP2AOALW.js} +26 -18
  50. package/{runAgentClientLoop-JGFQ6KIR.js → runAgentClientLoop-UY76PPZM.js} +8 -8
  51. package/{spaceCommands-NKJVJCQQ.js → spaceCommands-BMXKR7H6.js} +1 -1
  52. package/{streamAgentChatTurn-XLFZ66UC.js → streamAgentChatTurn-3YVIO4KE.js} +9 -9
  53. package/{tools-NF5AB34X.js → tools-Q6IBBG33.js} +6 -6
  54. package/{updateDialogTitleAction-6MBTD4UE.js → updateDialogTitleAction-GF5T3VMK.js} +3 -3
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  fetchAgentContexts
3
- } from "./chunk-XS5SWEDQ.js";
3
+ } from "./chunk-2J5Y72GY.js";
4
4
  import {
5
5
  filterAndCleanMessages,
6
6
  sendOpenAICompletionsRequest
7
- } from "./chunk-AGVEIAQA.js";
7
+ } from "./chunk-NXUYQBDZ.js";
8
8
  import "./chunk-JEXVIMYZ.js";
9
- import "./chunk-RSONHHPE.js";
9
+ import "./chunk-DJWMIXDZ.js";
10
10
  import {
11
11
  generateRequestBody,
12
12
  mergeReferences,
13
13
  performFetchRequest,
14
14
  sanitizeOutboundBody
15
- } from "./chunk-3WLK2JQ5.js";
15
+ } from "./chunk-U3JZVWIB.js";
16
16
  import "./chunk-EOARMOVD.js";
17
17
  import "./chunk-HS7MLR74.js";
18
- import "./chunk-TQBHNYVR.js";
18
+ import "./chunk-H66KLASO.js";
19
19
  import "./chunk-5UTFL4QJ.js";
20
20
  import "./chunk-NF64D32W.js";
21
21
  import "./chunk-3L2WKC3W.js";
@@ -32,20 +32,20 @@ import "./chunk-FZGV4FGK.js";
32
32
  import "./chunk-MEYIRKDN.js";
33
33
  import "./chunk-63W5N6P3.js";
34
34
  import "./chunk-VF4K2QE6.js";
35
- import "./chunk-B3TVQ6PI.js";
36
- import "./chunk-DNUUJ45N.js";
37
- import "./chunk-OZGZPSEG.js";
35
+ import "./chunk-W324THOB.js";
36
+ import "./chunk-3ZW5ZJMM.js";
37
+ import "./chunk-A6FMKU7M.js";
38
38
  import "./chunk-ZJ7UHBJS.js";
39
39
  import {
40
40
  selectAllMsgs,
41
41
  selectCurrentDialogConfig,
42
42
  updateTokensAction
43
- } from "./chunk-XVZ22N6C.js";
43
+ } from "./chunk-FQUHIG5X.js";
44
44
  import "./chunk-MC4XLIJ7.js";
45
45
  import "./chunk-3BMYXEUW.js";
46
46
  import "./chunk-YYLHWIW6.js";
47
47
  import "./chunk-AGGIDPCZ.js";
48
- import "./chunk-3N3W7KBB.js";
48
+ import "./chunk-YY7I6GQ3.js";
49
49
  import "./chunk-TOP2VXOR.js";
50
50
  import "./chunk-5RGU3J7P.js";
51
51
  import "./chunk-6YTOJY35.js";
@@ -15,7 +15,7 @@ import "./chunk-KQHGZWSV.js";
15
15
  import {
16
16
  Level
17
17
  } from "./chunk-UV6VISQJ.js";
18
- import "./chunk-6VFARHZW.js";
18
+ import "./chunk-LC43IGO4.js";
19
19
  import "./chunk-ZCYXJSTU.js";
20
20
  import "./chunk-Q5FJJ6XI.js";
21
21
  import "./chunk-ZNFJWEN4.js";
@@ -8,8 +8,8 @@ import {
8
8
  } from "./chunk-V7E4PXQD.js";
9
9
  import {
10
10
  runAgentCreateCommand
11
- } from "./chunk-CUQEXCAU.js";
12
- import "./chunk-F2RNI7ZR.js";
11
+ } from "./chunk-S6JLBH6Z.js";
12
+ import "./chunk-RJ4QOQDA.js";
13
13
  import "./chunk-53HEEOTT.js";
14
14
  import "./chunk-EADNWBAZ.js";
15
15
  import "./chunk-SH43IESU.js";
@@ -30,9 +30,9 @@ import "./chunk-MP64VFGD.js";
30
30
  import "./chunk-JBTJAPUF.js";
31
31
  import "./chunk-3DII57IT.js";
32
32
  import "./chunk-ATNTHIZI.js";
33
- import "./chunk-RSONHHPE.js";
33
+ import "./chunk-DJWMIXDZ.js";
34
34
  import "./chunk-HS7MLR74.js";
35
- import "./chunk-TQBHNYVR.js";
35
+ import "./chunk-H66KLASO.js";
36
36
  import "./chunk-5UTFL4QJ.js";
37
37
  import "./chunk-NF64D32W.js";
38
38
  import "./chunk-3L2WKC3W.js";
@@ -50,16 +50,16 @@ import "./chunk-FZGV4FGK.js";
50
50
  import "./chunk-MEYIRKDN.js";
51
51
  import "./chunk-63W5N6P3.js";
52
52
  import "./chunk-VF4K2QE6.js";
53
- import "./chunk-B3TVQ6PI.js";
54
- import "./chunk-DNUUJ45N.js";
55
- import "./chunk-OZGZPSEG.js";
53
+ import "./chunk-W324THOB.js";
54
+ import "./chunk-3ZW5ZJMM.js";
55
+ import "./chunk-A6FMKU7M.js";
56
56
  import "./chunk-ZJ7UHBJS.js";
57
- import "./chunk-XVZ22N6C.js";
57
+ import "./chunk-FQUHIG5X.js";
58
58
  import "./chunk-MC4XLIJ7.js";
59
59
  import "./chunk-3BMYXEUW.js";
60
60
  import "./chunk-YYLHWIW6.js";
61
61
  import "./chunk-AGGIDPCZ.js";
62
- import "./chunk-3N3W7KBB.js";
62
+ import "./chunk-YY7I6GQ3.js";
63
63
  import "./chunk-TOP2VXOR.js";
64
64
  import "./chunk-5RGU3J7P.js";
65
65
  import "./chunk-6YTOJY35.js";
@@ -71,7 +71,7 @@ import "./chunk-JRQFUXY7.js";
71
71
  import "./chunk-DHDMC6FO.js";
72
72
  import "./chunk-Q554LLSI.js";
73
73
  import "./chunk-KHCLMKZZ.js";
74
- import "./chunk-6VFARHZW.js";
74
+ import "./chunk-LC43IGO4.js";
75
75
  import "./chunk-ZCYXJSTU.js";
76
76
  import "./chunk-Q5FJJ6XI.js";
77
77
  import "./chunk-ZNFJWEN4.js";
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  decorateAgentsWithPublicStatusAcrossServers,
3
+ formatQuotaSummary,
3
4
  listFavoriteAgentIdsAcrossServers,
4
5
  listLocalCachedAgents,
5
6
  listRemoteAgents,
@@ -8,7 +9,7 @@ import {
8
9
  normalizeListedAgent,
9
10
  parseAgentListArgs,
10
11
  toSafeListedAgentSummary
11
- } from "./chunk-IONPPCL5.js";
12
+ } from "./chunk-EEGDMATE.js";
12
13
  import {
13
14
  buildSpaceLookup,
14
15
  getSpaceContentKeys
@@ -39,7 +40,7 @@ import {
39
40
  } from "./chunk-PQFHGD77.js";
40
41
  import "./chunk-KQHGZWSV.js";
41
42
  import "./chunk-YYLHWIW6.js";
42
- import "./chunk-6VFARHZW.js";
43
+ import "./chunk-LC43IGO4.js";
43
44
  import "./chunk-ZCYXJSTU.js";
44
45
  import "./chunk-Q5FJJ6XI.js";
45
46
  import "./chunk-ZNFJWEN4.js";
@@ -108,66 +109,6 @@ import "./chunk-CF7PE763.js";
108
109
  import "./chunk-G3SUCT4W.js";
109
110
  import "./chunk-4VNS5WPM.js";
110
111
 
111
- // packages/ai/agent/quotaSnapshot.ts
112
- function findTightestQuotaWindow(quota, now = Date.now()) {
113
- if (!quota || !Array.isArray(quota.windows) || quota.windows.length === 0) {
114
- return void 0;
115
- }
116
- let best;
117
- let bestScore = -Infinity;
118
- for (const w of quota.windows) {
119
- let score = 0;
120
- if (typeof w.utilization === "number" && w.utilization >= 0) {
121
- score = 500 + Math.min(w.utilization, 1) * 500;
122
- } else if (typeof w.remaining === "number" && typeof w.limit === "number" && w.limit > 0) {
123
- const util = Math.max(0, 1 - w.remaining / w.limit);
124
- score = 500 + util * 500;
125
- } else if (typeof w.resetAt === "number" && w.resetAt > now) {
126
- score = 200;
127
- } else if (typeof w.remaining === "number") {
128
- score = 100;
129
- }
130
- if (score > bestScore) {
131
- bestScore = score;
132
- best = w;
133
- }
134
- }
135
- return best ?? quota.windows[0];
136
- }
137
- function formatQuotaSummary(quota, now = Date.now()) {
138
- const tightest = findTightestQuotaWindow(quota, now);
139
- if (!tightest) return void 0;
140
- const parts = [];
141
- if (typeof tightest.utilization === "number") {
142
- const pct = Math.round(tightest.utilization * 100);
143
- parts.push(`${pct}%\u5DF2\u7528`);
144
- } else if (typeof tightest.remaining === "number") {
145
- if (typeof tightest.limit === "number") {
146
- parts.push(`${tightest.remaining}/${tightest.limit}${tightest.unit ? ` ${tightest.unit}` : ""}`);
147
- } else {
148
- parts.push(`\u4F59${tightest.remaining}${tightest.unit ? ` ${tightest.unit}` : ""}`);
149
- }
150
- }
151
- if (tightest.scope && tightest.scope !== "user" && tightest.scope !== "project" && tightest.scope !== tightest.unit) {
152
- parts.push(tightest.scope);
153
- }
154
- if (typeof tightest.resetAt === "number" && tightest.resetAt > now) {
155
- const diffSec = Math.round((tightest.resetAt - now) / 1e3);
156
- if (diffSec < 60) {
157
- parts.push(`${diffSec}s\u540E\u91CD\u7F6E`);
158
- } else if (diffSec < 3600) {
159
- parts.push(`${Math.round(diffSec / 60)}m\u540E\u91CD\u7F6E`);
160
- } else if (diffSec < 86400) {
161
- const hours = (diffSec / 3600).toFixed(1).replace(/\.0$/, "");
162
- parts.push(`${hours}h\u540E\u91CD\u7F6E`);
163
- } else {
164
- const days = (diffSec / 86400).toFixed(1).replace(/\.0$/, "");
165
- parts.push(`${days}d\u540E\u91CD\u7F6E`);
166
- }
167
- }
168
- return parts.length > 0 ? parts.join(" \xB7 ") : void 0;
169
- }
170
-
171
112
  // packages/cli/agentListCommands.ts
172
113
  async function runAgentListCommand(args, deps = {}) {
173
114
  const env = deps.env ?? process.env;
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-SV5IJK6K.js";
16
16
  import "./chunk-NF64D32W.js";
17
17
  import "./chunk-3L2WKC3W.js";
18
- import "./chunk-6VFARHZW.js";
18
+ import "./chunk-LC43IGO4.js";
19
19
  import "./chunk-ZCYXJSTU.js";
20
20
  import "./chunk-Q5FJJ6XI.js";
21
21
  import "./chunk-ZNFJWEN4.js";
@@ -91,7 +91,7 @@ async function defaultExecuteCli(provider, prompt, options) {
91
91
  return executeCli(provider, prompt, options);
92
92
  }
93
93
  async function forwardConnectorRunMessage(machine, message, pushMessage, executeCli, env, fetchImpl) {
94
- const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-XA7TD7Z7.js");
94
+ const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-D2NHL3P7.js");
95
95
  return handleConnectorRunMessage(message, pushMessage, executeCli, env, fetchImpl);
96
96
  }
97
97
  async function detectLaunchableMachineInfo() {
@@ -2,8 +2,8 @@ import {
2
2
  runAgentCreateCommand,
3
3
  runAgentReadCommand,
4
4
  runAgentUpdateCommand
5
- } from "./chunk-CUQEXCAU.js";
6
- import "./chunk-F2RNI7ZR.js";
5
+ } from "./chunk-S6JLBH6Z.js";
6
+ import "./chunk-RJ4QOQDA.js";
7
7
  import "./chunk-53HEEOTT.js";
8
8
  import "./chunk-EADNWBAZ.js";
9
9
  import "./chunk-SH43IESU.js";
@@ -17,9 +17,9 @@ import "./chunk-MP64VFGD.js";
17
17
  import "./chunk-JBTJAPUF.js";
18
18
  import "./chunk-3DII57IT.js";
19
19
  import "./chunk-ATNTHIZI.js";
20
- import "./chunk-RSONHHPE.js";
20
+ import "./chunk-DJWMIXDZ.js";
21
21
  import "./chunk-HS7MLR74.js";
22
- import "./chunk-TQBHNYVR.js";
22
+ import "./chunk-H66KLASO.js";
23
23
  import "./chunk-5UTFL4QJ.js";
24
24
  import "./chunk-NF64D32W.js";
25
25
  import "./chunk-3L2WKC3W.js";
@@ -37,16 +37,16 @@ import "./chunk-FZGV4FGK.js";
37
37
  import "./chunk-MEYIRKDN.js";
38
38
  import "./chunk-63W5N6P3.js";
39
39
  import "./chunk-VF4K2QE6.js";
40
- import "./chunk-B3TVQ6PI.js";
41
- import "./chunk-DNUUJ45N.js";
42
- import "./chunk-OZGZPSEG.js";
40
+ import "./chunk-W324THOB.js";
41
+ import "./chunk-3ZW5ZJMM.js";
42
+ import "./chunk-A6FMKU7M.js";
43
43
  import "./chunk-ZJ7UHBJS.js";
44
- import "./chunk-XVZ22N6C.js";
44
+ import "./chunk-FQUHIG5X.js";
45
45
  import "./chunk-MC4XLIJ7.js";
46
46
  import "./chunk-3BMYXEUW.js";
47
47
  import "./chunk-YYLHWIW6.js";
48
48
  import "./chunk-AGGIDPCZ.js";
49
- import "./chunk-3N3W7KBB.js";
49
+ import "./chunk-YY7I6GQ3.js";
50
50
  import "./chunk-TOP2VXOR.js";
51
51
  import "./chunk-5RGU3J7P.js";
52
52
  import "./chunk-6YTOJY35.js";
@@ -58,7 +58,7 @@ import "./chunk-JRQFUXY7.js";
58
58
  import "./chunk-DHDMC6FO.js";
59
59
  import "./chunk-Q554LLSI.js";
60
60
  import "./chunk-KHCLMKZZ.js";
61
- import "./chunk-6VFARHZW.js";
61
+ import "./chunk-LC43IGO4.js";
62
62
  import "./chunk-ZCYXJSTU.js";
63
63
  import "./chunk-Q5FJJ6XI.js";
64
64
  import "./chunk-ZNFJWEN4.js";
@@ -8,12 +8,12 @@ import {
8
8
  resolveRunSettlementNote,
9
9
  resolveWorkflowReference,
10
10
  runAgentRunCommand
11
- } from "./chunk-LW4VFPAY.js";
11
+ } from "./chunk-O7EBSHZR.js";
12
12
  import "./chunk-S7Z2HMCN.js";
13
13
  import {
14
14
  parseAgentRunArgs
15
15
  } from "./chunk-V7E4PXQD.js";
16
- import "./chunk-F2RNI7ZR.js";
16
+ import "./chunk-RJ4QOQDA.js";
17
17
  import "./chunk-53HEEOTT.js";
18
18
  import "./chunk-EADNWBAZ.js";
19
19
  import "./chunk-SH43IESU.js";
@@ -30,9 +30,9 @@ import "./chunk-LTRXGFMS.js";
30
30
  import "./chunk-3DII57IT.js";
31
31
  import "./chunk-ATNTHIZI.js";
32
32
  import "./chunk-JEXVIMYZ.js";
33
- import "./chunk-RSONHHPE.js";
33
+ import "./chunk-DJWMIXDZ.js";
34
34
  import "./chunk-HS7MLR74.js";
35
- import "./chunk-TQBHNYVR.js";
35
+ import "./chunk-H66KLASO.js";
36
36
  import "./chunk-5UTFL4QJ.js";
37
37
  import "./chunk-NF64D32W.js";
38
38
  import "./chunk-3L2WKC3W.js";
@@ -45,21 +45,22 @@ import "./chunk-EYAQT56M.js";
45
45
  import "./chunk-VIDPVFP3.js";
46
46
  import "./chunk-VLTIYV3X.js";
47
47
  import "./chunk-UKZDAFYT.js";
48
+ import "./chunk-BMQ2MJUK.js";
48
49
  import "./chunk-N4G4PKQ6.js";
49
50
  import "./chunk-FZGV4FGK.js";
50
51
  import "./chunk-MEYIRKDN.js";
51
52
  import "./chunk-63W5N6P3.js";
52
53
  import "./chunk-VF4K2QE6.js";
53
- import "./chunk-B3TVQ6PI.js";
54
- import "./chunk-DNUUJ45N.js";
55
- import "./chunk-OZGZPSEG.js";
54
+ import "./chunk-W324THOB.js";
55
+ import "./chunk-3ZW5ZJMM.js";
56
+ import "./chunk-A6FMKU7M.js";
56
57
  import "./chunk-ZJ7UHBJS.js";
57
- import "./chunk-XVZ22N6C.js";
58
+ import "./chunk-FQUHIG5X.js";
58
59
  import "./chunk-MC4XLIJ7.js";
59
60
  import "./chunk-3BMYXEUW.js";
60
61
  import "./chunk-YYLHWIW6.js";
61
62
  import "./chunk-AGGIDPCZ.js";
62
- import "./chunk-3N3W7KBB.js";
63
+ import "./chunk-YY7I6GQ3.js";
63
64
  import "./chunk-TOP2VXOR.js";
64
65
  import "./chunk-5RGU3J7P.js";
65
66
  import "./chunk-6YTOJY35.js";
@@ -73,7 +74,7 @@ import "./chunk-JRQFUXY7.js";
73
74
  import "./chunk-DHDMC6FO.js";
74
75
  import "./chunk-Q554LLSI.js";
75
76
  import "./chunk-KHCLMKZZ.js";
76
- import "./chunk-6VFARHZW.js";
77
+ import "./chunk-LC43IGO4.js";
77
78
  import "./chunk-ZCYXJSTU.js";
78
79
  import "./chunk-Q5FJJ6XI.js";
79
80
  import "./chunk-ZNFJWEN4.js";
@@ -5,12 +5,14 @@ import {
5
5
  buildLocalWorkspacePolicyToolNames,
6
6
  buildLocalWorkspaceToolset,
7
7
  buildOpenAiCompatibleChatCompletionRequest,
8
+ buildToolParametersIndex,
8
9
  createHybridRecordStore,
9
10
  createLocalWorkspaceToolExecutors,
10
11
  dialogMessageRecordToAgentRuntimeMessage,
11
12
  evaluateShellCommandPolicy,
12
13
  executeLocalToolWithPolicy,
13
14
  executeOpenAiCompatibleChatCompletion,
15
+ getAgentRuntimeToolParametersIndex,
14
16
  isDestructiveShellCommand,
15
17
  parseOpenAiCompatibleChatCompletionResponse,
16
18
  parseSyncServersEnv,
@@ -19,7 +21,7 @@ import {
19
21
  resolveOpenAiCompatibleProviderConfig,
20
22
  runLocalAgentTurn,
21
23
  shouldCacheHybridRemoteRecord
22
- } from "./chunk-6VFARHZW.js";
24
+ } from "./chunk-LC43IGO4.js";
23
25
  import {
24
26
  buildPlatformChatCompletionRequest,
25
27
  canUsePlatformChatProvider,
@@ -105,6 +107,7 @@ export {
105
107
  buildLocalWorkspaceToolset,
106
108
  buildOpenAiCompatibleChatCompletionRequest,
107
109
  buildPlatformChatCompletionRequest,
110
+ buildToolParametersIndex,
108
111
  canUsePlatformChatProvider,
109
112
  createHybridRecordStore,
110
113
  createLocalWorkspaceToolExecutors,
@@ -112,6 +115,7 @@ export {
112
115
  evaluateShellCommandPolicy,
113
116
  executeLocalToolWithPolicy,
114
117
  executeOpenAiCompatibleChatCompletion,
118
+ getAgentRuntimeToolParametersIndex,
115
119
  hasDirectOpenAiCompatibleProvider,
116
120
  isDestructiveShellCommand,
117
121
  parseOpenAiCompatibleChatCompletionResponse,
@@ -7,7 +7,7 @@ import {
7
7
  slice,
8
8
  streamAgentChatTurn,
9
9
  updateAgent
10
- } from "./chunk-3N3W7KBB.js";
10
+ } from "./chunk-YY7I6GQ3.js";
11
11
  import "./chunk-HVURBGF3.js";
12
12
  import "./chunk-ONXOABJR.js";
13
13
  import "./chunk-KX6YBIHG.js";
@@ -13,7 +13,7 @@ import "./chunk-AEOE4Z6Q.js";
13
13
  import "./chunk-Z77CRGTW.js";
14
14
  import "./chunk-SV5IJK6K.js";
15
15
  import "./chunk-VF4K2QE6.js";
16
- import "./chunk-6VFARHZW.js";
16
+ import "./chunk-LC43IGO4.js";
17
17
  import "./chunk-ZCYXJSTU.js";
18
18
  import "./chunk-Q5FJJ6XI.js";
19
19
  import "./chunk-ZNFJWEN4.js";
@@ -14,7 +14,7 @@ import "./chunk-AEOE4Z6Q.js";
14
14
  import "./chunk-Z77CRGTW.js";
15
15
  import "./chunk-SV5IJK6K.js";
16
16
  import "./chunk-VF4K2QE6.js";
17
- import "./chunk-6VFARHZW.js";
17
+ import "./chunk-LC43IGO4.js";
18
18
  import "./chunk-ZCYXJSTU.js";
19
19
  import "./chunk-Q5FJJ6XI.js";
20
20
  import "./chunk-ZNFJWEN4.js";
@@ -13,7 +13,7 @@ import "./chunk-AEOE4Z6Q.js";
13
13
  import "./chunk-Z77CRGTW.js";
14
14
  import "./chunk-SV5IJK6K.js";
15
15
  import "./chunk-VF4K2QE6.js";
16
- import "./chunk-6VFARHZW.js";
16
+ import "./chunk-LC43IGO4.js";
17
17
  import "./chunk-ZCYXJSTU.js";
18
18
  import "./chunk-Q5FJJ6XI.js";
19
19
  import "./chunk-ZNFJWEN4.js";
@@ -14,7 +14,7 @@ import "./chunk-AEOE4Z6Q.js";
14
14
  import "./chunk-Z77CRGTW.js";
15
15
  import "./chunk-SV5IJK6K.js";
16
16
  import "./chunk-VF4K2QE6.js";
17
- import "./chunk-6VFARHZW.js";
17
+ import "./chunk-LC43IGO4.js";
18
18
  import "./chunk-ZCYXJSTU.js";
19
19
  import "./chunk-Q5FJJ6XI.js";
20
20
  import "./chunk-ZNFJWEN4.js";
@@ -14,7 +14,7 @@ import "./chunk-AEOE4Z6Q.js";
14
14
  import "./chunk-Z77CRGTW.js";
15
15
  import "./chunk-SV5IJK6K.js";
16
16
  import "./chunk-VF4K2QE6.js";
17
- import "./chunk-6VFARHZW.js";
17
+ import "./chunk-LC43IGO4.js";
18
18
  import "./chunk-ZCYXJSTU.js";
19
19
  import "./chunk-Q5FJJ6XI.js";
20
20
  import "./chunk-ZNFJWEN4.js";
@@ -4,12 +4,12 @@ import {
4
4
  } from "./chunk-YPREESF4.js";
5
5
  import {
6
6
  handleSendMessage
7
- } from "./chunk-XVZ22N6C.js";
7
+ } from "./chunk-FQUHIG5X.js";
8
8
  import "./chunk-MC4XLIJ7.js";
9
9
  import "./chunk-3BMYXEUW.js";
10
10
  import "./chunk-YYLHWIW6.js";
11
11
  import "./chunk-AGGIDPCZ.js";
12
- import "./chunk-3N3W7KBB.js";
12
+ import "./chunk-YY7I6GQ3.js";
13
13
  import "./chunk-TOP2VXOR.js";
14
14
  import "./chunk-5RGU3J7P.js";
15
15
  import {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-3WLK2JQ5.js";
4
+ } from "./chunk-U3JZVWIB.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-OZGZPSEG.js";
3
+ } from "./chunk-A6FMKU7M.js";
4
4
  import {
5
5
  prepareAndPersistMessage,
6
6
  uiAskChoiceFunc,
7
7
  uiAskChoiceFunctionSchema
8
- } from "./chunk-XVZ22N6C.js";
8
+ } from "./chunk-FQUHIG5X.js";
9
9
  import {
10
10
  require_date_fns
11
11
  } from "./chunk-M76ECQRD.js";
@@ -9,7 +9,7 @@ import {
9
9
  initReactI18next,
10
10
  instance,
11
11
  toast
12
- } from "./chunk-XVZ22N6C.js";
12
+ } from "./chunk-FQUHIG5X.js";
13
13
  import {
14
14
  require_date_fns
15
15
  } from "./chunk-M76ECQRD.js";
@@ -0,0 +1,153 @@
1
+ import {
2
+ isRecord
3
+ } from "./chunk-KUG52IAP.js";
4
+
5
+ // packages/core/chat/validationUrl.ts
6
+ function safeUrl(raw) {
7
+ if (typeof raw !== "string") return void 0;
8
+ const trimmed = raw.trim();
9
+ if (!/^https?:\/\//i.test(trimmed)) return void 0;
10
+ try {
11
+ const parsed = new URL(trimmed);
12
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
13
+ return void 0;
14
+ }
15
+ return parsed.href;
16
+ } catch {
17
+ return void 0;
18
+ }
19
+ }
20
+ function scanValidationDetails(details) {
21
+ if (!Array.isArray(details)) return {};
22
+ let url;
23
+ let text;
24
+ let learnMoreUrl;
25
+ for (const detail of details) {
26
+ if (url && learnMoreUrl) break;
27
+ if (!isRecord(detail)) continue;
28
+ const metadata = isRecord(detail.metadata) ? detail.metadata : void 0;
29
+ if (metadata) {
30
+ url = url ?? safeUrl(metadata.validation_url);
31
+ text = text ?? (typeof metadata.validation_url_link_text === "string" ? metadata.validation_url_link_text : void 0);
32
+ learnMoreUrl = learnMoreUrl ?? safeUrl(metadata.validation_learn_more_url);
33
+ }
34
+ const links = Array.isArray(detail.links) ? detail.links : [];
35
+ for (const link of links) {
36
+ if (!isRecord(link)) continue;
37
+ const linkUrl = safeUrl(link.url);
38
+ if (!linkUrl) continue;
39
+ const desc = typeof link.description === "string" ? link.description : "";
40
+ if (!url && /verify|continue/i.test(desc)) {
41
+ url = linkUrl;
42
+ text = text ?? desc;
43
+ } else if (!learnMoreUrl && /learn more/i.test(desc)) {
44
+ learnMoreUrl = linkUrl;
45
+ }
46
+ }
47
+ }
48
+ return { url, text, learnMoreUrl };
49
+ }
50
+ function unescapeJsonString(text) {
51
+ return text.replace(
52
+ /\\(["\\/nrtbf]|u[0-9a-fA-F]{4})/g,
53
+ (_match, esc) => {
54
+ switch (esc[0]) {
55
+ case "n":
56
+ return "\n";
57
+ case "r":
58
+ return "\r";
59
+ case "t":
60
+ return " ";
61
+ case "b":
62
+ return "\b";
63
+ case "f":
64
+ return "\f";
65
+ case "u":
66
+ return String.fromCharCode(parseInt(esc.slice(1), 16));
67
+ default:
68
+ return esc;
69
+ }
70
+ }
71
+ );
72
+ }
73
+ function sliceBalancedJsonObject(text) {
74
+ const start = text.indexOf("{");
75
+ if (start < 0) return void 0;
76
+ let depth = 0;
77
+ let inString = false;
78
+ let escaped = false;
79
+ for (let i = start; i < text.length; i += 1) {
80
+ const ch = text[i];
81
+ if (inString) {
82
+ if (escaped) escaped = false;
83
+ else if (ch === "\\") escaped = true;
84
+ else if (ch === '"') inString = false;
85
+ continue;
86
+ }
87
+ if (ch === '"') inString = true;
88
+ else if (ch === "{") depth += 1;
89
+ else if (ch === "}") {
90
+ depth -= 1;
91
+ if (depth === 0) return text.slice(start, i + 1);
92
+ }
93
+ }
94
+ return void 0;
95
+ }
96
+ function parseBalancedJson(text) {
97
+ const slice = sliceBalancedJsonObject(text);
98
+ if (!slice) return void 0;
99
+ try {
100
+ return JSON.parse(slice);
101
+ } catch {
102
+ return void 0;
103
+ }
104
+ }
105
+ function findValidationInParsed(parsed, depth = 0) {
106
+ if (depth > 3 || !isRecord(parsed)) return {};
107
+ const err = isRecord(parsed.error) ? parsed.error : parsed;
108
+ const fromDetails = scanValidationDetails(isRecord(err) ? err.details : void 0);
109
+ if (fromDetails.url) return fromDetails;
110
+ const nested = isRecord(err) ? err.message : void 0;
111
+ if (typeof nested === "string" && nested.trim().startsWith("{")) {
112
+ try {
113
+ const reparsed = findValidationInParsed(JSON.parse(nested), depth + 1);
114
+ if (reparsed.url) return reparsed;
115
+ } catch {
116
+ }
117
+ }
118
+ return {};
119
+ }
120
+ function stripTerminalControlChars(raw) {
121
+ return raw.replace(/[\u0000-\u001f\u007f]/g, "");
122
+ }
123
+ function regexValidationFallback(text) {
124
+ const urlMatch = text.match(
125
+ /validation_url[^h]{0,10}(https?:\/\/[^\s"\\]+)/i
126
+ );
127
+ if (!urlMatch) return {};
128
+ const textMatch = text.match(
129
+ /validation_url_link_text[^A-Za-z]{0,10}([^"\\\n]{1,60})/i
130
+ );
131
+ return {
132
+ // safeUrl first (normalizes C0 into %XX); fall back to stripping controls
133
+ // so a truncated-but-real link is still emitted rather than dropped.
134
+ url: safeUrl(urlMatch[1]) ?? stripTerminalControlChars(urlMatch[1]),
135
+ text: textMatch?.[1] ? stripTerminalControlChars(textMatch[1].trim()) || void 0 : void 0
136
+ };
137
+ }
138
+ function extractGoogleValidationLink(errorText) {
139
+ for (const candidate of [
140
+ parseBalancedJson(errorText),
141
+ parseBalancedJson(unescapeJsonString(errorText))
142
+ ]) {
143
+ if (candidate === void 0) continue;
144
+ const found = findValidationInParsed(candidate);
145
+ if (found.url) return found;
146
+ }
147
+ return regexValidationFallback(errorText);
148
+ }
149
+
150
+ export {
151
+ scanValidationDetails,
152
+ extractGoogleValidationLink
153
+ };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  toolRegistry
3
- } from "./chunk-TQBHNYVR.js";
3
+ } from "./chunk-H66KLASO.js";
4
4
  import {
5
5
  i18n_default
6
- } from "./chunk-XVZ22N6C.js";
6
+ } from "./chunk-FQUHIG5X.js";
7
7
  import {
8
8
  canonicalizeToolNames
9
9
  } from "./chunk-O6OSWFZQ.js";