@alva-ai/toolkit 0.4.3 → 0.7.0-beta.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.
package/dist/index.js CHANGED
@@ -209,6 +209,25 @@ var DeployResource = class {
209
209
  `/api/v1/deploy/cronjob/${params.id}/resume`
210
210
  );
211
211
  }
212
+ /**
213
+ * Fire the cronjob workflow once, immediately, bypassing the schedule.
214
+ * Async — returns the Hatchet workflow run id at enqueue. The
215
+ * `cronjob_runs` row appears only after the worker finishes the run;
216
+ * callers verify completion by polling `listRuns({cronjob_id})` and
217
+ * matching `runs[].workflow_run_id` against the returned id.
218
+ *
219
+ * Surfaces backend status as HTTP errors (handled by AlvaClient):
220
+ * - 404 not found / cross-user
221
+ * - 412 cronjob is paused (resume before triggering)
222
+ * - 503 worker workflow handle not yet connected (startup race)
223
+ */
224
+ async trigger(params) {
225
+ this.client._requireAuth();
226
+ return this.client._request(
227
+ "POST",
228
+ `/api/v1/deploy/cronjob/${params.id}/trigger`
229
+ );
230
+ }
212
231
  async listRuns(params) {
213
232
  this.client._requireAuth();
214
233
  return this.client._request(
@@ -255,7 +274,8 @@ var ReleaseResource = class {
255
274
  display_name: params.display_name,
256
275
  description: params.description,
257
276
  feeds: params.feeds,
258
- trading_symbols: params.trading_symbols
277
+ trading_symbols: params.trading_symbols,
278
+ template_id: params.template_id
259
279
  }
260
280
  });
261
281
  }
@@ -266,7 +286,8 @@ var ReleaseResource = class {
266
286
  name: params.name,
267
287
  version: params.version,
268
288
  feeds: params.feeds,
269
- changelog: params.changelog
289
+ changelog: params.changelog,
290
+ readme_url: params.readme_url
270
291
  }
271
292
  });
272
293
  }
@@ -339,8 +360,1060 @@ var SdkDocsResource = class {
339
360
  }
340
361
  };
341
362
 
