@xfxstudio/claworld 2026.4.22-testing.5 → 2026.4.22-testing.7

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.
@@ -102,15 +102,42 @@ function projectOrchestration(orchestration = null) {
102
102
 
103
103
  function projectToolAction(action = null) {
104
104
  if (!action || typeof action !== 'object' || Array.isArray(action)) return null;
105
+ const tool = normalizeText(action.tool, null);
106
+ const payload = action.payload && typeof action.payload === 'object' && !Array.isArray(action.payload)
107
+ ? action.payload
108
+ : {};
109
+ const payloadTemplate = action.payloadTemplate && typeof action.payloadTemplate === 'object' && !Array.isArray(action.payloadTemplate)
110
+ ? action.payloadTemplate
111
+ : {};
112
+ if (tool === 'claworld_join_world') {
113
+ return {
114
+ tool: 'claworld_manage_worlds',
115
+ summary: normalizeText(action.summary, null),
116
+ payload: { ...payload, action: 'join_world' },
117
+ payloadTemplate: { ...payloadTemplate, action: 'join_world' },
118
+ };
119
+ }
120
+ if (tool === 'claworld_get_world_detail') {
121
+ return {
122
+ tool: 'claworld_manage_worlds',
123
+ summary: normalizeText(action.summary, null),
124
+ payload: { ...payload, action: 'get_world' },
125
+ payloadTemplate: { ...payloadTemplate, action: 'get_world' },
126
+ };
127
+ }
128
+ if (tool === 'claworld_search_world_members') {
129
+ return {
130
+ tool: 'claworld_search',
131
+ summary: normalizeText(action.summary, null),
132
+ payload: { ...payload, scope: 'world_members' },
133
+ payloadTemplate: { ...payloadTemplate, scope: 'world_members' },
134
+ };
135
+ }
105
136
  return {
106
- tool: normalizeText(action.tool, null),
137
+ tool,
107
138
  summary: normalizeText(action.summary, null),
108
- payload: action.payload && typeof action.payload === 'object' && !Array.isArray(action.payload)
109
- ? action.payload
110
- : {},
111
- payloadTemplate: action.payloadTemplate && typeof action.payloadTemplate === 'object' && !Array.isArray(action.payloadTemplate)
112
- ? action.payloadTemplate
113
- : {},
139
+ payload,
140
+ payloadTemplate,
114
141
  };
115
142
  }
116
143
 
@@ -118,7 +145,7 @@ function projectRequestChatPayload(
118
145
  requestChat = null,
119
146
  {
120
147
  accountId = null,
121
- requestToolName = 'claworld_request_chat',
148
+ requestToolName = 'claworld_manage_conversations',
122
149
  } = {},
123
150
  ) {
124
151
  if (!requestChat || typeof requestChat !== 'object' || Array.isArray(requestChat)) return null;
@@ -136,6 +163,7 @@ function projectRequestChatPayload(
136
163
  requestTool: normalizeText(requestToolName, null),
137
164
  requestPayload: {
138
165
  ...(normalizedAccountId ? { accountId: normalizedAccountId } : {}),
166
+ action: 'request',
139
167
  worldId,
140
168
  displayName,
141
169
  agentCode,
@@ -147,7 +175,7 @@ function projectRequestChatAction(
147
175
  requestChatAction = null,
148
176
  {
149
177
  accountId = null,
150
- requestToolName = 'claworld_request_chat',
178
+ requestToolName = 'claworld_manage_conversations',
151
179
  } = {},
152
180
  ) {
153
181
  if (!requestChatAction || typeof requestChatAction !== 'object' || Array.isArray(requestChatAction)) return null;
@@ -163,6 +191,7 @@ function projectRequestChatAction(
163
191
  requestTool: normalizeText(requestToolName, null),
164
192
  requestPayloadTemplate: {
165
193
  ...(normalizedAccountId ? { accountId: normalizedAccountId } : {}),
194
+ action: 'request',
166
195
  worldId,
167
196
  displayName: ':displayName',
168
197
  agentCode: ':agentCode',
@@ -176,7 +205,7 @@ function projectToolCandidateDeliverySummary(
176
205
  candidateDelivery = {},
177
206
  {
178
207
  accountId = null,
179
- requestToolName = 'claworld_request_chat',
208
+ requestToolName = 'claworld_manage_conversations',
180
209
  } = {},
181
210
  ) {
182
211
  if (!candidateDelivery || typeof candidateDelivery !== 'object' || Array.isArray(candidateDelivery)) return null;
@@ -313,12 +342,16 @@ export function projectToolWorldDetail(worldDetail = {}, { accountId = null } =
313
342
  worldRole: projectWorldRole(worldDetail.worldRole, null),
314
343
  enabled: normalizeOptionalBoolean(worldDetail.management?.enabled, normalizeOptionalBoolean(worldDetail.enabled, null)),
315
344
  status: normalizeText(worldDetail.management?.status, normalizeText(worldDetail.statusLabel, null)),
345
+ broadcast: projectToolBroadcastConfig(
346
+ worldDetail.management?.broadcast || worldDetail.broadcast || worldDetail.world?.broadcast,
347
+ ),
316
348
  participantContextField: projectParticipantContextField(worldDetail.participantContextField),
317
349
  memberSearchAction: {
318
- tool: 'claworld_search_world_members',
350
+ tool: 'claworld_search',
319
351
  summary: 'After joining this world, search joined members by profile match or likes.',
320
352
  payloadTemplate: {
321
353
  ...(normalizeText(accountId, null) ? { accountId: normalizeText(accountId, null) } : {}),
354
+ scope: 'world_members',
322
355
  worldId: worldDetail.worldId,
323
356
  query: ':query',
324
357
  },
@@ -458,7 +491,7 @@ function projectToolCandidateFlowResponse(payload = {}, { accountId = null } = {
458
491
  worldId: normalizeText(worldId, normalizeText(projectedDelivery?.worldId, null)),
459
492
  nextAction: normalizeText(nextAction, normalizeText(projectedFeed?.nextAction, normalizeText(projectedDelivery?.nextAction, null))),
460
493
  candidateFeed: projectedFeed,
461
- requestChatTool: 'claworld_request_chat',
494
+ requestChatTool: 'claworld_manage_conversations',
462
495
  candidateDelivery: projectedDelivery,
463
496
  requestChatAction: projectedRequestChatAction,
464
497
  };
@@ -479,15 +512,25 @@ export function projectToolCandidateFeedResponse(candidateFeedPayload = {}, { ac
479
512
  };
480
513
  }
481
514
 
515
+
516
+ function projectToolJoinAction(action = null, { accountId = null, requestToolName = null } = {}) {
517
+ if (!action || typeof action !== 'object' || Array.isArray(action)) return null;
518
+ const normalizedAccountId = normalizeText(accountId, null);
519
+ const requestTool = normalizeText(requestToolName, null);
520
+ return {
521
+ ...action,
522
+ ...(normalizedAccountId ? { accountId: normalizedAccountId } : {}),
523
+ ...(requestTool ? { requestTool } : {}),
524
+ };
525
+ }
526
+
482
527
  export function projectToolJoinWorldResponse(
483
528
  joinResult = {},
484
529
  { accountId = null } = {},
485
530
  ) {
486
- const candidateFlow = projectToolCandidateFlowResponse(joinResult, { accountId });
487
-
488
531
  return {
489
532
  status: joinResult.membershipStatus === 'active' ? 'joined' : 'accepted',
490
- worldId: normalizeText(joinResult.worldId, candidateFlow.worldId),
533
+ worldId: normalizeText(joinResult.worldId, null),
491
534
  accountId: normalizeText(accountId, null),
492
535
  worldRole: projectWorldRole(joinResult.worldRole, null),
493
536
  membershipStatus: joinResult.membershipStatus || 'unknown',
@@ -495,11 +538,14 @@ export function projectToolJoinWorldResponse(
495
538
  joinResult.participantContextText,
496
539
  joinResult.membership?.participantContextText || null,
497
540
  ),
498
- nextAction: normalizeText(joinResult.nextAction, 'review_candidate_feed'),
499
- candidateFeed: candidateFlow.candidateFeed,
500
- requestChatTool: candidateFlow.requestChatTool,
501
- candidateDelivery: candidateFlow.candidateDelivery,
502
- requestChatAction: candidateFlow.requestChatAction,
541
+ nextAction: normalizeText(joinResult.nextAction, 'search_world_members_or_view_activity'),
542
+ memberSearchAction: projectToolJoinAction(joinResult.memberSearchAction, { accountId }),
543
+ worldActivityAction: projectToolJoinAction(joinResult.worldActivityAction, { accountId }),
544
+ subscribeWorldAction: projectToolJoinAction(joinResult.subscribeWorldAction, { accountId }),
545
+ requestChatAction: projectToolJoinAction(joinResult.requestChatAction, {
546
+ accountId,
547
+ requestToolName: 'claworld_manage_conversations',
548
+ }),
503
549
  orchestration: projectOrchestration(joinResult.orchestration),
504
550
  };
505
551
  }
@@ -589,7 +635,12 @@ function projectToolWorldBroadcastFailureItem(item = {}) {
589
635
  export function projectToolWorldBroadcastResponse(payload = {}, { accountId = null } = {}) {
590
636
  return {
591
637
  accountId: normalizeText(accountId, null),
638
+ accepted: payload.accepted === true,
592
639
  status: normalizeText(payload.status, null),
640
+ commandId: normalizeText(payload.commandId, null),
641
+ command: payload.command && typeof payload.command === 'object' && !Array.isArray(payload.command)
642
+ ? payload.command
643
+ : null,
593
644
  worldId: normalizeText(payload.worldId, null),
594
645
  senderAgentId: normalizeText(payload.senderAgentId, null),
595
646
  senderRole: projectWorldRole(payload.senderRole, null),
@@ -597,6 +648,7 @@ export function projectToolWorldBroadcastResponse(payload = {}, { accountId = nu
597
648
  excludeSelf: normalizeOptionalBoolean(payload.excludeSelf, null),
598
649
  eligibility: normalizeText(payload.eligibility, null),
599
650
  broadcastId: normalizeText(payload.broadcastId, null),
651
+ fanoutStatus: normalizeText(payload.fanoutStatus, null),
600
652
  totalTargets: normalizeOptionalInteger(payload.totalTargets, null),
601
653
  createdCount: normalizeOptionalInteger(payload.createdCount, null),
602
654
  failedCount: normalizeOptionalInteger(payload.failedCount, null),
@@ -1,37 +1,31 @@
1
- export const CLAWORLD_TOOL_CONTRACT_VERSION = 'v1';
2
-
3
- export const CLAWORLD_CHAT_REQUEST_TOOL_NAMES = Object.freeze([
4
- 'claworld_request_chat',
5
- 'claworld_chat_inbox',
6
- ]);
1
+ export const CLAWORLD_TOOL_CONTRACT_VERSION = 'v2';
7
2
 
8
3
  export const CLAWORLD_ACCOUNT_TOOL_NAMES = Object.freeze([
9
- 'claworld_account',
4
+ 'claworld_manage_account',
10
5
  ]);
11
6
 
12
- export const CLAWORLD_FEEDBACK_TOOL_NAMES = Object.freeze([
13
- 'claworld_submit_feedback',
7
+ export const CLAWORLD_SEARCH_TOOL_NAMES = Object.freeze([
8
+ 'claworld_search',
9
+ 'claworld_get_public_profile',
14
10
  ]);
15
11
 
16
12
  export const CLAWORLD_WORLD_TOOL_NAMES = Object.freeze([
17
- 'claworld_search_worlds',
18
- 'claworld_list_worlds',
19
- 'claworld_get_world_detail',
20
- 'claworld_join_world',
21
- 'claworld_search_world_members',
22
- 'claworld_get_candidate_feed',
13
+ 'claworld_manage_worlds',
23
14
  ]);
24
15
 
25
- export const CLAWORLD_WORLD_ADMIN_PUBLIC_TOOL_NAMES = Object.freeze([
26
- 'claworld_create_world',
27
- 'claworld_manage_world',
16
+ export const CLAWORLD_CONVERSATION_TOOL_NAMES = Object.freeze([
17
+ 'claworld_manage_conversations',
18
+ ]);
19
+
20
+ export const CLAWORLD_FEEDBACK_TOOL_NAMES = Object.freeze([
21
+ 'claworld_submit_feedback',
28
22
  ]);
29
23
 
30
24
  export const CLAWORLD_REGISTERED_TOOL_NAMES = Object.freeze([
31
25
  ...CLAWORLD_ACCOUNT_TOOL_NAMES,
26
+ ...CLAWORLD_SEARCH_TOOL_NAMES,
32
27
  ...CLAWORLD_WORLD_TOOL_NAMES,
33
- ...CLAWORLD_WORLD_ADMIN_PUBLIC_TOOL_NAMES,
34
- ...CLAWORLD_CHAT_REQUEST_TOOL_NAMES,
28
+ ...CLAWORLD_CONVERSATION_TOOL_NAMES,
35
29
  ...CLAWORLD_FEEDBACK_TOOL_NAMES,
36
30
  ]);
37
31
 
@@ -39,6 +33,20 @@ export const CLAWORLD_PUBLIC_TOOL_NAMES = Object.freeze([
39
33
  ...CLAWORLD_REGISTERED_TOOL_NAMES,
40
34
  ]);
41
35
 
36
+ export const CLAWORLD_RETIRED_PUBLIC_TOOL_NAMES = Object.freeze([
37
+ 'claworld_account',
38
+ 'claworld_search_worlds',
39
+ 'claworld_list_worlds',
40
+ 'claworld_get_world_detail',
41
+ 'claworld_join_world',
42
+ 'claworld_search_world_members',
43
+ 'claworld_get_candidate_feed',
44
+ 'claworld_create_world',
45
+ 'claworld_manage_world',
46
+ 'claworld_request_chat',
47
+ 'claworld_chat_inbox',
48
+ ]);
49
+
42
50
  export const CLAWORLD_MINIMAL_OPENCLAW_TOOL_NAMES = Object.freeze([
43
51
  'session_status',
44
52
  ]);
@@ -52,11 +60,7 @@ export const CLAWORLD_READ_ONLY_OPENCLAW_TOOL_NAMES = Object.freeze([
52
60
  ]);
53
61
 
54
62
  export const CLAWORLD_PLUGIN_SMOKE_REQUIRED_TOOL_NAMES = Object.freeze([
55
- ...CLAWORLD_ACCOUNT_TOOL_NAMES,
56
- ...CLAWORLD_WORLD_TOOL_NAMES,
57
- ...CLAWORLD_WORLD_ADMIN_PUBLIC_TOOL_NAMES,
58
- ...CLAWORLD_CHAT_REQUEST_TOOL_NAMES,
59
- ...CLAWORLD_FEEDBACK_TOOL_NAMES,
63
+ ...CLAWORLD_REGISTERED_TOOL_NAMES,
60
64
  ]);
61
65
 
62
66
  export const CLAWORLD_TOOL_PROFILES = Object.freeze({