50c 4.0.0 → 4.1.0
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/bin/50c.js +50 -6
- package/lib/team.js +655 -691
- package/package.json +2 -2
package/bin/50c.js
CHANGED
|
@@ -1055,9 +1055,33 @@ async function runPackTool(packTool, args) {
|
|
|
1055
1055
|
}
|
|
1056
1056
|
|
|
1057
1057
|
const input = args.join(' ');
|
|
1058
|
-
|
|
1059
|
-
// Map pack.tool to MCP tool name
|
|
1060
|
-
|
|
1058
|
+
|
|
1059
|
+
// Map pack.tool to MCP tool name.
|
|
1060
|
+
// 2026-04-15 patch: the beacon pack client had aspirational tool names
|
|
1061
|
+
// that don't match the live server registry. Verified against
|
|
1062
|
+
// beacon.50c.ai/mcp tools/list 2026-04-15. Maps intended → actual.
|
|
1063
|
+
// Second pass 2026-04-15: added mint/recall/remember/drift/summarize
|
|
1064
|
+
// using roadmap_* + conversation_diagnostic + context_compress.
|
|
1065
|
+
const BEACON_NAME_MAP = {
|
|
1066
|
+
'beacon_health': 'context_health',
|
|
1067
|
+
'beacon_summarize': 'context_compress',
|
|
1068
|
+
'beacon_checkpoint': 'fog_checkpoint',
|
|
1069
|
+
// Persistent memory via roadmap (scoped to roadmap items, FREE):
|
|
1070
|
+
'beacon_mint': 'roadmap_add',
|
|
1071
|
+
'beacon_remember': 'roadmap_add',
|
|
1072
|
+
'beacon_recall': 'roadmap_list',
|
|
1073
|
+
// Drift detection (real semantic match, $0.15):
|
|
1074
|
+
'beacon_drift': 'conversation_diagnostic',
|
|
1075
|
+
// These exist on the server as-is (no remap needed):
|
|
1076
|
+
// beacon_compress, beacon_extract, beacon_scan, beacon_rank, beacon_focus
|
|
1077
|
+
// GENUINELY DEAD (no server equivalent as of 2026-04-15):
|
|
1078
|
+
// beacon_tip, beacon_notip, beacon_diff, beacon_restore
|
|
1079
|
+
// For persistent memory, use ~/.claude/projects/<proj>/memory/ directly.
|
|
1080
|
+
};
|
|
1081
|
+
let toolName = `${pack}_${tool}`;
|
|
1082
|
+
if (BEACON_NAME_MAP[toolName]) {
|
|
1083
|
+
toolName = BEACON_NAME_MAP[toolName];
|
|
1084
|
+
}
|
|
1061
1085
|
|
|
1062
1086
|
// Build args object based on tool
|
|
1063
1087
|
let toolArgs = {};
|
|
@@ -1066,11 +1090,31 @@ async function runPackTool(packTool, args) {
|
|
|
1066
1090
|
} else if (tool === 'health') {
|
|
1067
1091
|
toolArgs = { messages: input ? [input] : [] };
|
|
1068
1092
|
} else if (tool === 'remember' || tool === 'mint') {
|
|
1069
|
-
|
|
1093
|
+
// 2026-04-15 patch: remapped to roadmap_add which expects {idea}.
|
|
1094
|
+
// Supports trailing --priority=critical|high|medium|low and --tags=a,b,c
|
|
1095
|
+
// e.g.: B4 mint "do the thing" --priority=critical --tags=deploy,urgent
|
|
1096
|
+
let idea = args.filter(a => !a.startsWith('--')).join(' ');
|
|
1097
|
+
let priority = null;
|
|
1098
|
+
let tags = null;
|
|
1099
|
+
for (const a of args) {
|
|
1100
|
+
if (a.startsWith('--priority=')) priority = a.slice(11);
|
|
1101
|
+
if (a.startsWith('--tags=')) tags = a.slice(7).split(',').map(t => t.trim()).filter(Boolean);
|
|
1102
|
+
}
|
|
1103
|
+
toolArgs = { idea };
|
|
1104
|
+
if (priority) toolArgs.priority = priority;
|
|
1105
|
+
if (tags) toolArgs.tags = tags;
|
|
1070
1106
|
} else if (tool === 'recall') {
|
|
1071
|
-
|
|
1107
|
+
// 2026-04-15 patch: remapped to roadmap_list which expects {filter}
|
|
1108
|
+
toolArgs = input ? { filter: input } : {};
|
|
1072
1109
|
} else if (tool === 'drift') {
|
|
1073
|
-
|
|
1110
|
+
// 2026-04-15 patch: remapped to conversation_diagnostic which needs ≥3 messages.
|
|
1111
|
+
// Treat each positional arg as a separate message. For single-string input,
|
|
1112
|
+
// split on sentence terminators.
|
|
1113
|
+
let msgs = args;
|
|
1114
|
+
if (msgs.length < 3 && input) {
|
|
1115
|
+
msgs = input.split(/[.!?]+\s+/).map(s => s.trim()).filter(Boolean);
|
|
1116
|
+
}
|
|
1117
|
+
toolArgs = { messages: msgs };
|
|
1074
1118
|
} else if (tool === 'checkpoint') {
|
|
1075
1119
|
toolArgs = { name: args[0] || 'default', messages: args.slice(1) };
|
|
1076
1120
|
} else if (tool === 'restore') {
|