moshcode 0.25.1 → 0.27.0

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.
@@ -289,6 +289,78 @@ export const CORE_CLI_COMMANDS = [
289
289
  seeAlso: ["tools", "install"],
290
290
  note: "buy/sell inject --dry-run unless --submit is present. Alpaca defaults to paper trading; live trading requires its separate --live opt-in.",
291
291
  },
292
+ {
293
+ name: "ticker",
294
+ group: "tools",
295
+ description: "equity research from advis0r.com",
296
+ synopsis: [
297
+ ["moshcode ticker <symbol>", "the stored research report for one ticker"],
298
+ ["moshcode ticker <verb> [args…]", ""],
299
+ ],
300
+ verbs: "TICKER_VERBS",
301
+ flags: [
302
+ ["--json", "print the raw API response", ""],
303
+ ["--limit <n>", "cap results (search/lookup/reports/discover)", "the API's own default"],
304
+ ["--sort <s>", "reports order: recent | score | ticker", "score"],
305
+ ["--horizon <n>", "discover: quarters to look ahead (1 or 2)", "2"],
306
+ ["--provider <p>", "discover: analysis provider", "offline"],
307
+ ],
308
+ examples: [
309
+ ["moshcode ticker NVDA", "score, technicals, thesis, signals, sources"],
310
+ ["moshcode ticker lookup rivian", "company name → RIVN"],
311
+ ["moshcode ticker signals AAPL", "what was actually said, with sources"],
312
+ ["moshcode ticker search 'data center'", "across every indexed transcript"],
313
+ ["moshcode ticker reports --limit 10", "the stored index, best score first"],
314
+ ],
315
+ seeAlso: ["trade", "plugin", "tools"],
316
+ note: "research aid, not advice — reports are stored snapshots and every one prints when it was generated. Set MOSHCODE_ADVISOR_URL to point at another instance.",
317
+ },
318
+ { name: "advisor", aliasOf: "ticker", description: "alias for ticker" },
319
+ {
320
+ name: "crypto",
321
+ group: "tools",
322
+ description: "crypto market data from advis0r.com",
323
+ synopsis: [
324
+ ["moshcode crypto <pair>", "the full report for one pair"],
325
+ ["moshcode crypto <verb> [args…]", ""],
326
+ ],
327
+ verbs: "CRYPTO_VERBS",
328
+ flags: [
329
+ ["--json", "print the raw API response", ""],
330
+ ["--timeframe <tf>", "bars: 1Min | 5Min | 15Min | 1Hour | 1Day | 1Week", "1Day"],
331
+ ["--start <iso>", "bars: window start", "the API's own default"],
332
+ ["--end <iso>", "bars: window end", "now"],
333
+ ["--limit <n>", "cap results (bars/lookup)", "the API's own default"],
334
+ ["--depth <n>", "book: levels per side", "10"],
335
+ ["--period <p>", "spark: 24h | 7d", "24h"],
336
+ ["--horizon <n>", "technicals: quarters the score looks ahead (1 or 2)", "2"],
337
+ ],
338
+ examples: [
339
+ ["moshcode crypto BTC", "price, technicals, score, supply, order book"],
340
+ ["moshcode crypto lookup bitcoin", "asset name → BTC/USD"],
341
+ ["moshcode crypto spark BTC ETH SOL", "24h closes as sparklines"],
342
+ ["moshcode crypto bars ETH --timeframe 1Hour", "historical OHLCV"],
343
+ ["moshcode crypto book BTC-USD --depth 5", "top of book, both sides"],
344
+ ],
345
+ seeAlso: ["ticker", "trade", "plugin"],
346
+ note: "research aid, not advice — prices are Alpaca's US crypto venue alone and can differ materially from other exchanges. Crypto trades 24/7 with no circuit breakers. Set MOSHCODE_ADVISOR_URL to point at another instance.",
347
+ },
348
+ { name: "coins", aliasOf: "crypto", description: "alias for crypto" },
349
+ {
350
+ name: "plugin",
351
+ group: "extend",
352
+ description: "install moshcode's slash commands into Claude Code",
353
+ synopsis: [["moshcode plugin <verb> [name]", ""]],
354
+ verbs: "PLUGIN_VERBS",
355
+ flags: [["--json", "machine-readable", ""]],
356
+ examples: [
357
+ ["moshcode plugin install", "add the marketplace and install ticker"],
358
+ ["moshcode plugin list", "what this marketplace ships, and what is installed"],
359
+ ],
360
+ seeAlso: ["skill", "mcp", "ticker"],
361
+ note: "Claude Code is the only engine with a plugin primitive; the others are reported as skipped, exactly as they are for skills.",
362
+ },
363
+ { name: "plugins", aliasOf: "plugin", description: "alias for plugin" },
292
364
  {
293
365
  name: "commands",
294
366
  group: "script",
@@ -466,6 +538,87 @@ export const DNS_VERBS = [
466
538
  { name: "trust", description: "trust one name's certificate, after checking it against the registry pin" },
467
539
  ];
468
540
 
541
+ /**
542
+ * `ticker`'s verbs.
543
+ *
544
+ * `report` exists so a symbol that collides with a verb name still has an
545
+ * unambiguous spelling; without it, the bare-symbol shortcut would have no
546
+ * escape hatch. src/advisor.mjs owns the parser and test/advisor.test.mjs
547
+ * fails when the two lists disagree.
548
+ */
549
+ export const TICKER_VERBS = [
550
+ { name: "report", description: "the stored research report for one ticker", synopsis: [["moshcode ticker report <symbol>", "same as `moshcode ticker <symbol>`"]] },
551
+ { name: "signals", description: "every extracted signal for a ticker", synopsis: [["moshcode ticker signals <symbol>", ""]] },
552
+ {
553
+ name: "search", description: "full-text search across indexed transcripts",
554
+ synopsis: [["moshcode ticker search <words…> [--limit n]", ""]],
555
+ },
556
+ {
557
+ name: "lookup", description: "find a ticker by company name",
558
+ synopsis: [["moshcode ticker lookup <company…> [--limit n]", "rivian → RIVN"]],
559
+ },
560
+ {
561
+ name: "reports", description: "every stored report",
562
+ synopsis: [["moshcode ticker reports [--sort recent|score|ticker] [--limit n]", ""]],
563
+ },
564
+ {
565
+ name: "discover", description: "a ranked watchlist for a topic",
566
+ synopsis: [["moshcode ticker discover [topic…] [--horizon 1|2] [--provider p] [--limit n]", ""]],
567
+ note: "ranks by analyzing each candidate — this one takes minutes, not milliseconds.",
568
+ },
569
+ { name: "tickers", description: "every ticker present in the index", synopsis: [["moshcode ticker tickers", ""]] },
570
+ { name: "stats", description: "index coverage counts", synopsis: [["moshcode ticker stats", ""]] },
571
+ { name: "open", description: "open the shareable report page in a browser", synopsis: [["moshcode ticker open <symbol>", ""]] },
572
+ ];
573
+
574
+ /**
575
+ * `crypto`'s verbs.
576
+ *
577
+ * `report` earns its place for the same reason ticker's does — a bare pair is
578
+ * the shortcut, so a pair that collides with a verb name needs a spelling that
579
+ * cannot be mistaken for one. src/crypto.mjs owns the parser and
580
+ * test/crypto.test.mjs fails when the two lists disagree.
581
+ */
582
+ export const CRYPTO_VERBS = [
583
+ { name: "report", description: "the full report for one pair", synopsis: [["moshcode crypto report <pair>", "same as `moshcode crypto <pair>`"]] },
584
+ { name: "quote", description: "latest trade and quote, with the bid/ask spread", synopsis: [["moshcode crypto quote <pair>", ""]] },
585
+ {
586
+ name: "snapshot", description: "trade, quote and daily bars for several pairs",
587
+ synopsis: [["moshcode crypto snapshot <pair…>", "up to 20 pairs"]],
588
+ },
589
+ {
590
+ name: "technicals", description: "indicators and the technical score",
591
+ synopsis: [["moshcode crypto technicals <pair> [--horizon 1|2]", ""]],
592
+ },
593
+ {
594
+ name: "bars", description: "historical OHLCV",
595
+ synopsis: [["moshcode crypto bars <pair> [--timeframe tf] [--start iso] [--end iso] [--limit n]", ""]],
596
+ },
597
+ { name: "book", description: "top of the order book, both sides", synopsis: [["moshcode crypto book <pair> [--depth n]", ""]] },
598
+ {
599
+ name: "spark", description: "recent closes, drawn as sparklines",
600
+ synopsis: [["moshcode crypto spark <pair…> [--period 24h|7d]", ""]],
601
+ },
602
+ { name: "assets", description: "every supported pair", synopsis: [["moshcode crypto assets", ""]] },
603
+ {
604
+ name: "lookup", description: "find a pair by asset name",
605
+ synopsis: [["moshcode crypto lookup <name…> [--limit n]", "bitcoin → BTC/USD"]],
606
+ },
607
+ { name: "open", description: "open the shareable page in a browser", synopsis: [["moshcode crypto open <pair>", ""]] },
608
+ ];
609
+
610
+ export const PLUGIN_VERBS = [
611
+ {
612
+ name: "install", description: "add the marketplace and install a plugin",
613
+ synopsis: [
614
+ ["moshcode plugin install", "the default plugin (ticker)"],
615
+ ["moshcode plugin install <name>", ""],
616
+ ],
617
+ },
618
+ { name: "list", description: "show what the marketplace ships and what is installed", synopsis: [["moshcode plugin list [--json]", ""]] },
619
+ { name: "remove", description: "uninstall a plugin from Claude Code", synopsis: [["moshcode plugin remove <name>", ""]] },
620
+ ];
621
+
469
622
  /** Sub-verb tables, by the name a command's `verbs` field refers to. */
470
623
  export const VERB_TABLES = {
471
624
  MCP_VERBS,
@@ -473,6 +626,9 @@ export const VERB_TABLES = {
473
626
  UPGRADE_TARGETS,
474
627
  DNS_VERBS,
475
628
  TRADE_VERBS,
629
+ TICKER_VERBS,
630
+ CRYPTO_VERBS,
631
+ PLUGIN_VERBS,
476
632
  };
477
633
 
478
634
  /**
@@ -499,6 +655,16 @@ export const PIT_COMMANDS = [
499
655
  description: "list workflow tools, or run one" },
500
656
  { name: "trade", args: "<verb> [args…]", cli: "trade",
501
657
  description: "look up markets and preview/place Alpaca orders" },
658
+ { name: "ticker", aliases: ["advisor"], args: "<symbol|verb> [args…]", cli: "ticker",
659
+ description: "equity research from advis0r.com" },
660
+ { name: "crypto", aliases: ["coins"], args: "<pair|verb> [args…]", cli: "crypto",
661
+ description: "crypto market data from advis0r.com" },
662
+ { name: "plugin", aliases: ["plugins"], args: "<verb> [name]", cli: "plugin",
663
+ description: "install moshcode's slash commands into Claude Code" },
664
+ { name: "socials", aliases: ["social"], pitOnly: true,
665
+ description: "list social networks available for posting" },
666
+ { name: "post", args: '<social> "message"', pitOnly: true,
667
+ description: "open a social composer with a prepared post" },
502
668
  { name: "install", args: "<engine|tool>", cli: "install",
503
669
  description: "install an engine or workflow tool" },
504
670
  { name: "upgrade", aliases: ["update"], args: "[name…]", cli: "upgrade",