diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index e25c40c..db545bf 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,23 +1,23 @@ lockVersion: 2.0.0 id: aefbfd95-3898-417a-81f2-07292e60b44f management: - docChecksum: 5da4c0f7751345c6f30fdca64240081e + docChecksum: 50050c23c7d2eea1a37c5d24c8fc537b docVersion: "1.0" - speakeasyVersion: 1.729.0 - generationVersion: 2.841.0 - releaseVersion: 0.0.14 - configChecksum: 0264342dd357594b63f2e57e988c909c + speakeasyVersion: 1.757.1 + generationVersion: 2.866.2 + releaseVersion: 0.0.15 + configChecksum: 787f56b5014e12901e7fc8ac8c45cb0a persistentEdits: - generation_id: 1356b30a-f3e7-403a-b610-19e28a3e1b8b - pristine_commit_hash: 1c7bd67c76f1fbc3896500744cffab6e67a294ed - pristine_tree_hash: 9e50c27c2c769d8c7dcdbecac1ad294b33414c77 + generation_id: 7ab0e05a-15cc-432c-99ee-196f01f96677 + pristine_commit_hash: c51dd7e00c3ecb034d0e1face10477c714303dfd + pristine_tree_hash: 8dff5d1e04f9c2320779b992d1de36e78aa729d5 features: mcp-typescript: additionalDependencies: 0.1.0 - core: 1.2.14 + core: 1.2.22 defaultEnabledRetries: 0.1.0 globalSecurityCallbacks: 0.0.0 - globalServerURLs: 0.1.1 + globalServerURLs: 0.1.2 responseFormat: 0.1.1 retries: 0.1.0 sdkHooks: 0.3.0 @@ -40,16 +40,28 @@ trackedFiles: pristine_git_object: 4f9e60a9462fc4def738d60c3aaadf8232ef185f manifest.json: id: ca642a226869 - last_write_checksum: sha1:a6f8306d7fcec70e38ccb77c476b25e677da64de - pristine_git_object: e306c415838a1bc93288ec90ed7a6e067729b68f + last_write_checksum: sha1:631ce486c4fb042c04c831ebfa9d62e90c0c3796 + pristine_git_object: c030fda07ed36ced8466299e5cbc1a909226079d package.json: id: 7030d0b2f71b - last_write_checksum: sha1:dc645a87b0b7878dba0d6d2eaf014075989976af - pristine_git_object: 81c8dceaa931d31143cd2b73daba60e34e11ba81 + last_write_checksum: sha1:6d3be84be80602df7abb99566ac5cf8e9b44fb38 + pristine_git_object: ff567c3eccac7a66d5f9d33eb55ce963f905739c src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:b8bee26e217d2a6cef11b011884a3e6ca4fa471a pristine_git_object: 350b297ef7a3e282f7b6d6def78c7f6e9c20595c + src/funcs/getInsightsLimitless15min.ts: + id: 6babaa581005 + last_write_checksum: sha1:e4d569ba1e60165473f40a7f24c862c8ebf9393c + pristine_git_object: 193738997ebd14d80907f64ce5cc9989b932f054 + src/funcs/getInsightsLimitlessDaily.ts: + id: 1c57ea4f2e6f + last_write_checksum: sha1:703b069207961199ae39dc35a2f3d064bb561e78 + pristine_git_object: e161c72813908196749a6ddd89710d8d4b401728 + src/funcs/getInsightsLimitlessHourly.ts: + id: 7289d505dc3f + last_write_checksum: sha1:ce5c7c50c1029353b4bdd73ec73db8360b8c79f3 + pristine_git_object: d02b47396ae2735b580427bbe695f0f17b5aefed src/funcs/getInsightsLiquidation.ts: id: 4cbc0068023c last_write_checksum: sha1:9a43af2b7890f5ac79bd13067618cbd077243105 @@ -74,6 +86,10 @@ trackedFiles: id: 1ee98541cc71 last_write_checksum: sha1:f902360cc4e1805c29eed6c71ea4f355235fd43c pristine_git_object: 1256b5d6968be52861dc3fcfea6b1e7671061589 + src/funcs/getInsightsPolymarketUpDown5min.ts: + id: ce6a8fb24e9f + last_write_checksum: sha1:2ec4bbd1bbc494780fea60d08a4628b70691838e + pristine_git_object: 3831dc1d2af0ba8b8791ce502447a15773774ba4 src/funcs/getInsightsPolymarketUpDownDaily.ts: id: ef191c6656c9 last_write_checksum: sha1:0169d594b4c52e7e8097bad2af7aeacf6cea0437 @@ -88,12 +104,12 @@ trackedFiles: pristine_git_object: 515d6a9d6bf0566f412e7f448c63dc266ca87969 src/funcs/getInsightsVolatility.ts: id: a7a7c9b3a923 - last_write_checksum: sha1:50b1aaa3c7d3f3ce35ccddbf8c562c18e24b891f - pristine_git_object: fa6adce1c48c9d34c2a3d5949f4156f0a8041b82 + last_write_checksum: sha1:280a3489935719cc61bc71d7e672bca31708a083 + pristine_git_object: 8706481331826041a73c3a2e1396582b70eca8cc src/hooks/hooks.ts: id: a2463fc6f69b - last_write_checksum: sha1:36c7bf5c31e0986fba9e0f9db28a769be7904ffd - pristine_git_object: 28c90f854c4e8bba492d873d391ea8d68ca6e009 + last_write_checksum: sha1:07f57b2921d671cc3158934b5f646d5ad3eb6827 + pristine_git_object: bc0fe32856eb2391fa876a7cdb5dae106d39522d src/hooks/types.ts: id: 2a02d86ec24f last_write_checksum: sha1:622c2ac820271766bc4010bfc3904738c4c5ed0f @@ -108,8 +124,8 @@ trackedFiles: pristine_git_object: b45f432798e2151eee7f6eb4df628b7310942c01 src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:1236ecb41cb35430ec7571cfd07310cc929a73bd - pristine_git_object: ea85e8e494069a73b27dd7a84642bc2974fcb03b + last_write_checksum: sha1:dc9645de23f9877205efaa2d70a5c556a107a1b5 + pristine_git_object: ba0b60d59afacf68fc73c7df63f041b9f1ce1691 src/lib/dlv.ts: id: b1988214835a last_write_checksum: sha1:eaac763b22717206a6199104e0403ed17a4e2711 @@ -124,8 +140,8 @@ trackedFiles: pristine_git_object: 035fbd660ec169895ee1069a86e6f8afb2f9c4b9 src/lib/files.ts: id: e5efa54fcb95 - last_write_checksum: sha1:8818f0bb05afac75b9a39f22989296cc0722909d - pristine_git_object: 457f4cedbcb15d70595b1d3083ee3289e8105fe2 + last_write_checksum: sha1:eca69f15b691e2fbe6d5b15e9b84add4c730c3d7 + pristine_git_object: 65b68cb732d16030625a4370a45e29fd78abd94b src/lib/http.ts: id: 63a80782d37e last_write_checksum: sha1:e60a1f9c9ffffd11bcf7fd47e51ac93f4ec1ba2d @@ -160,20 +176,28 @@ trackedFiles: pristine_git_object: 75204e6561c1fda610676125a4456596983529fd src/lib/security.ts: id: 0502afa7922e - last_write_checksum: sha1:04b46caaf72acc1c73748bcb54ba0909e115f0a4 - pristine_git_object: 5297ee335e025685540f559054b08c929937ff68 + last_write_checksum: sha1:be4b992ade5ee7eb3345d8a5f4755d4a4f9c1b09 + pristine_git_object: bb01280850548ded07d94604890dfd5123cbd3c9 src/lib/url.ts: id: b0057e24ed76 last_write_checksum: sha1:f4b6ce0ff024f800fa438fb082f8f7faae50172c pristine_git_object: 46b8b36297b90de55ad6a273f6cc26e4cb227261 src/mcp-server/build.mts: id: f7a2ed2de4d7 - last_write_checksum: sha1:9f98fe2b333bd6211cfffa008a9b6ee95d523596 - pristine_git_object: e8114fbaed6521c628b7cf58a22cdb65e61a5483 + last_write_checksum: sha1:fc08ccde7b8703a94411bb37b97ba5dd51a686db + pristine_git_object: 1cdf8979378936f964a3c0e6275b7e7a5689a14c src/mcp-server/cli.ts: id: 4ade0ef98b00 last_write_checksum: sha1:328ffc5ed0eca56509bf2828264c3b2c87926e09 pristine_git_object: ed4a1808d7da14f0f0bb0cf27cc7eb7414a3182c + src/mcp-server/cli/serve/command.ts: + id: 7cd4394c80e8 + last_write_checksum: sha1:430e5cca78784eea3c4a6f4d873158feef27894e + pristine_git_object: 3fa72520cffb192d50efe846cc6fabdc2b76515f + src/mcp-server/cli/serve/impl.ts: + id: 03e83f226068 + last_write_checksum: sha1:c8f808eb869a150280c433cd45bbd7f287c9d923 + pristine_git_object: 73310ad95fcde4c6ff4747387c87d8ef1f24e5f3 src/mcp-server/cli/start/command.ts: id: b3e53408ccb4 last_write_checksum: sha1:8201bb27d0a8ade03cf07d2428da4bcd4c19de89 @@ -196,8 +220,8 @@ trackedFiles: pristine_git_object: cdc4b29578f38417d67b16a5866460c43c9b81a6 src/mcp-server/mcp-server.ts: id: aabbc4ab07c1 - last_write_checksum: sha1:cf803d4474a87f86b4c69d94a4c30e0671bffe48 - pristine_git_object: a613270081a7e681aff399dafb06a0e7292460b4 + last_write_checksum: sha1:9fd4256cf0a746e018ddb1cb7ffcc050902eedd7 + pristine_git_object: e2aef655d29e6471b8f78681ed2daedff532205b src/mcp-server/prompts.ts: id: 26f3d73cbf31 last_write_checksum: sha1:73fbd9fa7c8c4c8be08b0ae4de74243fb225ce92 @@ -212,8 +236,8 @@ trackedFiles: pristine_git_object: 524b864b4a0d515386ff3f42ed22463827039c06 src/mcp-server/server.ts: id: 2784dd48e82a - last_write_checksum: sha1:518dee05b7468e1580c533f7b724577b2ac98718 - pristine_git_object: f489c91e1340cd26941766e29cd786c0728a05dd + last_write_checksum: sha1:54e3708a73362de3c3f504e9e2cf9b22ca44179b + pristine_git_object: eb883474b4b72fda303e0ef58d1b4fab9a85c1c2 src/mcp-server/shared.ts: id: 074e80d4be1e last_write_checksum: sha1:89d816c34ea71049cbf484f9704239e5372858f1 @@ -222,6 +246,18 @@ trackedFiles: id: 654d5d1f2062 last_write_checksum: sha1:475641ec228d72660d1442c661b82683f76bb313 pristine_git_object: 06096329a74a12b7a97d4332918cbb88e6783ac6 + src/mcp-server/tools/getInsightsLimitless15min.ts: + id: 2176ca44759b + last_write_checksum: sha1:6fe335e83ee674760486e0734e12be3b1b2b85a8 + pristine_git_object: 56d2d216439cf9842893cc5c0394c400955f9f1a + src/mcp-server/tools/getInsightsLimitlessDaily.ts: + id: ffe682f0f808 + last_write_checksum: sha1:f7dad80306382dbd375e0da443da79bc58ff2410 + pristine_git_object: b1e4339370bb95ed8c169563d6b98641076baec0 + src/mcp-server/tools/getInsightsLimitlessHourly.ts: + id: 120bef4dc6f6 + last_write_checksum: sha1:75cf964d9b210c9ef15f0161429f0e95f6018bc7 + pristine_git_object: e5ec2f60336bec364f929494f8b4f0f6281daa1f src/mcp-server/tools/getInsightsLiquidation.ts: id: 836207daae21 last_write_checksum: sha1:4009375aaa3976da7eb697b66dd3ee70881cbbaa @@ -246,6 +282,10 @@ trackedFiles: id: c2d9a15e728e last_write_checksum: sha1:ab9e24e49dc0af839518dc10d0a883908273e65e pristine_git_object: 800578275b3eef85cb02210179dc33ffa4816e5e + src/mcp-server/tools/getInsightsPolymarketUpDown5min.ts: + id: 54db83170089 + last_write_checksum: sha1:58e93b980a1bd138750470861f764924c52d3436 + pristine_git_object: 4a92c42b1c9de63aab92e463edbdb79205d3dc2c src/mcp-server/tools/getInsightsPolymarketUpDownDaily.ts: id: 68d48f874d49 last_write_checksum: sha1:229697151ccc8ef91ffb4c39dbacf3fea5d4676b @@ -260,8 +300,8 @@ trackedFiles: pristine_git_object: 5be46effc09f6353c5cea485e93eeab58e59b441 src/mcp-server/tools/getInsightsVolatility.ts: id: 236e430e069f - last_write_checksum: sha1:1fe5c7aa0ddcda5ae842eb1aaa53ff863d95e842 - pristine_git_object: bf143a26f1aab14afa3b899b1ef2a7574a88919e + last_write_checksum: sha1:377e060a9607fdfc13cf89af0be968d221ee24d1 + pristine_git_object: b09cdc76b40e1cf7f9efccfb2796668ca4bd4900 src/models/errors/apierror.ts: id: e2280e075454 last_write_checksum: sha1:b6927c28c3304c3afffb374d0b20e865c6bab933 @@ -274,46 +314,62 @@ trackedFiles: id: fb6b2b49c445 last_write_checksum: sha1:007cf5906a9195d49150c032fc710a38bf76c074 pristine_git_object: 6e164d3e7edbc93fa65afff3b80ecb5044c9d273 + src/models/getinsightslimitless15minop.ts: + id: 5cbebb1d73e0 + last_write_checksum: sha1:86df5b235be97a670bda848678a6236692e53af9 + pristine_git_object: 586e0b280653c3c334caec6169f3ad1e3bc1802c + src/models/getinsightslimitlessdailyop.ts: + id: 0035e41a98b9 + last_write_checksum: sha1:ea4445dc6557d11f8378af5b4a05a4da5c1441fe + pristine_git_object: aeed193544754894394ecbc2d40805eb7a56bb69 + src/models/getinsightslimitlesshourlyop.ts: + id: c1c031026011 + last_write_checksum: sha1:fa45b3e73b6efb46f6d3c5f7953a3d6fd382196f + pristine_git_object: 1fecbb5e2b9c4f504edb73eaa89dd1c9fa08c8cf src/models/getinsightsliquidationop.ts: id: de46aeb04e42 - last_write_checksum: sha1:90e71dc8cb276c75d1605a3c5472e3ed4ae12ae2 - pristine_git_object: e12b2ee0f98133811b945da1ec0a84bb4a37fa8c + last_write_checksum: sha1:3eac6b6d1d7ba57fe39b876ab2c846573d21e246 + pristine_git_object: 1040160ffe63df72876840600201ec04a91ade1c src/models/getinsightslpboundsop.ts: id: deaa17e70a78 - last_write_checksum: sha1:840c20fb4acfc0dc8c00664ecebb5d1b08ec4a70 - pristine_git_object: 03f51809ca7280d5933d192e102622b4cc3fc642 + last_write_checksum: sha1:331eaf01c166ea0d1988c68fe84cbdeb8df0efa6 + pristine_git_object: f5bad9418c0c4caa5579095e048313e0cfb7df31 src/models/getinsightslpprobabilitiesop.ts: id: 1e3500bc08a4 - last_write_checksum: sha1:85c96509403f42401c03224a0ffe394ec297b1c8 - pristine_git_object: 631c198a75ad3a7aea7f75f57bcb6767ef53291d + last_write_checksum: sha1:5166a03a865566033c5b43f0b5258e76b7d78308 + pristine_git_object: 6b51cbdda23c1ab706ebe9e4254d79d51f683495 src/models/getinsightsoptionpricingop.ts: id: d34ee6640bd2 - last_write_checksum: sha1:b713f3e2ca5fe3c8abc379dac02db0fc7b849a46 - pristine_git_object: 2709cbd50b9553dc7b5384172f77a792c4ed925f + last_write_checksum: sha1:29e01263b1d3811f6cb539c0dad73acb16ae159b + pristine_git_object: 54c6e6b7b2be92cc608e8c48e770c3526ce8ddbf src/models/getinsightspolymarketrangeop.ts: id: 1e271dd44cbd - last_write_checksum: sha1:b921876e0e6bd6321559a120f9ff3cda2215b613 - pristine_git_object: 7467d177a09cce34ad2e176b9838c1a98e4a4168 + last_write_checksum: sha1:ca4f59ba8cc5480ec67f0c486c73107885cb6d76 + pristine_git_object: 62233656286711480bf34383d638b4e644b10057 src/models/getinsightspolymarketupdown15minop.ts: id: 9365856ae697 - last_write_checksum: sha1:6932ae63a19f9b3d71d55521fdec2748c5748f21 - pristine_git_object: 1c85c21a7a35c60f956cc1d3a705a8128e86cb13 + last_write_checksum: sha1:322f17c7311896e46b18936ab1575bc307e9b6e7 + pristine_git_object: 3564a5125e3a2c42ad729c76fdd10e3aeecc2bab + src/models/getinsightspolymarketupdown5minop.ts: + id: f10f599e30d8 + last_write_checksum: sha1:338929832b07228fb1e8527b0114bebff8e5167c + pristine_git_object: 52f72d38330edefd6a3f49a8312fb6363b0acc1f src/models/getinsightspolymarketupdowndailyop.ts: id: 9454a94e059e - last_write_checksum: sha1:474ff554b7f282978d37a759f057a5be93207b1f - pristine_git_object: 9ebd9a700da19d4970fa2fe006971f9974538090 + last_write_checksum: sha1:c6417bdfe383da30f1f699a84efa4a2ca97241a3 + pristine_git_object: 39e349f095130c7fafef47f76e1bc68c738b1fe6 src/models/getinsightspolymarketupdownhourlyop.ts: id: fc81f0e8562c - last_write_checksum: sha1:467e303ccadc24cc8c4a0fff0476c7b2fe4859c1 - pristine_git_object: f14888d6da3b1deadebf00fb8617a09ca7cbe0fa + last_write_checksum: sha1:bd70512c45164230b1d8b82fe68d2feca69cf169 + pristine_git_object: 7eb9313383e4df77b9ea2159efeb040a55a4397a src/models/getinsightspredictionpercentilesop.ts: id: 940742f12963 - last_write_checksum: sha1:418e23f7e709afd19454bc40996c196830e80f2b - pristine_git_object: 6600a76e6bab8d1106757ce0c80e52d99e529182 + last_write_checksum: sha1:670d7830aca5f7e55097599769e30faad49d289d + pristine_git_object: e74476e1996f1b5874b8f54286715e60ae576d42 src/models/getinsightsvolatilityop.ts: id: f0d137fb07d6 - last_write_checksum: sha1:1b79380ac662099478a36f753ea2da4ef38547c2 - pristine_git_object: 07998119d1220c9019ab38173ed34278c90618fc + last_write_checksum: sha1:ceb52547dc31f2556ecf9999a0a8722381291719 + pristine_git_object: 7afbadfd522c487cce1a5b5d3651ef90e62f2c30 src/models/typesforecast.ts: id: 18c02bf6f06b last_write_checksum: sha1:e5393e3abf2836e08febc95b3594b8fe43bc1fed @@ -334,34 +390,38 @@ trackedFiles: id: 5200cc42f571 last_write_checksum: sha1:55ca4e2323303b965d46e2253c77dee8028e4dee pristine_git_object: e646882c0cd5694c4c242e4bd187048dfc5e31bd + src/models/typeslimitlessmarket.ts: + id: 07372bb92421 + last_write_checksum: sha1:ce440448b01b70018441a842fa85ea7eb88d591d + pristine_git_object: 45fdbb4ff5d0fdc2f3186ae02ffe2f5bd3b126da src/models/typesliquidationprobability.ts: id: 5974c841306c last_write_checksum: sha1:d65ab85d9fb5f125ab702bde45162872a7440101 pristine_git_object: 2bcc8333344dc7431e5c822dd46ea6ec2a63a55b src/models/typesliquidationprobabilityresponse.ts: id: 2565d6273f57 - last_write_checksum: sha1:fd0312bd22ab88910f1ac1c86114a4b4a1220e63 - pristine_git_object: 53d9dc11790b76c07521cc49c761f03ed42ec92b + last_write_checksum: sha1:f10d4bf944d761ee2371cae6d2bafb56118a1512 + pristine_git_object: d8aa21a9c41e0da81b3b2bcfc6ffe1387e0a8a85 src/models/typeslpboundsresponse.ts: id: 03f5f09a7b6a - last_write_checksum: sha1:f518289526d02dae499a06205b1b4d9751c4e957 - pristine_git_object: 9ca2463cc455ab2b2c5284e53af4216d4a514502 + last_write_checksum: sha1:9eb3dd1ae67ee9ec5e6f388c4ad5624d5e6c19f7 + pristine_git_object: b693c106316cc39fece06fa89e655e55f4eda5cc src/models/typeslpprobabilitiesresponse.ts: id: 30309d983d43 - last_write_checksum: sha1:55fd76edcc1bb8f837f1368dbba91a812a5a2ec4 - pristine_git_object: 1bd19877e79df8317eef609955e86074e8b7420c + last_write_checksum: sha1:774c094d82cfa9f4f8e6fd462b6c37ddb13ff17d + pristine_git_object: 5037057f2fddf82d608dfd322a117ef64ea38487 src/models/typesoptionpricingresponse.ts: id: d5cb59b03112 - last_write_checksum: sha1:90783cbfca1c42de7e1304a34246521ed5701c5f - pristine_git_object: 87f77ba368e7a891a96e15c5fac52e065539d6cf + last_write_checksum: sha1:e5966713a0cf3dbf7aab301915d6c83874bf1fc8 + pristine_git_object: 2e55fe489743ecb6d1bd20195d6e21801487d0d6 src/models/typespercentiletyped.ts: id: c749758c8737 last_write_checksum: sha1:a2662c2b065427f04c6cc1007f7ff092328b814c pristine_git_object: 38ffc3fde7eac3c4562a728a234f56e6c4ba6880 src/models/typespolymarketupdownresponse.ts: id: 059d78bddc06 - last_write_checksum: sha1:5055ff2d31d51822171658b3f1883e78c45ef7b7 - pristine_git_object: bb54fa94987cbf6047c75244bf0a5189ced1f3a2 + last_write_checksum: sha1:5a06457782970d08f924d25a52aa8bed9a9be9d8 + pristine_git_object: b27ae9e0843d3d549ba101af219ad28e90fbe9d9 src/models/typespredictionpercentiles.ts: id: f59fd7f5876e last_write_checksum: sha1:78a3eea5fbd4d3b0e56d14a6681605580538d08b @@ -372,8 +432,8 @@ trackedFiles: pristine_git_object: 679e2a3ad05e160d5ef64065abfe648cf3391970 src/models/typespricerangemarket.ts: id: ec83cb19212a - last_write_checksum: sha1:ab759f42c75cc3cf68ecbd5b1587f028f51a6421 - pristine_git_object: f5bb7e26de4c9c2967a33b474b44c80f740c7020 + last_write_checksum: sha1:2e738353b2dbc42bc8358efc2eb3bc65019f21f0 + pristine_git_object: d436cf10bab836e976473ba6281e96a4634f0259 src/models/typespricereturn.ts: id: 1e8d61a60be7 last_write_checksum: sha1:5800ffeda298f34fb9304380a3eb4b2360bd07e0 @@ -392,12 +452,12 @@ trackedFiles: pristine_git_object: c0999fc3758c0d7b62b49459e1904d63f9d8d6db src/models/typesvolatilityresponse.ts: id: 92f8183f93af - last_write_checksum: sha1:935bab112ebc5cdb96af6c22706c92d4b603d747 - pristine_git_object: 73a5f25764717694174216fd4734c72ab2a3fff1 + last_write_checksum: sha1:22313a47c5480981cfba9f974c8ff748b62f0c42 + pristine_git_object: 93930bc487346df54c3665d95ce896c83a06a248 src/tool-names.ts: id: a9977280f9eb - last_write_checksum: sha1:ca78fad504e501d2f098b04a643eb0145c5dd35e - pristine_git_object: eaf7c7595022ccf4aa76f1a8405cc22a88d64e08 + last_write_checksum: sha1:c524857bc682562aae79692d5d659cbe2e538d96 + pristine_git_object: 1901438078090840759e1ff460ad8c29c78d634f src/types/async.ts: id: fac8da972f86 last_write_checksum: sha1:e2a7c53b428567587741f38e6da489f596de6227 @@ -648,4 +708,40 @@ examples: application/json: "" "500": application/json: "" + get_/insights/limitless/15min: + speakeasy-default-get-/insights/limitless/15min: + responses: + "200": + application/json: [{}] + "400": + application/json: "" + "500": + application/json: "" + get_/insights/limitless/daily: + speakeasy-default-get-/insights/limitless/daily: + responses: + "200": + application/json: [{}] + "400": + application/json: "" + "500": + application/json: "" + get_/insights/limitless/hourly: + speakeasy-default-get-/insights/limitless/hourly: + responses: + "200": + application/json: [{}] + "400": + application/json: "" + "500": + application/json: "" + get_/insights/polymarket/up-down/5min: + speakeasy-default-get-/insights/polymarket/up-down/5min: + responses: + "200": + application/json: {} + "400": + application/json: "" + "500": + application/json: "" examplesVersion: 1.0.2 diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 5892a56..8b0e383 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -16,8 +16,8 @@ generation: sharedNestedComponentsJan2026: true nameOverrideFeb2026: false auth: - oAuth2ClientCredentialsEnabled: true - oAuth2PasswordEnabled: true + oAuth2ClientCredentialsEnabled: false + oAuth2PasswordEnabled: false hoistGlobalSecurity: true inferSSEOverload: true sdkHooksConfigAccess: true @@ -32,7 +32,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false mcp-typescript: - version: 0.0.14 + version: 0.0.15 additionalDependencies: dependencies: {} devDependencies: {} diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml index 577d1ee..8d30a2b 100644 --- a/.speakeasy/in.openapi.yaml +++ b/.speakeasy/in.openapi.yaml @@ -54,6 +54,8 @@ definitions: items: $ref: "#/definitions/types.IntervalData" type: array + forecast_start_time: + type: string type: object types.LPProbabilitiesResponse: properties: @@ -61,6 +63,8 @@ definitions: type: number data: $ref: "#/definitions/types.PriceProbabilityData" + forecast_start_time: + type: string type: object types.LeaderboardItemV2: properties: @@ -75,6 +79,39 @@ definitions: updated_at: type: string type: object + types.LimitlessMarket: + properties: + best_ask_price: + type: number + best_bid_price: + type: number + current_price: + type: number + current_time: + type: string + event_creation_time: + type: string + event_end_time: + type: string + event_outcome_prices: + items: + type: number + type: array + forecast_start_time: + type: string + market_outcome: + type: string + market_probability_up: + type: number + slug: + type: string + start_price: + type: number + synth_outcome: + type: string + synth_probability_up: + type: number + type: object types.LiquidationProbability: properties: long_liquidation_probability: @@ -92,6 +129,8 @@ definitions: items: $ref: "#/definitions/types.LiquidationProbability" type: array + forecast_start_time: + type: string type: object types.MinerValidationResponse: properties: @@ -112,6 +151,8 @@ definitions: type: number expiry_time: type: string + forecast_start_time: + type: string put_options: additionalProperties: type: number @@ -160,6 +201,8 @@ definitions: type: string event_start_time: type: string + forecast_start_time: + type: string polymarket_last_trade_outcome: type: string polymarket_last_trade_price: @@ -228,6 +271,8 @@ definitions: type: string event_start_time: type: string + forecast_start_time: + type: string polymarket_last_trade_outcome: type: integer polymarket_last_trade_price: @@ -312,6 +357,8 @@ definitions: $ref: "#/definitions/types.Forecast" forecast_past: $ref: "#/definitions/types.Forecast" + forecast_start_time: + type: string realized: $ref: "#/definitions/types.Realized" type: object @@ -324,6 +371,150 @@ info: x-logo: url: /docs/assets/images/logo.svg paths: + /insights/limitless/15min: + get: + description: "Get SynthData's estimated fair probabilities alongside live Limitless odds for 15 minutes contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + parameters: + - description: "Symbol of the asset: BTC, ETH, SOL" + example: BTC + in: query + name: asset + type: string + - description: "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)" + example: 1h + in: query + name: horizon + type: string + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + example: 14 + in: query + name: days + type: integer + - description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + example: 10 + in: query + name: limit + type: integer + - description: API key + example: Apikey MY_API_KEY + in: header + name: Authorization + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + items: + $ref: "#/definitions/types.LimitlessMarket" + type: array + "400": + description: Bad Request + schema: + type: string + "500": + description: Internal Server Error + schema: + type: string + summary: Insight - Limitless 15 minutes + /insights/limitless/daily: + get: + description: "Get SynthData's estimated fair probabilities alongside live Limitless odds for daily contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, SOL." + parameters: + - description: "Symbol of the asset: BTC, ETH, SOL" + example: BTC + in: query + name: asset + type: string + - description: "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)" + example: 24h + in: query + name: horizon + type: string + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + example: 14 + in: query + name: days + type: integer + - description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + example: 10 + in: query + name: limit + type: integer + - description: API key + example: Apikey MY_API_KEY + in: header + name: Authorization + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + items: + $ref: "#/definitions/types.LimitlessMarket" + type: array + "400": + description: Bad Request + schema: + type: string + "500": + description: Internal Server Error + schema: + type: string + summary: Insight - Limitless daily + /insights/limitless/hourly: + get: + description: "Get SynthData's estimated fair probabilities alongside live Limitless odds for hourly contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + parameters: + - description: "Symbol of the asset: BTC, ETH, SOL" + example: BTC + in: query + name: asset + type: string + - description: "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)" + example: 1h + in: query + name: horizon + type: string + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + example: 14 + in: query + name: days + type: integer + - description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + example: 10 + in: query + name: limit + type: integer + - description: API key + example: Apikey MY_API_KEY + in: header + name: Authorization + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + items: + $ref: "#/definitions/types.LimitlessMarket" + type: array + "400": + description: Bad Request + schema: + type: string + "500": + description: Internal Server Error + schema: + type: string + summary: Insight - Limitless hourly /insights/liquidation: get: description: "Get long and short liquidation probability estimates for an asset at various price levels. Returns the probability of liquidation within 6, 12, 18, and 24 hour windows for both long and short positions. Useful for assessing leverage risk, setting stop-loss levels, and managing margin exposure. Supported assets: BTC, ETH, XAU, SOL, SPY, NVDA, GOOGL, TSLA, AAPL." @@ -338,7 +529,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -384,7 +575,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -430,7 +621,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -476,7 +667,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -522,7 +713,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -556,6 +747,52 @@ paths: schema: type: string summary: Insight - Polymarket price range + /insights/polymarket/up-down/5min: + get: + description: "Get SynthData's estimated fair probabilities alongside live Polymarket odds for 5 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + parameters: + - description: "Symbol of the asset: BTC, ETH, SOL" + example: BTC + in: query + name: asset + type: string + - description: "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)" + example: 1h + in: query + name: horizon + type: string + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + example: 14 + in: query + name: days + type: integer + - description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + example: 10 + in: query + name: limit + type: integer + - description: API key + example: Apikey MY_API_KEY + in: header + name: Authorization + required: true + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: "#/definitions/types.PolymarketUpDownResponse" + "400": + description: Bad Request + schema: + type: string + "500": + description: Internal Server Error + schema: + type: string + summary: Insight - Polymarket up/down 5 minutes /insights/polymarket/up-down/15min: get: description: "Get SynthData's estimated fair probabilities alongside live Polymarket odds for 15 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." @@ -570,7 +807,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -616,7 +853,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -662,7 +899,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -708,7 +945,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days @@ -742,7 +979,7 @@ paths: summary: Prediction Percentiles - meta model from top 10 miners /insights/volatility: get: - description: It selects the top 'limit' miners from the meta-leaderboard to calculate the volatility. + description: Get SynthData's volatility forecasts for an asset. Returns expected volatility over the next 24 hours, along with historical realized volatility. parameters: - description: "Symbol of the asset: BTC, ETH, XAU, SOL, JITOSOL, SPY, NVDA, GOOGL, TSLA, AAPL" example: BTC @@ -754,7 +991,7 @@ paths: in: query name: horizon type: string - - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + - description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. example: 14 in: query name: days diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 7b94dd6..fcda147 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -6,6 +6,162 @@ info: contact: url: https://synthdata.co paths: + /insights/limitless/15min: + get: + summary: Insight - Limitless 15 minutes + description: 'Get SynthData''s estimated fair probabilities alongside live Limitless odds for 15 minutes contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL.' + parameters: + - name: asset + in: query + description: 'Symbol of the asset: BTC, ETH, SOL' + schema: + type: string + - name: horizon + in: query + description: 'Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)' + schema: + type: string + - name: days + in: query + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + schema: + type: integer + - name: limit + in: query + description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + schema: + type: integer + - name: Authorization + in: header + description: API key + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/types.LimitlessMarket' + "400": + description: Bad Request + content: + application/json: + schema: + type: string + "500": + description: Internal Server Error + content: + application/json: + schema: + type: string + /insights/limitless/daily: + get: + summary: Insight - Limitless daily + description: 'Get SynthData''s estimated fair probabilities alongside live Limitless odds for daily contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, SOL.' + parameters: + - name: asset + in: query + description: 'Symbol of the asset: BTC, ETH, SOL' + schema: + type: string + - name: horizon + in: query + description: 'Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)' + schema: + type: string + - name: days + in: query + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + schema: + type: integer + - name: limit + in: query + description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + schema: + type: integer + - name: Authorization + in: header + description: API key + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/types.LimitlessMarket' + "400": + description: Bad Request + content: + application/json: + schema: + type: string + "500": + description: Internal Server Error + content: + application/json: + schema: + type: string + /insights/limitless/hourly: + get: + summary: Insight - Limitless hourly + description: 'Get SynthData''s estimated fair probabilities alongside live Limitless odds for hourly contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL.' + parameters: + - name: asset + in: query + description: 'Symbol of the asset: BTC, ETH, SOL' + schema: + type: string + - name: horizon + in: query + description: 'Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)' + schema: + type: string + - name: days + in: query + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + schema: + type: integer + - name: limit + in: query + description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + schema: + type: integer + - name: Authorization + in: header + description: API key + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/types.LimitlessMarket' + "400": + description: Bad Request + content: + application/json: + schema: + type: string + "500": + description: Internal Server Error + content: + application/json: + schema: + type: string /insights/liquidation: get: summary: Insight - Liquidation probability @@ -23,7 +179,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -73,7 +229,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -123,7 +279,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -173,7 +329,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -223,7 +379,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -275,7 +431,57 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. + schema: + type: integer + - name: limit + in: query + description: Number of miners from the meta-leaderboard to use for the analysis (default is 10) + schema: + type: integer + - name: Authorization + in: header + description: API key + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/types.PolymarketUpDownResponse' + "400": + description: Bad Request + content: + application/json: + schema: + type: string + "500": + description: Internal Server Error + content: + application/json: + schema: + type: string + /insights/polymarket/up-down/5min: + get: + summary: Insight - Polymarket up/down 5 minutes + description: 'Get SynthData''s estimated fair probabilities alongside live Polymarket odds for 5 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL.' + parameters: + - name: asset + in: query + description: 'Symbol of the asset: BTC, ETH, SOL' + schema: + type: string + - name: horizon + in: query + description: 'Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)' + schema: + type: string + - name: days + in: query + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -325,7 +531,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -375,7 +581,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -425,7 +631,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -461,7 +667,7 @@ paths: /insights/volatility: get: summary: Insight - Volatility - description: It selects the top 'limit' miners from the meta-leaderboard to calculate the volatility. + description: Get SynthData's volatility forecasts for an asset. Returns expected volatility over the next 24 hours, along with historical realized volatility. parameters: - name: asset in: query @@ -475,7 +681,7 @@ paths: type: string - name: days in: query - description: Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'. + description: Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'. schema: type: integer - name: limit @@ -566,6 +772,8 @@ components: type: array items: $ref: '#/components/schemas/types.IntervalData' + forecast_start_time: + type: string types.LPProbabilitiesResponse: type: object properties: @@ -573,6 +781,8 @@ components: type: number data: $ref: '#/components/schemas/types.PriceProbabilityData' + forecast_start_time: + type: string types.LeaderboardItemV2: type: object properties: @@ -586,6 +796,39 @@ components: type: number updated_at: type: string + types.LimitlessMarket: + type: object + properties: + best_ask_price: + type: number + best_bid_price: + type: number + current_price: + type: number + current_time: + type: string + event_creation_time: + type: string + event_end_time: + type: string + event_outcome_prices: + type: array + items: + type: number + forecast_start_time: + type: string + market_outcome: + type: string + market_probability_up: + type: number + slug: + type: string + start_price: + type: number + synth_outcome: + type: string + synth_probability_up: + type: number types.LiquidationProbability: type: object properties: @@ -604,6 +847,8 @@ components: type: array items: $ref: '#/components/schemas/types.LiquidationProbability' + forecast_start_time: + type: string types.MinerValidationResponse: type: object properties: @@ -624,6 +869,8 @@ components: type: number expiry_time: type: string + forecast_start_time: + type: string put_options: type: object additionalProperties: @@ -672,6 +919,8 @@ components: type: string event_start_time: type: string + forecast_start_time: + type: string polymarket_last_trade_outcome: type: string polymarket_last_trade_price: @@ -740,6 +989,8 @@ components: type: string event_start_time: type: string + forecast_start_time: + type: string polymarket_last_trade_outcome: type: integer polymarket_last_trade_price: @@ -824,5 +1075,7 @@ components: $ref: '#/components/schemas/types.Forecast' forecast_past: $ref: '#/components/schemas/types.Forecast' + forecast_start_time: + type: string realized: $ref: '#/components/schemas/types.Realized' diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index edfa22f..6193714 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.729.0 +speakeasyVersion: 1.757.1 sources: Synth API: sourceNamespace: synth-mcp - sourceRevisionDigest: sha256:3e60bef4d3e90d5ee3579540d1681cce1bab80170510cfed4b2b4300849d157b - sourceBlobDigest: sha256:a9598e501b2bd94d9fc33c522ba7da448de26ff3fe265a99ad887fdeb90a887c + sourceRevisionDigest: sha256:a892598c2525923a3f625e5af7da2c84ad1ba541c0430086c29680f8eb354bbf + sourceBlobDigest: sha256:63644bfafe21b082494a0b335d1b606dbc377a8e393164f69cb182c73eb193c4 tags: - latest - "1.0" @@ -11,8 +11,8 @@ targets: synth: source: Synth API sourceNamespace: synth-mcp - sourceRevisionDigest: sha256:3e60bef4d3e90d5ee3579540d1681cce1bab80170510cfed4b2b4300849d157b - sourceBlobDigest: sha256:a9598e501b2bd94d9fc33c522ba7da448de26ff3fe265a99ad887fdeb90a887c + sourceRevisionDigest: sha256:a892598c2525923a3f625e5af7da2c84ad1ba541c0430086c29680f8eb354bbf + sourceBlobDigest: sha256:63644bfafe21b082494a0b335d1b606dbc377a8e393164f69cb182c73eb193c4 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/manifest.json b/manifest.json index acb973c..926dbc4 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": "0.3", "name": "synth-mcp", - "version": "0.0.14", + "version": "0.0.15", "description": "", "long_description": "Synth: Synth API offers programmatic access to probabilistic price forecasts for Equities, Commodities and Cryptocurrencies.", "author": { @@ -46,6 +46,18 @@ } }, "tools": [ + { + "name": "get-insights-limitless-15min", + "description": "Insight - Limitless 15 minutes\n\nGet SynthData's estimated fair probabilities alongside live Limitless odds for 15 minutes contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + }, + { + "name": "get-insights-limitless-daily", + "description": "Insight - Limitless daily\n\nGet SynthData's estimated fair probabilities alongside live Limitless odds for daily contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, SOL." + }, + { + "name": "get-insights-limitless-hourly", + "description": "Insight - Limitless hourly\n\nGet SynthData's estimated fair probabilities alongside live Limitless odds for hourly contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + }, { "name": "get-insights-liquidation", "description": "Insight - Liquidation probability\n\nGet long and short liquidation probability estimates for an asset at various price levels. Returns the probability of liquidation within 6, 12, 18, and 24 hour windows for both long and short positions. Useful for assessing leverage risk, setting stop-loss levels, and managing margin exposure. Supported assets: BTC, ETH, XAU, SOL, SPY, NVDA, GOOGL, TSLA, AAPL." @@ -70,6 +82,10 @@ "name": "get-insights-polymarket-up-down-15min", "description": "Insight - Polymarket up/down 15 minutes\n\nGet SynthData's estimated fair probabilities alongside live Polymarket odds for 15 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." }, + { + "name": "get-insights-polymarket-up-down-5min", + "description": "Insight - Polymarket up/down 5 minutes\n\nGet SynthData's estimated fair probabilities alongside live Polymarket odds for 5 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + }, { "name": "get-insights-polymarket-up-down-daily", "description": "Insight - Polymarket up/down daily\n\nGet SynthData's estimated fair probabilities alongside live Polymarket odds for daily Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, XAU, SOL, SPY, NVDA, GOOGL, TSLA, AAPL." @@ -84,7 +100,7 @@ }, { "name": "get-insights-volatility", - "description": "Insight - Volatility\n\nIt selects the top 'limit' miners from the meta-leaderboard to calculate the volatility." + "description": "Insight - Volatility\n\nGet SynthData's volatility forecasts for an asset. Returns expected volatility over the next 24 hours, along with historical realized volatility." } ] } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 841471d..8a74074 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,15 @@ { "name": "@mode-network/synth-mcp", - "version": "0.0.14", + "version": "0.0.15", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@mode-network/synth-mcp", - "version": "0.0.14", + "version": "0.0.15", "dependencies": { "@modelcontextprotocol/sdk": "1.26.0", "@stricli/core": "^1.1.2", - "bun": "^1.2.12", "express": "^5.1.0", "zod": "^4.0.0" }, @@ -24,6 +23,7 @@ "@types/bun": "^1.2.13", "@types/express": "^5.0.1", "@types/node": "^18.19.3", + "bun": "^1.2.12", "eslint": "^9.26.0", "globals": "^16.0.0", "typescript": "~5.8.3", @@ -601,6 +601,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -614,6 +615,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -627,6 +629,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -640,6 +643,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -653,6 +657,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -666,6 +671,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -679,6 +685,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -692,6 +699,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -705,6 +713,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -718,6 +727,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -731,6 +741,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1296,6 +1307,7 @@ "arm64", "x64" ], + "dev": true, "hasInstallScript": true, "license": "MIT", "os": [ diff --git a/package.json b/package.json index 2df69d4..51616ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mode-network/synth-mcp", - "version": "0.0.14", + "version": "0.0.15", "author": "Synth", "repository": { "type": "git", @@ -31,7 +31,6 @@ "dependencies": { "@modelcontextprotocol/sdk": "1.26.0", "@stricli/core": "^1.1.2", - "bun": "^1.2.12", "express": "^5.1.0", "zod": "^4.0.0" }, @@ -44,6 +43,7 @@ "@types/bun": "^1.2.13", "@types/express": "^5.0.1", "@types/node": "^18.19.3", + "bun": "^1.2.12", "eslint": "^9.26.0", "globals": "^16.0.0", "typescript": "~5.8.3", diff --git a/src/funcs/getInsightsLimitless15min.ts b/src/funcs/getInsightsLimitless15min.ts new file mode 100644 index 0000000..1937389 --- /dev/null +++ b/src/funcs/getInsightsLimitless15min.ts @@ -0,0 +1,148 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 6babaa581005 + */ + +import { SynthCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { pathToFunc } from "../lib/url.js"; +import { APIError } from "../models/errors/apierror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { + GetInsightsLimitless15minRequest, + GetInsightsLimitless15minRequest$zodSchema, +} from "../models/getinsightslimitless15minop.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Insight - Limitless 15 minutes + * + * @remarks + * Get SynthData's estimated fair probabilities alongside live Limitless odds for 15 minutes contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL. + */ +export function getInsightsLimitless15min( + client$: SynthCore, + request?: GetInsightsLimitless15minRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client$, + request, + options, + )); +} + +async function $do( + client$: SynthCore, + request?: GetInsightsLimitless15minRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const parsed$ = safeParse( + request, + (value$) => + GetInsightsLimitless15minRequest$zodSchema.optional().parse(value$), + "Input validation failed", + ); + if (!parsed$.ok) { + return [parsed$, { status: "invalid" }]; + } + const payload$ = parsed$.value; + const body$ = null; + const path$ = pathToFunc("/insights/limitless/15min")(); + const query$ = encodeFormQuery({ + "asset": payload$?.asset, + "days": payload$?.days, + "horizon": payload$?.horizon, + "limit": payload$?.limit, + }); + + const headers$ = new Headers(compactMap({ + Accept: "application/json", + })); + + const context = { + options: client$._options, + baseURL: options?.serverURL ?? client$._baseURL ?? "", + operationID: "get_/insights/limitless/15min", + oAuth2Scopes: null, + resolvedSecurity: null, + securitySource: null, + retryConfig: options?.retries + || client$._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || [ + "429", + "500", + "502", + "503", + "504", + ], + }; + + const requestRes = client$._createRequest(context, { + method: "GET", + baseURL: options?.serverURL, + path: path$, + headers: headers$, + query: query$, + body: body$, + userAgent: client$._options.userAgent, + timeoutMs: options?.timeoutMs || client$._options.timeoutMs + || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req$ = requestRes.value; + + const doResult = await client$._do(req$, { + context, + errorCodes: [], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req$ }]; + } + return [doResult, { + status: "complete", + "request": req$, + response: doResult.value, + }]; +} diff --git a/src/funcs/getInsightsLimitlessDaily.ts b/src/funcs/getInsightsLimitlessDaily.ts new file mode 100644 index 0000000..e161c72 --- /dev/null +++ b/src/funcs/getInsightsLimitlessDaily.ts @@ -0,0 +1,148 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 1c57ea4f2e6f + */ + +import { SynthCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { pathToFunc } from "../lib/url.js"; +import { APIError } from "../models/errors/apierror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { + GetInsightsLimitlessDailyRequest, + GetInsightsLimitlessDailyRequest$zodSchema, +} from "../models/getinsightslimitlessdailyop.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Insight - Limitless daily + * + * @remarks + * Get SynthData's estimated fair probabilities alongside live Limitless odds for daily contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, SOL. + */ +export function getInsightsLimitlessDaily( + client$: SynthCore, + request?: GetInsightsLimitlessDailyRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client$, + request, + options, + )); +} + +async function $do( + client$: SynthCore, + request?: GetInsightsLimitlessDailyRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const parsed$ = safeParse( + request, + (value$) => + GetInsightsLimitlessDailyRequest$zodSchema.optional().parse(value$), + "Input validation failed", + ); + if (!parsed$.ok) { + return [parsed$, { status: "invalid" }]; + } + const payload$ = parsed$.value; + const body$ = null; + const path$ = pathToFunc("/insights/limitless/daily")(); + const query$ = encodeFormQuery({ + "asset": payload$?.asset, + "days": payload$?.days, + "horizon": payload$?.horizon, + "limit": payload$?.limit, + }); + + const headers$ = new Headers(compactMap({ + Accept: "application/json", + })); + + const context = { + options: client$._options, + baseURL: options?.serverURL ?? client$._baseURL ?? "", + operationID: "get_/insights/limitless/daily", + oAuth2Scopes: null, + resolvedSecurity: null, + securitySource: null, + retryConfig: options?.retries + || client$._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || [ + "429", + "500", + "502", + "503", + "504", + ], + }; + + const requestRes = client$._createRequest(context, { + method: "GET", + baseURL: options?.serverURL, + path: path$, + headers: headers$, + query: query$, + body: body$, + userAgent: client$._options.userAgent, + timeoutMs: options?.timeoutMs || client$._options.timeoutMs + || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req$ = requestRes.value; + + const doResult = await client$._do(req$, { + context, + errorCodes: [], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req$ }]; + } + return [doResult, { + status: "complete", + "request": req$, + response: doResult.value, + }]; +} diff --git a/src/funcs/getInsightsLimitlessHourly.ts b/src/funcs/getInsightsLimitlessHourly.ts new file mode 100644 index 0000000..d02b473 --- /dev/null +++ b/src/funcs/getInsightsLimitlessHourly.ts @@ -0,0 +1,148 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 7289d505dc3f + */ + +import { SynthCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { pathToFunc } from "../lib/url.js"; +import { APIError } from "../models/errors/apierror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { + GetInsightsLimitlessHourlyRequest, + GetInsightsLimitlessHourlyRequest$zodSchema, +} from "../models/getinsightslimitlesshourlyop.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Insight - Limitless hourly + * + * @remarks + * Get SynthData's estimated fair probabilities alongside live Limitless odds for hourly contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL. + */ +export function getInsightsLimitlessHourly( + client$: SynthCore, + request?: GetInsightsLimitlessHourlyRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client$, + request, + options, + )); +} + +async function $do( + client$: SynthCore, + request?: GetInsightsLimitlessHourlyRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const parsed$ = safeParse( + request, + (value$) => + GetInsightsLimitlessHourlyRequest$zodSchema.optional().parse(value$), + "Input validation failed", + ); + if (!parsed$.ok) { + return [parsed$, { status: "invalid" }]; + } + const payload$ = parsed$.value; + const body$ = null; + const path$ = pathToFunc("/insights/limitless/hourly")(); + const query$ = encodeFormQuery({ + "asset": payload$?.asset, + "days": payload$?.days, + "horizon": payload$?.horizon, + "limit": payload$?.limit, + }); + + const headers$ = new Headers(compactMap({ + Accept: "application/json", + })); + + const context = { + options: client$._options, + baseURL: options?.serverURL ?? client$._baseURL ?? "", + operationID: "get_/insights/limitless/hourly", + oAuth2Scopes: null, + resolvedSecurity: null, + securitySource: null, + retryConfig: options?.retries + || client$._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || [ + "429", + "500", + "502", + "503", + "504", + ], + }; + + const requestRes = client$._createRequest(context, { + method: "GET", + baseURL: options?.serverURL, + path: path$, + headers: headers$, + query: query$, + body: body$, + userAgent: client$._options.userAgent, + timeoutMs: options?.timeoutMs || client$._options.timeoutMs + || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req$ = requestRes.value; + + const doResult = await client$._do(req$, { + context, + errorCodes: [], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req$ }]; + } + return [doResult, { + status: "complete", + "request": req$, + response: doResult.value, + }]; +} diff --git a/src/funcs/getInsightsPolymarketUpDown5min.ts b/src/funcs/getInsightsPolymarketUpDown5min.ts new file mode 100644 index 0000000..3831dc1 --- /dev/null +++ b/src/funcs/getInsightsPolymarketUpDown5min.ts @@ -0,0 +1,148 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: ce6a8fb24e9f + */ + +import { SynthCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { pathToFunc } from "../lib/url.js"; +import { APIError } from "../models/errors/apierror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { + GetInsightsPolymarketUpDown5minRequest, + GetInsightsPolymarketUpDown5minRequest$zodSchema, +} from "../models/getinsightspolymarketupdown5minop.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Insight - Polymarket up/down 5 minutes + * + * @remarks + * Get SynthData's estimated fair probabilities alongside live Polymarket odds for 5 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL. + */ +export function getInsightsPolymarketUpDown5min( + client$: SynthCore, + request?: GetInsightsPolymarketUpDown5minRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client$, + request, + options, + )); +} + +async function $do( + client$: SynthCore, + request?: GetInsightsPolymarketUpDown5minRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + Response, + | APIError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const parsed$ = safeParse( + request, + (value$) => + GetInsightsPolymarketUpDown5minRequest$zodSchema.optional().parse(value$), + "Input validation failed", + ); + if (!parsed$.ok) { + return [parsed$, { status: "invalid" }]; + } + const payload$ = parsed$.value; + const body$ = null; + const path$ = pathToFunc("/insights/polymarket/up-down/5min")(); + const query$ = encodeFormQuery({ + "asset": payload$?.asset, + "days": payload$?.days, + "horizon": payload$?.horizon, + "limit": payload$?.limit, + }); + + const headers$ = new Headers(compactMap({ + Accept: "application/json", + })); + + const context = { + options: client$._options, + baseURL: options?.serverURL ?? client$._baseURL ?? "", + operationID: "get_/insights/polymarket/up-down/5min", + oAuth2Scopes: null, + resolvedSecurity: null, + securitySource: null, + retryConfig: options?.retries + || client$._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || [ + "429", + "500", + "502", + "503", + "504", + ], + }; + + const requestRes = client$._createRequest(context, { + method: "GET", + baseURL: options?.serverURL, + path: path$, + headers: headers$, + query: query$, + body: body$, + userAgent: client$._options.userAgent, + timeoutMs: options?.timeoutMs || client$._options.timeoutMs + || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req$ = requestRes.value; + + const doResult = await client$._do(req$, { + context, + errorCodes: [], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req$ }]; + } + return [doResult, { + status: "complete", + "request": req$, + response: doResult.value, + }]; +} diff --git a/src/funcs/getInsightsVolatility.ts b/src/funcs/getInsightsVolatility.ts index fa6adce..8706481 100644 --- a/src/funcs/getInsightsVolatility.ts +++ b/src/funcs/getInsightsVolatility.ts @@ -29,7 +29,7 @@ import { Result } from "../types/fp.js"; * Insight - Volatility * * @remarks - * It selects the top 'limit' miners from the meta-leaderboard to calculate the volatility. + * Get SynthData's volatility forecasts for an asset. Returns expected volatility over the next 24 hours, along with historical realized volatility. */ export function getInsightsVolatility( client$: SynthCore, diff --git a/src/hooks/hooks.ts b/src/hooks/hooks.ts index 28c90f8..f5011c7 100644 --- a/src/hooks/hooks.ts +++ b/src/hooks/hooks.ts @@ -3,7 +3,6 @@ * @generated-id: a2463fc6f69b */ -import { initHooks } from "./registration.js"; import { AfterErrorContext, AfterErrorHook, @@ -20,6 +19,7 @@ import { import { SDKOptions } from "../lib/config.js"; import { RequestInput } from "../lib/http.js"; +import { initHooks } from "./registration.js"; export class SDKHooks implements Hooks { sdkInitHooks: SDKInitHook[] = []; @@ -31,6 +31,9 @@ export class SDKHooks implements Hooks { constructor() { const presetHooks: Array = []; + // Initialize default hooks (e.g., BearerAuthHook) to preserve existing behavior. + initHooks(this); + for (const hook of presetHooks) { if ("sdkInit" in hook) { this.registerSDKInitHook(hook); @@ -48,7 +51,6 @@ export class SDKHooks implements Hooks { this.registerAfterErrorHook(hook); } } - initHooks(this); } registerSDKInitHook(hook: SDKInitHook) { diff --git a/src/lib/config.ts b/src/lib/config.ts index ea85e8e..ba0b60d 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -57,7 +57,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0", - sdkVersion: "0.0.14", - genVersion: "2.841.0", - userAgent: "speakeasy-sdk/mcp-typescript 0.0.14 2.841.0 1.0 synth-mcp", + sdkVersion: "0.0.15", + genVersion: "2.866.2", + userAgent: "speakeasy-sdk/mcp-typescript 0.0.15 2.866.2 1.0 synth-mcp", } as const; diff --git a/src/lib/files.ts b/src/lib/files.ts index 457f4ce..65b68cb 100644 --- a/src/lib/files.ts +++ b/src/lib/files.ts @@ -81,3 +81,25 @@ export function getContentTypeFromFileName(fileName: string): string | null { return mimeTypes[ext] || null; } + +/** + * Creates a Blob from file content with the given MIME type. + * + * Node.js Buffers are Uint8Array subclasses that may share a pooled + * ArrayBuffer (byteOffset > 0, byteLength < buffer.byteLength). Passing + * such a Buffer directly to `new Blob([buf])` can include the entire + * underlying pool on some runtimes, producing a Blob with extra bytes + * that corrupts multipart uploads. + * + * Copying into a standalone Uint8Array ensures the Blob receives only the + * intended bytes regardless of runtime behaviour. + */ +export function bytesToBlob( + content: Uint8Array | ArrayBuffer | Blob | string, + contentType: string, +): Blob { + if (content instanceof Uint8Array) { + return new Blob([new Uint8Array(content)], { type: contentType }); + } + return new Blob([content as BlobPart], { type: contentType }); +} diff --git a/src/lib/security.ts b/src/lib/security.ts index 5297ee3..bb01280 100644 --- a/src/lib/security.ts +++ b/src/lib/security.ts @@ -82,7 +82,10 @@ type SecurityInputOAuth2 = { type SecurityInputOAuth2ClientCredentials = { type: "oauth2:client_credentials"; value: - | { clientID?: string | undefined; clientSecret?: string | undefined } + | { + clientID?: string | undefined; + clientSecret?: string | undefined; + } | null | string | undefined; diff --git a/src/mcp-server/build.mts b/src/mcp-server/build.mts index e8114fb..1cdf897 100644 --- a/src/mcp-server/build.mts +++ b/src/mcp-server/build.mts @@ -1,7 +1,7 @@ /// import { build } from "bun"; -import { chmod, readFile, writeFile } from "node:fs/promises"; +import { chmod, cp, mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises"; import { packExtension } from "@anthropic-ai/mcpb"; import { join } from "node:path"; import { createMCPServer } from "./server.ts"; @@ -45,10 +45,10 @@ export const toolNames: Array<{ name: string; description: string }>= ${JSON.str await build({ entrypoints: [entrypoint], outdir: destinationDir, - sourcemap: "linked", + sourcemap: shouldPack ? "none" : "linked", target: "node", format: "esm", - minify: false, + minify: shouldPack, throw: true, banner: "#!/usr/bin/env node", }); @@ -59,11 +59,32 @@ export const toolNames: Array<{ name: string; description: string }>= ${JSON.str // Build the MCP bundle file if (shouldPack) { + // Stage only the files needed for distribution to avoid bloated bundles. + // Without this, packExtension would include node_modules and source files. + const stageDir = ".mcpb-stage"; + await mkdir(join(stageDir, "bin"), { recursive: true }); + await cp( + join(destinationDir, "mcp-server.js"), + join(stageDir, "bin", "mcp-server.js"), + ); + await cp("manifest.json", join(stageDir, "manifest.json")); + + // Copy icon and screenshot assets if they exist + const assetExts = [".png", ".jpg", ".jpeg", ".gif", ".webp"]; + for (const file of await readdir(".")) { + if (assetExts.some((ext) => file.toLowerCase().endsWith(ext))) { + await cp(file, join(stageDir, file)); + } + } + await packExtension({ - extensionPath: ".", + extensionPath: stageDir, outputPath: "./mcp-server.mcpb", silent: false, }); + + // Clean up staging directory + await rm(stageDir, { recursive: true, force: true }); } } diff --git a/src/mcp-server/cli/serve/command.ts b/src/mcp-server/cli/serve/command.ts new file mode 100644 index 0000000..3fa7252 --- /dev/null +++ b/src/mcp-server/cli/serve/command.ts @@ -0,0 +1,94 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 7cd4394c80e8 + */ + +import { buildCommand } from "@stricli/core"; +import { numberParser } from "@stricli/core"; +import * as z from "zod"; +import { consoleLoggerLevels } from "../../console-logger.js"; + +export const serveCommand = buildCommand({ + loader: async () => { + const { main } = await import("./impl.js"); + return main; + }, + parameters: { + flags: { + port: { + kind: "parsed", + brief: "The port to listen on for Streamable HTTP connections", + default: "2718", + parse: (val: string) => + z.coerce.number().int().gte(0).lt(65536).parse(val), + }, + "disable-static-auth": { + kind: "boolean", + brief: + "Disable static authentication, allowing credentials to be passed via request headers only", + default: false, + }, + tool: { + kind: "parsed", + brief: "Specify tools to mount on the server", + optional: true, + variadic: true, + parse: (value) => { + return z.string().parse(value); + }, + }, + mode: { + kind: "enum", + brief: + "Server mode (dynamic: expose list_tools, describe_tool, and execute_tool instead of individual tools)", + values: ["dynamic"], + optional: true, + }, + "server-url": { + kind: "parsed", + brief: "Overrides the default server URL used by the SDK", + optional: false, + parse: (value) => new URL(value).toString(), + }, + "server-index": { + kind: "parsed", + brief: "Selects a predefined server used by the SDK", + optional: true, + parse: numberParser, + }, + "log-level": { + kind: "enum", + brief: "The log level to use for the server", + default: "info", + values: consoleLoggerLevels, + }, + env: { + kind: "parsed", + brief: "Environment variables made available to the server", + optional: true, + variadic: true, + parse: (val: string) => { + const sepIdx = val.indexOf("="); + if (sepIdx === -1) { + throw new Error("Invalid environment variable format"); + } + + const key = val.slice(0, sepIdx); + const value = val.slice(sepIdx + 1); + + return [ + z.string().nonempty({ + message: "Environment variable key must be a non-empty string", + }).parse(key), + z.string().nonempty({ + message: "Environment variable value must be a non-empty string", + }).parse(value), + ] satisfies [string, string]; + }, + }, + }, + }, + docs: { + brief: "Run the MCP server with Streamable HTTP transport", + }, +}); diff --git a/src/mcp-server/cli/serve/impl.ts b/src/mcp-server/cli/serve/impl.ts new file mode 100644 index 0000000..73310ad --- /dev/null +++ b/src/mcp-server/cli/serve/impl.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 03e83f226068 + */ + +import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; +import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js"; +import express from "express"; +import { LocalContext } from "../../cli.js"; +import { + ConsoleLoggerLevel, + createConsoleLogger, +} from "../../console-logger.js"; +import { MCPServerFlags } from "../../flags.js"; +import { createMCPServer } from "../../server.js"; + +import { landingPageExpress } from "../../../landing-page.js"; + +interface ServeCommandFlags extends MCPServerFlags { + readonly port: number; + readonly "disable-static-auth": boolean; + readonly "log-level": ConsoleLoggerLevel; + readonly env?: [string, string][]; +} + +export async function main(this: LocalContext, flags: ServeCommandFlags) { + flags.env?.forEach(([key, value]) => { + process.env[key] = value; + }); + + await startStreamableHTTP(flags); +} + +async function startStreamableHTTP(cliFlags: ServeCommandFlags) { + const logger = createConsoleLogger(cliFlags["log-level"]); + const app = express(); + + // Enable CORS for cross-origin requests + app.use((req, res, next) => { + res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); + res.header("Access-Control-Allow-Headers", "Content-Type, *"); + if (req.method === "OPTIONS") { + res.sendStatus(204); + return; + } + next(); + }); + + app.use(express.json()); + + app.post("/mcp", async (req, res) => { + const transport = new StreamableHTTPServerTransport({}); + + const { server: mcpServer } = createMCPServer({ + logger, + allowedTools: cliFlags.tool, + dynamic: cliFlags.mode === "dynamic", + serverURL: cliFlags["server-url"], + serverIdx: cliFlags["server-index"], + }); + + mcpServer.server.onerror = (error) => { + logger.error("MCP protocol error", { + error: error instanceof Error ? error.message : String(error), + stack: error instanceof Error ? error.stack : undefined, + }); + }; + + await mcpServer.connect(transport as Transport); + await transport.handleRequest(req, res, req.body); + }); + + app.get("/", landingPageExpress); + + const httpServer = app.listen(cliFlags.port, "0.0.0.0", () => { + const ha = httpServer.address(); + const host = typeof ha === "string" ? ha : `${ha?.address}:${ha?.port}`; + logger.info("MCP Streamable HTTP server started", { host }); + }); + + const shutdown = () => { + logger.info("Shutting down HTTP server"); + + const timer = setTimeout(() => { + logger.info("Forcing shutdown"); + process.exit(1); + }, 5000); + + httpServer.close(() => { + clearTimeout(timer); + logger.info("Graceful shutdown complete"); + process.exit(0); + }); + }; + + process.on("SIGTERM", shutdown); + process.on("SIGINT", shutdown); +} diff --git a/src/mcp-server/mcp-server.ts b/src/mcp-server/mcp-server.ts index a613270..e2aef65 100644 --- a/src/mcp-server/mcp-server.ts +++ b/src/mcp-server/mcp-server.ts @@ -6,11 +6,13 @@ import { buildApplication, buildRouteMap, run } from "@stricli/core"; import process from "node:process"; import { buildContext } from "./cli.js"; +import { serveCommand } from "./cli/serve/command.js"; import { startCommand } from "./cli/start/command.js"; const routes = buildRouteMap({ routes: { start: startCommand, + serve: serveCommand, }, docs: { brief: "MCP server CLI", @@ -20,7 +22,7 @@ const routes = buildRouteMap({ export const app = buildApplication(routes, { name: "mcp", versionInfo: { - currentVersion: "0.0.14", + currentVersion: "0.0.15", }, }); diff --git a/src/mcp-server/server.ts b/src/mcp-server/server.ts index f489c91..eb88347 100644 --- a/src/mcp-server/server.ts +++ b/src/mcp-server/server.ts @@ -14,12 +14,16 @@ import { } from "./resources.js"; import { MCPScope } from "./scopes.js"; import { createRegisterTool, registerDynamicTools } from "./tools.js"; +import { tool$getInsightsLimitless15min } from "./tools/getInsightsLimitless15min.js"; +import { tool$getInsightsLimitlessDaily } from "./tools/getInsightsLimitlessDaily.js"; +import { tool$getInsightsLimitlessHourly } from "./tools/getInsightsLimitlessHourly.js"; import { tool$getInsightsLiquidation } from "./tools/getInsightsLiquidation.js"; import { tool$getInsightsLpBounds } from "./tools/getInsightsLpBounds.js"; import { tool$getInsightsLpProbabilities } from "./tools/getInsightsLpProbabilities.js"; import { tool$getInsightsOptionPricing } from "./tools/getInsightsOptionPricing.js"; import { tool$getInsightsPolymarketRange } from "./tools/getInsightsPolymarketRange.js"; import { tool$getInsightsPolymarketUpDown15min } from "./tools/getInsightsPolymarketUpDown15min.js"; +import { tool$getInsightsPolymarketUpDown5min } from "./tools/getInsightsPolymarketUpDown5min.js"; import { tool$getInsightsPolymarketUpDownDaily } from "./tools/getInsightsPolymarketUpDownDaily.js"; import { tool$getInsightsPolymarketUpDownHourly } from "./tools/getInsightsPolymarketUpDownHourly.js"; import { tool$getInsightsPredictionPercentiles } from "./tools/getInsightsPredictionPercentiles.js"; @@ -36,7 +40,7 @@ export function createMCPServer(deps: { }) { const server = new McpServer({ name: "Synth", - version: "0.0.14", + version: "0.0.15", }); const getClient = deps.getSDK || (() => @@ -79,12 +83,16 @@ export function createMCPServer(deps: { const register = { tool, resource, resourceTemplate, prompt }; void register; // suppress unused warnings + tool(tool$getInsightsLimitless15min); + tool(tool$getInsightsLimitlessDaily); + tool(tool$getInsightsLimitlessHourly); tool(tool$getInsightsLiquidation); tool(tool$getInsightsLpBounds); tool(tool$getInsightsLpProbabilities); tool(tool$getInsightsOptionPricing); tool(tool$getInsightsPolymarketRange); tool(tool$getInsightsPolymarketUpDown15min); + tool(tool$getInsightsPolymarketUpDown5min); tool(tool$getInsightsPolymarketUpDownDaily); tool(tool$getInsightsPolymarketUpDownHourly); tool(tool$getInsightsPredictionPercentiles); diff --git a/src/mcp-server/tools/getInsightsLimitless15min.ts b/src/mcp-server/tools/getInsightsLimitless15min.ts new file mode 100644 index 0000000..56d2d21 --- /dev/null +++ b/src/mcp-server/tools/getInsightsLimitless15min.ts @@ -0,0 +1,43 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 2176ca44759b + */ + +import { getInsightsLimitless15min } from "../../funcs/getInsightsLimitless15min.js"; +import { GetInsightsLimitless15minRequest$zodSchema } from "../../models/getinsightslimitless15minop.js"; +import { formatResult, ToolDefinition } from "../tools.js"; + +const args = { + request: GetInsightsLimitless15minRequest$zodSchema.optional(), +}; + +export const tool$getInsightsLimitless15min: ToolDefinition = { + name: "get-insights-limitless-15min", + description: `Insight - Limitless 15 minutes + +Get SynthData's estimated fair probabilities alongside live Limitless odds for 15 minutes contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL.`, + annotations: { + "title": "", + "destructiveHint": false, + "idempotentHint": false, + "openWorldHint": false, + "readOnlyHint": true, + }, + args, + tool: async (client, args, ctx) => { + const [result] = await getInsightsLimitless15min( + client, + args.request, + { fetchOptions: { signal: ctx.signal } }, + ).$inspect(); + + if (!result.ok) { + return { + content: [{ type: "text", text: result.error.message }], + isError: true, + }; + } + + return formatResult(result.value); + }, +}; diff --git a/src/mcp-server/tools/getInsightsLimitlessDaily.ts b/src/mcp-server/tools/getInsightsLimitlessDaily.ts new file mode 100644 index 0000000..b1e4339 --- /dev/null +++ b/src/mcp-server/tools/getInsightsLimitlessDaily.ts @@ -0,0 +1,43 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: ffe682f0f808 + */ + +import { getInsightsLimitlessDaily } from "../../funcs/getInsightsLimitlessDaily.js"; +import { GetInsightsLimitlessDailyRequest$zodSchema } from "../../models/getinsightslimitlessdailyop.js"; +import { formatResult, ToolDefinition } from "../tools.js"; + +const args = { + request: GetInsightsLimitlessDailyRequest$zodSchema.optional(), +}; + +export const tool$getInsightsLimitlessDaily: ToolDefinition = { + name: "get-insights-limitless-daily", + description: `Insight - Limitless daily + +Get SynthData's estimated fair probabilities alongside live Limitless odds for daily contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, SOL.`, + annotations: { + "title": "", + "destructiveHint": false, + "idempotentHint": false, + "openWorldHint": false, + "readOnlyHint": true, + }, + args, + tool: async (client, args, ctx) => { + const [result] = await getInsightsLimitlessDaily( + client, + args.request, + { fetchOptions: { signal: ctx.signal } }, + ).$inspect(); + + if (!result.ok) { + return { + content: [{ type: "text", text: result.error.message }], + isError: true, + }; + } + + return formatResult(result.value); + }, +}; diff --git a/src/mcp-server/tools/getInsightsLimitlessHourly.ts b/src/mcp-server/tools/getInsightsLimitlessHourly.ts new file mode 100644 index 0000000..e5ec2f6 --- /dev/null +++ b/src/mcp-server/tools/getInsightsLimitlessHourly.ts @@ -0,0 +1,43 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 120bef4dc6f6 + */ + +import { getInsightsLimitlessHourly } from "../../funcs/getInsightsLimitlessHourly.js"; +import { GetInsightsLimitlessHourlyRequest$zodSchema } from "../../models/getinsightslimitlesshourlyop.js"; +import { formatResult, ToolDefinition } from "../tools.js"; + +const args = { + request: GetInsightsLimitlessHourlyRequest$zodSchema.optional(), +}; + +export const tool$getInsightsLimitlessHourly: ToolDefinition = { + name: "get-insights-limitless-hourly", + description: `Insight - Limitless hourly + +Get SynthData's estimated fair probabilities alongside live Limitless odds for hourly contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL.`, + annotations: { + "title": "", + "destructiveHint": false, + "idempotentHint": false, + "openWorldHint": false, + "readOnlyHint": true, + }, + args, + tool: async (client, args, ctx) => { + const [result] = await getInsightsLimitlessHourly( + client, + args.request, + { fetchOptions: { signal: ctx.signal } }, + ).$inspect(); + + if (!result.ok) { + return { + content: [{ type: "text", text: result.error.message }], + isError: true, + }; + } + + return formatResult(result.value); + }, +}; diff --git a/src/mcp-server/tools/getInsightsPolymarketUpDown5min.ts b/src/mcp-server/tools/getInsightsPolymarketUpDown5min.ts new file mode 100644 index 0000000..4a92c42 --- /dev/null +++ b/src/mcp-server/tools/getInsightsPolymarketUpDown5min.ts @@ -0,0 +1,44 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 54db83170089 + */ + +import { getInsightsPolymarketUpDown5min } from "../../funcs/getInsightsPolymarketUpDown5min.js"; +import { GetInsightsPolymarketUpDown5minRequest$zodSchema } from "../../models/getinsightspolymarketupdown5minop.js"; +import { formatResult, ToolDefinition } from "../tools.js"; + +const args = { + request: GetInsightsPolymarketUpDown5minRequest$zodSchema.optional(), +}; + +export const tool$getInsightsPolymarketUpDown5min: ToolDefinition = + { + name: "get-insights-polymarket-up-down-5min", + description: `Insight - Polymarket up/down 5 minutes + +Get SynthData's estimated fair probabilities alongside live Polymarket odds for 5 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL.`, + annotations: { + "title": "", + "destructiveHint": false, + "idempotentHint": false, + "openWorldHint": false, + "readOnlyHint": true, + }, + args, + tool: async (client, args, ctx) => { + const [result] = await getInsightsPolymarketUpDown5min( + client, + args.request, + { fetchOptions: { signal: ctx.signal } }, + ).$inspect(); + + if (!result.ok) { + return { + content: [{ type: "text", text: result.error.message }], + isError: true, + }; + } + + return formatResult(result.value); + }, + }; diff --git a/src/mcp-server/tools/getInsightsVolatility.ts b/src/mcp-server/tools/getInsightsVolatility.ts index bf143a2..b09cdc7 100644 --- a/src/mcp-server/tools/getInsightsVolatility.ts +++ b/src/mcp-server/tools/getInsightsVolatility.ts @@ -15,7 +15,7 @@ export const tool$getInsightsVolatility: ToolDefinition = { name: "get-insights-volatility", description: `Insight - Volatility -It selects the top 'limit' miners from the meta-leaderboard to calculate the volatility.`, +Get SynthData's volatility forecasts for an asset. Returns expected volatility over the next 24 hours, along with historical realized volatility.`, annotations: { "title": "", "destructiveHint": false, diff --git a/src/models/getinsightslimitless15minop.ts b/src/models/getinsightslimitless15minop.ts new file mode 100644 index 0000000..586e0b2 --- /dev/null +++ b/src/models/getinsightslimitless15minop.ts @@ -0,0 +1,45 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 5cbebb1d73e0 + */ + +import * as z from "zod"; +import { + TypesLimitlessMarket, + TypesLimitlessMarket$zodSchema, +} from "./typeslimitlessmarket.js"; + +export type GetInsightsLimitless15minRequest = { + asset?: string | undefined; + horizon?: string | undefined; + days?: number | undefined; + limit?: number | undefined; +}; + +export const GetInsightsLimitless15minRequest$zodSchema: z.ZodType< + GetInsightsLimitless15minRequest +> = z.object({ + asset: z.string().describe("Symbol of the asset: BTC, ETH, SOL").optional(), + days: z.int().describe( + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", + ).optional(), + horizon: z.string().describe( + "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)", + ).optional(), + limit: z.int().describe( + "Number of miners from the meta-leaderboard to use for the analysis (default is 10)", + ).optional(), +}); + +export type GetInsightsLimitless15minResponse = + | Array + | string + | string; + +export const GetInsightsLimitless15minResponse$zodSchema: z.ZodType< + GetInsightsLimitless15minResponse +> = z.union([ + z.array(TypesLimitlessMarket$zodSchema).describe("OK"), + z.string().describe("Bad Request"), + z.string().describe("Internal Server Error"), +]); diff --git a/src/models/getinsightslimitlessdailyop.ts b/src/models/getinsightslimitlessdailyop.ts new file mode 100644 index 0000000..aeed193 --- /dev/null +++ b/src/models/getinsightslimitlessdailyop.ts @@ -0,0 +1,45 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 0035e41a98b9 + */ + +import * as z from "zod"; +import { + TypesLimitlessMarket, + TypesLimitlessMarket$zodSchema, +} from "./typeslimitlessmarket.js"; + +export type GetInsightsLimitlessDailyRequest = { + asset?: string | undefined; + horizon?: string | undefined; + days?: number | undefined; + limit?: number | undefined; +}; + +export const GetInsightsLimitlessDailyRequest$zodSchema: z.ZodType< + GetInsightsLimitlessDailyRequest +> = z.object({ + asset: z.string().describe("Symbol of the asset: BTC, ETH, SOL").optional(), + days: z.int().describe( + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", + ).optional(), + horizon: z.string().describe( + "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", + ).optional(), + limit: z.int().describe( + "Number of miners from the meta-leaderboard to use for the analysis (default is 10)", + ).optional(), +}); + +export type GetInsightsLimitlessDailyResponse = + | Array + | string + | string; + +export const GetInsightsLimitlessDailyResponse$zodSchema: z.ZodType< + GetInsightsLimitlessDailyResponse +> = z.union([ + z.array(TypesLimitlessMarket$zodSchema).describe("OK"), + z.string().describe("Bad Request"), + z.string().describe("Internal Server Error"), +]); diff --git a/src/models/getinsightslimitlesshourlyop.ts b/src/models/getinsightslimitlesshourlyop.ts new file mode 100644 index 0000000..1fecbb5 --- /dev/null +++ b/src/models/getinsightslimitlesshourlyop.ts @@ -0,0 +1,45 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: c1c031026011 + */ + +import * as z from "zod"; +import { + TypesLimitlessMarket, + TypesLimitlessMarket$zodSchema, +} from "./typeslimitlessmarket.js"; + +export type GetInsightsLimitlessHourlyRequest = { + asset?: string | undefined; + horizon?: string | undefined; + days?: number | undefined; + limit?: number | undefined; +}; + +export const GetInsightsLimitlessHourlyRequest$zodSchema: z.ZodType< + GetInsightsLimitlessHourlyRequest +> = z.object({ + asset: z.string().describe("Symbol of the asset: BTC, ETH, SOL").optional(), + days: z.int().describe( + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", + ).optional(), + horizon: z.string().describe( + "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)", + ).optional(), + limit: z.int().describe( + "Number of miners from the meta-leaderboard to use for the analysis (default is 10)", + ).optional(), +}); + +export type GetInsightsLimitlessHourlyResponse = + | Array + | string + | string; + +export const GetInsightsLimitlessHourlyResponse$zodSchema: z.ZodType< + GetInsightsLimitlessHourlyResponse +> = z.union([ + z.array(TypesLimitlessMarket$zodSchema).describe("OK"), + z.string().describe("Bad Request"), + z.string().describe("Internal Server Error"), +]); diff --git a/src/models/getinsightsliquidationop.ts b/src/models/getinsightsliquidationop.ts index e12b2ee..1040160 100644 --- a/src/models/getinsightsliquidationop.ts +++ b/src/models/getinsightsliquidationop.ts @@ -23,7 +23,7 @@ export const GetInsightsLiquidationRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, XAU, SOL, JITOSOL, SPY, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/getinsightslpboundsop.ts b/src/models/getinsightslpboundsop.ts index 03f5180..f5bad94 100644 --- a/src/models/getinsightslpboundsop.ts +++ b/src/models/getinsightslpboundsop.ts @@ -23,7 +23,7 @@ export const GetInsightsLpBoundsRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, XAU, SOL, JITOSOL, SPY, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/getinsightslpprobabilitiesop.ts b/src/models/getinsightslpprobabilitiesop.ts index 631c198..6b51cbd 100644 --- a/src/models/getinsightslpprobabilitiesop.ts +++ b/src/models/getinsightslpprobabilitiesop.ts @@ -23,7 +23,7 @@ export const GetInsightsLpProbabilitiesRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, XAU, SOL, JITOSOL, SPY, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/getinsightsoptionpricingop.ts b/src/models/getinsightsoptionpricingop.ts index 2709cbd..54c6e6b 100644 --- a/src/models/getinsightsoptionpricingop.ts +++ b/src/models/getinsightsoptionpricingop.ts @@ -23,7 +23,7 @@ export const GetInsightsOptionPricingRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, SOL, JITOSOL, SPY, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/getinsightspolymarketrangeop.ts b/src/models/getinsightspolymarketrangeop.ts index 7467d17..6223365 100644 --- a/src/models/getinsightspolymarketrangeop.ts +++ b/src/models/getinsightspolymarketrangeop.ts @@ -23,7 +23,7 @@ export const GetInsightsPolymarketRangeRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, SOL, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/getinsightspolymarketupdown15minop.ts b/src/models/getinsightspolymarketupdown15minop.ts index 1c85c21..3564a51 100644 --- a/src/models/getinsightspolymarketupdown15minop.ts +++ b/src/models/getinsightspolymarketupdown15minop.ts @@ -21,7 +21,7 @@ export const GetInsightsPolymarketUpDown15minRequest$zodSchema: z.ZodType< > = z.object({ asset: z.string().describe("Symbol of the asset: BTC, ETH, SOL").optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)", diff --git a/src/models/getinsightspolymarketupdown5minop.ts b/src/models/getinsightspolymarketupdown5minop.ts new file mode 100644 index 0000000..52f72d3 --- /dev/null +++ b/src/models/getinsightspolymarketupdown5minop.ts @@ -0,0 +1,45 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: f10f599e30d8 + */ + +import * as z from "zod"; +import { + TypesPolymarketUpDownResponse, + TypesPolymarketUpDownResponse$zodSchema, +} from "./typespolymarketupdownresponse.js"; + +export type GetInsightsPolymarketUpDown5minRequest = { + asset?: string | undefined; + horizon?: string | undefined; + days?: number | undefined; + limit?: number | undefined; +}; + +export const GetInsightsPolymarketUpDown5minRequest$zodSchema: z.ZodType< + GetInsightsPolymarketUpDown5minRequest +> = z.object({ + asset: z.string().describe("Symbol of the asset: BTC, ETH, SOL").optional(), + days: z.int().describe( + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", + ).optional(), + horizon: z.string().describe( + "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)", + ).optional(), + limit: z.int().describe( + "Number of miners from the meta-leaderboard to use for the analysis (default is 10)", + ).optional(), +}); + +export type GetInsightsPolymarketUpDown5minResponse = + | TypesPolymarketUpDownResponse + | string + | string; + +export const GetInsightsPolymarketUpDown5minResponse$zodSchema: z.ZodType< + GetInsightsPolymarketUpDown5minResponse +> = z.union([ + TypesPolymarketUpDownResponse$zodSchema, + z.string().describe("Bad Request"), + z.string().describe("Internal Server Error"), +]); diff --git a/src/models/getinsightspolymarketupdowndailyop.ts b/src/models/getinsightspolymarketupdowndailyop.ts index 9ebd9a7..39e349f 100644 --- a/src/models/getinsightspolymarketupdowndailyop.ts +++ b/src/models/getinsightspolymarketupdowndailyop.ts @@ -23,7 +23,7 @@ export const GetInsightsPolymarketUpDownDailyRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, XAU, SOL, SPY, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/getinsightspolymarketupdownhourlyop.ts b/src/models/getinsightspolymarketupdownhourlyop.ts index f14888d..7eb9313 100644 --- a/src/models/getinsightspolymarketupdownhourlyop.ts +++ b/src/models/getinsightspolymarketupdownhourlyop.ts @@ -21,7 +21,7 @@ export const GetInsightsPolymarketUpDownHourlyRequest$zodSchema: z.ZodType< > = z.object({ asset: z.string().describe("Symbol of the asset: BTC, ETH, SOL").optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 1h)", diff --git a/src/models/getinsightspredictionpercentilesop.ts b/src/models/getinsightspredictionpercentilesop.ts index 6600a76..e74476e 100644 --- a/src/models/getinsightspredictionpercentilesop.ts +++ b/src/models/getinsightspredictionpercentilesop.ts @@ -23,7 +23,7 @@ export const GetInsightsPredictionPercentilesRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, XAU, SOL, JITOSOL, SPY, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/getinsightsvolatilityop.ts b/src/models/getinsightsvolatilityop.ts index 0799811..7afbadf 100644 --- a/src/models/getinsightsvolatilityop.ts +++ b/src/models/getinsightsvolatilityop.ts @@ -23,7 +23,7 @@ export const GetInsightsVolatilityRequest$zodSchema: z.ZodType< "Symbol of the asset: BTC, ETH, XAU, SOL, JITOSOL, SPY, NVDA, GOOGL, TSLA, AAPL", ).optional(), days: z.int().describe( - "Number of days to aggregate for the meta-leaderboard (default is 14). See 'Leaderboard - Latest Meta-Leaderboard'.", + "Number of days to aggregate for the meta-leaderboard (default is 14 if horizon=24h, 6 if horizon=1h). See 'Leaderboard - Latest Meta-Leaderboard'.", ).optional(), horizon: z.string().describe( "Forecast horizon: 1h for next-hour or 24h for next-day price intervals (default: 24h)", diff --git a/src/models/typeslimitlessmarket.ts b/src/models/typeslimitlessmarket.ts new file mode 100644 index 0000000..45fdbb4 --- /dev/null +++ b/src/models/typeslimitlessmarket.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 07372bb92421 + */ + +import * as z from "zod"; + +export type TypesLimitlessMarket = { + best_ask_price?: number | undefined; + best_bid_price?: number | undefined; + current_price?: number | undefined; + current_time?: string | undefined; + event_creation_time?: string | undefined; + event_end_time?: string | undefined; + event_outcome_prices?: Array | undefined; + forecast_start_time?: string | undefined; + market_outcome?: string | undefined; + market_probability_up?: number | undefined; + slug?: string | undefined; + start_price?: number | undefined; + synth_outcome?: string | undefined; + synth_probability_up?: number | undefined; +}; + +export const TypesLimitlessMarket$zodSchema: z.ZodType = z + .object({ + best_ask_price: z.number().optional(), + best_bid_price: z.number().optional(), + current_price: z.number().optional(), + current_time: z.string().optional(), + event_creation_time: z.string().optional(), + event_end_time: z.string().optional(), + event_outcome_prices: z.array(z.number()).optional(), + forecast_start_time: z.string().optional(), + market_outcome: z.string().optional(), + market_probability_up: z.number().optional(), + slug: z.string().optional(), + start_price: z.number().optional(), + synth_outcome: z.string().optional(), + synth_probability_up: z.number().optional(), + }); diff --git a/src/models/typesliquidationprobabilityresponse.ts b/src/models/typesliquidationprobabilityresponse.ts index 53d9dc1..d8aa21a 100644 --- a/src/models/typesliquidationprobabilityresponse.ts +++ b/src/models/typesliquidationprobabilityresponse.ts @@ -12,6 +12,7 @@ import { export type TypesLiquidationProbabilityResponse = { current_price?: number | undefined; data?: Array | undefined; + forecast_start_time?: string | undefined; }; export const TypesLiquidationProbabilityResponse$zodSchema: z.ZodType< @@ -19,4 +20,5 @@ export const TypesLiquidationProbabilityResponse$zodSchema: z.ZodType< > = z.object({ current_price: z.number().optional(), data: z.array(TypesLiquidationProbability$zodSchema).optional(), + forecast_start_time: z.string().optional(), }); diff --git a/src/models/typeslpboundsresponse.ts b/src/models/typeslpboundsresponse.ts index 9ca2463..b693c10 100644 --- a/src/models/typeslpboundsresponse.ts +++ b/src/models/typeslpboundsresponse.ts @@ -12,10 +12,12 @@ import { export type TypesLPBoundsResponse = { current_price?: number | undefined; data?: Array | undefined; + forecast_start_time?: string | undefined; }; export const TypesLPBoundsResponse$zodSchema: z.ZodType = z.object({ current_price: z.number().optional(), data: z.array(TypesIntervalData$zodSchema).optional(), + forecast_start_time: z.string().optional(), }); diff --git a/src/models/typeslpprobabilitiesresponse.ts b/src/models/typeslpprobabilitiesresponse.ts index 1bd1987..5037057 100644 --- a/src/models/typeslpprobabilitiesresponse.ts +++ b/src/models/typeslpprobabilitiesresponse.ts @@ -12,6 +12,7 @@ import { export type TypesLPProbabilitiesResponse = { current_price?: number | undefined; data?: TypesPriceProbabilityData | undefined; + forecast_start_time?: string | undefined; }; export const TypesLPProbabilitiesResponse$zodSchema: z.ZodType< @@ -19,4 +20,5 @@ export const TypesLPProbabilitiesResponse$zodSchema: z.ZodType< > = z.object({ current_price: z.number().optional(), data: TypesPriceProbabilityData$zodSchema.optional(), + forecast_start_time: z.string().optional(), }); diff --git a/src/models/typesoptionpricingresponse.ts b/src/models/typesoptionpricingresponse.ts index 87f77ba..2e55fe4 100644 --- a/src/models/typesoptionpricingresponse.ts +++ b/src/models/typesoptionpricingresponse.ts @@ -9,6 +9,7 @@ export type TypesOptionPricingResponse = { call_options?: { [k: string]: number } | undefined; current_price?: number | undefined; expiry_time?: string | undefined; + forecast_start_time?: string | undefined; put_options?: { [k: string]: number } | undefined; }; @@ -18,5 +19,6 @@ export const TypesOptionPricingResponse$zodSchema: z.ZodType< call_options: z.record(z.string(), z.number()).optional(), current_price: z.number().optional(), expiry_time: z.string().optional(), + forecast_start_time: z.string().optional(), put_options: z.record(z.string(), z.number()).optional(), }); diff --git a/src/models/typespolymarketupdownresponse.ts b/src/models/typespolymarketupdownresponse.ts index bb54fa9..b27ae9e 100644 --- a/src/models/typespolymarketupdownresponse.ts +++ b/src/models/typespolymarketupdownresponse.ts @@ -16,6 +16,7 @@ export type TypesPolymarketUpDownResponse = { event_creation_time?: string | undefined; event_end_time?: string | undefined; event_start_time?: string | undefined; + forecast_start_time?: string | undefined; polymarket_last_trade_outcome?: string | undefined; polymarket_last_trade_price?: number | undefined; polymarket_last_trade_time?: string | undefined; @@ -40,6 +41,7 @@ export const TypesPolymarketUpDownResponse$zodSchema: z.ZodType< event_creation_time: z.string().optional(), event_end_time: z.string().optional(), event_start_time: z.string().optional(), + forecast_start_time: z.string().optional(), polymarket_last_trade_outcome: z.string().optional(), polymarket_last_trade_price: z.number().optional(), polymarket_last_trade_time: z.string().optional(), diff --git a/src/models/typespricerangemarket.ts b/src/models/typespricerangemarket.ts index f5bb7e2..d436cf1 100644 --- a/src/models/typespricerangemarket.ts +++ b/src/models/typespricerangemarket.ts @@ -17,6 +17,7 @@ export type TypesPriceRangeMarket = { event_creation_time?: string | undefined; event_end_time?: string | undefined; event_start_time?: string | undefined; + forecast_start_time?: string | undefined; polymarket_last_trade_outcome?: number | undefined; polymarket_last_trade_price?: number | undefined; polymarket_last_trade_time?: string | undefined; @@ -42,6 +43,7 @@ export const TypesPriceRangeMarket$zodSchema: z.ZodType = event_creation_time: z.string().optional(), event_end_time: z.string().optional(), event_start_time: z.string().optional(), + forecast_start_time: z.string().optional(), polymarket_last_trade_outcome: z.int().optional(), polymarket_last_trade_price: z.number().optional(), polymarket_last_trade_time: z.string().optional(), diff --git a/src/models/typesvolatilityresponse.ts b/src/models/typesvolatilityresponse.ts index 73a5f25..93930bc 100644 --- a/src/models/typesvolatilityresponse.ts +++ b/src/models/typesvolatilityresponse.ts @@ -11,6 +11,7 @@ export type TypesVolatilityResponse = { current_price?: number | undefined; forecast_future?: TypesForecast | undefined; forecast_past?: TypesForecast | undefined; + forecast_start_time?: string | undefined; realized?: TypesRealized | undefined; }; @@ -20,5 +21,6 @@ export const TypesVolatilityResponse$zodSchema: z.ZodType< current_price: z.number().optional(), forecast_future: TypesForecast$zodSchema.optional(), forecast_past: TypesForecast$zodSchema.optional(), + forecast_start_time: z.string().optional(), realized: TypesRealized$zodSchema.optional(), }); diff --git a/src/tool-names.ts b/src/tool-names.ts index eaf7c75..1901438 100644 --- a/src/tool-names.ts +++ b/src/tool-names.ts @@ -1,5 +1,17 @@ // Auto-generated at build time export const toolNames: Array<{ name: string; description: string }>= [ + { + "name": "get-insights-limitless-15min", + "description": "Insight - Limitless 15 minutes\n\nGet SynthData's estimated fair probabilities alongside live Limitless odds for 15 minutes contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + }, + { + "name": "get-insights-limitless-daily", + "description": "Insight - Limitless daily\n\nGet SynthData's estimated fair probabilities alongside live Limitless odds for daily contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, SOL." + }, + { + "name": "get-insights-limitless-hourly", + "description": "Insight - Limitless hourly\n\nGet SynthData's estimated fair probabilities alongside live Limitless odds for hourly contracts. Returns both synth and Limitless probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + }, { "name": "get-insights-liquidation", "description": "Insight - Liquidation probability\n\nGet long and short liquidation probability estimates for an asset at various price levels. Returns the probability of liquidation within 6, 12, 18, and 24 hour windows for both long and short positions. Useful for assessing leverage risk, setting stop-loss levels, and managing margin exposure. Supported assets: BTC, ETH, XAU, SOL, SPY, NVDA, GOOGL, TSLA, AAPL." @@ -24,6 +36,10 @@ export const toolNames: Array<{ name: string; description: string }>= [ "name": "get-insights-polymarket-up-down-15min", "description": "Insight - Polymarket up/down 15 minutes\n\nGet SynthData's estimated fair probabilities alongside live Polymarket odds for 15 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." }, + { + "name": "get-insights-polymarket-up-down-5min", + "description": "Insight - Polymarket up/down 5 minutes\n\nGet SynthData's estimated fair probabilities alongside live Polymarket odds for 5 minutes Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets on shorter timeframes. Supported assets: BTC, ETH, SOL." + }, { "name": "get-insights-polymarket-up-down-daily", "description": "Insight - Polymarket up/down daily\n\nGet SynthData's estimated fair probabilities alongside live Polymarket odds for daily Up/Down contracts. Returns both synth and Polymarket probabilities, current outcome, and order book data (best bid/ask). Compare to identify mispriced bets. Supported assets: BTC, ETH, XAU, SOL, SPY, NVDA, GOOGL, TSLA, AAPL." @@ -38,6 +54,6 @@ export const toolNames: Array<{ name: string; description: string }>= [ }, { "name": "get-insights-volatility", - "description": "Insight - Volatility\n\nIt selects the top 'limit' miners from the meta-leaderboard to calculate the volatility." + "description": "Insight - Volatility\n\nGet SynthData's volatility forecasts for an asset. Returns expected volatility over the next 24 hours, along with historical realized volatility." } ];