obyte-mcp 0.1.2 → 0.2.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/README.md +76 -4
- package/dist/amounts.d.ts +43 -0
- package/dist/amounts.js +117 -0
- package/dist/amounts.js.map +1 -0
- package/dist/constants.d.ts +3 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/doctor.js +12 -0
- package/dist/doctor.js.map +1 -1
- package/dist/explorerClient.d.ts +39 -0
- package/dist/explorerClient.js +115 -0
- package/dist/explorerClient.js.map +1 -0
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/install.js +31 -11
- package/dist/install.js.map +1 -1
- package/dist/prompts.js +26 -18
- package/dist/prompts.js.map +1 -1
- package/dist/resources.js +8 -2
- package/dist/resources.js.map +1 -1
- package/dist/schemas.d.ts +8 -0
- package/dist/schemas.js +7 -0
- package/dist/schemas.js.map +1 -1
- package/dist/server.js +32 -1
- package/dist/server.js.map +1 -1
- package/dist/symbols.js +2 -1
- package/dist/symbols.js.map +1 -1
- package/dist/tools.js +101 -32
- package/dist/tools.js.map +1 -1
- package/dist/updateCheck.d.ts +16 -0
- package/dist/updateCheck.js +80 -0
- package/dist/updateCheck.js.map +1 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/dist/tools.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { assetExplorerUrl, summarizeBalanceAmounts } from "./amounts.js";
|
|
1
2
|
import { envelopeConfig } from "./config.js";
|
|
2
3
|
import { executeEnvelope } from "./envelope.js";
|
|
4
|
+
import { fetchAssetHolders } from "./explorerClient.js";
|
|
3
5
|
import { assertNoSecrets } from "./secretGuard.js";
|
|
4
6
|
import * as schemas from "./schemas.js";
|
|
5
7
|
import { getAssetBySymbol, getDecimalsBySymbolOrAsset, getSymbolByAsset, resolveAsset } from "./symbols.js";
|
|
6
8
|
import { textResult } from "./toolResult.js";
|
|
9
|
+
import { checkForUpdate } from "./updateCheck.js";
|
|
7
10
|
export function registerObyteTools(server, clients, config) {
|
|
8
11
|
const context = { server, clients, config };
|
|
9
12
|
for (const tool of [...recommendedTools(context), ...rawTools(context), ...symbolTools(context)]) {
|
|
@@ -16,10 +19,15 @@ function resolveNetwork(value, defaultNetwork) {
|
|
|
16
19
|
function withNetworkNote(description, config) {
|
|
17
20
|
return `${description}\n\nNetwork: this server serves both Obyte networks at once. Pass "network":"mainnet" or "network":"testnet" to choose; when omitted it defaults to ${config.defaultNetwork}. If the user has not made the network explicit, confirm which network they mean before calling.`;
|
|
18
21
|
}
|
|
22
|
+
const AMOUNTS_DESCRIPTION_NOTE = 'Amounts: raw ledger amounts in this output are integers in the asset\'s smallest units (base is GBYTE with 9 decimals). Never show raw integers to users: prefer display_total fields when present, otherwise resolve decimals with obyte_resolve_asset or obyte_get_decimals_by_symbol_or_asset and divide by 10^decimals.';
|
|
23
|
+
function toolDescription(tool, config) {
|
|
24
|
+
const base = withNetworkNote(tool.description, config);
|
|
25
|
+
return tool.amounts ? `${base}\n\n${AMOUNTS_DESCRIPTION_NOTE}` : base;
|
|
26
|
+
}
|
|
19
27
|
function registerTool(context, tool) {
|
|
20
28
|
context.server.registerTool(tool.name, {
|
|
21
29
|
title: tool.title,
|
|
22
|
-
description:
|
|
30
|
+
description: toolDescription(tool, context.config),
|
|
23
31
|
inputSchema: tool.schema,
|
|
24
32
|
annotations: {
|
|
25
33
|
title: tool.title,
|
|
@@ -40,14 +48,15 @@ function registerTool(context, tool) {
|
|
|
40
48
|
return textResult(text);
|
|
41
49
|
});
|
|
42
50
|
}
|
|
43
|
-
function recommendedTools(
|
|
51
|
+
function recommendedTools(context) {
|
|
44
52
|
return [
|
|
45
53
|
{
|
|
46
54
|
name: "obyte_analyze_address",
|
|
47
55
|
title: "Analyze Obyte Address",
|
|
48
56
|
schema: schemas.analyzeAddressSchema,
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
amounts: true,
|
|
58
|
+
description: "Recommended first tool whenever the user pastes an Obyte address (a 32-character base32 string) or asks about an Obyte wallet, balance, or account. Returns balances with a decimals-aware balance_summary (symbols, decimals, display totals), plus optional definition, profile units, attestations, and bounded history. Use this instead of several raw calls. Output is a stable JSON envelope and may be truncated.",
|
|
59
|
+
handler: async (args, { client, network }) => {
|
|
51
60
|
const [balances, profileUnits, definition, attestations, history] = await Promise.all([
|
|
52
61
|
client.getBalances([args.address]),
|
|
53
62
|
client.getProfileUnits([args.address]),
|
|
@@ -55,14 +64,27 @@ function recommendedTools(_context) {
|
|
|
55
64
|
args.include_attestations ? client.getAttestations(args.address).catch((error) => ({ error: String(error) })) : undefined,
|
|
56
65
|
args.include_history ? client.getHistory([args.address]).catch((error) => ({ error: String(error) })) : undefined
|
|
57
66
|
]);
|
|
58
|
-
|
|
67
|
+
const balanceSummary = await summarizeBalanceAmounts(client, balances, {
|
|
68
|
+
configuredRegistryAddress: network.tokenRegistryAddress,
|
|
69
|
+
network: network.network
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
address: args.address,
|
|
73
|
+
balances,
|
|
74
|
+
balance_summary: balanceSummary,
|
|
75
|
+
profile_units: profileUnits,
|
|
76
|
+
definition,
|
|
77
|
+
attestations,
|
|
78
|
+
history
|
|
79
|
+
};
|
|
59
80
|
}
|
|
60
81
|
},
|
|
61
82
|
{
|
|
62
83
|
name: "obyte_analyze_unit",
|
|
63
84
|
title: "Analyze Obyte Unit",
|
|
64
85
|
schema: schemas.analyzeUnitSchema,
|
|
65
|
-
|
|
86
|
+
amounts: true,
|
|
87
|
+
description: "Recommended tool whenever the user pastes an Obyte unit hash (a 44-character base64 string, usually ending in \"=\") or asks about an Obyte transaction. Fetches the joint and, when requested, follows the AA response chain for trigger units. Payment output amounts are raw smallest units. Output is hub data wrapped in a stable JSON envelope.",
|
|
66
88
|
handler: async (args, { client }) => ({
|
|
67
89
|
unit: args.unit,
|
|
68
90
|
joint: await client.getJoint(args.unit),
|
|
@@ -73,22 +95,58 @@ function recommendedTools(_context) {
|
|
|
73
95
|
name: "obyte_analyze_aa",
|
|
74
96
|
title: "Analyze Autonomous Agent",
|
|
75
97
|
schema: schemas.analyzeAaSchema,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
balances
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
98
|
+
amounts: true,
|
|
99
|
+
description: "Recommended tool for summarizing an Obyte autonomous agent (AA). Returns AA balances with a decimals-aware balance_summary, selected state vars by prefix, and optional AA responses. Use for AA debugging or state inspection. State var amounts are raw smallest units. State vars are sorted by key and output may be truncated.",
|
|
100
|
+
handler: async (args, { client, network }) => {
|
|
101
|
+
const balances = args.include_balances ? await client.getAaBalances(args.address) : undefined;
|
|
102
|
+
const [balanceSummary, stateVars, aaResponses] = await Promise.all([
|
|
103
|
+
balances !== undefined
|
|
104
|
+
? summarizeBalanceAmounts(client, balances, {
|
|
105
|
+
configuredRegistryAddress: network.tokenRegistryAddress,
|
|
106
|
+
network: network.network
|
|
107
|
+
})
|
|
108
|
+
: undefined,
|
|
109
|
+
args.state_var_prefix ? client.getAaStateVars(args.address, args.state_var_prefix) : undefined,
|
|
110
|
+
args.include_responses ? client.getAaResponses(args.address) : undefined
|
|
111
|
+
]);
|
|
112
|
+
return {
|
|
113
|
+
address: args.address,
|
|
114
|
+
balances,
|
|
115
|
+
balance_summary: balanceSummary,
|
|
116
|
+
state_vars: stateVars,
|
|
117
|
+
aa_responses: aaResponses
|
|
118
|
+
};
|
|
119
|
+
}
|
|
83
120
|
},
|
|
84
121
|
{
|
|
85
122
|
name: "obyte_resolve_asset",
|
|
86
123
|
title: "Resolve Obyte Asset",
|
|
87
124
|
schema: schemas.resolveAssetSchema,
|
|
88
|
-
description: "Recommended tool for resolving an asset id or token symbol in the selected network's registry. Returns asset, symbol, and decimals when available. Registry mappings are convenience metadata, not proof of legitimacy.",
|
|
89
|
-
handler: async (args, { client, network }) =>
|
|
90
|
-
|
|
91
|
-
|
|
125
|
+
description: "Recommended tool for resolving an Obyte asset id (44-character base64 string) or token symbol (like GBYTE or OUSD) in the selected network's registry. Returns asset, symbol, and decimals when available. Always call this (or obyte_get_decimals_by_symbol_or_asset) before presenting amounts of unknown assets to users. Registry mappings are convenience metadata, not proof of legitimacy.",
|
|
126
|
+
handler: async (args, { client, network }) => {
|
|
127
|
+
const result = (await resolveAsset(client, args.value, {
|
|
128
|
+
configuredRegistryAddress: network.tokenRegistryAddress,
|
|
129
|
+
tokenRegistryAddress: args.token_registry_address
|
|
130
|
+
}));
|
|
131
|
+
const urlTarget = typeof result.symbol === "string" ? result.symbol : args.value;
|
|
132
|
+
return {
|
|
133
|
+
...result,
|
|
134
|
+
explorer_asset_url: assetExplorerUrl(network.network, urlTarget),
|
|
135
|
+
holders_hint: "Open explorer_asset_url to see the asset description and current holders. Explorer amounts are already in display units - do not divide them by 10^decimals again."
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: "obyte_get_asset_holders",
|
|
141
|
+
title: "Get Asset Holders",
|
|
142
|
+
schema: schemas.assetHoldersSchema,
|
|
143
|
+
amounts: true,
|
|
144
|
+
description: 'Recommended tool whenever the user asks who holds an Obyte asset, wants a top-holders list, or asks about distribution/concentration of a token. Accepts a token symbol (like GBYTE or OUSD) or a 44-character asset id and returns holders sorted by balance descending with raw and display amounts, plus total supply. Data comes from the Obyte explorer (a centralized convenience service), not the hub, and may lag slightly. Up to 100 holders per call.',
|
|
145
|
+
handler: async (args, { network }) => fetchAssetHolders({
|
|
146
|
+
network: network.network,
|
|
147
|
+
value: args.asset_or_symbol,
|
|
148
|
+
limit: args.limit ?? 20,
|
|
149
|
+
timeoutMs: context.config.timeoutMs
|
|
92
150
|
})
|
|
93
151
|
},
|
|
94
152
|
{
|
|
@@ -96,23 +154,26 @@ function recommendedTools(_context) {
|
|
|
96
154
|
title: "Prepare AA Dry Run",
|
|
97
155
|
schema: schemas.prepareAaDryRunSchema,
|
|
98
156
|
dryRun: true,
|
|
99
|
-
|
|
157
|
+
amounts: true,
|
|
158
|
+
description: "Recommended tool for simulating an Obyte autonomous-agent trigger through the selected network's hub. Trigger and response amounts are raw smallest units (1 GBYTE = 1e9 bytes) - convert user-facing amounts before building the trigger. This does not sign, broadcast, or mutate local state. Dry-run tools are not marked idempotent and are not retried by default.",
|
|
100
159
|
handler: async (args, { client }) => ({ address: args.address, dry_run: await client.dryRunAa(args.address, args.trigger) })
|
|
101
160
|
},
|
|
102
161
|
{
|
|
103
162
|
name: "obyte_get_portfolio_summary",
|
|
104
163
|
title: "Get Portfolio Summary",
|
|
105
164
|
schema: schemas.portfolioSummarySchema,
|
|
106
|
-
|
|
107
|
-
|
|
165
|
+
amounts: true,
|
|
166
|
+
description: "Recommended tool for summarizing balances for up to 20 addresses. Returns raw balances plus totals_by_asset with symbols, decimals, and display totals already divided by 10^decimals (resolve_symbols controls registry lookups). Use for user-facing balance explanations rather than raw get_balances.",
|
|
167
|
+
handler: async (args, { client, network }) => {
|
|
108
168
|
const balances = await client.getBalances(args.addresses);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
};
|
|
169
|
+
const summary = await summarizeBalanceAmounts(client, balances, {
|
|
170
|
+
configuredRegistryAddress: network.tokenRegistryAddress,
|
|
171
|
+
tokenRegistryAddress: args.token_registry_address,
|
|
172
|
+
resolve: args.resolve_symbols,
|
|
173
|
+
maxResolvedAssets: 20,
|
|
174
|
+
network: network.network
|
|
175
|
+
});
|
|
176
|
+
return { addresses: args.addresses, balances, ...summary };
|
|
116
177
|
}
|
|
117
178
|
}
|
|
118
179
|
];
|
|
@@ -123,7 +184,7 @@ function rawTools(context) {
|
|
|
123
184
|
name: "obyte_get_network_info",
|
|
124
185
|
title: "Get Obyte Network Info",
|
|
125
186
|
schema: schemas.networkInfoSchema,
|
|
126
|
-
description: "Returns the effective MCP runtime configuration for both networks: default network, per-network hub URL and token registry, config precedence, limits,
|
|
187
|
+
description: "Returns the effective MCP runtime configuration for both networks: default network, per-network hub URL and token registry, config precedence, limits, witnesses cache metadata, and whether a newer obyte-mcp version is published (mention it to the user when update_available is true). Use before other calls when network selection matters.",
|
|
127
188
|
handler: async () => ({
|
|
128
189
|
default_network: context.config.defaultNetwork,
|
|
129
190
|
default_network_source: context.config.defaultNetworkSource,
|
|
@@ -137,7 +198,8 @@ function rawTools(context) {
|
|
|
137
198
|
witnesses_cache: {
|
|
138
199
|
mainnet: context.clients.mainnet.getWitnessesCacheInfo(),
|
|
139
200
|
testnet: context.clients.testnet.getWitnessesCacheInfo()
|
|
140
|
-
}
|
|
201
|
+
},
|
|
202
|
+
update: await checkForUpdate()
|
|
141
203
|
})
|
|
142
204
|
},
|
|
143
205
|
{
|
|
@@ -172,7 +234,8 @@ function rawTools(context) {
|
|
|
172
234
|
name: "obyte_get_balances",
|
|
173
235
|
title: "Get Balances",
|
|
174
236
|
schema: schemas.addressesSchema,
|
|
175
|
-
|
|
237
|
+
amounts: true,
|
|
238
|
+
description: "Raw hub read. Fetches balances for 1 to 20 addresses. Use obyte_get_portfolio_summary for agent-friendly summaries with decimals-adjusted display totals.",
|
|
176
239
|
handler: async (args, { client }) => client.getBalances(args.addresses)
|
|
177
240
|
},
|
|
178
241
|
{
|
|
@@ -200,6 +263,7 @@ function rawTools(context) {
|
|
|
200
263
|
name: "obyte_get_history",
|
|
201
264
|
title: "Get Address History",
|
|
202
265
|
schema: schemas.getHistorySchema,
|
|
266
|
+
amounts: true,
|
|
203
267
|
description: "Raw hub read. Returns history for 1 to 20 addresses. If witnesses are omitted, the server uses the 10-minute witnesses cache or fetches witnesses from the hub.",
|
|
204
268
|
handler: async (args, { client }) => client.getHistory(args.addresses, args.witnesses, args.update_witnesses)
|
|
205
269
|
},
|
|
@@ -221,6 +285,7 @@ function rawTools(context) {
|
|
|
221
285
|
name: "obyte_get_aa_response_chain",
|
|
222
286
|
title: "Get AA Response Chain",
|
|
223
287
|
schema: schemas.triggerUnitSchema,
|
|
288
|
+
amounts: true,
|
|
224
289
|
description: "Raw hub read. Returns the autonomous-agent response chain for a trigger unit.",
|
|
225
290
|
handler: async (args, { client }) => client.getAaResponseChain(args.trigger_unit)
|
|
226
291
|
},
|
|
@@ -228,6 +293,7 @@ function rawTools(context) {
|
|
|
228
293
|
name: "obyte_get_aa_responses",
|
|
229
294
|
title: "Get AA Responses",
|
|
230
295
|
schema: schemas.aaOrAasSchema,
|
|
296
|
+
amounts: true,
|
|
231
297
|
description: "Raw hub read. Returns AA responses for one AA address or up to 20 AA addresses.",
|
|
232
298
|
handler: async (args, { client }) => client.getAaResponses(args.aa ?? args.aas)
|
|
233
299
|
},
|
|
@@ -243,6 +309,7 @@ function rawTools(context) {
|
|
|
243
309
|
title: "Dry Run AA",
|
|
244
310
|
schema: schemas.dryRunAaSchema,
|
|
245
311
|
dryRun: true,
|
|
312
|
+
amounts: true,
|
|
246
313
|
description: "Raw hub dry run. Simulates triggering an autonomous agent with a JSON trigger payload. It does not sign or broadcast. Not retried by default and not marked idempotent.",
|
|
247
314
|
handler: async (args, { client }) => client.dryRunAa(args.address, args.trigger)
|
|
248
315
|
},
|
|
@@ -257,14 +324,16 @@ function rawTools(context) {
|
|
|
257
324
|
name: "obyte_get_aa_balances",
|
|
258
325
|
title: "Get AA Balances",
|
|
259
326
|
schema: schemas.aaAddressSchema,
|
|
260
|
-
|
|
327
|
+
amounts: true,
|
|
328
|
+
description: "Raw hub read. Returns balances held by one autonomous agent address. Use obyte_analyze_aa for a decimals-aware summary.",
|
|
261
329
|
handler: async (args, { client }) => client.getAaBalances(args.address)
|
|
262
330
|
},
|
|
263
331
|
{
|
|
264
332
|
name: "obyte_get_aa_state_vars",
|
|
265
333
|
title: "Get AA State Vars",
|
|
266
334
|
schema: schemas.getAaStateVarsSchema,
|
|
267
|
-
|
|
335
|
+
amounts: true,
|
|
336
|
+
description: "Raw hub read. Returns autonomous-agent state variables, optionally bounded by prefix/range. State vars holding amounts are raw smallest units. Prefix length is limited to 128 characters. Map-like output is sorted by key.",
|
|
268
337
|
handler: async (args, { client }) => client.getAaStateVars(args.address, args.var_prefix, args.var_prefix_from, args.var_prefix_to)
|
|
269
338
|
}
|
|
270
339
|
];
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5G,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA4B7C,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,OAAyC,EAAE,MAAqB;IACpH,MAAM,OAAO,GAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7D,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,cAAuB;IAC7D,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB,EAAE,MAAqB;IACjE,OAAO,GAAG,WAAW,uJAAuJ,MAAM,CAAC,cAAc,kGAAkG,CAAC;AACtS,CAAC;AAED,SAAS,YAAY,CAAC,OAAwB,EAAE,IAAoB;IAClE,OAAO,CAAC,MAAM,CAAC,YAAY,CACzB,IAAI,CAAC,IAAI,EACT;QACE,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;QAC9D,WAAW,EAAE,IAAI,CAAC,MAAa;QAC/B,WAAW,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;YACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACjD;KACF,EACD,KAAK,EAAE,IAAa,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAAwB,CAAC;QACnD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACzH,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAyB;IACjD,OAAO;QACL;YACE,IAAI,EAAE,uBAAuB;YAC7B,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,OAAO,CAAC,oBAAoB;YACpC,WAAW,EACT,8RAA8R;YAChS,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBAClC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACpF,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACtC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrH,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACzH,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAClH,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;YAC7G,CAAC;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,OAAO,CAAC,iBAAiB;YACjC,WAAW,EACT,8PAA8P;YAChQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvC,iBAAiB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC7H,CAAC;SACH;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,0BAA0B;YACjC,MAAM,EAAE,OAAO,CAAC,eAAe;YAC/B,WAAW,EACT,0OAA0O;YAC5O,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACtF,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;gBAChH,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aAC7F,CAAC;SACH;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,OAAO,CAAC,kBAAkB;YAClC,WAAW,EACT,yNAAyN;YAC3N,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3C,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC/B,yBAAyB,EAAE,OAAO,CAAC,oBAAoB;gBACvD,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;aAClD,CAAC;SACL;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,OAAO,CAAC,qBAAqB;YACrC,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,+NAA+N;YACjO,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;SAC7H;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,OAAO,CAAC,sBAAsB;YACtC,WAAW,EACT,oOAAoO;YACtO,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBAClC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1D,OAAO;oBACL,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,QAAQ;oBACR,iBAAiB,EAAE,IAAI,CAAC,eAAe;wBACrC,CAAC,CAAC,EAAE,IAAI,EAAE,8FAA8F,EAAE;wBAC1G,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,OAAwB;IACxC,OAAO;QACL;YACE,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,wBAAwB;YAC/B,MAAM,EAAE,OAAO,CAAC,iBAAiB;YACjC,WAAW,EACT,6OAA6O;YAC/O,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACpB,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;gBAC9C,sBAAsB,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB;gBAC3D,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;gBACjC,MAAM,EAAE;oBACN,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;oBACpC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;oBAC9C,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;oBAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;iBACpC;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;oBACxD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;iBACzD;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,OAAO,CAAC,iBAAiB;YACjC,WAAW,EAAE,kFAAkF;YAC/F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;SAC1D;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,OAAO,CAAC,iBAAiB;YACjC,WAAW,EAAE,iHAAiH;YAC9H,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE;SACxD;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,OAAO,CAAC,kBAAkB;YAClC,WAAW,EACT,8IAA8I;YAChJ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;SACtE;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,OAAO,CAAC,cAAc;YAC9B,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SAChE;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,OAAO,CAAC,eAAe;YAC/B,WAAW,EAAE,qHAAqH;YAClI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;SACxE;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,OAAO,CAAC,eAAe;YAC/B,WAAW,EAAE,2EAA2E;YACxF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;SAC5E;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,wBAAwB;YAC/B,MAAM,EAAE,OAAO,CAAC,mBAAmB;YACnC,WAAW,EAAE,4DAA4D;YACzE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;SACxE;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,OAAO,CAAC,iBAAiB;YACjC,WAAW,EAAE,6GAA6G;YAC1H,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;SACnG;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,OAAO,CAAC,gBAAgB;YAChC,WAAW,EACT,iKAAiK;YACnK,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC;SAC9G;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,OAAO,CAAC,oBAAoB;YACpC,WAAW,EAAE,+EAA+E;YAC5F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;SAC1G;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,0BAA0B;YACjC,MAAM,EAAE,OAAO,CAAC,qBAAqB;YACrC,WAAW,EAAE,iEAAiE;YAC9E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;SAC1E;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,OAAO,CAAC,iBAAiB;YACjC,WAAW,EAAE,+EAA+E;YAC5F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;SAClF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,OAAO,CAAC,aAAa;YAC7B,WAAW,EAAE,iFAAiF;YAC9F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAI,CAAC;SACjF;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,OAAO,CAAC,iBAAiB;YACjC,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAS,CAAC;SAC5F;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,OAAO,CAAC,cAAc;YAC9B,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,yKAAyK;YAC3K,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;SACjF;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,OAAO,CAAC,mBAAmB;YACnC,WAAW,EAAE,0GAA0G;YACvH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;SAChG;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,OAAO,CAAC,eAAe;YAC/B,WAAW,EAAE,sEAAsE;YACnF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;SACxE;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,OAAO,CAAC,oBAAoB;YACpC,WAAW,EACT,2KAA2K;YAC7K,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC;SACpI;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,QAAyB;IAC5C,OAAO;QACL;YACE,IAAI,EAAE,2CAA2C;YACjD,KAAK,EAAE,4BAA4B;YACnC,MAAM,EAAE,OAAO,CAAC,cAAc;YAC9B,WAAW,EACT,6KAA6K;YAC/K,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,IAAI,OAAO,CAAC,oBAAoB,IAAI,IAAI;gBAC3F,WAAW,EAAE,4EAA4E;aAC1F,CAAC;SACH;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,OAAO,CAAC,mBAAmB;YACnC,WAAW,EACT,uLAAuL;YACzL,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3C,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;gBACnC,yBAAyB,EAAE,OAAO,CAAC,oBAAoB;gBACvD,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;aAClD,CAAC;SACL;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,OAAO,CAAC,mBAAmB;YACnC,WAAW,EACT,4HAA4H;YAC9H,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3C,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBACpC,yBAAyB,EAAE,OAAO,CAAC,oBAAoB;gBACvD,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;aAClD,CAAC;SACL;QACD;YACE,IAAI,EAAE,uCAAuC;YAC7C,KAAK,EAAE,iCAAiC;YACxC,MAAM,EAAE,OAAO,CAAC,cAAc;YAC9B,WAAW,EACT,gKAAgK;YAClK,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3C,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE;gBACvD,yBAAyB,EAAE,OAAO,CAAC,oBAAoB;gBACvD,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;aAClD,CAAC;SACL;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight npm-registry version check so agents can tell users when a newer
|
|
3
|
+
* obyte-mcp is published. Fail-silent, 3s timeout, one request per process,
|
|
4
|
+
* opt-out via OBYTE_NO_UPDATE_CHECK (or the conventional NO_UPDATE_NOTIFIER).
|
|
5
|
+
*/
|
|
6
|
+
export interface UpdateStatus {
|
|
7
|
+
current: string;
|
|
8
|
+
latest: string | null;
|
|
9
|
+
/** true = newer version published; false = up to date; null = check disabled or failed. */
|
|
10
|
+
update_available: boolean | null;
|
|
11
|
+
note?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function isUpdateCheckDisabled(env?: NodeJS.ProcessEnv): boolean;
|
|
14
|
+
export declare function checkForUpdate(fetchImpl?: typeof fetch, env?: NodeJS.ProcessEnv): Promise<UpdateStatus>;
|
|
15
|
+
/** Test hook: clears the per-process cache. */
|
|
16
|
+
export declare function resetUpdateCheckCache(): void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { PACKAGE_NAME, PACKAGE_VERSION } from "./constants.js";
|
|
2
|
+
const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
3
|
+
const CHECK_TIMEOUT_MS = 3_000;
|
|
4
|
+
let cached;
|
|
5
|
+
export function isUpdateCheckDisabled(env = process.env) {
|
|
6
|
+
return Boolean(env.OBYTE_NO_UPDATE_CHECK?.trim()) || Boolean(env.NO_UPDATE_NOTIFIER?.trim());
|
|
7
|
+
}
|
|
8
|
+
export function checkForUpdate(fetchImpl = fetch, env = process.env) {
|
|
9
|
+
if (isUpdateCheckDisabled(env)) {
|
|
10
|
+
return Promise.resolve({
|
|
11
|
+
current: PACKAGE_VERSION,
|
|
12
|
+
latest: null,
|
|
13
|
+
update_available: null,
|
|
14
|
+
note: "Update check disabled via OBYTE_NO_UPDATE_CHECK."
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
cached ??= fetchLatest(fetchImpl);
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
/** Test hook: clears the per-process cache. */
|
|
21
|
+
export function resetUpdateCheckCache() {
|
|
22
|
+
cached = undefined;
|
|
23
|
+
}
|
|
24
|
+
async function fetchLatest(fetchImpl) {
|
|
25
|
+
try {
|
|
26
|
+
const controller = new AbortController();
|
|
27
|
+
const timer = setTimeout(() => controller.abort(), CHECK_TIMEOUT_MS);
|
|
28
|
+
let response;
|
|
29
|
+
try {
|
|
30
|
+
response = await fetchImpl(REGISTRY_URL, {
|
|
31
|
+
headers: { Accept: "application/json", "User-Agent": `${PACKAGE_NAME}/${PACKAGE_VERSION} (update check)` },
|
|
32
|
+
signal: controller.signal
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
clearTimeout(timer);
|
|
37
|
+
}
|
|
38
|
+
if (!response.ok)
|
|
39
|
+
return checkFailed();
|
|
40
|
+
const payload = (await response.json());
|
|
41
|
+
const latest = typeof payload?.version === "string" ? payload.version : null;
|
|
42
|
+
if (!latest)
|
|
43
|
+
return checkFailed();
|
|
44
|
+
const updateAvailable = compareVersions(latest, PACKAGE_VERSION) > 0;
|
|
45
|
+
const status = { current: PACKAGE_VERSION, latest, update_available: updateAvailable };
|
|
46
|
+
if (updateAvailable) {
|
|
47
|
+
status.note = `A newer obyte-mcp ${latest} is published (running ${PACKAGE_VERSION}). Unpinned npx configs pick it up on the next client restart; tell the user an update is available.`;
|
|
48
|
+
}
|
|
49
|
+
return status;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return checkFailed();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function checkFailed() {
|
|
56
|
+
return {
|
|
57
|
+
current: PACKAGE_VERSION,
|
|
58
|
+
latest: null,
|
|
59
|
+
update_available: null,
|
|
60
|
+
note: "Update check failed (offline or registry unreachable); this does not affect Obyte tools."
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** Compares the numeric major.minor.patch parts; prerelease tails are ignored. */
|
|
64
|
+
function compareVersions(a, b) {
|
|
65
|
+
const parse = (value) => value
|
|
66
|
+
.split(".")
|
|
67
|
+
.slice(0, 3)
|
|
68
|
+
.map((part) => {
|
|
69
|
+
const numeric = Number.parseInt(part, 10);
|
|
70
|
+
return Number.isFinite(numeric) ? numeric : 0;
|
|
71
|
+
});
|
|
72
|
+
const [aParts, bParts] = [parse(a), parse(b)];
|
|
73
|
+
for (let index = 0; index < 3; index += 1) {
|
|
74
|
+
const diff = (aParts[index] ?? 0) - (bParts[index] ?? 0);
|
|
75
|
+
if (diff !== 0)
|
|
76
|
+
return diff;
|
|
77
|
+
}
|
|
78
|
+
return 0;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=updateCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../src/updateCheck.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
"url": "https://github.com/Taump/obyte-mcp",
|
|
9
9
|
"source": "github"
|
|
10
10
|
},
|
|
11
|
-
"version": "0.1
|
|
11
|
+
"version": "0.2.1",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
16
16
|
"identifier": "obyte-mcp",
|
|
17
|
-
"version": "0.1
|
|
17
|
+
"version": "0.2.1",
|
|
18
18
|
"runtimeHint": "npx",
|
|
19
19
|
"transport": {
|
|
20
20
|
"type": "stdio"
|