@xfxstudio/claworld 2026.4.27-testing → 2026.4.27-testing.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/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/skills/claworld-help/SKILL.md +3 -3
- package/src/openclaw/index.js +0 -2
- package/src/openclaw/plugin/claworld-channel-plugin.js +90 -30
- package/src/openclaw/plugin/register-tooling.js +4 -0
- package/src/openclaw/plugin/register.js +118 -394
- package/src/openclaw/runtime/feedback-helper.js +2 -2
- package/src/openclaw/runtime/product-shell-helper.js +139 -213
- package/src/openclaw/runtime/tool-contracts.js +6 -195
- package/src/openclaw/runtime/tool-inventory.js +0 -15
- package/src/openclaw/runtime/working-memory.js +0 -2
- package/src/openclaw/runtime/world-moderation-helper.js +16 -0
- package/src/product-shell/contracts/world-orchestration.js +1 -270
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -27,12 +27,12 @@ description: |
|
|
|
27
27
|
|
|
28
28
|
对应 public tool 是 `claworld_manage_account`。除非已经明确是插件未安装 / channel 未添加 / bind 未建立,不要一上来跑 CLI。
|
|
29
29
|
|
|
30
|
-
## Account / Policy
|
|
30
|
+
## Account / Policy 工具与反馈路径
|
|
31
31
|
|
|
32
32
|
- `claworld_manage_account(action=view_account)`:主诊断入口。
|
|
33
33
|
- `claworld_manage_account(action=activate_account|update_display_name|update_human_profile|update_agent_profile)`:身份与 profile 初始化。
|
|
34
34
|
- `claworld_manage_account(action=set_discoverability|set_contactability|set_chat_policy|set_proactivity)`:账户级策略。
|
|
35
|
-
-
|
|
35
|
+
- 结构化产品/runtime 反馈通过 Claworld runtime feedback helper / backend route 提交;它不是 Agent-facing terminal public tool,diagnostics 由 helper 自动补齐。
|
|
36
36
|
|
|
37
37
|
## 插件生命周期规则
|
|
38
38
|
|
|
@@ -94,7 +94,7 @@ openclaw gateway restart
|
|
|
94
94
|
|
|
95
95
|
## 反馈
|
|
96
96
|
|
|
97
|
-
如果确认是产品/runtime
|
|
97
|
+
如果确认是产品/runtime 缺口,而不是操作问题,通过 Claworld runtime feedback helper / backend route 提交结构化反馈;不要调用或恢复任何 Agent-facing terminal public feedback tool。
|
|
98
98
|
|
|
99
99
|
必填:
|
|
100
100
|
|
package/src/openclaw/index.js
CHANGED
|
@@ -69,8 +69,6 @@ export {
|
|
|
69
69
|
resolveWorldSelection,
|
|
70
70
|
fetchWorldDetail,
|
|
71
71
|
joinWorld,
|
|
72
|
-
fetchWorldCandidateFeed,
|
|
73
|
-
buildCandidateDeliverySummary,
|
|
74
72
|
resolveWorldSelectionFlow,
|
|
75
73
|
} from './runtime/product-shell-helper.js';
|
|
76
74
|
export { submitFeedbackReport } from './runtime/feedback-helper.js';
|
|
@@ -47,11 +47,11 @@ import {
|
|
|
47
47
|
import { submitFeedbackReport } from '../runtime/feedback-helper.js';
|
|
48
48
|
import {
|
|
49
49
|
buildWorldSelectionPrompt,
|
|
50
|
-
buildCandidateDeliverySummary,
|
|
51
50
|
buildPostSetupWorldDirectory,
|
|
52
|
-
fetchWorldCandidateFeed,
|
|
53
51
|
fetchWorldDetail,
|
|
52
|
+
getPublicProfile,
|
|
54
53
|
joinWorld,
|
|
54
|
+
lookupPublicProfile,
|
|
55
55
|
search,
|
|
56
56
|
searchWorldMembers,
|
|
57
57
|
searchWorlds,
|
|
@@ -3363,6 +3363,13 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3363
3363
|
accountId: resolvedContext.accountId || null,
|
|
3364
3364
|
runtimeConfig: resolvedContext.runtimeConfig || null,
|
|
3365
3365
|
query: context.query ?? context.queryText ?? null,
|
|
3366
|
+
keywords: context.keywords || [],
|
|
3367
|
+
topics: context.topics || [],
|
|
3368
|
+
location: context.location || null,
|
|
3369
|
+
timeWindow: context.timeWindow || null,
|
|
3370
|
+
intent: context.intent || null,
|
|
3371
|
+
desiredInteraction: context.desiredInteraction || null,
|
|
3372
|
+
constraints: context.constraints || [],
|
|
3366
3373
|
limit: context.limit ?? null,
|
|
3367
3374
|
sort: context.sort || null,
|
|
3368
3375
|
page: context.page ?? null,
|
|
@@ -3392,30 +3399,23 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3392
3399
|
worldId: context.worldId || null,
|
|
3393
3400
|
agentId: resolvedContext.agentId || null,
|
|
3394
3401
|
query: context.query ?? context.queryText ?? null,
|
|
3402
|
+
keywords: context.keywords || [],
|
|
3403
|
+
topics: context.topics || [],
|
|
3404
|
+
location: context.location || null,
|
|
3405
|
+
timeWindow: context.timeWindow || null,
|
|
3406
|
+
intent: context.intent || null,
|
|
3407
|
+
desiredInteraction: context.desiredInteraction || null,
|
|
3408
|
+
constraints: context.constraints || [],
|
|
3395
3409
|
sort: context.sort || null,
|
|
3396
3410
|
limit: context.limit ?? null,
|
|
3397
3411
|
fetchImpl,
|
|
3398
3412
|
logger,
|
|
3399
3413
|
});
|
|
3400
3414
|
},
|
|
3401
|
-
fetchWorldCandidateFeed: async (context = {}) => {
|
|
3402
|
-
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3403
|
-
return fetchWorldCandidateFeed({
|
|
3404
|
-
cfg: resolvedContext.cfg || {},
|
|
3405
|
-
accountId: resolvedContext.accountId || null,
|
|
3406
|
-
runtimeConfig: resolvedContext.runtimeConfig || null,
|
|
3407
|
-
worldId: context.worldId || null,
|
|
3408
|
-
agentId: resolvedContext.agentId || null,
|
|
3409
|
-
limit: context.limit ?? context.candidateLimit ?? null,
|
|
3410
|
-
fetchImpl,
|
|
3411
|
-
logger,
|
|
3412
|
-
});
|
|
3413
|
-
},
|
|
3414
3415
|
resolveWorldSelection: (context = {}) => resolveWorldSelection(
|
|
3415
3416
|
context.worldDirectory || {},
|
|
3416
3417
|
context.selection ?? context.userChoice ?? null,
|
|
3417
3418
|
),
|
|
3418
|
-
buildCandidateDeliverySummary,
|
|
3419
3419
|
resolveWorldSelectionFlow: async (context = {}) => {
|
|
3420
3420
|
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3421
3421
|
return resolveWorldSelectionFlow({
|
|
@@ -3464,6 +3464,32 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3464
3464
|
});
|
|
3465
3465
|
},
|
|
3466
3466
|
},
|
|
3467
|
+
publicProfiles: {
|
|
3468
|
+
getPublicProfile: async (context = {}) => {
|
|
3469
|
+
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3470
|
+
return getPublicProfile({
|
|
3471
|
+
cfg: resolvedContext.cfg || {},
|
|
3472
|
+
accountId: resolvedContext.accountId || null,
|
|
3473
|
+
runtimeConfig: resolvedContext.runtimeConfig || null,
|
|
3474
|
+
agentId: context.agentId || resolvedContext.agentId || null,
|
|
3475
|
+
viewerAgentId: resolvedContext.agentId || null,
|
|
3476
|
+
fetchImpl,
|
|
3477
|
+
logger,
|
|
3478
|
+
});
|
|
3479
|
+
},
|
|
3480
|
+
lookupPublicProfile: async (context = {}) => {
|
|
3481
|
+
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3482
|
+
return lookupPublicProfile({
|
|
3483
|
+
cfg: resolvedContext.cfg || {},
|
|
3484
|
+
accountId: resolvedContext.accountId || null,
|
|
3485
|
+
runtimeConfig: resolvedContext.runtimeConfig || null,
|
|
3486
|
+
identity: context.identity || null,
|
|
3487
|
+
viewerAgentId: resolvedContext.agentId || null,
|
|
3488
|
+
fetchImpl,
|
|
3489
|
+
logger,
|
|
3490
|
+
});
|
|
3491
|
+
},
|
|
3492
|
+
},
|
|
3467
3493
|
activity: {
|
|
3468
3494
|
listWorldActivity: async (context = {}) => {
|
|
3469
3495
|
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
@@ -3488,6 +3514,10 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3488
3514
|
worldContextText: context.worldContextText || null,
|
|
3489
3515
|
participantContextText: context.participantContextText || null,
|
|
3490
3516
|
enabled: typeof context.enabled === 'boolean' ? context.enabled : true,
|
|
3517
|
+
visibility: context.visibility || null,
|
|
3518
|
+
identityMode: context.identityMode || null,
|
|
3519
|
+
joinPolicy: context.joinPolicy || null,
|
|
3520
|
+
approvalPolicy: context.approvalPolicy || null,
|
|
3491
3521
|
fetchImpl,
|
|
3492
3522
|
logger,
|
|
3493
3523
|
});
|
|
@@ -3685,6 +3715,13 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3685
3715
|
worldId: context.worldId || null,
|
|
3686
3716
|
agentId: resolvedContext.agentId || null,
|
|
3687
3717
|
query: context.query ?? context.queryText ?? null,
|
|
3718
|
+
keywords: context.keywords || [],
|
|
3719
|
+
topics: context.topics || [],
|
|
3720
|
+
location: context.location || null,
|
|
3721
|
+
timeWindow: context.timeWindow || null,
|
|
3722
|
+
intent: context.intent || null,
|
|
3723
|
+
desiredInteraction: context.desiredInteraction || null,
|
|
3724
|
+
constraints: context.constraints || [],
|
|
3688
3725
|
limit: context.limit ?? null,
|
|
3689
3726
|
sort: context.sort || null,
|
|
3690
3727
|
page: context.page ?? null,
|
|
@@ -3714,27 +3751,20 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3714
3751
|
worldId: context.worldId || null,
|
|
3715
3752
|
agentId: resolvedContext.agentId || null,
|
|
3716
3753
|
query: context.query ?? context.queryText ?? null,
|
|
3754
|
+
keywords: context.keywords || [],
|
|
3755
|
+
topics: context.topics || [],
|
|
3756
|
+
location: context.location || null,
|
|
3757
|
+
timeWindow: context.timeWindow || null,
|
|
3758
|
+
intent: context.intent || null,
|
|
3759
|
+
desiredInteraction: context.desiredInteraction || null,
|
|
3760
|
+
constraints: context.constraints || [],
|
|
3717
3761
|
sort: context.sort || null,
|
|
3718
3762
|
limit: context.limit ?? null,
|
|
3719
3763
|
fetchImpl,
|
|
3720
3764
|
logger,
|
|
3721
3765
|
});
|
|
3722
3766
|
},
|
|
3723
|
-
fetchWorldCandidateFeed: async (context = {}) => {
|
|
3724
|
-
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3725
|
-
return fetchWorldCandidateFeed({
|
|
3726
|
-
cfg: resolvedContext.cfg || {},
|
|
3727
|
-
accountId: resolvedContext.accountId || null,
|
|
3728
|
-
runtimeConfig: resolvedContext.runtimeConfig || null,
|
|
3729
|
-
worldId: context.worldId || null,
|
|
3730
|
-
agentId: resolvedContext.agentId || null,
|
|
3731
|
-
limit: context.limit ?? context.candidateLimit ?? null,
|
|
3732
|
-
fetchImpl,
|
|
3733
|
-
logger,
|
|
3734
|
-
});
|
|
3735
|
-
},
|
|
3736
3767
|
resolveWorldSelection,
|
|
3737
|
-
buildCandidateDeliverySummary,
|
|
3738
3768
|
resolveWorldSelectionFlow: async (context = {}) => {
|
|
3739
3769
|
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3740
3770
|
return resolveWorldSelectionFlow({
|
|
@@ -3748,6 +3778,32 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3748
3778
|
logger,
|
|
3749
3779
|
});
|
|
3750
3780
|
},
|
|
3781
|
+
publicProfiles: {
|
|
3782
|
+
getPublicProfile: async (context = {}) => {
|
|
3783
|
+
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3784
|
+
return getPublicProfile({
|
|
3785
|
+
cfg: resolvedContext.cfg || {},
|
|
3786
|
+
accountId: resolvedContext.accountId || null,
|
|
3787
|
+
runtimeConfig: resolvedContext.runtimeConfig || null,
|
|
3788
|
+
agentId: context.agentId || resolvedContext.agentId || null,
|
|
3789
|
+
viewerAgentId: resolvedContext.agentId || null,
|
|
3790
|
+
fetchImpl,
|
|
3791
|
+
logger,
|
|
3792
|
+
});
|
|
3793
|
+
},
|
|
3794
|
+
lookupPublicProfile: async (context = {}) => {
|
|
3795
|
+
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
3796
|
+
return lookupPublicProfile({
|
|
3797
|
+
cfg: resolvedContext.cfg || {},
|
|
3798
|
+
accountId: resolvedContext.accountId || null,
|
|
3799
|
+
runtimeConfig: resolvedContext.runtimeConfig || null,
|
|
3800
|
+
identity: context.identity || null,
|
|
3801
|
+
viewerAgentId: resolvedContext.agentId || null,
|
|
3802
|
+
fetchImpl,
|
|
3803
|
+
logger,
|
|
3804
|
+
});
|
|
3805
|
+
},
|
|
3806
|
+
},
|
|
3751
3807
|
subscriptions: {
|
|
3752
3808
|
listSubscriptions: async (context = {}) => {
|
|
3753
3809
|
const resolvedContext = await resolveBoundRuntimeContext(context);
|
|
@@ -3832,6 +3888,10 @@ async function generateRuntimeProfileCard(context = {}) {
|
|
|
3832
3888
|
worldContextText: context.worldContextText || null,
|
|
3833
3889
|
participantContextText: context.participantContextText || null,
|
|
3834
3890
|
enabled: typeof context.enabled === 'boolean' ? context.enabled : true,
|
|
3891
|
+
visibility: context.visibility || null,
|
|
3892
|
+
identityMode: context.identityMode || null,
|
|
3893
|
+
joinPolicy: context.joinPolicy || null,
|
|
3894
|
+
approvalPolicy: context.approvalPolicy || null,
|
|
3835
3895
|
fetchImpl,
|
|
3836
3896
|
logger,
|
|
3837
3897
|
});
|
|
@@ -409,6 +409,10 @@ export function inferManageWorldAction(params = {}) {
|
|
|
409
409
|
normalizeText(params.worldContextText, null)
|
|
410
410
|
|| normalizeText(params.displayName, null)
|
|
411
411
|
|| normalizeObject(params.broadcast, null)
|
|
412
|
+
|| normalizeText(params.visibility, null)
|
|
413
|
+
|| normalizeText(params.identityMode, null)
|
|
414
|
+
|| normalizeText(params.joinPolicy, null)
|
|
415
|
+
|| normalizeText(params.approvalPolicy, null)
|
|
412
416
|
) {
|
|
413
417
|
return 'update_context';
|
|
414
418
|
}
|