@candledottv/cli 0.13.4 → 0.13.5

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 (2) hide show
  1. package/dist/index.js +27 -4
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -526,7 +526,7 @@ var init_terminal_theme = __esm(() => {
526
526
  });
527
527
 
528
528
  // src/version.ts
529
- var CLI_VERSION = "0.13.4";
529
+ var CLI_VERSION = "0.13.5";
530
530
 
531
531
  // src/presentation.ts
532
532
  function terminalStyle(deps, stream, machine = false) {
@@ -38324,7 +38324,7 @@ var init_convert = __esm(() => {
38324
38324
  });
38325
38325
 
38326
38326
  // ../mcp/src/version.ts
38327
- var SERVER_VERSION = "0.10.24";
38327
+ var SERVER_VERSION = "0.10.25";
38328
38328
 
38329
38329
  // ../mcp/src/update-notice.ts
38330
38330
  function newer(a, b) {
@@ -43950,6 +43950,14 @@ function buildRequest(name, args, cfg) {
43950
43950
  init: { method: "GET", headers: jsonHeaders() }
43951
43951
  };
43952
43952
  }
43953
+ case "candle_token_card": {
43954
+ const { chain: chain2, mint, tag } = args;
43955
+ const query = tag !== undefined && tag !== "" ? `?${new URLSearchParams({ cst: tag })}` : "";
43956
+ return {
43957
+ url: `${base2}/api/v1/tokens/${encodeURIComponent(chain2)}/${encodeURIComponent(mint)}/card${query}`,
43958
+ init: { method: "GET", headers: jsonHeaders() }
43959
+ };
43960
+ }
43953
43961
  case "candle_token_forensics": {
43954
43962
  const { chain: chain2, mint } = args;
43955
43963
  return {
@@ -44313,6 +44321,11 @@ function registerToolSubset(server, options) {
44313
44321
  MARKET_NOT_FOUND means Candle has no market for that token and this could not run. That is also not 'clean': report that you could not check it, rather than reporting the token as safe. That refusal now carries error.coverage -- covered:false, a reason ('external_launchpad' when the token launched somewhere else, 'unknown_mint' when nobody has indexed it), the launchpad when known, and every check that consequently did not run. Read it instead of guessing. Most of the feed, and any Solana mint Jupiter's index knows, now answers with a partial report instead. On Hood, a token Candle did not launch names its launch account (deployer.method cvc_launch_account) for pons.family and pools.trade launches, with no record of earlier coins; other Hood launchpads return no developer.`,
44314
44322
  inputSchema: tokenForensicsShape
44315
44323
  }, async (args) => callAndRelay("candle_token_forensics", args, getConfig(), doFetch));
44324
+ register("candle_token_card", {
44325
+ title: "Token card",
44326
+ description: "The data behind a Quant token card for one token, in one read: identity (name, ticker, launchpad), market (price, market cap, liquidity, 5 minute change, volume, buys and sells), the all-time high since launch (daily high times current supply, FDV basis; null when no source covers it), forensics (the report, or not_covered with its coverage, or unavailable), the last hour's tracked-wallet buys and sells, signals and callouts, hacc's card facts (bundles, snipers, insiders, fresh 1d/7d, mean wallet age, each with source, as_of and basis) and same-name block (which same-name token leads on live market cap, and whether this one trails), sources naming where each block came from, and links.token (Candle's token page). Facts only, never a score or a verdict. A null field has no source: show it as an en dash, never guess it, and not_covered or unknown is not clean. Free and the same for every caller and plan; no key needed and none is sent even when one is configured. Off on a deployment until it switches TOKEN_CARD on: off, the call answers 503 TOKEN_CARD_DISABLED (retryable: false) and that is the server's answer, not a broken tool.",
44327
+ inputSchema: tokenCardShape
44328
+ }, async (args) => callAndRelay("candle_token_card", args, getConfig(), doFetch));
44316
44329
  register("candle_token_events", {
44317
44330
  title: "Token events",
44318
44331
  description: `One token's event list, newest first: every signal (pattern and summary, new_ticker included), every callout, and every tracked-wallet trade (buys and sells, W or L on a sell whose outcome is known), plus trades Candle's own agents and users made. Each wallet carries its display name or short address, its kind (dev, kol, smart, agent, tracked) and its public group names. No key needed; none is sent even when one is configured, so group names follow the public tier. Off on a deployment until it switches TOKEN_EVENTS on: off, the call answers 503 TOKEN_EVENTS_DISABLED (retryable: false) and that is the server's answer, not a broken tool.
@@ -44718,7 +44731,7 @@ async function registerEligibleProfileTool(server, env = process.env, doFetch =
44718
44731
  }
44719
44732
  return eligible;
44720
44733
  }
44721
- var VAMP_CANDIDATES_DESCRIPTION, localProfileTools, STAKING_DISCLOSURE = "No instant unstake. Read pool.withdrawalTimelockSeconds for the wait. Solana rewards accrue to the holding wallet. sCNDL in any eligible account wallet counts toward Pro and earns the account's Hood staking reward, except a wallet another account also claims, wallets past the 200-wallet cap, and an account with no EVM wallet. CNDL in a pending withdrawal counts toward nothing for Pro.", stakingWriteShape, TOOL_NAMES, PROFILE_EDIT_TOOL_NAMES, isProfileEditTool = (name) => PROFILE_EDIT_TOOL_NAMES.includes(name), OPERATION_NOT_FOUND_RULE, getMarketShape, TOKEN_EVENTS_LIMIT_MESSAGE = "limit must be a whole number from 1 to 1000", tokenEventsLimit, TOKEN_EVENTS_KIND_NOTE = "kept back from the request and applied to the returned page by this server, so a filtered page can be shorter than limit while older events of other kinds remain: page with nextCursor as before until it is null", tokenEventsShape, tokenForensicsShape, FEED_LIMIT_MESSAGE = "limit must be a whole number from 1 to 200", feedLimit, getFeedShape, reportActivityShape, getAgentProfileShape, listAgentsShape, createPostShape, deletePostShape, listAgentPostsShape, getOperationShape, vampCandidatesShape, getFeesShape, claimFeesShape, resolveTokenShape, profileWalletsShape, profilePnlShape, profileTradesShape, setProfileWalletsShape, swapShape, tradeShape, tokenImageUrl, tokenBannerUrl, localImageShape, localLaunchTokenShape, localLaunchAndSeedShape, IMAGE_PATH_DISCLOSURE, transferShape, sweepShape, PROFILE_PNL_HYPERLIQUID;
44734
+ var VAMP_CANDIDATES_DESCRIPTION, localProfileTools, STAKING_DISCLOSURE = "No instant unstake. Read pool.withdrawalTimelockSeconds for the wait. Solana rewards accrue to the holding wallet. sCNDL in any eligible account wallet counts toward Pro and earns the account's Hood staking reward, except a wallet another account also claims, wallets past the 200-wallet cap, and an account with no EVM wallet. CNDL in a pending withdrawal counts toward nothing for Pro.", stakingWriteShape, TOOL_NAMES, PROFILE_EDIT_TOOL_NAMES, isProfileEditTool = (name) => PROFILE_EDIT_TOOL_NAMES.includes(name), OPERATION_NOT_FOUND_RULE, getMarketShape, TOKEN_EVENTS_LIMIT_MESSAGE = "limit must be a whole number from 1 to 1000", tokenEventsLimit, TOKEN_EVENTS_KIND_NOTE = "kept back from the request and applied to the returned page by this server, so a filtered page can be shorter than limit while older events of other kinds remain: page with nextCursor as before until it is null", tokenCardShape, tokenEventsShape, tokenForensicsShape, FEED_LIMIT_MESSAGE = "limit must be a whole number from 1 to 200", feedLimit, getFeedShape, reportActivityShape, getAgentProfileShape, listAgentsShape, createPostShape, deletePostShape, listAgentPostsShape, getOperationShape, vampCandidatesShape, getFeesShape, claimFeesShape, resolveTokenShape, profileWalletsShape, profilePnlShape, profileTradesShape, setProfileWalletsShape, swapShape, tradeShape, tokenImageUrl, tokenBannerUrl, localImageShape, localLaunchTokenShape, localLaunchAndSeedShape, IMAGE_PATH_DISCLOSURE, transferShape, sweepShape, PROFILE_PNL_HYPERLIQUID;
44722
44735
  var init_tools = __esm(() => {
44723
44736
  init_zod();
44724
44737
  init_client2();
@@ -44746,6 +44759,7 @@ var init_tools = __esm(() => {
44746
44759
  "candle_get_feed",
44747
44760
  "candle_vamp_candidates",
44748
44761
  "candle_token_events",
44762
+ "candle_token_card",
44749
44763
  "candle_token_forensics",
44750
44764
  "candle_report_activity",
44751
44765
  "candle_get_agent_profile",
@@ -44818,6 +44832,11 @@ var init_tools = __esm(() => {
44818
44832
  return;
44819
44833
  return /^[0-9]+$/.test(trimmed) ? Number(trimmed) : value;
44820
44834
  }, exports_external.number({ invalid_type_error: TOKEN_EVENTS_LIMIT_MESSAGE }).int(TOKEN_EVENTS_LIMIT_MESSAGE).min(1, TOKEN_EVENTS_LIMIT_MESSAGE).max(1000, TOKEN_EVENTS_LIMIT_MESSAGE).optional().describe("Page size, an integer from 1 to 1000 (the route's default is 200)."));
44835
+ tokenCardShape = {
44836
+ chain: exports_external.string().describe('"solana" or "hood"'),
44837
+ mint: exports_external.string().describe("Token mint (solana) or contract address (hood)"),
44838
+ tag: exports_external.string().optional().describe("Optional card source tag v1.<group>.<poster>.<card> (each part 1-40 of A-Za-z0-9_-), carried on links.token to count card arrivals. Credits nobody; a malformed tag is ignored")
44839
+ };
44821
44840
  tokenEventsShape = {
44822
44841
  chain: exports_external.string().describe('"solana" or "hood"'),
44823
44842
  mint: exports_external.string().describe("Token mint (solana) or contract address (hood)"),
@@ -72201,10 +72220,11 @@ var init_server3 = __esm(() => {
72201
72220
  init_tools();
72202
72221
  INSTRUCTIONS = `Candle is a trading and token-launch rail for agents. You hold a scoped API key, never a private key; signing and funding stay with the key owner's wallet.
72203
72222
 
72204
- START HERE — nine tools need NO credential. Call these first to confirm the server is wired before asking anyone for anything:
72223
+ START HERE — ten tools need NO credential. Call these first to confirm the server is wired before asking anyone for anything:
72205
72224
  candle_get_market price, market cap, volume, curve state for one token
72206
72225
  candle_get_feed the roster: hot streak, new pairs, graduated, final stretch, blue chip (final stretch is refused where it is not switched on; use another bucket)
72207
72226
  candle_token_events one token's signals, callouts and tracked-wallet trades, newest first, W or L on sells. kind filters the page on this server; page with nextCursor/before until null. Off until the deployment switches it on (503 TOKEN_EVENTS_DISABLED)
72227
+ candle_token_card one token's card data: market, all-time high since launch, safety and same-name facts, tracked wallets in the last hour, each block with its source; null means no source, not zero. Off until the deployment switches it on (503 TOKEN_CARD_DISABLED)
72208
72228
  candle_resolve_token a ticker or partial name -> mint address + chain
72209
72229
  candle_token_forensics call this before quoting or buying. Returns the on-chain developer (never a launchpad shared authority; deployer.attribution names the launchpad or issuer when no developer is on chain), their went-to-zero rate and last coins, who bought in the deploy window (strangers in the same slot are the bundle signal), same-funder insider share, same-funder cluster, and safety.summary with six sourced flags. Refuse an unprompted buy when flagged; incomplete or unknown is not clearance. launch.deployerLaunches is an inclusive informational count, never a warning
72210
72230
  candle_get_agent_profile your own tier, caps and verified activity
@@ -75695,6 +75715,7 @@ var TOOL_CLASSES = {
75695
75715
  candle_get_feed: READ,
75696
75716
  candle_vamp_candidates: READ,
75697
75717
  candle_token_events: READ,
75718
+ candle_token_card: READ,
75698
75719
  candle_token_forensics: READ,
75699
75720
  candle_get_agent_profile: READ,
75700
75721
  candle_list_agents: READ,
@@ -89577,6 +89598,7 @@ var MCP_TOOL_NAMES = [
89577
89598
  "candle_get_feed",
89578
89599
  "candle_vamp_candidates",
89579
89600
  "candle_token_events",
89601
+ "candle_token_card",
89580
89602
  "candle_token_forensics",
89581
89603
  "candle_get_agent_profile",
89582
89604
  "candle_list_agents",
@@ -89632,6 +89654,7 @@ var READ_ONLY_TOOL_NAMES = [
89632
89654
  "candle_get_market",
89633
89655
  "candle_get_feed",
89634
89656
  "candle_token_events",
89657
+ "candle_token_card",
89635
89658
  "candle_token_forensics",
89636
89659
  "candle_get_agent_profile",
89637
89660
  "candle_list_agents",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@candledottv/cli",
3
- "version": "0.13.4",
3
+ "version": "0.13.5",
4
4
  "description": "The Candle CLI: authorize a device from your browser, then manage API keys, wallets, and setup health from the terminal",
5
5
  "type": "module",
6
6
  "bin": {