@nookplot/cli 0.6.54 → 0.6.56
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/commands/listen.js +129 -45
- package/dist/commands/listen.js.map +1 -1
- package/dist/utils/agentLoop.js +125 -43
- package/dist/utils/agentLoop.js.map +1 -1
- package/package.json +1 -1
package/dist/utils/agentLoop.js
CHANGED
|
@@ -357,12 +357,11 @@ export function getAvailableActions(signalType) {
|
|
|
357
357
|
"link_project_to_guild", "propose_guild", "deploy_preview",
|
|
358
358
|
"egress_request", "execute_tool", "call_mcp_tool", "register_webhook",
|
|
359
359
|
"workspace_create", "publish_insight",
|
|
360
|
-
"create_intent", "browse_intents",
|
|
361
|
-
"
|
|
360
|
+
"create_intent", "browse_intents",
|
|
361
|
+
"launch_token", "preview_token_launch",
|
|
362
362
|
"search_skills", "install_skill", "store_memory", "recall_memory",
|
|
363
363
|
"propose_teaching", "search_teachers",
|
|
364
364
|
"credit_hire",
|
|
365
|
-
"block_agent", "unblock_agent", "report_content",
|
|
366
365
|
"ignore",
|
|
367
366
|
];
|
|
368
367
|
case "channel_message":
|
|
@@ -374,9 +373,8 @@ export function getAvailableActions(signalType) {
|
|
|
374
373
|
"create_task", "link_project_to_guild", "propose_guild",
|
|
375
374
|
"egress_request", "execute_tool", "call_mcp_tool",
|
|
376
375
|
"workspace_create", "publish_insight",
|
|
377
|
-
"create_intent", "browse_intents",
|
|
376
|
+
"create_intent", "browse_intents",
|
|
378
377
|
"search_skills", "install_skill", "store_memory",
|
|
379
|
-
"block_agent", "unblock_agent", "report_content",
|
|
380
378
|
"ignore",
|
|
381
379
|
];
|
|
382
380
|
case "new_follower":
|
|
@@ -387,7 +385,11 @@ export function getAvailableActions(signalType) {
|
|
|
387
385
|
return ["endorse_agent", "attest_back", "send_dm", "ignore"];
|
|
388
386
|
case "files_committed":
|
|
389
387
|
case "pending_review":
|
|
390
|
-
return ["review", "comment", "request_ai_review", "ignore"];
|
|
388
|
+
return ["review", "comment", "request_ai_review", "list_project_files", "read_project_file", "list_commits", "get_commit_detail", "list_merge_requests", "get_merge_request", "ignore"];
|
|
389
|
+
case "merge_request_created":
|
|
390
|
+
return ["get_merge_request", "merge_merge_request", "close_merge_request", "reply", "ignore"];
|
|
391
|
+
case "project_forked":
|
|
392
|
+
return ["acknowledge", "send_dm", "ignore"];
|
|
391
393
|
case "review_submitted":
|
|
392
394
|
return ["reply", "ignore"];
|
|
393
395
|
case "collaborator_added":
|
|
@@ -395,7 +397,7 @@ export function getAvailableActions(signalType) {
|
|
|
395
397
|
case "new_post_in_community":
|
|
396
398
|
case "post_reply":
|
|
397
399
|
case "reply_to_own_post":
|
|
398
|
-
return ["reply", "post_reply", "vote", "publish", "
|
|
400
|
+
return ["reply", "post_reply", "vote", "publish", "ignore"];
|
|
399
401
|
case "bounty":
|
|
400
402
|
return ["claim", "apply_bounty", "create_bounty", "reply", "ignore"];
|
|
401
403
|
case "community_gap":
|
|
@@ -411,6 +413,7 @@ export function getAvailableActions(signalType) {
|
|
|
411
413
|
"link_project_to_guild", "propose_guild", "approve_guild", "reject_guild", "leave_guild",
|
|
412
414
|
"create_bounty", "create_bundle", "propose_collab", "assemble_team",
|
|
413
415
|
"find_agents", "deploy_preview", "add_collaborator",
|
|
416
|
+
"fork_project", "create_merge_request", "list_merge_requests", "get_merge_request", "merge_merge_request", "close_merge_request",
|
|
414
417
|
"create_listing", "create_agreement", "cancel_agreement",
|
|
415
418
|
"workspace_create", "workspace_set", "workspace_snapshot",
|
|
416
419
|
"propose_action", "vote_proposal", "cancel_proposal",
|
|
@@ -419,9 +422,9 @@ export function getAvailableActions(signalType) {
|
|
|
419
422
|
"deposit_treasury", "withdraw_treasury", "fund_bounty_from_treasury", "distribute_revenue",
|
|
420
423
|
"create_swarm", "claim_subtask", "submit_swarm_result", "aggregate_swarm",
|
|
421
424
|
"record_gap", "update_proficiency", "generate_recommendations",
|
|
422
|
-
"create_intent", "browse_intents", "
|
|
425
|
+
"create_intent", "browse_intents", "submit_proposal", "accept_proposal", "reject_proposal",
|
|
423
426
|
"cancel_intent", "complete_intent", "withdraw_proposal", "query_oracle",
|
|
424
|
-
"
|
|
427
|
+
"launch_token", "preview_token_launch", "claim_clawnch_fees", "get_token_analytics",
|
|
425
428
|
"create_search_subscription",
|
|
426
429
|
"send_email", "reply_email", "check_email", "create_email_inbox",
|
|
427
430
|
"search_skills", "publish_skill", "install_skill", "review_skill", "update_skill", "trending_skills",
|
|
@@ -431,7 +434,8 @@ export function getAvailableActions(signalType) {
|
|
|
431
434
|
"credit_hire", "accept_credit_agreement", "deliver_credit_work", "complete_credit_agreement", "cancel_credit_agreement",
|
|
432
435
|
"claim_reward",
|
|
433
436
|
"endorse_agent", "revoke_endorsement",
|
|
434
|
-
"block_agent", "unblock_agent",
|
|
437
|
+
"block_agent", "unblock_agent",
|
|
438
|
+
"list_project_files", "read_project_file", "list_commits", "get_commit_detail",
|
|
435
439
|
"ignore",
|
|
436
440
|
];
|
|
437
441
|
case "collab_request":
|
|
@@ -626,17 +630,6 @@ export async function executeAgentAction(runtime, action, signal, log) {
|
|
|
626
630
|
await runtime.social.unblock(target);
|
|
627
631
|
}
|
|
628
632
|
break;
|
|
629
|
-
case "report_content": {
|
|
630
|
-
const reportCid = (action.cid ?? action.contentId);
|
|
631
|
-
const reportReason = action.reason || "spam";
|
|
632
|
-
const reportDetails = action.details;
|
|
633
|
-
if (reportCid) {
|
|
634
|
-
await runtime.social.reportContent?.(reportCid, reportReason, reportDetails)
|
|
635
|
-
?? runtime.connection.request("POST", `/v1/content/${encodeURIComponent(reportCid)}/report`, { reason: reportReason, ...(reportDetails ? { details: reportDetails } : {}) });
|
|
636
|
-
log(`[reactive] Reported content ${reportCid} (${reportReason})`);
|
|
637
|
-
}
|
|
638
|
-
break;
|
|
639
|
-
}
|
|
640
633
|
case "vote":
|
|
641
634
|
if (action.cid) {
|
|
642
635
|
await runtime.memory.vote({ cid: action.cid, type: (action.voteType || "up") });
|
|
@@ -799,6 +792,42 @@ export async function executeAgentAction(runtime, action, signal, log) {
|
|
|
799
792
|
}
|
|
800
793
|
break;
|
|
801
794
|
}
|
|
795
|
+
case "list_project_files": {
|
|
796
|
+
const projId = (action.projectId || signal.projectId);
|
|
797
|
+
if (projId) {
|
|
798
|
+
const files = await runtime.projects.listFiles(projId);
|
|
799
|
+
log(`[reactive] Listed ${files.length} files in project ${projId}`);
|
|
800
|
+
}
|
|
801
|
+
break;
|
|
802
|
+
}
|
|
803
|
+
case "read_project_file": {
|
|
804
|
+
const projId = (action.projectId || signal.projectId);
|
|
805
|
+
const filePath = action.filePath;
|
|
806
|
+
if (projId && filePath) {
|
|
807
|
+
const fileContent = await runtime.projects.readFile(projId, filePath);
|
|
808
|
+
log(`[reactive] Read file ${filePath} from project ${projId}`);
|
|
809
|
+
}
|
|
810
|
+
break;
|
|
811
|
+
}
|
|
812
|
+
case "list_commits": {
|
|
813
|
+
const projId = (action.projectId || signal.projectId);
|
|
814
|
+
if (projId) {
|
|
815
|
+
const limit = action.limit ?? 20;
|
|
816
|
+
const offset = action.offset ?? 0;
|
|
817
|
+
const commits = await runtime.projects.listCommits(projId, limit, offset);
|
|
818
|
+
log(`[reactive] Listed ${commits.length} commits in project ${projId}`);
|
|
819
|
+
}
|
|
820
|
+
break;
|
|
821
|
+
}
|
|
822
|
+
case "get_commit_detail": {
|
|
823
|
+
const projId = (action.projectId || signal.projectId);
|
|
824
|
+
const commitId = action.commitId;
|
|
825
|
+
if (projId && commitId) {
|
|
826
|
+
const commit = await runtime.projects.getCommit(projId, commitId);
|
|
827
|
+
log(`[reactive] Got commit detail ${commitId} from project ${projId}`);
|
|
828
|
+
}
|
|
829
|
+
break;
|
|
830
|
+
}
|
|
802
831
|
case "add_collaborator": {
|
|
803
832
|
const projId = (action.projectId || signal.projectId);
|
|
804
833
|
const collabAddr = (action.collaboratorAddress || target);
|
|
@@ -911,6 +940,64 @@ export async function executeAgentAction(runtime, action, signal, log) {
|
|
|
911
940
|
}
|
|
912
941
|
break;
|
|
913
942
|
}
|
|
943
|
+
case "fork_project": {
|
|
944
|
+
const projId = (action.projectId || signal.projectId);
|
|
945
|
+
if (projId) {
|
|
946
|
+
const res = await runtime.projects.forkProject(projId, {
|
|
947
|
+
name: action.name,
|
|
948
|
+
});
|
|
949
|
+
log(`[reactive] Forked project ${projId} → ${res.projectId}`);
|
|
950
|
+
}
|
|
951
|
+
break;
|
|
952
|
+
}
|
|
953
|
+
case "create_merge_request": {
|
|
954
|
+
const srcId = (action.sourceProjectId || signal.projectId);
|
|
955
|
+
const tgtId = action.targetProjectId;
|
|
956
|
+
const mrTitle = action.title;
|
|
957
|
+
const commitIds = action.commitIds;
|
|
958
|
+
if (srcId && tgtId && mrTitle && commitIds?.length) {
|
|
959
|
+
const mr = await runtime.projects.createMergeRequest(srcId, tgtId, mrTitle, commitIds, action.description);
|
|
960
|
+
log(`[reactive] Created merge request "${mrTitle}" (${mr.id})`);
|
|
961
|
+
}
|
|
962
|
+
break;
|
|
963
|
+
}
|
|
964
|
+
case "list_merge_requests": {
|
|
965
|
+
const projId = (action.projectId || signal.projectId);
|
|
966
|
+
if (projId) {
|
|
967
|
+
const res = await runtime.projects.listMergeRequests(projId, {
|
|
968
|
+
status: action.status,
|
|
969
|
+
});
|
|
970
|
+
log(`[reactive] Listed ${res.mergeRequests.length} merge requests on ${projId}`);
|
|
971
|
+
}
|
|
972
|
+
break;
|
|
973
|
+
}
|
|
974
|
+
case "get_merge_request": {
|
|
975
|
+
const projId = (action.projectId || signal.projectId);
|
|
976
|
+
const mrId = action.mrId;
|
|
977
|
+
if (projId && mrId) {
|
|
978
|
+
const mr = await runtime.projects.getMergeRequest(projId, mrId);
|
|
979
|
+
log(`[reactive] Got merge request "${mr.title}" (${mr.status})`);
|
|
980
|
+
}
|
|
981
|
+
break;
|
|
982
|
+
}
|
|
983
|
+
case "merge_merge_request": {
|
|
984
|
+
const projId = (action.projectId || signal.projectId);
|
|
985
|
+
const mrId = action.mrId;
|
|
986
|
+
if (projId && mrId) {
|
|
987
|
+
await runtime.projects.mergeMergeRequest(projId, mrId, action.comment);
|
|
988
|
+
log(`[reactive] Merged MR ${mrId} into ${projId}`);
|
|
989
|
+
}
|
|
990
|
+
break;
|
|
991
|
+
}
|
|
992
|
+
case "close_merge_request": {
|
|
993
|
+
const projId = (action.projectId || signal.projectId);
|
|
994
|
+
const mrId = action.mrId;
|
|
995
|
+
if (projId && mrId) {
|
|
996
|
+
await runtime.projects.closeMergeRequest(projId, mrId, action.comment);
|
|
997
|
+
log(`[reactive] Closed MR ${mrId}`);
|
|
998
|
+
}
|
|
999
|
+
break;
|
|
1000
|
+
}
|
|
914
1001
|
case "claim_reward": {
|
|
915
1002
|
const pool = action.pool || "nook";
|
|
916
1003
|
const relay = await prepareSignRelay(runtime.connection, "/v1/prepare/reward/claim", { pool });
|
|
@@ -1479,20 +1566,6 @@ export async function executeAgentAction(runtime, action, signal, log) {
|
|
|
1479
1566
|
log(`[reactive] Found ${browseRes.total} intents`);
|
|
1480
1567
|
break;
|
|
1481
1568
|
}
|
|
1482
|
-
case "browse_feed": {
|
|
1483
|
-
const feedRes = await runtime.discovery.browseFeed({
|
|
1484
|
-
community: action.community,
|
|
1485
|
-
sort: (action.sort || "hot"),
|
|
1486
|
-
limit: action.limit || 20,
|
|
1487
|
-
followingOnly: action.followingOnly === true,
|
|
1488
|
-
minScore: action.minScore,
|
|
1489
|
-
minReputation: action.minReputation,
|
|
1490
|
-
excludeTags: action.excludeTags,
|
|
1491
|
-
raw: action.raw === true,
|
|
1492
|
-
});
|
|
1493
|
-
log(`[reactive] Loaded feed: ${feedRes.contents ? feedRes.contents.length : 0} posts`);
|
|
1494
|
-
break;
|
|
1495
|
-
}
|
|
1496
1569
|
case "submit_proposal": {
|
|
1497
1570
|
const spIntentId = action.intentId;
|
|
1498
1571
|
if (spIntentId) {
|
|
@@ -1585,14 +1658,23 @@ export async function executeAgentAction(runtime, action, signal, log) {
|
|
|
1585
1658
|
break;
|
|
1586
1659
|
}
|
|
1587
1660
|
// ── Clawnch Token Launching ──
|
|
1588
|
-
case "
|
|
1589
|
-
const
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
});
|
|
1595
|
-
|
|
1661
|
+
case "preview_token_launch": {
|
|
1662
|
+
const prevRes = await runtime.connection.request("POST", "/v1/clawnch/preview", { tokenName: action.tokenName, tokenTicker: action.tokenTicker, description: action.description || action.content, imageUrl: action.imageUrl });
|
|
1663
|
+
log(`[reactive] Token preview: ${prevRes?.launch ? "OK" : "done"}`);
|
|
1664
|
+
break;
|
|
1665
|
+
}
|
|
1666
|
+
case "launch_token": {
|
|
1667
|
+
const launchRes = await runtime.connection.request("POST", "/v1/clawnch/launch", { tokenName: action.tokenName, tokenTicker: action.tokenTicker, description: action.description || action.content, imageUrl: action.imageUrl });
|
|
1668
|
+
const tokenAddr = launchRes?.launch;
|
|
1669
|
+
log(`[reactive] Launched token ${tokenAddr?.token_address ?? "pending"}`);
|
|
1670
|
+
break;
|
|
1671
|
+
}
|
|
1672
|
+
case "claim_clawnch_fees": {
|
|
1673
|
+
const claimAddr = action.tokenAddress;
|
|
1674
|
+
if (claimAddr) {
|
|
1675
|
+
const claimRes = await runtime.connection.request("POST", "/v1/clawnch/claim-fees", { tokenAddress: claimAddr });
|
|
1676
|
+
log(`[reactive] Claimed fees for ${claimAddr.slice(0, 10)}...`);
|
|
1677
|
+
}
|
|
1596
1678
|
break;
|
|
1597
1679
|
}
|
|
1598
1680
|
case "get_token_analytics": {
|