342
- // src/resources/skills.ts
343
- var SkillsResource = class {
363
+ // src/resources/skillTiers.ts
364
+ var SKILL_ENDPOINT_METADATA = [
365
+ {
366
+ skill: "arrays-data-api-spot-market-price-and-volume",
367
+ file: "crypto-detail",
368
+ method: "GET",
369
+ path: "/api/v1/crypto/detail",
370
+ tier: "public",
371
+ required_subscription_tier: "free",
372
+ access: "free_and_pro",
373
+ pro_required: false
374
+ },
375
+ {
376
+ skill: "arrays-data-api-crypto-metrics-and-screener",
377
+ file: "fear-greed-index",
378
+ method: "GET",
379
+ path: "/api/v1/crypto/fear-greed-index",
380
+ tier: "public",
381
+ required_subscription_tier: "free",
382
+ access: "free_and_pro",
383
+ pro_required: false
384
+ },
385
+ {
386
+ skill: "arrays-data-api-crypto-futures-data",
387
+ file: "funding-rate",
388
+ method: "GET",
389
+ path: "/api/v1/crypto/funding-rate",
390
+ tier: "public",
391
+ required_subscription_tier: "free",
392
+ access: "free_and_pro",
393
+ pro_required: false
394
+ },
395
+ {
396
+ skill: "arrays-data-api-spot-market-price-and-volume",
397
+ file: "crypto-futures-ohlcv",
398
+ method: "GET",
399
+ path: "/api/v1/crypto/futures/ohlcv",
400
+ tier: "public",
401
+ required_subscription_tier: "free",
402
+ access: "free_and_pro",
403
+ pro_required: false
404
+ },
405
+ {
406
+ skill: "arrays-data-api-spot-market-price-and-volume",
407
+ file: "crypto-kline",
408
+ method: "GET",
409
+ path: "/api/v1/crypto/kline",
410
+ tier: "public",
411
+ required_subscription_tier: "free",
412
+ access: "free_and_pro",
413
+ pro_required: false
414
+ },
415
+ {
416
+ skill: "arrays-data-api-crypto-metrics-and-screener",
417
+ file: "list",
418
+ method: "GET",
419
+ path: "/api/v1/crypto/list",
420
+ tier: "public",
421
+ required_subscription_tier: "free",
422
+ access: "free_and_pro",
423
+ pro_required: false
424
+ },
425
+ {
426
+ skill: "arrays-data-api-crypto-futures-data",
427
+ file: "long-short-ratio",
428
+ method: "GET",
429
+ path: "/api/v1/crypto/long-short-ratio",
430
+ tier: "public",
431
+ required_subscription_tier: "free",
432
+ access: "free_and_pro",
433
+ pro_required: false
434
+ },
435
+ {
436
+ skill: "arrays-data-api-crypto-metrics-and-screener",
437
+ file: "crypto-market-cap",
438
+ method: "GET",
439
+ path: "/api/v1/crypto/market-cap",
440
+ tier: "public",
441
+ required_subscription_tier: "free",
442
+ access: "free_and_pro",
443
+ pro_required: false
444
+ },
445
+ {
446
+ skill: "arrays-data-api-crypto-metrics-and-screener",
447
+ file: "market-metrics",
448
+ method: "GET",
449
+ path: "/api/v1/crypto/market-metrics",
450
+ tier: "public",
451
+ required_subscription_tier: "free",
452
+ access: "free_and_pro",
453
+ pro_required: false
454
+ },
455
+ {
456
+ skill: "arrays-data-api-spot-market-price-and-volume",
457
+ file: "crypto-ohlcv",
458
+ method: "GET",
459
+ path: "/api/v1/crypto/ohlcv",
460
+ tier: "public",
461
+ required_subscription_tier: "free",
462
+ access: "free_and_pro",
463
+ pro_required: false
464
+ },
465
+ {
466
+ skill: "arrays-data-api-crypto-futures-data",
467
+ file: "open-interest",
468
+ method: "GET",
469
+ path: "/api/v1/crypto/open-interest",
470
+ tier: "public",
471
+ required_subscription_tier: "free",
472
+ access: "free_and_pro",
473
+ pro_required: false
474
+ },
475
+ {
476
+ skill: "arrays-data-api-crypto-metrics-and-screener",
477
+ file: "screener-metrics",
478
+ method: "GET",
479
+ path: "/api/v1/crypto/screener/metrics",
480
+ tier: "public",
481
+ required_subscription_tier: "free",
482
+ access: "free_and_pro",
483
+ pro_required: false
484
+ },
485
+ {
486
+ skill: "arrays-data-api-crypto-metrics-and-screener",
487
+ file: "screener-metrics-timerange",
488
+ method: "GET",
489
+ path: "/api/v1/crypto/screener/metrics/timerange",
490
+ tier: "public",
491
+ required_subscription_tier: "free",
492
+ access: "free_and_pro",
493
+ pro_required: false
494
+ },
495
+ {
496
+ skill: "arrays-data-api-crypto-metrics-and-screener",
497
+ file: "trading-pair",
498
+ method: "GET",
499
+ path: "/api/v1/crypto/trading-pair",
500
+ tier: "public",
501
+ required_subscription_tier: "free",
502
+ access: "free_and_pro",
503
+ pro_required: false
504
+ },
505
+ {
506
+ skill: "arrays-data-api-etf-fundamentals",
507
+ file: "country-weightings",
508
+ method: "GET",
509
+ path: "/api/v1/etf/country-weightings",
510
+ tier: "public",
511
+ required_subscription_tier: "free",
512
+ access: "free_and_pro",
513
+ pro_required: false
514
+ },
515
+ {
516
+ skill: "arrays-data-api-etf-fundamentals",
517
+ file: "holdings",
518
+ method: "GET",
519
+ path: "/api/v1/etf/holdings",
520
+ tier: "public",
521
+ required_subscription_tier: "free",
522
+ access: "free_and_pro",
523
+ pro_required: false
524
+ },
525
+ {
526
+ skill: "arrays-data-api-etf-fundamentals",
527
+ file: "info",
528
+ method: "GET",
529
+ path: "/api/v1/etf/info",
530
+ tier: "public",
531
+ required_subscription_tier: "free",
532
+ access: "free_and_pro",
533
+ pro_required: false
534
+ },
535
+ {
536
+ skill: "arrays-data-api-etf-fundamentals",
537
+ file: "sector-weightings",
538
+ method: "GET",
539
+ path: "/api/v1/etf/sector-weightings",
540
+ tier: "public",
541
+ required_subscription_tier: "free",
542
+ access: "free_and_pro",
543
+ pro_required: false
544
+ },
545
+ {
546
+ skill: "arrays-data-api-macro-and-economics",
547
+ file: "macro-commodity-historical",
548
+ method: "GET",
549
+ path: "/api/v1/macro/commodity/historical",
550
+ tier: "public",
551
+ required_subscription_tier: "free",
552
+ access: "free_and_pro",
553
+ pro_required: false
554
+ },
555
+ {
556
+ skill: "arrays-data-api-macro-and-economics",
557
+ file: "macro-commodity-real-time",
558
+ method: "GET",
559
+ path: "/api/v1/macro/commodity/real-time",
560
+ tier: "public",
561
+ required_subscription_tier: "free",
562
+ access: "free_and_pro",
563
+ pro_required: false
564
+ },
565
+ {
566
+ skill: "arrays-data-api-macro-and-economics",
567
+ file: "macro-commodity-symbol-list",
568
+ method: "GET",
569
+ path: "/api/v1/macro/commodity/symbols",
570
+ tier: "public",
571
+ required_subscription_tier: "free",
572
+ access: "free_and_pro",
573
+ pro_required: false
574
+ },
575
+ {
576
+ skill: "arrays-data-api-macro-and-economics",
577
+ file: "economic-indicators",
578
+ method: "GET",
579
+ path: "/api/v1/macro/economic-indicators",
580
+ tier: "public",
581
+ required_subscription_tier: "free",
582
+ access: "free_and_pro",
583
+ pro_required: false
584
+ },
585
+ {
586
+ skill: "arrays-data-api-macro-and-economics",
587
+ file: "macro-forex-historical",
588
+ method: "GET",
589
+ path: "/api/v1/macro/forex/historical",
590
+ tier: "public",
591
+ required_subscription_tier: "free",
592
+ access: "free_and_pro",
593
+ pro_required: false
594
+ },
595
+ {
596
+ skill: "arrays-data-api-macro-and-economics",
597
+ file: "macro-forex-real-time",
598
+ method: "GET",
599
+ path: "/api/v1/macro/forex/real-time",
600
+ tier: "public",
601
+ required_subscription_tier: "free",
602
+ access: "free_and_pro",
603
+ pro_required: false
604
+ },
605
+ {
606
+ skill: "arrays-data-api-macro-and-economics",
607
+ file: "macro-forex-symbol-list",
608
+ method: "GET",
609
+ path: "/api/v1/macro/forex/symbols",
610
+ tier: "public",
611
+ required_subscription_tier: "free",
612
+ access: "free_and_pro",
613
+ pro_required: false
614
+ },
615
+ {
616
+ skill: "arrays-data-api-macro-and-economics",
617
+ file: "macro-index-historical",
618
+ method: "GET",
619
+ path: "/api/v1/macro/index/historical",
620
+ tier: "public",
621
+ required_subscription_tier: "free",
622
+ access: "free_and_pro",
623
+ pro_required: false
624
+ },
625
+ {
626
+ skill: "arrays-data-api-macro-and-economics",
627
+ file: "macro-index-real-time",
628
+ method: "GET",
629
+ path: "/api/v1/macro/index/real-time",
630
+ tier: "public",
631
+ required_subscription_tier: "free",
632
+ access: "free_and_pro",
633
+ pro_required: false
634
+ },
635
+ {
636
+ skill: "arrays-data-api-macro-and-economics",
637
+ file: "rates",
638
+ method: "GET",
639
+ path: "/api/v1/macro/treasury-rates",
640
+ tier: "public",
641
+ required_subscription_tier: "free",
642
+ access: "free_and_pro",
643
+ pro_required: false
644
+ },
645
+ {
646
+ skill: "arrays-data-api-equity-fundamentals",
647
+ file: "company-balance-sheets",
648
+ method: "GET",
649
+ path: "/api/v1/stocks/company/balance-sheets",
650
+ tier: "public",
651
+ required_subscription_tier: "free",
652
+ access: "free_and_pro",
653
+ pro_required: false
654
+ },
655
+ {
656
+ skill: "arrays-data-api-equity-fundamentals",
657
+ file: "company-cashflow-statements",
658
+ method: "GET",
659
+ path: "/api/v1/stocks/company/cashflow-statements",
660
+ tier: "public",
661
+ required_subscription_tier: "free",
662
+ access: "free_and_pro",
663
+ pro_required: false
664
+ },
665
+ {
666
+ skill: "arrays-data-api-equity-fundamentals",
667
+ file: "company-detail",
668
+ method: "GET",
669
+ path: "/api/v1/stocks/company/detail",
670
+ tier: "public",
671
+ required_subscription_tier: "free",
672
+ access: "free_and_pro",
673
+ pro_required: false
674
+ },
675
+ {
676
+ skill: "arrays-data-api-equity-fundamentals",
677
+ file: "company-income-statements",
678
+ method: "GET",
679
+ path: "/api/v1/stocks/company/income-statements",
680
+ tier: "public",
681
+ required_subscription_tier: "free",
682
+ access: "free_and_pro",
683
+ pro_required: false
684
+ },
685
+ {
686
+ skill: "arrays-data-api-equity-fundamentals",
687
+ file: "company-kpi",
688
+ method: "GET",
689
+ path: "/api/v1/stocks/company/kpi",
690
+ tier: "public",
691
+ required_subscription_tier: "free",
692
+ access: "free_and_pro",
693
+ pro_required: false
694
+ },
695
+ {
696
+ skill: "arrays-data-api-equity-events",
697
+ file: "crowdfunding-offerings",
698
+ method: "GET",
699
+ path: "/api/v1/stocks/crowdfunding/offerings",
700
+ tier: "public",
701
+ required_subscription_tier: "free",
702
+ access: "free_and_pro",
703
+ pro_required: false
704
+ },
705
+ {
706
+ skill: "arrays-data-api-equity-events",
707
+ file: "dividends",
708
+ method: "GET",
709
+ path: "/api/v1/stocks/dividends",
710
+ tier: "public",
711
+ required_subscription_tier: "free",
712
+ access: "free_and_pro",
713
+ pro_required: false
714
+ },
715
+ {
716
+ skill: "arrays-data-api-equity-events",
717
+ file: "earnings-calendar",
718
+ method: "GET",
719
+ path: "/api/v1/stocks/earnings-calendar",
720
+ tier: "public",
721
+ required_subscription_tier: "free",
722
+ access: "free_and_pro",
723
+ pro_required: false
724
+ },
725
+ {
726
+ skill: "arrays-data-api-equity-events",
727
+ file: "equity-offering",
728
+ method: "GET",
729
+ path: "/api/v1/stocks/equity-offering",
730
+ tier: "public",
731
+ required_subscription_tier: "free",
732
+ access: "free_and_pro",
733
+ pro_required: false
734
+ },
735
+ {
736
+ skill: "arrays-data-api-stock-metrics",
737
+ file: "financial-metrics",
738
+ method: "GET",
739
+ path: "/api/v1/stocks/financial-metrics",
740
+ tier: "public",
741
+ required_subscription_tier: "free",
742
+ access: "free_and_pro",
743
+ pro_required: false
744
+ },
745
+ {
746
+ skill: "arrays-data-api-equity-fundamentals",
747
+ file: "fiscal-dates",
748
+ method: "GET",
749
+ path: "/api/v1/stocks/fiscal-dates",
750
+ tier: "public",
751
+ required_subscription_tier: "free",
752
+ access: "free_and_pro",
753
+ pro_required: false
754
+ },
755
+ {
756
+ skill: "arrays-data-api-equity-fundamentals",
757
+ file: "fiscal-dates-range",
758
+ method: "GET",
759
+ path: "/api/v1/stocks/fiscal-dates/range",
760
+ tier: "public",
761
+ required_subscription_tier: "free",
762
+ access: "free_and_pro",
763
+ pro_required: false
764
+ },
765
+ {
766
+ skill: "arrays-data-api-equity-events",
767
+ file: "ipo-calendar",
768
+ method: "GET",
769
+ path: "/api/v1/stocks/ipo-calendar",
770
+ tier: "public",
771
+ required_subscription_tier: "free",
772
+ access: "free_and_pro",
773
+ pro_required: false
774
+ },
775
+ {
776
+ skill: "arrays-data-api-equity-events",
777
+ file: "ipo-confirmed-calendar",
778
+ method: "GET",
779
+ path: "/api/v1/stocks/ipo-confirmed-calendar",
780
+ tier: "public",
781
+ required_subscription_tier: "free",
782
+ access: "free_and_pro",
783
+ pro_required: false
784
+ },
785
+ {
786
+ skill: "arrays-data-api-spot-market-price-and-volume",
787
+ file: "stocks-kline",
788
+ method: "GET",
789
+ path: "/api/v1/stocks/kline",
790
+ tier: "public",
791
+ required_subscription_tier: "free",
792
+ access: "free_and_pro",
793
+ pro_required: false
794
+ },
795
+ {
796
+ skill: "arrays-data-api-stock-metrics",
797
+ file: "market-metrics",
798
+ method: "GET",
799
+ path: "/api/v1/stocks/market-metrics",
800
+ tier: "public",
801
+ required_subscription_tier: "free",
802
+ access: "free_and_pro",
803
+ pro_required: false
804
+ },
805
+ {
806
+ skill: "arrays-data-api-equity-events",
807
+ file: "mergers-acquisitions",
808
+ method: "GET",
809
+ path: "/api/v1/stocks/mergers-acquisitions",
810
+ tier: "public",
811
+ required_subscription_tier: "free",
812
+ access: "free_and_pro",
813
+ pro_required: false
814
+ },
815
+ {
816
+ skill: "arrays-data-api-equity-fundamentals",
817
+ file: "outstanding-shares",
818
+ method: "GET",
819
+ path: "/api/v1/stocks/outstanding-shares",
820
+ tier: "public",
821
+ required_subscription_tier: "free",
822
+ access: "free_and_pro",
823
+ pro_required: false
824
+ },
825
+ {
826
+ skill: "arrays-data-api-stock-metrics",
827
+ file: "ratings",
828
+ method: "GET",
829
+ path: "/api/v1/stocks/ratings",
830
+ tier: "public",
831
+ required_subscription_tier: "free",
832
+ access: "free_and_pro",
833
+ pro_required: false
834
+ },
835
+ {
836
+ skill: "arrays-data-api-stock-screener",
837
+ file: "basic-info-screener",
838
+ method: "GET",
839
+ path: "/api/v1/stocks/screener/basic-info/{sub}",
840
+ tier: "public",
841
+ required_subscription_tier: "free",
842
+ access: "free_and_pro",
843
+ pro_required: false
844
+ },
845
+ {
846
+ skill: "arrays-data-api-stock-screener",
847
+ file: "event-screener",
848
+ method: "GET",
849
+ path: "/api/v1/stocks/screener/events",
850
+ tier: "public",
851
+ required_subscription_tier: "free",
852
+ access: "free_and_pro",
853
+ pro_required: false
854
+ },
855
+ {
856
+ skill: "arrays-data-api-stock-screener",
857
+ file: "screener-financial-metrics",
858
+ method: "GET",
859
+ path: "/api/v1/stocks/screener/financial-metrics",
860
+ tier: "public",
861
+ required_subscription_tier: "free",
862
+ access: "free_and_pro",
863
+ pro_required: false
864
+ },
865
+ {
866
+ skill: "arrays-data-api-stock-screener",
867
+ file: "screener-financial-metrics-timerange",
868
+ method: "GET",
869
+ path: "/api/v1/stocks/screener/financial-metrics/timerange",
870
+ tier: "public",
871
+ required_subscription_tier: "free",
872
+ access: "free_and_pro",
873
+ pro_required: false
874
+ },
875
+ {
876
+ skill: "arrays-data-api-stock-screener",
877
+ file: "screener-technical-metrics",
878
+ method: "GET",
879
+ path: "/api/v1/stocks/screener/technical-metrics",
880
+ tier: "public",
881
+ required_subscription_tier: "free",
882
+ access: "free_and_pro",
883
+ pro_required: false
884
+ },
885
+ {
886
+ skill: "arrays-data-api-stock-screener",
887
+ file: "screener-technical-metrics-timerange",
888
+ method: "GET",
889
+ path: "/api/v1/stocks/screener/technical-metrics/timerange",
890
+ tier: "public",
891
+ required_subscription_tier: "free",
892
+ access: "free_and_pro",
893
+ pro_required: false
894
+ },
895
+ {
896
+ skill: "arrays-data-api-equity-events",
897
+ file: "sec-earnings-release",
898
+ method: "GET",
899
+ path: "/api/v1/stocks/sec-earnings-release",
900
+ tier: "public",
901
+ required_subscription_tier: "free",
902
+ access: "free_and_pro",
903
+ pro_required: false
904
+ },
905
+ {
906
+ skill: "arrays-data-api-equity-fundamentals",
907
+ file: "shares-float",
908
+ method: "GET",
909
+ path: "/api/v1/stocks/shares-float",
910
+ tier: "public",
911
+ required_subscription_tier: "free",
912
+ access: "free_and_pro",
913
+ pro_required: false
914
+ },
915
+ {
916
+ skill: "arrays-data-api-equity-events",
917
+ file: "splits",
918
+ method: "GET",
919
+ path: "/api/v1/stocks/splits",
920
+ tier: "public",
921
+ required_subscription_tier: "free",
922
+ access: "free_and_pro",
923
+ pro_required: false
924
+ },
925
+ {
926
+ skill: "arrays-data-api-crypto-exchange-flow",
927
+ file: "exchange-flows",
928
+ method: "GET",
929
+ path: "/api/v1/crypto/exchange-flows",
930
+ tier: "alternative",
931
+ required_subscription_tier: "pro",
932
+ access: "pro_only",
933
+ pro_required: true
934
+ },
935
+ {
936
+ skill: "arrays-data-api-company-crypto-holdings",
937
+ file: "crypto-holdings",
938
+ method: "GET",
939
+ path: "/api/v1/crypto/holdings",
940
+ tier: "alternative",
941
+ required_subscription_tier: "pro",
942
+ access: "pro_only",
943
+ pro_required: true
944
+ },
945
+ {
946
+ skill: "arrays-data-api-crypto-metrics-and-screener",
947
+ file: "metrics-inflow-cdd",
948
+ method: "GET",
949
+ path: "/api/v1/crypto/metrics/inflow-cdd",
950
+ tier: "alternative",
951
+ required_subscription_tier: "pro",
952
+ access: "pro_only",
953
+ pro_required: true
954
+ },
955
+ {
956
+ skill: "arrays-data-api-crypto-metrics-and-screener",
957
+ file: "metrics-leverage-ratio",
958
+ method: "GET",
959
+ path: "/api/v1/crypto/metrics/leverage-ratio",
960
+ tier: "alternative",
961
+ required_subscription_tier: "pro",
962
+ access: "pro_only",
963
+ pro_required: true
964
+ },
965
+ {
966
+ skill: "arrays-data-api-crypto-metrics-and-screener",
967
+ file: "metrics-miner-to-exchange",
968
+ method: "GET",
969
+ path: "/api/v1/crypto/metrics/miner-to-exchange",
970
+ tier: "alternative",
971
+ required_subscription_tier: "pro",
972
+ access: "pro_only",
973
+ pro_required: true
974
+ },
975
+ {
976
+ skill: "arrays-data-api-crypto-metrics-and-screener",
977
+ file: "metrics-mvrv",
978
+ method: "GET",
979
+ path: "/api/v1/crypto/metrics/mvrv",
980
+ tier: "alternative",
981
+ required_subscription_tier: "pro",
982
+ access: "pro_only",
983
+ pro_required: true
984
+ },
985
+ {
986
+ skill: "arrays-data-api-crypto-metrics-and-screener",
987
+ file: "metrics-nupl",
988
+ method: "GET",
989
+ path: "/api/v1/crypto/metrics/nupl",
990
+ tier: "alternative",
991
+ required_subscription_tier: "pro",
992
+ access: "pro_only",
993
+ pro_required: true
994
+ },
995
+ {
996
+ skill: "arrays-data-api-crypto-metrics-and-screener",
997
+ file: "metrics-puell-multiple",
998
+ method: "GET",
999
+ path: "/api/v1/crypto/metrics/puell-multiple",
1000
+ tier: "alternative",
1001
+ required_subscription_tier: "pro",
1002
+ access: "pro_only",
1003
+ pro_required: true
1004
+ },
1005
+ {
1006
+ skill: "arrays-data-api-crypto-metrics-and-screener",
1007
+ file: "metrics-realized-price",
1008
+ method: "GET",
1009
+ path: "/api/v1/crypto/metrics/realized-price",
1010
+ tier: "alternative",
1011
+ required_subscription_tier: "pro",
1012
+ access: "pro_only",
1013
+ pro_required: true
1014
+ },
1015
+ {
1016
+ skill: "arrays-data-api-crypto-metrics-and-screener",
1017
+ file: "metrics-sopr",
1018
+ method: "GET",
1019
+ path: "/api/v1/crypto/metrics/sopr",
1020
+ tier: "alternative",
1021
+ required_subscription_tier: "pro",
1022
+ access: "pro_only",
1023
+ pro_required: true
1024
+ },
1025
+ {
1026
+ skill: "arrays-data-api-crypto-metrics-and-screener",
1027
+ file: "metrics-ssr",
1028
+ method: "GET",
1029
+ path: "/api/v1/crypto/metrics/ssr",
1030
+ tier: "alternative",
1031
+ required_subscription_tier: "pro",
1032
+ access: "pro_only",
1033
+ pro_required: true
1034
+ },
1035
+ {
1036
+ skill: "arrays-data-api-crypto-metrics-and-screener",
1037
+ file: "metrics-whale-ratio",
1038
+ method: "GET",
1039
+ path: "/api/v1/crypto/metrics/whale-ratio",
1040
+ tier: "alternative",
1041
+ required_subscription_tier: "pro",
1042
+ access: "pro_only",
1043
+ pro_required: true
1044
+ },
1045
+ {
1046
+ skill: "arrays-data-api-crypto-metrics-and-screener",
1047
+ file: "crypto-supply",
1048
+ method: "GET",
1049
+ path: "/api/v1/crypto/supply",
1050
+ tier: "alternative",
1051
+ required_subscription_tier: "pro",
1052
+ access: "pro_only",
1053
+ pro_required: true
1054
+ },
1055
+ {
1056
+ skill: "arrays-data-api-crypto-futures-data",
1057
+ file: "taker-buy-sell-volume",
1058
+ method: "GET",
1059
+ path: "/api/v1/crypto/taker-buy-sell-volume",
1060
+ tier: "alternative",
1061
+ required_subscription_tier: "pro",
1062
+ access: "pro_only",
1063
+ pro_required: true
1064
+ },
1065
+ {
1066
+ skill: "arrays-data-api-crypto-metrics-and-screener",
1067
+ file: "unlock-events",
1068
+ method: "GET",
1069
+ path: "/api/v1/crypto/unlock-events",
1070
+ tier: "alternative",
1071
+ required_subscription_tier: "pro",
1072
+ access: "pro_only",
1073
+ pro_required: true
1074
+ },
1075
+ {
1076
+ skill: "arrays-data-api-etf-fundamentals",
1077
+ file: "flow",
1078
+ method: "GET",
1079
+ path: "/api/v1/etf/flow",
1080
+ tier: "alternative",
1081
+ required_subscription_tier: "pro",
1082
+ access: "pro_only",
1083
+ pro_required: true
1084
+ },
1085
+ {
1086
+ skill: "arrays-data-api-options",
1087
+ file: "contracts",
1088
+ method: "GET",
1089
+ path: "/api/v1/options/contracts",
1090
+ tier: "alternative",
1091
+ required_subscription_tier: "pro",
1092
+ access: "pro_only",
1093
+ pro_required: true
1094
+ },
1095
+ {
1096
+ skill: "arrays-data-api-options",
1097
+ file: "kline",
1098
+ method: "GET",
1099
+ path: "/api/v1/options/kline",
1100
+ tier: "alternative",
1101
+ required_subscription_tier: "pro",
1102
+ access: "pro_only",
1103
+ pro_required: true
1104
+ },
1105
+ {
1106
+ skill: "arrays-data-api-equity-fundamentals",
1107
+ file: "company-executives",
1108
+ method: "GET",
1109
+ path: "/api/v1/stocks/company/executives",
1110
+ tier: "alternative",
1111
+ required_subscription_tier: "pro",
1112
+ access: "pro_only",
1113
+ pro_required: true
1114
+ },
1115
+ {
1116
+ skill: "arrays-data-api-equity-estimates-and-targets",
1117
+ file: "company-price-target-consensus",
1118
+ method: "GET",
1119
+ path: "/api/v1/stocks/company/price-target-consensus",
1120
+ tier: "alternative",
1121
+ required_subscription_tier: "pro",
1122
+ access: "pro_only",
1123
+ pro_required: true
1124
+ },
1125
+ {
1126
+ skill: "arrays-data-api-equity-estimates-and-targets",
1127
+ file: "company-price-target-news",
1128
+ method: "GET",
1129
+ path: "/api/v1/stocks/company/price-target-news",
1130
+ tier: "alternative",
1131
+ required_subscription_tier: "pro",
1132
+ access: "pro_only",
1133
+ pro_required: true
1134
+ },
1135
+ {
1136
+ skill: "arrays-data-api-equity-estimates-and-targets",
1137
+ file: "company-price-target-summary",
1138
+ method: "GET",
1139
+ path: "/api/v1/stocks/company/price-target-summary",
1140
+ tier: "alternative",
1141
+ required_subscription_tier: "pro",
1142
+ access: "pro_only",
1143
+ pro_required: true
1144
+ },
1145
+ {
1146
+ skill: "arrays-data-api-equity-ownership-and-flow",
1147
+ file: "congress-recent-trades",
1148
+ method: "GET",
1149
+ path: "/api/v1/stocks/congress/recent-trades",
1150
+ tier: "alternative",
1151
+ required_subscription_tier: "pro",
1152
+ access: "pro_only",
1153
+ pro_required: true
1154
+ },
1155
+ {
1156
+ skill: "arrays-data-api-equity-ownership-and-flow",
1157
+ file: "senate-trade",
1158
+ method: "GET",
1159
+ path: "/api/v1/stocks/company/senate-trade",
1160
+ tier: "alternative",
1161
+ required_subscription_tier: "pro",
1162
+ access: "pro_only",
1163
+ pro_required: true
1164
+ },
1165
+ {
1166
+ skill: "arrays-data-api-stock-metrics",
1167
+ file: "darkpool",
1168
+ method: "GET",
1169
+ path: "/api/v1/stocks/darkpool",
1170
+ tier: "alternative",
1171
+ required_subscription_tier: "pro",
1172
+ access: "pro_only",
1173
+ pro_required: true
1174
+ },
1175
+ {
1176
+ skill: "arrays-data-api-equity-estimates-and-targets",
1177
+ file: "estimates-guidance",
1178
+ method: "GET",
1179
+ path: "/api/v1/stocks/estimates-guidance",
1180
+ tier: "alternative",
1181
+ required_subscription_tier: "pro",
1182
+ access: "pro_only",
1183
+ pro_required: true
1184
+ },
1185
+ {
1186
+ skill: "arrays-data-api-equity-ownership-and-flow",
1187
+ file: "insider-transactions",
1188
+ method: "GET",
1189
+ path: "/api/v1/stocks/insider/transactions",
1190
+ tier: "alternative",
1191
+ required_subscription_tier: "pro",
1192
+ access: "pro_only",
1193
+ pro_required: true
1194
+ },
1195
+ {
1196
+ skill: "arrays-data-api-equity-ownership-and-flow",
1197
+ file: "institution-holder",
1198
+ method: "GET",
1199
+ path: "/api/v1/stocks/institution-holder",
1200
+ tier: "alternative",
1201
+ required_subscription_tier: "pro",
1202
+ access: "pro_only",
1203
+ pro_required: true
1204
+ },
1205
+ {
1206
+ skill: "arrays-data-api-polymarket",
1207
+ file: "activity",
1208
+ method: "GET",
1209
+ path: "polymarket:/activity",
1210
+ tier: "alternative",
1211
+ required_subscription_tier: "pro",
1212
+ access: "pro_only",
1213
+ pro_required: true
1214
+ },
1215
+ {
1216
+ skill: "arrays-data-api-polymarket",
1217
+ file: "book",
1218
+ method: "GET",
1219
+ path: "polymarket:/book",
1220
+ tier: "alternative",
1221
+ required_subscription_tier: "pro",
1222
+ access: "pro_only",
1223
+ pro_required: true
1224
+ },
1225
+ {
1226
+ skill: "arrays-data-api-polymarket",
1227
+ file: "closed-positions",
1228
+ method: "GET",
1229
+ path: "polymarket:/closed-positions",
1230
+ tier: "alternative",
1231
+ required_subscription_tier: "pro",
1232
+ access: "pro_only",
1233
+ pro_required: true
1234
+ },
1235
+ {
1236
+ skill: "arrays-data-api-polymarket",
1237
+ file: "events",
1238
+ method: "GET",
1239
+ path: "polymarket:/events",
1240
+ tier: "alternative",
1241
+ required_subscription_tier: "pro",
1242
+ access: "pro_only",
1243
+ pro_required: true
1244
+ },
1245
+ {
1246
+ skill: "arrays-data-api-polymarket",
1247
+ file: "holders",
1248
+ method: "GET",
1249
+ path: "polymarket:/holders",
1250
+ tier: "alternative",
1251
+ required_subscription_tier: "pro",
1252
+ access: "pro_only",
1253
+ pro_required: true
1254
+ },
1255
+ {
1256
+ skill: "arrays-data-api-polymarket",
1257
+ file: "markets",
1258
+ method: "GET",
1259
+ path: "polymarket:/markets",
1260
+ tier: "alternative",
1261
+ required_subscription_tier: "pro",
1262
+ access: "pro_only",
1263
+ pro_required: true
1264
+ },
1265
+ {
1266
+ skill: "arrays-data-api-polymarket",
1267
+ file: "midpoint",
1268
+ method: "GET",
1269
+ path: "polymarket:/midpoint",
1270
+ tier: "alternative",
1271
+ required_subscription_tier: "pro",
1272
+ access: "pro_only",
1273
+ pro_required: true
1274
+ },
1275
+ {
1276
+ skill: "arrays-data-api-polymarket",
1277
+ file: "oi",
1278
+ method: "GET",
1279
+ path: "polymarket:/oi",
1280
+ tier: "alternative",
1281
+ required_subscription_tier: "pro",
1282
+ access: "pro_only",
1283
+ pro_required: true
1284
+ },
1285
+ {
1286
+ skill: "arrays-data-api-polymarket",
1287
+ file: "positions",
1288
+ method: "GET",
1289
+ path: "polymarket:/positions",
1290
+ tier: "alternative",
1291
+ required_subscription_tier: "pro",
1292
+ access: "pro_only",
1293
+ pro_required: true
1294
+ },
1295
+ {
1296
+ skill: "arrays-data-api-polymarket",
1297
+ file: "price",
1298
+ method: "GET",
1299
+ path: "polymarket:/price",
1300
+ tier: "alternative",
1301
+ required_subscription_tier: "pro",
1302
+ access: "pro_only",
1303
+ pro_required: true
1304
+ },
1305
+ {
1306
+ skill: "arrays-data-api-polymarket",
1307
+ file: "prices-history",
1308
+ method: "GET",
1309
+ path: "polymarket:/prices-history",
1310
+ tier: "alternative",
1311
+ required_subscription_tier: "pro",
1312
+ access: "pro_only",
1313
+ pro_required: true
1314
+ },
1315
+ {
1316
+ skill: "arrays-data-api-polymarket",
1317
+ file: "public-search",
1318
+ method: "GET",
1319
+ path: "polymarket:/public-search",
1320
+ tier: "alternative",
1321
+ required_subscription_tier: "pro",
1322
+ access: "pro_only",
1323
+ pro_required: true
1324
+ },
1325
+ {
1326
+ skill: "arrays-data-api-polymarket",
1327
+ file: "series",
1328
+ method: "GET",
1329
+ path: "polymarket:/series",
1330
+ tier: "alternative",
1331
+ required_subscription_tier: "pro",
1332
+ access: "pro_only",
1333
+ pro_required: true
1334
+ },
1335
+ {
1336
+ skill: "arrays-data-api-polymarket",
1337
+ file: "sports",
1338
+ method: "GET",
1339
+ path: "polymarket:/sports",
1340
+ tier: "alternative",
1341
+ required_subscription_tier: "pro",
1342
+ access: "pro_only",
1343
+ pro_required: true
1344
+ },
1345
+ {
1346
+ skill: "arrays-data-api-polymarket",
1347
+ file: "spread",
1348
+ method: "GET",
1349
+ path: "polymarket:/spread",
1350
+ tier: "alternative",
1351
+ required_subscription_tier: "pro",
1352
+ access: "pro_only",
1353
+ pro_required: true
1354
+ },
1355
+ {
1356
+ skill: "arrays-data-api-polymarket",
1357
+ file: "tags",
1358
+ method: "GET",
1359
+ path: "polymarket:/tags",
1360
+ tier: "alternative",
1361
+ required_subscription_tier: "pro",
1362
+ access: "pro_only",
1363
+ pro_required: true
1364
+ },
1365
+ {
1366
+ skill: "arrays-data-api-polymarket",
1367
+ file: "trades",
1368
+ method: "GET",
1369
+ path: "polymarket:/trades",
1370
+ tier: "alternative",
1371
+ required_subscription_tier: "pro",
1372
+ access: "pro_only",
1373
+ pro_required: true
1374
+ },
1375
+ {
1376
+ skill: "arrays-data-api-polymarket",
1377
+ file: "value",
1378
+ method: "GET",
1379
+ path: "polymarket:/value",
1380
+ tier: "alternative",
1381
+ required_subscription_tier: "pro",
1382
+ access: "pro_only",
1383
+ pro_required: true
1384
+ },
1385
+ {
1386
+ skill: "arrays-data-api-equity-events",
1387
+ file: "earnings-transcript",
1388
+ method: "GET",
1389
+ path: "/api/v1/stocks/earnings-transcript",
1390
+ tier: "unstructured",
1391
+ required_subscription_tier: "pro",
1392
+ access: "pro_only",
1393
+ pro_required: true
1394
+ },
1395
+ {
1396
+ skill: "arrays-data-api-news",
1397
+ file: "market-news",
1398
+ method: "GET",
1399
+ path: "/api/v1/stocks/market-news",
1400
+ tier: "unstructured",
1401
+ required_subscription_tier: "pro",
1402
+ access: "pro_only",
1403
+ pro_required: true
1404
+ }
1405
+ ];
1406
+ function getSkillEndpointMetadata(skill, file) {
1407
+ return SKILL_ENDPOINT_METADATA.find(
1408
+ (item) => item.skill === skill && item.file === file
1409
+ );
1410
+ }
1411
+ function listSkillEndpointMetadata(skill) {
1412
+ return SKILL_ENDPOINT_METADATA.filter((item) => item.skill === skill);
1413
+ }
1414
+
1415
+ // src/resources/dataSkills.ts
1416
+ var DataSkillsResource = class {
344
1417
  constructor(client) {
345
1418
  this.client = client;
346
1419
  }
@@ -350,7 +1423,12 @@ var SkillsResource = class {
350
1423
  baseUrl: this.client.arraysBaseUrl,
351
1424
  noAuth: true
352
1425
  });
353
- return { skills: res.data ?? [] };
1426
+ return {
1427
+ skills: (res.data ?? []).map((skill) => ({
1428
+ ...skill,
1429
+ ...metadataSummaryForSkill(skill.name)
1430
+ }))
1431
+ };
354
1432
  }
