@silicaclaw/cli 2026.3.20-2 → 2026.3.20-4
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/CHANGELOG.md +12 -0
- package/INSTALL.md +13 -7
- package/README.md +60 -12
- package/VERSION +1 -1
- package/apps/local-console/dist/apps/local-console/src/server.d.ts +39 -0
- package/apps/local-console/dist/apps/local-console/src/server.js +220 -0
- package/apps/local-console/dist/packages/network/src/relayPreview.d.ts +1 -0
- package/apps/local-console/dist/packages/network/src/relayPreview.js +17 -0
- package/apps/local-console/public/app/app.js +274 -3
- package/apps/local-console/public/app/events.js +21 -0
- package/apps/local-console/public/app/network.js +111 -30
- package/apps/local-console/public/app/overview.js +49 -21
- package/apps/local-console/public/app/social.js +315 -93
- package/apps/local-console/public/app/styles.css +86 -0
- package/apps/local-console/public/app/template.js +56 -35
- package/apps/local-console/public/app/translations.js +394 -312
- package/apps/local-console/src/server.ts +251 -1
- package/apps/public-explorer/public/app/template.js +2 -2
- package/apps/public-explorer/public/app/translations.js +36 -36
- package/docs/NEW_USER_OPERATIONS.md +5 -5
- package/docs/OPENCLAW_BRIDGE.md +7 -7
- package/docs/OPENCLAW_BRIDGE_ZH.md +6 -6
- package/node_modules/@silicaclaw/network/dist/packages/network/src/relayPreview.d.ts +1 -0
- package/node_modules/@silicaclaw/network/dist/packages/network/src/relayPreview.js +17 -0
- package/node_modules/@silicaclaw/network/src/relayPreview.ts +17 -0
- package/openclaw-skills/silicaclaw-bridge-setup/SKILL.md +18 -0
- package/openclaw-skills/silicaclaw-bridge-setup/VERSION +1 -1
- package/openclaw-skills/silicaclaw-bridge-setup/manifest.json +2 -2
- package/openclaw-skills/silicaclaw-broadcast/SKILL.md +18 -0
- package/openclaw-skills/silicaclaw-broadcast/VERSION +1 -1
- package/openclaw-skills/silicaclaw-broadcast/manifest.json +2 -2
- package/openclaw-skills/silicaclaw-network-config/SKILL.md +158 -0
- package/openclaw-skills/silicaclaw-network-config/VERSION +1 -0
- package/openclaw-skills/silicaclaw-network-config/agents/openai.yaml +6 -0
- package/openclaw-skills/silicaclaw-network-config/manifest.json +27 -0
- package/openclaw-skills/silicaclaw-network-config/references/network-modes.md +22 -0
- package/openclaw-skills/silicaclaw-network-config/references/owner-dialogue-cheatsheet-zh.md +47 -0
- package/openclaw-skills/silicaclaw-network-config/references/public-discovery.md +22 -0
- package/openclaw-skills/silicaclaw-owner-push/SKILL.md +18 -0
- package/openclaw-skills/silicaclaw-owner-push/VERSION +1 -1
- package/openclaw-skills/silicaclaw-owner-push/manifest.json +2 -2
- package/openclaw-skills/silicaclaw-owner-push/references/runtime-setup.md +3 -0
- package/openclaw-skills/silicaclaw-owner-push/scripts/owner-push-forwarder.mjs +67 -8
- package/package.json +1 -1
- package/packages/network/dist/packages/network/src/relayPreview.d.ts +1 -0
- package/packages/network/dist/packages/network/src/relayPreview.js +17 -0
- package/packages/network/src/relayPreview.ts +17 -0
- package/scripts/silicaclaw-cli.mjs +4 -1
- package/scripts/silicaclaw-gateway.mjs +108 -0
- package/scripts/validate-openclaw-skill.mjs +19 -0
|
@@ -7,6 +7,8 @@ export function createOverviewController({
|
|
|
7
7
|
t,
|
|
8
8
|
writeUiCache,
|
|
9
9
|
}) {
|
|
10
|
+
let lastAgentsRenderKey = "";
|
|
11
|
+
|
|
10
12
|
function renderOverviewGuide(overview, profile) {
|
|
11
13
|
const hasDisplayName = Boolean(String(profile?.display_name || overview?.display_name || "").trim());
|
|
12
14
|
const hasBio = Boolean(String(profile?.bio || "").trim());
|
|
@@ -108,15 +110,15 @@ export function createOverviewController({
|
|
|
108
110
|
const snapshotHtml = `
|
|
109
111
|
<div class="snapshot-card">
|
|
110
112
|
<div class="snapshot-card__identity">
|
|
111
|
-
<div class="snapshot-card__label"
|
|
113
|
+
<div class="snapshot-card__label">${t("overview.snapshotCurrentNode")}</div>
|
|
112
114
|
<div class="snapshot-card__title">${escapeHtml(o.display_name || t("overview.unnamed"))}</div>
|
|
113
115
|
<div class="snapshot-card__subtle mono">${escapeHtml(o.agent_id || "-")}</div>
|
|
114
116
|
</div>
|
|
115
117
|
<div class="snapshot-card__grid">
|
|
116
|
-
<div class="snapshot-card__item"><div class="label"
|
|
117
|
-
<div class="snapshot-card__item"><div class="label"
|
|
118
|
-
<div class="snapshot-card__item"><div class="label"
|
|
119
|
-
<div class="snapshot-card__item"><div class="label"
|
|
118
|
+
<div class="snapshot-card__item"><div class="label">${t("overview.snapshotVersion")}</div><span class="value-inline">${escapeHtml(o.app_version || "-")}</span></div>
|
|
119
|
+
<div class="snapshot-card__item"><div class="label">${t("overview.snapshotPublic")}</div><span class="value-inline">${o.public_enabled ? t("common.on") : t("common.off")}</span></div>
|
|
120
|
+
<div class="snapshot-card__item"><div class="label">${t("overview.snapshotBroadcast")}</div><span class="value-inline">${o.broadcast_enabled ? t("common.on") : t("common.off")}</span></div>
|
|
121
|
+
<div class="snapshot-card__item"><div class="label">${t("overview.snapshotLastBroadcast")}</div><span class="value-inline">${escapeHtml(ago(o.last_broadcast_at))}</span></div>
|
|
120
122
|
</div>
|
|
121
123
|
</div>
|
|
122
124
|
`;
|
|
@@ -175,7 +177,7 @@ export function createOverviewController({
|
|
|
175
177
|
document.getElementById("homePriorityGrid").innerHTML = [
|
|
176
178
|
[t("overview.homeOpenClaw"), openclawRunning ? t("overview.homeRunning") : openclawDetected ? t("overview.homeInstalledOnly") : t("overview.homeStopped"), openclawRunning ? t("overview.homeMetaRunning") : t("overview.homeMetaNotRunning")],
|
|
177
179
|
[t("overview.homeGlobalMode"), globalMode ? t("overview.homeGlobalReady") : t("overview.homeNotGlobal"), globalMode ? t("overview.homeMetaGlobal") : t("overview.homeMetaNotGlobal")],
|
|
178
|
-
[t("overview.homeBroadcastHealth"), broadcastHealthy ? t("overview.homeHealthy") : t("overview.homeDegraded"), lastNetworkError ||
|
|
180
|
+
[t("overview.homeBroadcastHealth"), broadcastHealthy ? t("overview.homeHealthy") : t("overview.homeDegraded"), lastNetworkError || t("overview.lastBroadcastAgo", { value: ago(o.last_broadcast_at) })],
|
|
179
181
|
[t("overview.homePeers"), String(all.filter((agent) => !agent.is_self && agent.online).length), t("overview.homeMetaPeers", { online: String(onlineCount), discovered: String(discoveredCount) })],
|
|
180
182
|
].map(([label, value, meta]) => `
|
|
181
183
|
<div class="priority-card">
|
|
@@ -221,8 +223,17 @@ export function createOverviewController({
|
|
|
221
223
|
if (!filtered.length) {
|
|
222
224
|
const agentsCountHintText = t("overview.agentsZero");
|
|
223
225
|
const agentsWrapHtml = `<div class="label">${t("overview.noDiscoveredAgents")}</div>`;
|
|
224
|
-
|
|
225
|
-
|
|
226
|
+
const renderKey = JSON.stringify({
|
|
227
|
+
state: "empty",
|
|
228
|
+
hint: agentsCountHintText,
|
|
229
|
+
page: agentsPage,
|
|
230
|
+
onlineOnly: getOnlyShowOnline(),
|
|
231
|
+
});
|
|
232
|
+
if (renderKey !== lastAgentsRenderKey) {
|
|
233
|
+
document.getElementById("agentsCountHint").textContent = agentsCountHintText;
|
|
234
|
+
document.getElementById("agentsWrap").innerHTML = agentsWrapHtml;
|
|
235
|
+
lastAgentsRenderKey = renderKey;
|
|
236
|
+
}
|
|
226
237
|
writeUiCache("silicaclaw_ui_overview", {
|
|
227
238
|
overviewCardsHtml,
|
|
228
239
|
brandVersionText,
|
|
@@ -282,20 +293,37 @@ export function createOverviewController({
|
|
|
282
293
|
</div>
|
|
283
294
|
</div>
|
|
284
295
|
`;
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
296
|
+
const renderKey = JSON.stringify({
|
|
297
|
+
state: "list",
|
|
298
|
+
hint: agentsCountHintText,
|
|
299
|
+
page: agentsPage,
|
|
300
|
+
totalPages: totalAgentPages,
|
|
301
|
+
onlineOnly: getOnlyShowOnline(),
|
|
302
|
+
items: pagedAgents.map((agent) => [
|
|
303
|
+
agent.agent_id,
|
|
304
|
+
agent.updated_at,
|
|
305
|
+
agent.online ? 1 : 0,
|
|
306
|
+
agent.display_name || "",
|
|
307
|
+
agent.bio || "",
|
|
308
|
+
]),
|
|
298
309
|
});
|
|
310
|
+
if (renderKey !== lastAgentsRenderKey) {
|
|
311
|
+
document.getElementById("agentsCountHint").textContent = agentsCountHintText;
|
|
312
|
+
document.getElementById("agentsWrap").innerHTML = agentsWrapHtml;
|
|
313
|
+
document.getElementById("agentsPrevPageBtn")?.addEventListener("click", async () => {
|
|
314
|
+
if (agentsPage <= 1) return;
|
|
315
|
+
agentsPage -= 1;
|
|
316
|
+
onPageChange(agentsPage);
|
|
317
|
+
await refreshOverview({ getAgentsPage, getOnlyShowOnline, onPageChange, setOverviewMode, setVisibleRemotePublicCount });
|
|
318
|
+
});
|
|
319
|
+
document.getElementById("agentsNextPageBtn")?.addEventListener("click", async () => {
|
|
320
|
+
if (agentsPage >= totalAgentPages) return;
|
|
321
|
+
agentsPage += 1;
|
|
322
|
+
onPageChange(agentsPage);
|
|
323
|
+
await refreshOverview({ getAgentsPage, getOnlyShowOnline, onPageChange, setOverviewMode, setVisibleRemotePublicCount });
|
|
324
|
+
});
|
|
325
|
+
lastAgentsRenderKey = renderKey;
|
|
326
|
+
}
|
|
299
327
|
writeUiCache("silicaclaw_ui_overview", {
|
|
300
328
|
overviewCardsHtml,
|
|
301
329
|
brandVersionText,
|