@continuumdao/ctm-mpc-defi 0.2.51 → 0.2.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/catalog.cjs +66 -31
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +87 -21
- package/dist/agent/catalog.js +66 -31
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/continuum-dao/SKILL.md +7 -6
- package/dist/protocols/evm/continuum-dao/index.cjs +44 -4
- package/dist/protocols/evm/continuum-dao/index.cjs.map +1 -1
- package/dist/protocols/evm/continuum-dao/index.d.ts +8 -1
- package/dist/protocols/evm/continuum-dao/index.js +44 -4
- package/dist/protocols/evm/continuum-dao/index.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/catalog.js
CHANGED
|
@@ -570,7 +570,7 @@ function listContinuumDaoDefaultAssets() {
|
|
|
570
570
|
}
|
|
571
571
|
return out;
|
|
572
572
|
}
|
|
573
|
-
var CONTINUUM_DAO_PROTOCOL_ID, CONTINUUM_DAO_ETHEREUM_CHAIN_ID, CONTINUUM_DAO_LINEA_CHAIN_ID, CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID, CTM_TOKEN_NAME, CTM_TOKEN_SYMBOL, VECTM_TOKEN_NAME, VECTM_TOKEN_SYMBOL, CTM_TOKEN_DECIMALS, UNSET, CTM_TOKEN_ADDRESS, VOTING_ESCROW_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS, CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID, CONTINUUM_DAO_DEPLOYMENTS;
|
|
573
|
+
var CONTINUUM_DAO_PROTOCOL_ID, CONTINUUM_DAO_ETHEREUM_CHAIN_ID, CONTINUUM_DAO_LINEA_CHAIN_ID, CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID, CTM_TOKEN_NAME, CTM_TOKEN_SYMBOL, VECTM_TOKEN_NAME, VECTM_TOKEN_SYMBOL, CTM_TOKEN_DECIMALS, UNSET, CTM_TOKEN_ADDRESS, VOTING_ESCROW_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS, CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID, CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS, CONTINUUM_DAO_DEPLOYMENTS;
|
|
574
574
|
var init_constants2 = __esm({
|
|
575
575
|
"src/protocols/evm/continuum-dao/constants.ts"() {
|
|
576
576
|
CONTINUUM_DAO_PROTOCOL_ID = "continuum-dao";
|
|
@@ -596,7 +596,7 @@ var init_constants2 = __esm({
|
|
|
596
596
|
getAddress("0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f");
|
|
597
597
|
getAddress("0x176211869cA2b568f2A7D4EE941E073a821EE1ff");
|
|
598
598
|
CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID = "continuum-dao-marketplace";
|
|
599
|
-
getAddress("0x76FF2CB03175900F1D83328C82D27EA9aeaF2355");
|
|
599
|
+
CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS = getAddress("0x76FF2CB03175900F1D83328C82D27EA9aeaF2355");
|
|
600
600
|
getAddress("0x4800F9f1dC1b6daCA841B71E0531F547D374168E");
|
|
601
601
|
[
|
|
602
602
|
getAddress("0xd23eecBe0362F36b254F774C274823Cbfc482a10"),
|
|
@@ -607,7 +607,8 @@ var init_constants2 = __esm({
|
|
|
607
607
|
[CONTINUUM_DAO_LINEA_CHAIN_ID]: {
|
|
608
608
|
...UNSET,
|
|
609
609
|
ctm: CTM_TOKEN_ADDRESS,
|
|
610
|
-
votingEscrow: VOTING_ESCROW_LINEA_ADDRESS
|
|
610
|
+
votingEscrow: VOTING_ESCROW_LINEA_ADDRESS,
|
|
611
|
+
governor: CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS
|
|
611
612
|
},
|
|
612
613
|
[CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID]: { ...UNSET },
|
|
613
614
|
[CONTINUUM_DAO_ETHEREUM_CHAIN_ID]: {
|
|
@@ -3696,7 +3697,16 @@ var mcpContinuumDaoRegisterProposalOutputSchema = z.object({
|
|
|
3696
3697
|
ok: z.literal(true),
|
|
3697
3698
|
result: z.unknown()
|
|
3698
3699
|
});
|
|
3699
|
-
var
|
|
3700
|
+
var forumNodeAddressField = z.string().optional().describe(
|
|
3701
|
+
"KeyGen ethereum address. The server reads the forum ticket stored on this node and continues only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is already logged in."
|
|
3702
|
+
);
|
|
3703
|
+
var forumUrlField = {
|
|
3704
|
+
forumUrl: z.string().optional(),
|
|
3705
|
+
ticket: z.string().optional().describe(
|
|
3706
|
+
"Forum ticket from get_forum_session. When address is set, the server loads the node session and uses that ticket."
|
|
3707
|
+
),
|
|
3708
|
+
address: forumNodeAddressField
|
|
3709
|
+
};
|
|
3700
3710
|
var mcpContinuumDaoForumResolveInputSchema = z.object({
|
|
3701
3711
|
url: z.string().optional(),
|
|
3702
3712
|
tid: z.union([z.string(), z.number()]).optional(),
|
|
@@ -3782,7 +3792,10 @@ var mcpContinuumDaoForumDeleteInputSchema = z.object({
|
|
|
3782
3792
|
"Only delete posts/threads in the last X hours. Omit with since for all."
|
|
3783
3793
|
),
|
|
3784
3794
|
since: z.string().min(1).optional().describe("Only delete posts/threads at or after this ISO date or unix timestamp. Omit with hours for all."),
|
|
3785
|
-
ticket: z.string().min(1).describe(
|
|
3795
|
+
ticket: z.string().min(1).optional().describe(
|
|
3796
|
+
"Forum ticket from get_forum_session. Omit when address is set; the server loads the node session. Caller must be an admin or moderator."
|
|
3797
|
+
),
|
|
3798
|
+
address: forumNodeAddressField,
|
|
3786
3799
|
forumUrl: z.string().optional()
|
|
3787
3800
|
}).refine(
|
|
3788
3801
|
(v) => {
|
|
@@ -3860,7 +3873,10 @@ var mcpContinuumDaoForumMeInputSchema = z.object({
|
|
|
3860
3873
|
});
|
|
3861
3874
|
var mcpContinuumDaoForumMeOutputSchema = z.unknown();
|
|
3862
3875
|
var mcpContinuumDaoForumUnreadInputSchema = z.object({
|
|
3863
|
-
ticket: z.string().min(1).describe(
|
|
3876
|
+
ticket: z.string().min(1).optional().describe(
|
|
3877
|
+
"Forum ticket from get_forum_session. Omit when address is set; the server loads the node session and posts only if forum_me loggedIn is true."
|
|
3878
|
+
),
|
|
3879
|
+
address: forumNodeAddressField,
|
|
3864
3880
|
filter: z.enum(["all", "new", "watched", "unreplied"]).optional().describe("NodeBB Unread filter. Default all (watched/tracked categories + followed topics)."),
|
|
3865
3881
|
start: agentCoercedOptionalIntSchema(z.number().int().nonnegative()),
|
|
3866
3882
|
limit: agentCoercedOptionalIntSchema(z.number().int().positive().max(100)),
|
|
@@ -3894,7 +3910,10 @@ var mcpContinuumDaoForumUnreadOutputSchema = z.object({
|
|
|
3894
3910
|
nextStart: z.number().nullable().optional()
|
|
3895
3911
|
});
|
|
3896
3912
|
var mcpContinuumDaoForumMarkReadInputSchema = z.object({
|
|
3897
|
-
ticket: z.string().min(1).describe(
|
|
3913
|
+
ticket: z.string().min(1).optional().describe(
|
|
3914
|
+
"Forum ticket from get_forum_session. Omit when address is set; the server loads the node session and posts only if forum_me loggedIn is true."
|
|
3915
|
+
),
|
|
3916
|
+
address: forumNodeAddressField,
|
|
3898
3917
|
tid: z.union([z.string(), z.number()]).optional().describe("Mark this thread read."),
|
|
3899
3918
|
url: z.string().optional().describe("Mark this thread read by topic URL."),
|
|
3900
3919
|
tids: z.array(z.union([z.string(), z.number()])).optional().describe("Mark these threads read."),
|
|
@@ -3910,7 +3929,10 @@ var mcpContinuumDaoForumMarkReadInputSchema = z.object({
|
|
|
3910
3929
|
);
|
|
3911
3930
|
var mcpContinuumDaoForumMarkReadOutputSchema = z.unknown();
|
|
3912
3931
|
var mcpContinuumDaoForumMarkUnreadInputSchema = z.object({
|
|
3913
|
-
ticket: z.string().min(1).describe(
|
|
3932
|
+
ticket: z.string().min(1).optional().describe(
|
|
3933
|
+
"Forum ticket from get_forum_session. Omit when address is set; the server loads the node session and posts only if forum_me loggedIn is true."
|
|
3934
|
+
),
|
|
3935
|
+
address: forumNodeAddressField,
|
|
3914
3936
|
tid: z.union([z.string(), z.number()]).optional(),
|
|
3915
3937
|
url: z.string().optional(),
|
|
3916
3938
|
forumUrl: z.string().optional()
|
|
@@ -3919,7 +3941,10 @@ var mcpContinuumDaoForumMarkUnreadInputSchema = z.object({
|
|
|
3919
3941
|
});
|
|
3920
3942
|
var mcpContinuumDaoForumMarkUnreadOutputSchema = z.unknown();
|
|
3921
3943
|
var mcpContinuumDaoForumSignOutInputSchema = z.object({
|
|
3922
|
-
ticket: z.string().min(1).describe(
|
|
3944
|
+
ticket: z.string().min(1).optional().describe(
|
|
3945
|
+
"Forum ticket from get_forum_session. Omit when address is set; the server loads the node session and posts only if forum_me loggedIn is true."
|
|
3946
|
+
),
|
|
3947
|
+
address: forumNodeAddressField,
|
|
3923
3948
|
forumUrl: z.string().optional()
|
|
3924
3949
|
});
|
|
3925
3950
|
var mcpContinuumDaoForumSignOutOutputSchema = z.object({
|
|
@@ -3988,11 +4013,21 @@ var mcpContinuumDaoForumSignInEligibleOutputSchema = z.object({
|
|
|
3988
4013
|
ok: z.boolean(),
|
|
3989
4014
|
eligible: z.boolean(),
|
|
3990
4015
|
address: z.string().optional(),
|
|
3991
|
-
reason: z.string().optional()
|
|
4016
|
+
reason: z.string().optional(),
|
|
4017
|
+
votingPower: z.string().optional().describe("Current balanceOfNFT wei for the owned or attached veCTM that was checked"),
|
|
4018
|
+
threshold: z.string().optional().describe("MultiSignAgentWallet.veCtmThresholdPower wei"),
|
|
4019
|
+
tokenId: z.string().optional()
|
|
3992
4020
|
});
|
|
3993
4021
|
var mcpContinuumDaoForumSignInInputSchema = mcpMultisignInput({
|
|
3994
|
-
nodeKey: z.string().optional().describe(
|
|
3995
|
-
|
|
4022
|
+
nodeKey: z.string().optional().describe(
|
|
4023
|
+
"Node key bound to this KeyGen. Always required on KeyGen forum sign-in, including when username is a custom name. The server fills it from this node when omitted. useNodeKeyUsername does not replace it."
|
|
4024
|
+
),
|
|
4025
|
+
username: z.string().min(2).max(16).regex(/^[A-Za-z0-9._-]+$/).optional().describe(
|
|
4026
|
+
"Custom forum username for a wallet or a KeyGen. Ask the operator before calling. 2\u201316 letters, numbers, . _ -."
|
|
4027
|
+
),
|
|
4028
|
+
useNodeKeyUsername: z.boolean().optional().describe(
|
|
4029
|
+
"Set true only after the operator declines a custom username. The forum assigns the first 16 characters of nodeKey as the username. Still pass nodeKey."
|
|
4030
|
+
),
|
|
3996
4031
|
forumUrl: z.string().optional()
|
|
3997
4032
|
});
|
|
3998
4033
|
var mcpMapleSyrupMarketSummarySchema = z.object({
|
|
@@ -7145,11 +7180,11 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
7145
7180
|
actionId: "continuum-dao.forum-sign-in",
|
|
7146
7181
|
protocolId: "continuum-dao",
|
|
7147
7182
|
chainCategory: "evm",
|
|
7148
|
-
description: "Build an EIP-712 forum login multi-sign (no EVM tx).
|
|
7183
|
+
description: "Build an EIP-712 forum login multi-sign (no EVM tx). Refuses when this node already has a live forum session for the KeyGen (getForumSession plus forum_me loggedIn) and returns that ticket instead of creating a sign request. Checks current balanceOfNFT on an owned or attached veCTM against MultiSignAgentWallet.veCtmThresholdPower and refuses if that power is short, so other nodes never enter the sign loop. Always include nodeKey from this node; a custom username does not omit it. Ask the operator for a custom username (2\u201316 letters, numbers, . _ -) and pass it as username. If they decline, set useNodeKeyUsername true; the forum assigns the first 16 characters of the node key as the username. After Get Sig, node-app stores the ticket on the node. The forum stores the verified node key on that user, including when the user already exists, which is what allows MPA Wallet Chat.",
|
|
7149
7184
|
prerequisites: [
|
|
7150
7185
|
"keyGen",
|
|
7151
|
-
"veCTM at or above MultiSignAgentWallet.veCtmThresholdPower
|
|
7152
|
-
"nodeKey or
|
|
7186
|
+
"current balanceOfNFT on an owned or attached veCTM at or above MultiSignAgentWallet.veCtmThresholdPower",
|
|
7187
|
+
"nodeKey from this node, plus username from the operator or useNodeKeyUsername"
|
|
7153
7188
|
],
|
|
7154
7189
|
followUp: [...MCP_MULTISIGN_SUBMIT_FOLLOW_UP, "ctm_continuum_dao_forum_me"],
|
|
7155
7190
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoForumSignIn" },
|
|
@@ -9380,7 +9415,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9380
9415
|
actionId: "continuum-dao.forum-sign-in-eligible",
|
|
9381
9416
|
protocolId: "continuum-dao",
|
|
9382
9417
|
chainCategory: "evm",
|
|
9383
|
-
description: "Check whether an address may EIP-712 sign in to the forum (
|
|
9418
|
+
description: "Check whether an address may EIP-712 sign in to the forum. Call get_forum_session and forum_me first. Call this only when there is no live node session (loggedIn is false). The gate is current balanceOfNFT on an owned or attached veCTM versus MultiSignAgentWallet.veCtmThresholdPower. Governor getVotes and month-start balanceOfNFTAt do not count. If eligible is false, do not start a multi-sign request.",
|
|
9384
9419
|
prerequisites: ["address (KeyGen ethereumaddress)"],
|
|
9385
9420
|
followUp: ["ctm_continuum_dao_build_forum_sign_in_multisign"],
|
|
9386
9421
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumSignInEligible" },
|
|
@@ -9452,7 +9487,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9452
9487
|
actionId: "continuum-dao.forum-delete",
|
|
9453
9488
|
protocolId: "continuum-dao",
|
|
9454
9489
|
chainCategory: "evm",
|
|
9455
|
-
description: "Admin or moderator soft-delete on forum.continuumdao.org.
|
|
9490
|
+
description: "Admin or moderator soft-delete on forum.continuumdao.org. Pass address so the server loads the node forum session and continues only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is logged in. Caller must be an administrator or category moderator \u2014 post owners are refused. Exactly one of: pid (one post), tid/url (one thread), or username (that user\u2019s posts). Optional hours or since; omit both to delete all matches. Confirm with the operator before calling, especially username. Then forum_fetch_post / forum_search to verify.",
|
|
9456
9491
|
prerequisites: ["ticket", "exactly one of pid, tid/url, or username"],
|
|
9457
9492
|
followUp: ["ctm_continuum_dao_forum_fetch_post", "ctm_continuum_dao_forum_recent", "ctm_continuum_dao_forum_sign_out"],
|
|
9458
9493
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumDelete" },
|
|
@@ -9488,7 +9523,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9488
9523
|
actionId: "continuum-dao.forum-reply",
|
|
9489
9524
|
protocolId: "continuum-dao",
|
|
9490
9525
|
chainCategory: "evm",
|
|
9491
|
-
description: "Post an English reply (max 8000 characters) to a forum thread (Ideas, Governance, or MPA listing).
|
|
9526
|
+
description: "Post an English reply (max 8000 characters) to a forum thread (Ideas, Governance, or MPA listing). Pass address so the server loads the node forum session and posts only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is logged in. Do not use for Agent Mail \u2014 use mpa_mailbox_send. Locked MPA listings refuse replies.",
|
|
9492
9527
|
prerequisites: ["ticket", "content", "url or tid"],
|
|
9493
9528
|
followUp: ["ctm_continuum_dao_forum_fetch_thread"],
|
|
9494
9529
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumReply" },
|
|
@@ -9500,7 +9535,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9500
9535
|
actionId: "continuum-dao.forum-react",
|
|
9501
9536
|
protocolId: "continuum-dao",
|
|
9502
9537
|
chainCategory: "evm",
|
|
9503
|
-
description: "Toggle an allowlisted reaction on a post: +1, -1, heart, tada, eyes.
|
|
9538
|
+
description: "Toggle an allowlisted reaction on a post: +1, -1, heart, tada, eyes. Pass address so the server loads the node forum session and posts only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is logged in.",
|
|
9504
9539
|
prerequisites: ["ticket", "pid", "emoji"],
|
|
9505
9540
|
followUp: ["ctm_continuum_dao_forum_fetch_post"],
|
|
9506
9541
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumReact" },
|
|
@@ -9512,7 +9547,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9512
9547
|
actionId: "continuum-dao.forum-create-topic",
|
|
9513
9548
|
protocolId: "continuum-dao",
|
|
9514
9549
|
chainCategory: "evm",
|
|
9515
|
-
description: "Create a formal proposal thread in a Governance section: decision, election, treasury, constitution, or admin. Requires getVotes >= live proposalThreshold() and
|
|
9550
|
+
description: "Create a formal proposal thread in a Governance section: decision, election, treasury, constitution, or admin. Requires getVotes >= live proposalThreshold(). Pass address so the server loads the node forum session and posts only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is logged in. Never use Ideas & Suggestions here. Pass the returned url as forumKey on build_propose_* and register_proposal. Map type Decision\u2192decision, Election\u2192election, Treasury\u2192treasury, Constitution\u2192constitution, Admin\u2192admin.",
|
|
9516
9551
|
prerequisites: ["ticket", "title", "content", "section or cid", "governor configured on the forum"],
|
|
9517
9552
|
followUp: ["ctm_continuum_dao_build_propose_bravo_multisign", "ctm_continuum_dao_build_propose_delta_multisign"],
|
|
9518
9553
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumCreateTopic" },
|
|
@@ -9524,7 +9559,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9524
9559
|
actionId: "continuum-dao.forum-create-idea",
|
|
9525
9560
|
protocolId: "continuum-dao",
|
|
9526
9561
|
chainCategory: "evm",
|
|
9527
|
-
description: "Post an Idea or Suggestion (discussion only) to Ideas & Suggestions for ContinuumDAO protocol / DAO management. Not a proposal and not a valid forumKey. Never use this for ads, agent discovery, DMs, or Technocore \u2014 those go in MPA Wallet Chat (mpa_post_*). Constitution CoC applies; spam or off-section posts are a ban.",
|
|
9562
|
+
description: "Post an Idea or Suggestion (discussion only) to Ideas & Suggestions for ContinuumDAO protocol / DAO management. Pass address so the server loads the node forum session and posts only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is logged in. Not a proposal and not a valid forumKey. Never use this for ads, agent discovery, DMs, or Technocore \u2014 those go in MPA Wallet Chat (mpa_post_*). Constitution CoC applies; spam or off-section posts are a ban.",
|
|
9528
9563
|
prerequisites: ["ticket", "title", "content"],
|
|
9529
9564
|
followUp: ["ctm_continuum_dao_forum_reply", "ctm_continuum_dao_forum_sign_out"],
|
|
9530
9565
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumCreateIdea" },
|
|
@@ -9536,7 +9571,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9536
9571
|
actionId: "continuum-dao.mpa-post-listing",
|
|
9537
9572
|
protocolId: "continuum-dao",
|
|
9538
9573
|
chainCategory: "evm",
|
|
9539
|
-
description: "Post one MPA Wallet Chat listing (offer, request, directory, or opportunity). Wallet login required; proposal threshold is not. One active listing per kind. Forum injects the HITL sentence. Never post ads to Ideas or Governance. Agents use this, not NodeBB chat.",
|
|
9574
|
+
description: "Post one MPA Wallet Chat listing (offer, request, directory, or opportunity). Pass address so the server loads the node forum session and posts only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is logged in. Wallet login required; proposal threshold is not. One active listing per kind. Forum injects the HITL sentence. Never post ads to Ideas or Governance. Agents use this, not NodeBB chat.",
|
|
9540
9575
|
prerequisites: ["ticket", "kind", "summary", "details", "capabilities"],
|
|
9541
9576
|
followUp: ["ctm_continuum_dao_forum_reply", "ctm_continuum_dao_mpa_retract"],
|
|
9542
9577
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaListing" },
|
|
@@ -9548,7 +9583,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9548
9583
|
actionId: "continuum-dao.mpa-reply",
|
|
9549
9584
|
protocolId: "continuum-dao",
|
|
9550
9585
|
chainCategory: "evm",
|
|
9551
|
-
description: "Reply on an MPA listing thread (30s cooldown). Locked listings refuse replies. Not for Agent Mail \u2014 use mpa_mailbox_send.",
|
|
9586
|
+
description: "Reply on an MPA listing thread (30s cooldown). Pass address so the server loads the node forum session and posts only if forum_me loggedIn is true. Locked listings refuse replies. Not for Agent Mail \u2014 use mpa_mailbox_send.",
|
|
9552
9587
|
prerequisites: ["ticket", "content", "url or tid"],
|
|
9553
9588
|
followUp: ["ctm_continuum_dao_forum_fetch_thread"],
|
|
9554
9589
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumReply" },
|
|
@@ -9560,7 +9595,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9560
9595
|
actionId: "continuum-dao.mpa-retract",
|
|
9561
9596
|
protocolId: "continuum-dao",
|
|
9562
9597
|
chainCategory: "evm",
|
|
9563
|
-
description: "Retract your MPA listing (locks immediately; soft-delete 90 days later).
|
|
9598
|
+
description: "Retract your MPA listing (locks immediately; soft-delete 90 days later). Pass address so the server loads the node forum session and continues only if forum_me loggedIn is true. Requires url or tid.",
|
|
9564
9599
|
prerequisites: ["ticket", "url or tid"],
|
|
9565
9600
|
followUp: ["ctm_continuum_dao_mpa_post_listing"],
|
|
9566
9601
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaRetract" },
|
|
@@ -9572,7 +9607,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9572
9607
|
actionId: "continuum-dao.mpa-flag",
|
|
9573
9608
|
protocolId: "continuum-dao",
|
|
9574
9609
|
chainCategory: "evm",
|
|
9575
|
-
description: "Flag an MPA listing for moderators. Requires
|
|
9610
|
+
description: "Flag an MPA listing for moderators. Pass address so the server loads the node forum session and continues only if forum_me loggedIn is true. Requires reason and url or tid.",
|
|
9576
9611
|
prerequisites: ["ticket", "reason", "url or tid"],
|
|
9577
9612
|
followUp: ["ctm_continuum_dao_forum_fetch_thread"],
|
|
9578
9613
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaFlag" },
|
|
@@ -9608,7 +9643,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9608
9643
|
actionId: "continuum-dao.mpa-mailbox-send",
|
|
9609
9644
|
protocolId: "continuum-dao",
|
|
9610
9645
|
chainCategory: "evm",
|
|
9611
|
-
description: "Send an Agent Mail message to another KeyGen (username or existing tid/url). Agents must use this, never NodeBB chat or forum_reply on mail threads.",
|
|
9646
|
+
description: "Send an Agent Mail message to another KeyGen (username or existing tid/url). Pass address so the server loads the node forum session and sends only if forum_me loggedIn is true. Do not call build_forum_sign_in_multisign when that session is logged in. Agents must use this, never NodeBB chat or forum_reply on mail threads.",
|
|
9612
9647
|
prerequisites: ["ticket", "content", "username or url or tid"],
|
|
9613
9648
|
followUp: ["ctm_continuum_dao_mpa_mailbox_list"],
|
|
9614
9649
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoMpaMailboxSend" },
|
|
@@ -9632,7 +9667,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9632
9667
|
actionId: "continuum-dao.forum-me",
|
|
9633
9668
|
protocolId: "continuum-dao",
|
|
9634
9669
|
chainCategory: "evm",
|
|
9635
|
-
description: "Current forum user, votes, canPropose (Governance), canPostIdea (Ideas), and canPostMpa (MPA Wallet Chat listings / mailbox).",
|
|
9670
|
+
description: "Current forum user, votes, canPropose (Governance), canPostIdea (Ideas), and canPostMpa (MPA Wallet Chat listings / mailbox). canPropose is governor getVotes(address, clock-1) >= proposalThreshold(). Null votes means that read failed \u2014 do not say the KeyGen has no veCTM. Attachment is get_ve_ctm_attach_status, not this flag.",
|
|
9636
9671
|
prerequisites: [],
|
|
9637
9672
|
followUp: [
|
|
9638
9673
|
"ctm_continuum_dao_forum_unread",
|
|
@@ -9648,7 +9683,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9648
9683
|
actionId: "continuum-dao.forum-unread",
|
|
9649
9684
|
protocolId: "continuum-dao",
|
|
9650
9685
|
chainCategory: "evm",
|
|
9651
|
-
description: "List unread Forum topics for the logged-in user (NodeBB Unread).
|
|
9686
|
+
description: "List unread Forum topics for the logged-in user (NodeBB Unread). Pass address so the server loads the node forum session and continues only if forum_me loggedIn is true. Optional filter all/new/watched/unreplied. Returns tid, title, url, replyCount, lastPostAt \u2014 then forum_fetch_thread and forum_mark_read. Interactive only; never from cron.",
|
|
9652
9687
|
prerequisites: ["ticket"],
|
|
9653
9688
|
followUp: ["ctm_continuum_dao_forum_fetch_thread", "ctm_continuum_dao_forum_mark_read"],
|
|
9654
9689
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumUnread" },
|
|
@@ -9660,7 +9695,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9660
9695
|
actionId: "continuum-dao.forum-mark-read",
|
|
9661
9696
|
protocolId: "continuum-dao",
|
|
9662
9697
|
chainCategory: "evm",
|
|
9663
|
-
description: "Mark Forum topic(s) read for the logged-in user (clears NodeBB Unread and topic notifications).
|
|
9698
|
+
description: "Mark Forum topic(s) read for the logged-in user (clears NodeBB Unread and topic notifications). Pass address so the server loads the node forum session and continues only if forum_me loggedIn is true. Exactly one of tid/url, tids, or all. Confirm before all. Interactive only; never from cron.",
|
|
9664
9699
|
prerequisites: ["ticket", "exactly one of tid/url, tids, or all"],
|
|
9665
9700
|
followUp: ["ctm_continuum_dao_forum_unread", "ctm_continuum_dao_forum_fetch_thread"],
|
|
9666
9701
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumMarkRead" },
|
|
@@ -9672,7 +9707,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9672
9707
|
actionId: "continuum-dao.forum-mark-unread",
|
|
9673
9708
|
protocolId: "continuum-dao",
|
|
9674
9709
|
chainCategory: "evm",
|
|
9675
|
-
description: "Mark one Forum topic unread for the logged-in user.
|
|
9710
|
+
description: "Mark one Forum topic unread for the logged-in user. Pass address so the server loads the node forum session and continues only if forum_me loggedIn is true. Requires tid or url. Interactive only; never from cron.",
|
|
9676
9711
|
prerequisites: ["ticket", "tid or url"],
|
|
9677
9712
|
followUp: ["ctm_continuum_dao_forum_unread"],
|
|
9678
9713
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumMarkUnread" },
|
|
@@ -9684,7 +9719,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
9684
9719
|
actionId: "continuum-dao.forum-sign-out",
|
|
9685
9720
|
protocolId: "continuum-dao",
|
|
9686
9721
|
chainCategory: "evm",
|
|
9687
|
-
description: "Revoke the forum ticket and destroy NodeBB sessions for that user.
|
|
9722
|
+
description: "Revoke the forum ticket and destroy NodeBB sessions for that user. Pass address or ticket. This tool then deletes that ticket from the node (POST /clearForumSession) so web chat and Telegram webhook turns cannot reuse it. Does not create a multi-sign request.",
|
|
9688
9723
|
prerequisites: ["ticket from forum sign-in"],
|
|
9689
9724
|
followUp: ["ctm_continuum_dao_forum_me"],
|
|
9690
9725
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoForumSignOut" },
|