355
1433
  async summary(params) {
356
1434
  const encoded = encodeURIComponent(params.name);
@@ -365,7 +1443,12 @@ var SkillsResource = class {
365
1443
  const doc = res.data?.[0];
366
1444
  if (!doc)
367
1445
  throw new Error(`empty skills summary response for "${params.name}"`);
368
- return doc;
1446
+ const endpointMetadata = listSkillEndpointMetadata(params.name);
1447
+ return {
1448
+ ...doc,
1449
+ ...metadataSummaryForSkill(params.name),
1450
+ ...endpointMetadata.length > 0 ? { endpoint_metadata: endpointMetadata } : {}
1451
+ };
369
1452
  }
370
1453
  async endpoint(params) {
371
1454
  const encoded = encodeURIComponent(params.name);
@@ -384,7 +1467,103 @@ var SkillsResource = class {
384
1467
  `empty skills endpoint response for "${params.name}" file "${params.file}"`
385
1468
  );
386
1469
  }
387
- return doc;
1470
+ const metadata = getSkillEndpointMetadata(params.name, params.file);
1471
+ return {
1472
+ ...doc,
1473
+ ...metadata ? { metadata } : {}
1474
+ };
1475
+ }
1476
+ };
1477
+ function metadataSummaryForSkill(skill) {
1478
+ const endpointMetadata = listSkillEndpointMetadata(skill);
1479
+ if (endpointMetadata.length === 0) {
1480
+ return {};
1481
+ }
1482
+ const counts = {};
1483
+ let proCount = 0;
1484
+ for (const endpoint of endpointMetadata) {
1485
+ counts[endpoint.tier] = (counts[endpoint.tier] ?? 0) + 1;
1486
+ if (endpoint.pro_required) proCount += 1;
1487
+ }
1488
+ return {
1489
+ endpoint_tier_counts: counts,
1490
+ metadata: {
1491
+ endpoint_count: endpointMetadata.length,
1492
+ endpoint_tier_counts: counts,
1493
+ pro_count: proCount
1494
+ }
1495
+ };
1496
+ }
1497
+
1498
+ // src/resources/playbookSkills.ts
1499
+ function parsePlaybookSkillId(s) {
1500
+ const parts = s.split("/");
1501
+ if (parts.length !== 2 || !parts[0] || !parts[1]) {
1502
+ throw new AlvaError(
1503
+ "INVALID_ARGUMENT",
1504
+ `playbook skill identifier must be "<user>/<name>", got "${s}"`,
1505
+ 0
1506
+ );
1507
+ }
1508
+ return { username: parts[0], name: parts[1] };
1509
+ }
1510
+ var PlaybookSkillsResource = class {
1511
+ constructor(client) {
1512
+ this.client = client;
1513
+ }
1514
+ client;
1515
+ async list(params) {
1516
+ const query = {};
1517
+ if (params?.tag) query.tag = params.tag;
1518
+ if (params?.username) query.username = params.username;
1519
+ const res = await this.client._request("GET", "/api/v1/skills", {
1520
+ query
1521
+ });
1522
+ return { skills: res.data ?? [] };
1523
+ }
1524
+ async tags() {
1525
+ const res = await this.client._request(
1526
+ "GET",
1527
+ "/api/v1/skills/tags"
1528
+ );
1529
+ return { tags: res.data ?? [] };
1530
+ }
1531
+ async get(id) {
1532
+ const { username, name } = parsePlaybookSkillId(id);
1533
+ const u = encodeURIComponent(username);
1534
+ const n = encodeURIComponent(name);
1535
+ const res = await this.client._request(
1536
+ "GET",
1537
+ `/api/v1/skills/${u}/${n}`
1538
+ );
1539
+ const meta = res.data?.[0];
1540
+ if (!meta) {
1541
+ throw new AlvaError(
1542
+ "NOT_FOUND",
1543
+ `empty playbook skills get response for ${id}`,
1544
+ 0
1545
+ );
1546
+ }
1547
+ return meta;
1548
+ }
1549
+ async file(id, path) {
1550
+ const { username, name } = parsePlaybookSkillId(id);
1551
+ const u = encodeURIComponent(username);
1552
+ const n = encodeURIComponent(name);
1553
+ const p = path.split("/").map(encodeURIComponent).join("/");
1554
+ const res = await this.client._request(
1555
+ "GET",
1556
+ `/api/v1/skills/${u}/${n}/files/${p}`
1557
+ );
1558
+ const out = res.data?.[0];
1559
+ if (!out) {
1560
+ throw new AlvaError(
1561
+ "NOT_FOUND",
1562
+ `empty playbook skills file response for ${id} path ${path}`,
1563
+ 0
1564
+ );
1565
+ }
1566
+ return out;
388
1567
  }
389
1568
  };
