nolo-cli 0.8.0-alpha.6 → 0.8.0-alpha.7
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-XIGO7HW5.js +198 -0
- package/action-PAXRPJJF.js +27 -0
- package/addContentAction-CZVWF3QZ.js +25 -0
- package/addDialogAgentAction-CCIDTPHC.js +67 -0
- package/agentDeleteCommand-47B24JYG.js +323 -0
- package/agentEmailCommands-D4FC6OZJ.js +621 -0
- package/agentListCommands-UFET7CC4.js +219 -0
- package/agentMachineCommands-LH7QDQPP.js +421 -0
- package/agentPullCommand-O2MTUAFR.js +122 -0
- package/agentRecordCommands-CWS2B5IA.js +89 -0
- package/agentRunCommand-3FRPISLG.js +102 -0
- package/agentRunControl-K4VKNEHF.js +57 -0
- package/agentRuntimeLocal-JNQQC2WG.js +99 -0
- package/agentSlice-XDFSELFJ.js +41 -0
- package/authCommand-WXMD3IPR.js +574 -0
- package/authCommands-X74AFDTC.js +26 -0
- package/chunk-2EISRLRC.js +238 -0
- package/chunk-2FTTDCD4.js +675 -0
- package/chunk-2JHWPW5B.js +2127 -0
- package/chunk-2LMT6K6N.js +171 -0
- package/chunk-2MALU52L.js +51 -0
- package/chunk-364VYAX2.js +19 -0
- package/chunk-3ASDTTEI.js +1774 -0
- package/chunk-3EUW3WEO.js +8 -0
- package/chunk-3LY4F7SV.js +9293 -0
- package/chunk-4CQLVGRV.js +50 -0
- package/chunk-4IJYA27C.js +342 -0
- package/chunk-4SN6J65J.js +38 -0
- package/chunk-4VNS5WPM.js +42 -0
- package/chunk-543C7RDK.js +562 -0
- package/chunk-572EKYLF.js +792 -0
- package/chunk-5MIDPSSK.js +206 -0
- package/chunk-5MMAK75Q.js +15 -0
- package/chunk-5XH3NZ4T.js +3631 -0
- package/chunk-63W5N6P3.js +150 -0
- package/chunk-6HYVJV7B.js +102 -0
- package/chunk-6PWWWMI7.js +628 -0
- package/chunk-6WD3OOJS.js +20 -0
- package/chunk-A3X4Y7MO.js +4294 -0
- package/chunk-AR7ZSGDI.js +929 -0
- package/chunk-ATNTHIZI.js +13 -0
- package/chunk-AUGHVUFE.js +69 -0
- package/chunk-AVMKZHBC.js +85 -0
- package/chunk-AZPCASRE.js +36 -0
- package/chunk-B76D3JJK.js +1447 -0
- package/chunk-BR2WP3DF.js +548 -0
- package/chunk-BSTNFPHD.js +231 -0
- package/chunk-CF2WZF4N.js +134 -0
- package/chunk-CF7PE763.js +10 -0
- package/chunk-CKOJQDKR.js +198 -0
- package/chunk-CM54RSSA.js +206 -0
- package/chunk-CWMSB67P.js +34 -0
- package/chunk-DA2OEKS6.js +27 -0
- package/chunk-DFFIZ25G.js +30 -0
- package/chunk-DWLEOOGR.js +8 -0
- package/chunk-DZ3XJVET.js +231 -0
- package/chunk-E5HMHIKL.js +222 -0
- package/chunk-EHLHSX7R.js +1433 -0
- package/chunk-ELRRLDWI.js +478 -0
- package/chunk-EYEEHCU4.js +3066 -0
- package/chunk-G3SUCT4W.js +8 -0
- package/chunk-G5H7RNFL.js +807 -0
- package/chunk-GAKEBQD6.js +30 -0
- package/chunk-GBRG75BQ.js +86 -0
- package/chunk-GEKCOPTN.js +190 -0
- package/chunk-H2RMRZJE.js +113 -0
- package/chunk-H33743XH.js +25 -0
- package/chunk-HEIIIZBX.js +104 -0
- package/chunk-HNMXYYJR.js +12 -0
- package/chunk-IAXBCTTE.js +175 -0
- package/chunk-IDZTNRP2.js +85 -0
- package/chunk-IECI4YHR.js +421 -0
- package/chunk-ISNCLGUZ.js +146 -0
- package/chunk-IYQV26RA.js +138 -0
- package/chunk-JBTJAPUF.js +35 -0
- package/chunk-JZPBVBIY.js +94 -0
- package/chunk-KK6SWS5B.js +1078 -0
- package/chunk-KQHGZWSV.js +63 -0
- package/chunk-KTI2WDDG.js +24674 -0
- package/chunk-KUG52IAP.js +8 -0
- package/chunk-KX6YBIHG.js +8 -0
- package/chunk-LCBAMY2M.js +60 -0
- package/chunk-LM25IZBJ.js +902 -0
- package/chunk-LM6IYQ3F.js +16 -0
- package/chunk-M76ECQRD.js +13658 -0
- package/chunk-MRC4Q34M.js +188 -0
- package/chunk-NE3E3XJ2.js +936 -0
- package/chunk-NXZGF7F7.js +2878 -0
- package/chunk-OF5H3QWS.js +300 -0
- package/chunk-OLZBQWZU.js +6 -0
- package/chunk-OVGXXUVI.js +91 -0
- package/chunk-OWOHNGCN.js +50 -0
- package/chunk-PN7AFLOK.js +3401 -0
- package/chunk-QSJ3HFEF.js +8 -0
- package/chunk-QYXLLLGL.js +4519 -0
- package/chunk-ROWQEJRP.js +139 -0
- package/chunk-S7Z2HMCN.js +25 -0
- package/chunk-SL3EPWB4.js +1949 -0
- package/chunk-TDIQFT2F.js +301 -0
- package/chunk-TILFE6LV.js +381 -0
- package/chunk-U4TRT5V4.js +246 -0
- package/chunk-U6VC4MU4.js +8 -0
- package/chunk-UAD2WT54.js +64 -0
- package/chunk-USZDUWOV.js +191 -0
- package/chunk-USZMK5UT.js +105 -0
- package/chunk-UVPF33PW.js +46995 -0
- package/chunk-V2F4OGYM.js +9013 -0
- package/chunk-VEJLAVTC.js +2052 -0
- package/chunk-VF4K2QE6.js +21 -0
- package/chunk-VHBWHNVT.js +59 -0
- package/chunk-VIDPVFP3.js +20 -0
- package/chunk-VP4WJWKW.js +8882 -0
- package/chunk-VQ2AJRGD.js +148 -0
- package/chunk-W4NVOSFF.js +37 -0
- package/chunk-WWC7I6TA.js +8 -0
- package/chunk-X7W4TNB4.js +1550 -0
- package/chunk-XDVAYP26.js +537 -0
- package/chunk-XKIMRZO2.js +221 -0
- package/chunk-Y5GCAMGP.js +9 -0
- package/chunk-YD43KPCK.js +360 -0
- package/chunk-YIJFUVKA.js +34 -0
- package/chunk-Z4NR32XR.js +50 -0
- package/chunk-ZNFJWEN4.js +56 -0
- package/cliExecutor-DNE7TCC4.js +36 -0
- package/clipboardy-BVE3LVEH.js +12001 -0
- package/createAgentAutomationAction-3QTGNYJC.js +864 -0
- package/createDialogAction-5YX3ARBK.js +52 -0
- package/createPageAction-EQNQQRCW.js +169 -0
- package/db-HCJ5PRB5.js +271 -0
- package/dbSlice-C4UJLRZP.js +59 -0
- package/deleteFile-4SKGPHOZ.js +41 -0
- package/dialogCommands-AOQS23FV.js +59 -0
- package/dialogSlice-GZE3NCMC.js +146 -0
- package/docCreateCommands-GVOQVJON.js +215 -0
- package/docDeleteCommands-GEB7YAUZ.js +176 -0
- package/docReadCommands-XYKI2DF2.js +129 -0
- package/docStore-MLM5AME5.js +96 -0
- package/docUpdateCommands-4L3RAMHZ.js +313 -0
- package/fetchMessages-JOCYIFKL.js +16 -0
- package/getPricing-PWPJ6MNV.js +30 -0
- package/handleSendMessageAction-WG2GKTGZ.js +183 -0
- package/index.js +188 -113035
- package/localDialogRead-D3BELSTF.js +26 -0
- package/localFirstLog-DHNOY2NA.js +19 -0
- package/localRuntimeAuthority-TEGCOWX4.js +471 -0
- package/localRuntimeDb-LGDF6FQP.js +12 -0
- package/machineCommands-ZNXKLH6Q.js +774 -0
- package/machineInfo-M6KB6HZN.js +10 -0
- package/machineWsRunDispatch-7WRG6HNV.js +105 -0
- package/memoryCommands-O4MIPIWQ.js +476 -0
- package/models-XLEOET3E.js +9 -0
- package/offlineMarxistsAgentCommand-BCPJITJL.js +242 -0
- package/package.json +3 -25
- package/read-RIJCIVKX.js +17 -0
- package/readDocTool-GZD2N3LO.js +16 -0
- package/readlineWorkspace-AQURUDN4.js +5357 -0
- package/removeDialogAgentAction-CXLST3N6.js +72 -0
- package/runAgentClientLoop-VQUEKGA5.js +288 -0
- package/runtimeDoctorCommands-LRHLPDRC.js +289 -0
- package/setDialogExtraReferencesAction-LP6VYGU7.js +59 -0
- package/setPrimaryDialogAgentAction-D3GGH23T.js +79 -0
- package/settingSlice-J4I3Z5H7.js +198 -0
- package/skillSummaryMarker-42HKSXYY.js +9 -0
- package/slateToRenderMarkdown-Y5IYN73U.js +7 -0
- package/slateUtils-2M7MUTWX.js +19 -0
- package/spaceCommands-R2RXD5UY.js +450 -0
- package/spaceSlice-5UT4JNIN.js +145 -0
- package/streamAgentChatTurn-NRWSQKFN.js +4503 -0
- package/tableCommands-66XEWHAK.js +1286 -0
- package/toolApiClient-QI3YBNWB.js +26 -0
- package/tools-TNMUDDRK.js +83 -0
- package/understanding-HCSFPE7R.js +318 -0
- package/updateCommands-VOSPKXFF.js +31 -0
- package/updateDialogTitleAction-IXOKAVX3.js +185 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import {
|
|
2
|
+
i18n_default,
|
|
3
|
+
toolRegistry
|
|
4
|
+
} from "./chunk-UVPF33PW.js";
|
|
5
|
+
import {
|
|
6
|
+
canonicalizeToolNames
|
|
7
|
+
} from "./chunk-LM25IZBJ.js";
|
|
8
|
+
import {
|
|
9
|
+
asTrimmedLowercaseString
|
|
10
|
+
} from "./chunk-QSJ3HFEF.js";
|
|
11
|
+
import {
|
|
12
|
+
isRecord
|
|
13
|
+
} from "./chunk-KUG52IAP.js";
|
|
14
|
+
|
|
15
|
+
// packages/ai/tools/toolSchemaCompatibility.ts
|
|
16
|
+
var COMPOSITION_KEYS = ["anyOf", "oneOf", "allOf"];
|
|
17
|
+
var LIMITED_JSON_SCHEMA_PROVIDERS = /* @__PURE__ */ new Set([
|
|
18
|
+
"fireworks"
|
|
19
|
+
]);
|
|
20
|
+
var sanitizeSchemaNode = (value) => {
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
return value.map((item) => sanitizeSchemaNode(item));
|
|
23
|
+
}
|
|
24
|
+
if (!isRecord(value)) {
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
const next = {};
|
|
28
|
+
for (const [key, child] of Object.entries(value)) {
|
|
29
|
+
if (COMPOSITION_KEYS.includes(key)) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
next[key] = sanitizeSchemaNode(child);
|
|
33
|
+
}
|
|
34
|
+
return next;
|
|
35
|
+
};
|
|
36
|
+
var shouldSanitizeProviderSchema = (provider) => LIMITED_JSON_SCHEMA_PROVIDERS.has(asTrimmedLowercaseString(provider));
|
|
37
|
+
var sanitizeToolForProvider = (tool, provider) => {
|
|
38
|
+
if (!shouldSanitizeProviderSchema(provider)) {
|
|
39
|
+
return tool;
|
|
40
|
+
}
|
|
41
|
+
const parameters = tool?.function?.parameters;
|
|
42
|
+
if (!isRecord(parameters)) {
|
|
43
|
+
return tool;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
...tool,
|
|
47
|
+
function: {
|
|
48
|
+
...tool.function,
|
|
49
|
+
parameters: sanitizeSchemaNode(parameters)
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// packages/ai/tools/prepareTools.ts
|
|
55
|
+
var translatedFunctionCache = /* @__PURE__ */ new Map();
|
|
56
|
+
var prepareToolsResultCache = /* @__PURE__ */ new Map();
|
|
57
|
+
var PREPARE_TOOLS_CACHE_LIMIT = 128;
|
|
58
|
+
function getTranslation(keys, defaultVal) {
|
|
59
|
+
for (const key of keys) {
|
|
60
|
+
if (i18n_default.exists(key)) {
|
|
61
|
+
return i18n_default.t(key);
|
|
62
|
+
}
|
|
63
|
+
const aiKey = key.startsWith("ai:") ? key : `ai:${key}`;
|
|
64
|
+
if (i18n_default.exists(aiKey)) {
|
|
65
|
+
return i18n_default.t(aiKey);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return defaultVal;
|
|
69
|
+
}
|
|
70
|
+
function translateSchema(schema) {
|
|
71
|
+
if (!schema || typeof schema !== "object") return schema;
|
|
72
|
+
const nextSchema = JSON.parse(JSON.stringify(schema));
|
|
73
|
+
const toolName = nextSchema.name;
|
|
74
|
+
if (!toolName) return nextSchema;
|
|
75
|
+
const walk = (node, path) => {
|
|
76
|
+
if (!node || typeof node !== "object") return;
|
|
77
|
+
if (typeof node.description === "string") {
|
|
78
|
+
const keysToTry = [
|
|
79
|
+
`${path}.description`,
|
|
80
|
+
`${path}.desc`,
|
|
81
|
+
path,
|
|
82
|
+
node.description
|
|
83
|
+
];
|
|
84
|
+
node.description = getTranslation(keysToTry, node.description);
|
|
85
|
+
}
|
|
86
|
+
if (node.parameters && typeof node.parameters === "object") {
|
|
87
|
+
walk(node.parameters, path);
|
|
88
|
+
}
|
|
89
|
+
if (node.properties && typeof node.properties === "object") {
|
|
90
|
+
for (const [key, child] of Object.entries(node.properties)) {
|
|
91
|
+
const nextPath = path.endsWith(".params") ? `${path}.${key}` : `${path}.params.${key}`;
|
|
92
|
+
walk(child, nextPath);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (node.items && typeof node.items === "object") {
|
|
96
|
+
walk(node.items, path);
|
|
97
|
+
}
|
|
98
|
+
const compositions = ["anyOf", "oneOf", "allOf"];
|
|
99
|
+
for (const comp of compositions) {
|
|
100
|
+
if (Array.isArray(node[comp])) {
|
|
101
|
+
node[comp].forEach((child, idx) => {
|
|
102
|
+
const suffix = child.type === "string" ? "stringDesc" : child.type === "object" ? "objectDesc" : `${idx}`;
|
|
103
|
+
walk(child, `${path}.${suffix}`);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
walk(nextSchema, `tools.${toolName}`);
|
|
109
|
+
return nextSchema;
|
|
110
|
+
}
|
|
111
|
+
function currentI18nLanguage() {
|
|
112
|
+
return typeof i18n_default.language === "string" ? i18n_default.language : "";
|
|
113
|
+
}
|
|
114
|
+
function translateSchemaCached(schema) {
|
|
115
|
+
if (!schema || typeof schema !== "object") return schema;
|
|
116
|
+
const toolName = typeof schema.name === "string" ? schema.name : "";
|
|
117
|
+
if (!toolName) return translateSchema(schema);
|
|
118
|
+
const cacheKey = `${currentI18nLanguage()}\0${toolName}`;
|
|
119
|
+
const hit = translatedFunctionCache.get(cacheKey);
|
|
120
|
+
if (hit) return hit;
|
|
121
|
+
const translated = translateSchema(schema);
|
|
122
|
+
translatedFunctionCache.set(cacheKey, translated);
|
|
123
|
+
return translated;
|
|
124
|
+
}
|
|
125
|
+
function buildPrepareToolsCacheKey(toolNames, disabledToolNames, provider) {
|
|
126
|
+
return [
|
|
127
|
+
currentI18nLanguage(),
|
|
128
|
+
provider ?? "",
|
|
129
|
+
disabledToolNames.join(""),
|
|
130
|
+
toolNames.join("")
|
|
131
|
+
].join("\0");
|
|
132
|
+
}
|
|
133
|
+
function rememberPrepareToolsResult(key, value) {
|
|
134
|
+
if (prepareToolsResultCache.size >= PREPARE_TOOLS_CACHE_LIMIT) {
|
|
135
|
+
const oldest = prepareToolsResultCache.keys().next().value;
|
|
136
|
+
if (oldest !== void 0) {
|
|
137
|
+
prepareToolsResultCache.delete(oldest);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
prepareToolsResultCache.set(key, value);
|
|
141
|
+
}
|
|
142
|
+
var prepareTools = (toolNames, options) => {
|
|
143
|
+
const disabledList = canonicalizeToolNames(options?.disabledToolNames ?? []);
|
|
144
|
+
const disabledToolNames = new Set(disabledList);
|
|
145
|
+
const canonicalNames = canonicalizeToolNames(toolNames).filter(
|
|
146
|
+
(toolName) => !disabledToolNames.has(toolName)
|
|
147
|
+
);
|
|
148
|
+
const cacheKey = buildPrepareToolsCacheKey(
|
|
149
|
+
canonicalNames,
|
|
150
|
+
disabledList,
|
|
151
|
+
options?.provider
|
|
152
|
+
);
|
|
153
|
+
const cached = prepareToolsResultCache.get(cacheKey);
|
|
154
|
+
if (cached) {
|
|
155
|
+
return cached.slice();
|
|
156
|
+
}
|
|
157
|
+
const prepared = canonicalNames.map((toolName) => {
|
|
158
|
+
const regTool = toolRegistry[toolName];
|
|
159
|
+
if (!regTool) return regTool;
|
|
160
|
+
return {
|
|
161
|
+
...regTool,
|
|
162
|
+
function: translateSchemaCached(regTool.function)
|
|
163
|
+
};
|
|
164
|
+
}).map((tool) => sanitizeToolForProvider(tool, options?.provider)).filter(Boolean);
|
|
165
|
+
rememberPrepareToolsResult(cacheKey, prepared);
|
|
166
|
+
return prepared.slice();
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export {
|
|
170
|
+
prepareTools
|
|
171
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
trimTrailingSlash
|
|
3
|
+
} from "./chunk-XDVAYP26.js";
|
|
4
|
+
import {
|
|
5
|
+
asTrimmedLowercaseString
|
|
6
|
+
} from "./chunk-QSJ3HFEF.js";
|
|
7
|
+
import {
|
|
8
|
+
asOptionalTrimmedString
|
|
9
|
+
} from "./chunk-G3SUCT4W.js";
|
|
10
|
+
|
|
11
|
+
// packages/agent-runtime/antigravityOAuth.ts
|
|
12
|
+
var ANTIGRAVITY_CLOUD_CODE_BASE_URL = "https://daily-cloudcode-pa.googleapis.com";
|
|
13
|
+
var ANTIGRAVITY_CLOUD_CODE_HOST = "cloudcode-pa.googleapis.com";
|
|
14
|
+
var ANTIGRAVITY_LEGACY_GENERIC_BASE_RE = /^https?:\/\/cloudcode-pa\.googleapis\.com$/i;
|
|
15
|
+
function getAntigravityUserAgent() {
|
|
16
|
+
const version = process.env.NOLO_ANTIGRAVITY_VERSION || "2.1.4";
|
|
17
|
+
const os = process.platform === "win32" ? "windows" : process.platform;
|
|
18
|
+
const arch = process.arch === "x64" ? "amd64" : process.arch === "ia32" ? "386" : process.arch;
|
|
19
|
+
return `antigravity/hub/${version} ${os}/${arch}`;
|
|
20
|
+
}
|
|
21
|
+
function resolveAntigravityCloudCodeBaseUrl(customProviderUrl) {
|
|
22
|
+
const raw = (customProviderUrl ?? "").trim();
|
|
23
|
+
if (!raw) return ANTIGRAVITY_CLOUD_CODE_BASE_URL;
|
|
24
|
+
const trimmed = trimTrailingSlash(raw);
|
|
25
|
+
if (trimmed.includes(ANTIGRAVITY_CLOUD_CODE_HOST)) {
|
|
26
|
+
const base = trimmed.replace(/\/v1internal:.*$/i, "").replace(/\/$/, "");
|
|
27
|
+
if (ANTIGRAVITY_LEGACY_GENERIC_BASE_RE.test(base)) {
|
|
28
|
+
return ANTIGRAVITY_CLOUD_CODE_BASE_URL;
|
|
29
|
+
}
|
|
30
|
+
return base;
|
|
31
|
+
}
|
|
32
|
+
return ANTIGRAVITY_CLOUD_CODE_BASE_URL;
|
|
33
|
+
}
|
|
34
|
+
function isAntigravityOAuthAgent(agentConfig) {
|
|
35
|
+
if (!agentConfig) return false;
|
|
36
|
+
const apiKeyRef = asTrimmedLowercaseString(agentConfig.apiKeyRef);
|
|
37
|
+
const provider = asTrimmedLowercaseString(agentConfig.provider);
|
|
38
|
+
const url = asTrimmedLowercaseString(agentConfig.customProviderUrl);
|
|
39
|
+
return apiKeyRef === "antigravity" || provider === "google-antigravity" || url.includes(ANTIGRAVITY_CLOUD_CODE_HOST);
|
|
40
|
+
}
|
|
41
|
+
function readAntigravityProjectId(metadata) {
|
|
42
|
+
return asOptionalTrimmedString(metadata?.projectId);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
ANTIGRAVITY_CLOUD_CODE_BASE_URL,
|
|
47
|
+
getAntigravityUserAgent,
|
|
48
|
+
resolveAntigravityCloudCodeBaseUrl,
|
|
49
|
+
isAntigravityOAuthAgent,
|
|
50
|
+
readAntigravityProjectId
|
|
51
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildAgentRuntimeAgentLookupKeys,
|
|
3
|
+
shouldFetchAgentRuntimeRecordRemotely
|
|
4
|
+
} from "./chunk-5XH3NZ4T.js";
|
|
5
|
+
|
|
6
|
+
// packages/cli/client/localAgentRecords.ts
|
|
7
|
+
var buildLocalAgentLookupKeys = buildAgentRuntimeAgentLookupKeys;
|
|
8
|
+
var shouldReadAgentKeyRemotely = shouldFetchAgentRuntimeRecordRemotely;
|
|
9
|
+
|
|
10
|
+
// packages/core/agentHandle.ts
|
|
11
|
+
function normalizeAgentHandle(value) {
|
|
12
|
+
return typeof value === "string" && value.trim() ? value.trim().toLowerCase().replace(/\s+/g, " ") : void 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
buildLocalAgentLookupKeys,
|
|
17
|
+
shouldReadAgentKeyRemotely,
|
|
18
|
+
normalizeAgentHandle
|
|
19
|
+
};
|