@suigar/mcp 0.2.0-beta.0 → 0.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/schemas.d.mts.map +1 -1
- package/dist/schemas.mjs +2 -2
- package/dist/schemas.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/schemas.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.mts","names":[],"sources":["../src/schemas.ts"],"mappings":";;;cAOa,YAAA;AAAA,cAoBA,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsCrB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsBjB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAErB,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAU3B,cAAA,EAAc,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,UAAA;AAAA,cAKd,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwBtB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAerB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cASnB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAUhB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAYnB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAWhB,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgB5B,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAW1B,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsB5B,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"schemas.d.mts","names":[],"sources":["../src/schemas.ts"],"mappings":";;;cAOa,YAAA;AAAA,cAoBA,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsCrB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsBjB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAErB,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAU3B,cAAA,EAAc,CAAA,CAAA,SAAA,CAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,UAAA;AAAA,cAKd,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwBtB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAerB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cASnB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAUhB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAYnB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAWhB,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgB5B,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAW1B,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsB5B,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;KAcjB,eAAA,GAAkB,CAAA,CAAE,KAAK,QAAQ,qBAAA;AAAA,KACjC,qBAAA,GAAwB,CAAA,CAAE,KAAK,QAAQ,2BAAA;AAAA,KACvC,gBAAA,GAAmB,CAAA,CAAE,KAAK,QAAQ,sBAAA;AAAA,KAClC,aAAA,GAAgB,CAAA,CAAE,KAAK,QAAQ,mBAAA;AAAA,KAC/B,UAAA,GAAa,CAAA,CAAE,KAAK,QAAQ,gBAAA;AAAA,KAC5B,aAAA,GAAgB,CAAA,CAAE,KAAK,QAAQ,mBAAA;AAAA,KAC/B,UAAA,GAAa,CAAA,CAAE,KAAK,QAAQ,gBAAA;AAAA,KAC5B,sBAAA,GAAyB,CAAA,CAAE,KAAK,QACpC,4BAAA;AAAA,KAEI,oBAAA,GAAuB,CAAA,CAAE,KAAK,QAAQ,0BAAA;AAAA,KACtC,sBAAA,GAAyB,CAAA,CAAE,KAAK,QACpC,4BAAA"}
|
package/dist/schemas.mjs
CHANGED
|
@@ -94,7 +94,7 @@ const unknownJsonSchema = z.lazy(() => z.union([
|
|
|
94
94
|
z.array(unknownJsonSchema),
|
|
95
95
|
z.record(z.string(), unknownJsonSchema)
|
|
96
96
|
]));
|
|
97
|
-
const toolOutputSchema = z.
|
|
97
|
+
const toolOutputSchema = z.looseObject({
|
|
98
98
|
mode: z.enum(builderModes).optional(),
|
|
99
99
|
network: z.enum(SUPPORTED_SUI_NETWORKS).optional(),
|
|
100
100
|
config: unknownJsonSchema.optional(),
|
|
@@ -106,7 +106,7 @@ const toolOutputSchema = z.object({
|
|
|
106
106
|
dryRun: unknownJsonSchema.optional(),
|
|
107
107
|
dryRunSummary: unknownJsonSchema.optional(),
|
|
108
108
|
errors: z.array(z.string()).optional()
|
|
109
|
-
})
|
|
109
|
+
});
|
|
110
110
|
//#endregion
|
|
111
111
|
export { builderModes, coinflipInputSchema, commonBuildInputSchema, configIdInputSchema, configInputSchema, configOverridesSchema, limboInputSchema, metadataSchema, pvpCoinflipCancelInputSchema, pvpCoinflipCreateInputSchema, pvpCoinflipJoinInputSchema, rangeInputSchema, readConfigInputSchema, readGameMetadataInputSchema, stakeBuildInputSchema, toolOutputSchema };
|
|
112
112
|
|
package/dist/schemas.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.mjs","names":[],"sources":["../src/schemas.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod/v4';\nimport { SUPPORTED_SUI_NETWORKS } from '@suigar/sdk';\nimport { GAMES } from '@suigar/sdk/games';\n\nexport const builderModes = ['build', 'dry-run', 'read-only'] as const;\n\nconst addressDescription =\n\t'Sui address or SuiNS name such as 0xabc..., name.sui, or sub.name.sui; required for build and dry-run modes.';\nconst coinTypeDescription =\n\t'Move coin type such as 0x2::sui::SUI. Defaults to the SDK-configured SUI coin type.';\nconst currencyAmountDescription =\n\t'Currency amount in the chosen coin, converted to base units using the configured coin decimals.';\nconst currencyAmountSchema = z.union([\n\tz.number().nonnegative(),\n\tz.string().regex(/^(?:\\d+|\\d+\\.\\d+|\\.\\d+)$/u),\n]);\n\nconst coinMetadataSchema = z\n\t.object({\n\t\tcoinType: z.string().min(1).optional(),\n\t\tdecimals: z.number().int().nonnegative().optional(),\n\t})\n\t.strict();\n\nexport const configOverridesSchema = z\n\t.object({\n\t\tpackageIds: z\n\t\t\t.object({\n\t\t\t\tsweetHouse: z.string().min(1).optional(),\n\t\t\t\tcore: z.string().min(1).optional(),\n\t\t\t\tcoinflip: z.string().min(1).optional(),\n\t\t\t\tlimbo: z.string().min(1).optional(),\n\t\t\t\tplinko: z.string().min(1).optional(),\n\t\t\t\tpvpCoinflip: z.string().min(1).optional(),\n\t\t\t\trange: z.string().min(1).optional(),\n\t\t\t\twheel: z.string().min(1).optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t\tregistryIds: z\n\t\t\t.object({\n\t\t\t\tpvpCoinflip: z.string().min(1).optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t\tcoins: z\n\t\t\t.object({\n\t\t\t\tsui: coinMetadataSchema.optional(),\n\t\t\t\tusdc: coinMetadataSchema.optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t\tpriceInfoObjectIds: z\n\t\t\t.object({\n\t\t\t\tsui: z.string().min(1).optional(),\n\t\t\t\tusdc: z.string().min(1).optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t})\n\t.strict();\n\nexport const configInputSchema = z\n\t.object({\n\t\tnetwork: z\n\t\t\t.enum(SUPPORTED_SUI_NETWORKS)\n\t\t\t.default('testnet')\n\t\t\t.describe('Sui network. Only mainnet and testnet are supported.'),\n\t\tproviderUrl: z\n\t\t\t.string()\n\t\t\t.url()\n\t\t\t.optional()\n\t\t\t.describe('Optional Sui gRPC endpoint URL.'),\n\t\tconfig: configOverridesSchema\n\t\t\t.optional()\n\t\t\t.describe('SDK-style SuigarConfigOverrides.'),\n\t\tpartner: z\n\t\t\t.string()\n\t\t\t.min(1)\n\t\t\t.optional()\n\t\t\t.describe('Partner wallet address injected through the SDK extension.'),\n\t})\n\t.strict();\n\nexport const readConfigInputSchema = configInputSchema;\n\nexport const readGameMetadataInputSchema = configInputSchema\n\t.extend({\n\t\tgame: z\n\t\t\t.enum(GAMES)\n\t\t\t.optional()\n\t\t\t.describe('Optional Suigar game id to inspect.'),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t})\n\t.strict();\n\nexport const metadataSchema = z.record(\n\tz.string(),\n\tz.union([z.string(), z.number(), z.boolean()]),\n);\n\nexport const commonBuildInputSchema = configInputSchema\n\t.extend({\n\t\tmode: z\n\t\t\t.enum(builderModes)\n\t\t\t.default('build')\n\t\t\t.describe('Build, dry-run, or return a read-only plan.'),\n\t\towner: z.string().min(1).optional().describe(addressDescription),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t\tmetadata: metadataSchema\n\t\t\t.optional()\n\t\t\t.describe('Metadata values encoded by @suigar/sdk.'),\n\t\tgasBudget: z\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.positive()\n\t\t\t.optional()\n\t\t\t.describe('Optional gas budget in MIST.'),\n\t\tuseGasCoin: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe('Allow the SUI gas coin to be used for native SUI bet coins.'),\n\t})\n\t.strict();\n\nexport const stakeBuildInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tstake: currencyAmountSchema\n\t\t\t.optional()\n\t\t\t.describe(`Logical wager. ${currencyAmountDescription}`),\n\t\tcashStake: currencyAmountSchema\n\t\t\t.optional()\n\t\t\t.describe(`Optional withdrawn amount. ${currencyAmountDescription}`),\n\t\tbetCount: z\n\t\t\t.union([z.number().int().positive(), z.string().regex(/^[1-9]\\d*$/u)])\n\t\t\t.optional()\n\t\t\t.describe('Optional bet count.'),\n\t})\n\t.strict();\n\nexport const coinflipInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\tside: z\n\t\t\t.enum(['heads', 'tails'])\n\t\t\t.optional()\n\t\t\t.describe('Selected coinflip side.'),\n\t})\n\t.strict();\n\nexport const limboInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\ttargetMultiplier: z\n\t\t\t.number()\n\t\t\t.positive()\n\t\t\t.optional()\n\t\t\t.describe('Target multiplier.'),\n\t})\n\t.strict();\n\nexport const configIdInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\tconfigId: z\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.min(0)\n\t\t\t.max(255)\n\t\t\t.optional()\n\t\t\t.describe('On-chain game config id.'),\n\t})\n\t.strict();\n\nexport const rangeInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\tleftPoint: z.number().optional().describe('Left range point.'),\n\t\trightPoint: z.number().optional().describe('Right range point.'),\n\t\toutOfRange: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe('Whether the bet targets outside the selected range.'),\n\t})\n\t.strict();\n\nexport const pvpCoinflipCreateInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tstake: currencyAmountSchema\n\t\t\t.optional()\n\t\t\t.describe(`Stake per player. ${currencyAmountDescription}`),\n\t\tcreatorSide: z\n\t\t\t.enum(['heads', 'tails'])\n\t\t\t.optional()\n\t\t\t.describe('Creator side.'),\n\t\tisPrivate: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe('Whether the PvP lobby is private.'),\n\t})\n\t.strict();\n\nexport const pvpCoinflipJoinInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tgameId: z\n\t\t\t.string()\n\t\t\t.min(1)\n\t\t\t.optional()\n\t\t\t.describe('PvP coinflip game object id.'),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t})\n\t.strict();\n\nexport const pvpCoinflipCancelInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tgameId: z\n\t\t\t.string()\n\t\t\t.min(1)\n\t\t\t.optional()\n\t\t\t.describe('PvP coinflip game object id.'),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t})\n\t.strict();\n\nconst unknownJsonSchema: z.ZodType<unknown> = z.lazy(() =>\n\tz.union([\n\t\tz.string(),\n\t\tz.number(),\n\t\tz.boolean(),\n\t\tz.null(),\n\t\tz.array(unknownJsonSchema),\n\t\tz.record(z.string(), unknownJsonSchema),\n\t]),\n);\n\nexport const toolOutputSchema = z\n\t.object({\n\t\tmode: z.enum(builderModes).optional(),\n\t\tnetwork: z.enum(SUPPORTED_SUI_NETWORKS).optional(),\n\t\tconfig: unknownJsonSchema.optional(),\n\t\tgame: unknownJsonSchema.optional(),\n\t\taction: z.string().optional(),\n\t\tplan: unknownJsonSchema.optional(),\n\t\tsummary: unknownJsonSchema.optional(),\n\t\ttransactionBytesBase64: z.string().optional(),\n\t\tdryRun: unknownJsonSchema.optional(),\n\t\tdryRunSummary: unknownJsonSchema.optional(),\n\t\terrors: z.array(z.string()).optional(),\n\t})\n\t.loose();\n\nexport type ReadConfigInput = z.input<typeof readConfigInputSchema>;\nexport type ReadGameMetadataInput = z.input<typeof readGameMetadataInputSchema>;\nexport type CommonBuildInput = z.input<typeof commonBuildInputSchema>;\nexport type CoinflipInput = z.input<typeof coinflipInputSchema>;\nexport type LimboInput = z.input<typeof limboInputSchema>;\nexport type ConfigIdInput = z.input<typeof configIdInputSchema>;\nexport type RangeInput = z.input<typeof rangeInputSchema>;\nexport type PvpCoinflipCreateInput = z.input<\n\ttypeof pvpCoinflipCreateInputSchema\n>;\nexport type PvpCoinflipJoinInput = z.input<typeof pvpCoinflipJoinInputSchema>;\nexport type PvpCoinflipCancelInput = z.input<\n\ttypeof pvpCoinflipCancelInputSchema\n>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.mjs","names":[],"sources":["../src/schemas.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod/v4';\nimport { SUPPORTED_SUI_NETWORKS } from '@suigar/sdk';\nimport { GAMES } from '@suigar/sdk/games';\n\nexport const builderModes = ['build', 'dry-run', 'read-only'] as const;\n\nconst addressDescription =\n\t'Sui address or SuiNS name such as 0xabc..., name.sui, or sub.name.sui; required for build and dry-run modes.';\nconst coinTypeDescription =\n\t'Move coin type such as 0x2::sui::SUI. Defaults to the SDK-configured SUI coin type.';\nconst currencyAmountDescription =\n\t'Currency amount in the chosen coin, converted to base units using the configured coin decimals.';\nconst currencyAmountSchema = z.union([\n\tz.number().nonnegative(),\n\tz.string().regex(/^(?:\\d+|\\d+\\.\\d+|\\.\\d+)$/u),\n]);\n\nconst coinMetadataSchema = z\n\t.object({\n\t\tcoinType: z.string().min(1).optional(),\n\t\tdecimals: z.number().int().nonnegative().optional(),\n\t})\n\t.strict();\n\nexport const configOverridesSchema = z\n\t.object({\n\t\tpackageIds: z\n\t\t\t.object({\n\t\t\t\tsweetHouse: z.string().min(1).optional(),\n\t\t\t\tcore: z.string().min(1).optional(),\n\t\t\t\tcoinflip: z.string().min(1).optional(),\n\t\t\t\tlimbo: z.string().min(1).optional(),\n\t\t\t\tplinko: z.string().min(1).optional(),\n\t\t\t\tpvpCoinflip: z.string().min(1).optional(),\n\t\t\t\trange: z.string().min(1).optional(),\n\t\t\t\twheel: z.string().min(1).optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t\tregistryIds: z\n\t\t\t.object({\n\t\t\t\tpvpCoinflip: z.string().min(1).optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t\tcoins: z\n\t\t\t.object({\n\t\t\t\tsui: coinMetadataSchema.optional(),\n\t\t\t\tusdc: coinMetadataSchema.optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t\tpriceInfoObjectIds: z\n\t\t\t.object({\n\t\t\t\tsui: z.string().min(1).optional(),\n\t\t\t\tusdc: z.string().min(1).optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t})\n\t.strict();\n\nexport const configInputSchema = z\n\t.object({\n\t\tnetwork: z\n\t\t\t.enum(SUPPORTED_SUI_NETWORKS)\n\t\t\t.default('testnet')\n\t\t\t.describe('Sui network. Only mainnet and testnet are supported.'),\n\t\tproviderUrl: z\n\t\t\t.string()\n\t\t\t.url()\n\t\t\t.optional()\n\t\t\t.describe('Optional Sui gRPC endpoint URL.'),\n\t\tconfig: configOverridesSchema\n\t\t\t.optional()\n\t\t\t.describe('SDK-style SuigarConfigOverrides.'),\n\t\tpartner: z\n\t\t\t.string()\n\t\t\t.min(1)\n\t\t\t.optional()\n\t\t\t.describe('Partner wallet address injected through the SDK extension.'),\n\t})\n\t.strict();\n\nexport const readConfigInputSchema = configInputSchema;\n\nexport const readGameMetadataInputSchema = configInputSchema\n\t.extend({\n\t\tgame: z\n\t\t\t.enum(GAMES)\n\t\t\t.optional()\n\t\t\t.describe('Optional Suigar game id to inspect.'),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t})\n\t.strict();\n\nexport const metadataSchema = z.record(\n\tz.string(),\n\tz.union([z.string(), z.number(), z.boolean()]),\n);\n\nexport const commonBuildInputSchema = configInputSchema\n\t.extend({\n\t\tmode: z\n\t\t\t.enum(builderModes)\n\t\t\t.default('build')\n\t\t\t.describe('Build, dry-run, or return a read-only plan.'),\n\t\towner: z.string().min(1).optional().describe(addressDescription),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t\tmetadata: metadataSchema\n\t\t\t.optional()\n\t\t\t.describe('Metadata values encoded by @suigar/sdk.'),\n\t\tgasBudget: z\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.positive()\n\t\t\t.optional()\n\t\t\t.describe('Optional gas budget in MIST.'),\n\t\tuseGasCoin: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe('Allow the SUI gas coin to be used for native SUI bet coins.'),\n\t})\n\t.strict();\n\nexport const stakeBuildInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tstake: currencyAmountSchema\n\t\t\t.optional()\n\t\t\t.describe(`Logical wager. ${currencyAmountDescription}`),\n\t\tcashStake: currencyAmountSchema\n\t\t\t.optional()\n\t\t\t.describe(`Optional withdrawn amount. ${currencyAmountDescription}`),\n\t\tbetCount: z\n\t\t\t.union([z.number().int().positive(), z.string().regex(/^[1-9]\\d*$/u)])\n\t\t\t.optional()\n\t\t\t.describe('Optional bet count.'),\n\t})\n\t.strict();\n\nexport const coinflipInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\tside: z\n\t\t\t.enum(['heads', 'tails'])\n\t\t\t.optional()\n\t\t\t.describe('Selected coinflip side.'),\n\t})\n\t.strict();\n\nexport const limboInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\ttargetMultiplier: z\n\t\t\t.number()\n\t\t\t.positive()\n\t\t\t.optional()\n\t\t\t.describe('Target multiplier.'),\n\t})\n\t.strict();\n\nexport const configIdInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\tconfigId: z\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.min(0)\n\t\t\t.max(255)\n\t\t\t.optional()\n\t\t\t.describe('On-chain game config id.'),\n\t})\n\t.strict();\n\nexport const rangeInputSchema = stakeBuildInputSchema\n\t.extend({\n\t\tleftPoint: z.number().optional().describe('Left range point.'),\n\t\trightPoint: z.number().optional().describe('Right range point.'),\n\t\toutOfRange: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe('Whether the bet targets outside the selected range.'),\n\t})\n\t.strict();\n\nexport const pvpCoinflipCreateInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tstake: currencyAmountSchema\n\t\t\t.optional()\n\t\t\t.describe(`Stake per player. ${currencyAmountDescription}`),\n\t\tcreatorSide: z\n\t\t\t.enum(['heads', 'tails'])\n\t\t\t.optional()\n\t\t\t.describe('Creator side.'),\n\t\tisPrivate: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe('Whether the PvP lobby is private.'),\n\t})\n\t.strict();\n\nexport const pvpCoinflipJoinInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tgameId: z\n\t\t\t.string()\n\t\t\t.min(1)\n\t\t\t.optional()\n\t\t\t.describe('PvP coinflip game object id.'),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t})\n\t.strict();\n\nexport const pvpCoinflipCancelInputSchema = commonBuildInputSchema\n\t.extend({\n\t\tgameId: z\n\t\t\t.string()\n\t\t\t.min(1)\n\t\t\t.optional()\n\t\t\t.describe('PvP coinflip game object id.'),\n\t\tcoinType: z.string().min(1).optional().describe(coinTypeDescription),\n\t})\n\t.strict();\n\nconst unknownJsonSchema: z.ZodType<unknown> = z.lazy(() =>\n\tz.union([\n\t\tz.string(),\n\t\tz.number(),\n\t\tz.boolean(),\n\t\tz.null(),\n\t\tz.array(unknownJsonSchema),\n\t\tz.record(z.string(), unknownJsonSchema),\n\t]),\n);\n\nexport const toolOutputSchema = z.looseObject({\n\tmode: z.enum(builderModes).optional(),\n\tnetwork: z.enum(SUPPORTED_SUI_NETWORKS).optional(),\n\tconfig: unknownJsonSchema.optional(),\n\tgame: unknownJsonSchema.optional(),\n\taction: z.string().optional(),\n\tplan: unknownJsonSchema.optional(),\n\tsummary: unknownJsonSchema.optional(),\n\ttransactionBytesBase64: z.string().optional(),\n\tdryRun: unknownJsonSchema.optional(),\n\tdryRunSummary: unknownJsonSchema.optional(),\n\terrors: z.array(z.string()).optional(),\n});\n\nexport type ReadConfigInput = z.input<typeof readConfigInputSchema>;\nexport type ReadGameMetadataInput = z.input<typeof readGameMetadataInputSchema>;\nexport type CommonBuildInput = z.input<typeof commonBuildInputSchema>;\nexport type CoinflipInput = z.input<typeof coinflipInputSchema>;\nexport type LimboInput = z.input<typeof limboInputSchema>;\nexport type ConfigIdInput = z.input<typeof configIdInputSchema>;\nexport type RangeInput = z.input<typeof rangeInputSchema>;\nexport type PvpCoinflipCreateInput = z.input<\n\ttypeof pvpCoinflipCreateInputSchema\n>;\nexport type PvpCoinflipJoinInput = z.input<typeof pvpCoinflipJoinInputSchema>;\nexport type PvpCoinflipCancelInput = z.input<\n\ttypeof pvpCoinflipCancelInputSchema\n>;\n"],"mappings":"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"}
|