390
1569
 
@@ -448,7 +1627,10 @@ var ScreenshotResource = class {
448
1627
  query: {
449
1628
  url: params.url,
450
1629
  selector: params.selector,
451
- xpath: params.xpath
1630
+ xpath: params.xpath,
1631
+ compress: params.compress,
1632
+ compress_quality: params.compressQuality,
1633
+ compress_max_width: params.compressMaxWidth
452
1634
  }
453
1635
  });
454
1636
  }
@@ -765,7 +1947,8 @@ var AlvaClient = class {
765
1947
  _release;
766
1948
  _secrets;
767
1949
  _sdk;
768
- _skills;
1950
+ _dataSkills;
1951
+ _playbookSkills;
769
1952
  _comments;
770
1953
  _remix;
771
1954
  _screenshot;
@@ -799,8 +1982,11 @@ var AlvaClient = class {
799
1982
  get sdk() {
800
1983
  return this._sdk ??= new SdkDocsResource(this);
801
1984
  }
802
- get skills() {
803
- return this._skills ??= new SkillsResource(this);
1985
+ get dataSkills() {
1986
+ return this._dataSkills ??= new DataSkillsResource(this);
1987
+ }
1988
+ get playbookSkills() {
1989
+ return this._playbookSkills ??= new PlaybookSkillsResource(this);
804
1990
  }
805
1991
  get comments() {
806
1992
  return this._comments ??= new CommentsResource(this);
@@ -921,7 +2107,7 @@ var AlvaClient = class {
921
2107
  };
922
2108
 
923
2109
  // src/index.ts
924
- var VERSION = true ? "0.4.3" : "dev";
2110
+ var VERSION = true ? "0.7.0-beta.0" : "dev";
925
2111
  export {
926
2112
  AlvaClient,
927
2113
  AlvaError,