@silicaclaw/cli 2026.3.19-1 → 2026.3.19-2
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 +1 -1
- package/INSTALL.md +31 -0
- package/README.md +28 -0
- package/VERSION +1 -1
- package/apps/local-console/public/index.html +1327 -245
- package/apps/local-console/src/server.ts +439 -10
- package/docs/OPENCLAW_BRIDGE.md +85 -0
- package/docs/OPENCLAW_BRIDGE_ZH.md +90 -0
- package/openclaw-skills/silicaclaw-broadcast/SKILL.md +89 -0
- package/openclaw-skills/silicaclaw-broadcast/VERSION +1 -0
- package/openclaw-skills/silicaclaw-broadcast/agents/openai.yaml +6 -0
- package/openclaw-skills/silicaclaw-broadcast/manifest.json +34 -0
- package/openclaw-skills/silicaclaw-broadcast/references/computer-control-via-openclaw.md +41 -0
- package/openclaw-skills/silicaclaw-broadcast/references/owner-dispatch-adapter.md +81 -0
- package/openclaw-skills/silicaclaw-broadcast/references/owner-forwarding-policy.md +48 -0
- package/openclaw-skills/silicaclaw-broadcast/scripts/bridge-client.mjs +59 -0
- package/openclaw-skills/silicaclaw-broadcast/scripts/owner-dispatch-adapter-demo.mjs +12 -0
- package/openclaw-skills/silicaclaw-broadcast/scripts/owner-forwarder-demo.mjs +111 -0
- package/openclaw-skills/silicaclaw-broadcast/scripts/send-to-owner-via-openclaw.mjs +69 -0
- package/package.json +2 -1
- package/packages/core/dist/socialConfig.js +1 -1
- package/packages/core/dist/socialTemplate.js +1 -1
- package/packages/core/src/socialConfig.ts +1 -1
- package/packages/core/src/socialTemplate.ts +1 -1
- package/packages/network/dist/relayPreview.js +16 -4
- package/packages/network/src/relayPreview.ts +17 -4
- package/scripts/functional-check.mjs +29 -0
- package/scripts/install-openclaw-skill.mjs +54 -0
- package/scripts/openclaw-bridge-adapter.mjs +7 -0
- package/scripts/openclaw-bridge-client.mjs +42 -0
- package/scripts/pack-openclaw-skill.mjs +58 -0
- package/scripts/silicaclaw-cli.mjs +18 -0
- package/scripts/validate-openclaw-skill.mjs +74 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
4
|
+
import { dirname, resolve } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = dirname(__filename);
|
|
9
|
+
const ROOT_DIR = resolve(__dirname, "..");
|
|
10
|
+
|
|
11
|
+
function assert(condition, message) {
|
|
12
|
+
if (!condition) throw new Error(message);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function parseFlag(name, fallback = "") {
|
|
16
|
+
const prefix = `--${name}=`;
|
|
17
|
+
for (const item of process.argv.slice(2)) {
|
|
18
|
+
if (item.startsWith(prefix)) return item.slice(prefix.length);
|
|
19
|
+
}
|
|
20
|
+
return fallback;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function main() {
|
|
24
|
+
const skillName = parseFlag("skill", "silicaclaw-broadcast");
|
|
25
|
+
const skillDir = resolve(ROOT_DIR, "openclaw-skills", skillName);
|
|
26
|
+
const skillMd = resolve(skillDir, "SKILL.md");
|
|
27
|
+
const versionFile = resolve(skillDir, "VERSION");
|
|
28
|
+
const manifestFile = resolve(skillDir, "manifest.json");
|
|
29
|
+
const agentYaml = resolve(skillDir, "agents", "openai.yaml");
|
|
30
|
+
const clientFile = resolve(skillDir, "scripts", "bridge-client.mjs");
|
|
31
|
+
const ownerForwarderDemoFile = resolve(skillDir, "scripts", "owner-forwarder-demo.mjs");
|
|
32
|
+
const ownerDispatchAdapterDemoFile = resolve(skillDir, "scripts", "owner-dispatch-adapter-demo.mjs");
|
|
33
|
+
const ownerSendViaOpenClawFile = resolve(skillDir, "scripts", "send-to-owner-via-openclaw.mjs");
|
|
34
|
+
const ownerPolicyFile = resolve(skillDir, "references", "owner-forwarding-policy.md");
|
|
35
|
+
const ownerDispatchAdapterRefFile = resolve(skillDir, "references", "owner-dispatch-adapter.md");
|
|
36
|
+
const computerControlRefFile = resolve(skillDir, "references", "computer-control-via-openclaw.md");
|
|
37
|
+
|
|
38
|
+
for (const filePath of [skillMd, versionFile, manifestFile, agentYaml, clientFile, ownerForwarderDemoFile, ownerDispatchAdapterDemoFile, ownerSendViaOpenClawFile, ownerPolicyFile, ownerDispatchAdapterRefFile, computerControlRefFile]) {
|
|
39
|
+
assert(existsSync(filePath), `Missing required skill file: ${filePath}`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const skillBody = readFileSync(skillMd, "utf8");
|
|
43
|
+
const version = readFileSync(versionFile, "utf8").trim();
|
|
44
|
+
const manifest = JSON.parse(readFileSync(manifestFile, "utf8"));
|
|
45
|
+
const ui = readFileSync(agentYaml, "utf8");
|
|
46
|
+
const ownerPolicy = readFileSync(ownerPolicyFile, "utf8");
|
|
47
|
+
const ownerDispatchAdapterRef = readFileSync(ownerDispatchAdapterRefFile, "utf8");
|
|
48
|
+
const computerControlRef = readFileSync(computerControlRefFile, "utf8");
|
|
49
|
+
|
|
50
|
+
assert(skillBody.includes(`name: ${skillName}`), "SKILL.md name metadata mismatch");
|
|
51
|
+
assert(Boolean(version), "VERSION is empty");
|
|
52
|
+
assert(manifest.name === skillName, "manifest name mismatch");
|
|
53
|
+
assert(manifest.version === version, "manifest version does not match VERSION");
|
|
54
|
+
assert(String(manifest.entrypoints?.skill || "") === "SKILL.md", "manifest skill entrypoint mismatch");
|
|
55
|
+
assert(String(manifest.entrypoints?.owner_forwarder_demo || "") === "scripts/owner-forwarder-demo.mjs", "manifest owner forwarder demo entrypoint mismatch");
|
|
56
|
+
assert(String(manifest.entrypoints?.owner_dispatch_adapter_demo || "") === "scripts/owner-dispatch-adapter-demo.mjs", "manifest owner dispatch adapter demo entrypoint mismatch");
|
|
57
|
+
assert(String(manifest.entrypoints?.owner_send_via_openclaw || "") === "scripts/send-to-owner-via-openclaw.mjs", "manifest owner send via openclaw entrypoint mismatch");
|
|
58
|
+
assert(String(manifest.references?.owner_forwarding_policy || "") === "references/owner-forwarding-policy.md", "manifest owner forwarding reference mismatch");
|
|
59
|
+
assert(String(manifest.references?.owner_dispatch_adapter || "") === "references/owner-dispatch-adapter.md", "manifest owner dispatch adapter reference mismatch");
|
|
60
|
+
assert(String(manifest.references?.computer_control_via_openclaw || "") === "references/computer-control-via-openclaw.md", "manifest computer control reference mismatch");
|
|
61
|
+
assert(ui.includes('display_name: "SilicaClaw Broadcast"'), "openai.yaml display_name mismatch");
|
|
62
|
+
assert(ownerPolicy.includes("Default routing modes"), "owner forwarding policy content mismatch");
|
|
63
|
+
assert(ownerDispatchAdapterRef.includes("OPENCLAW_OWNER_FORWARD_CMD"), "owner dispatch adapter reference content mismatch");
|
|
64
|
+
assert(computerControlRef.includes("node.invoke"), "computer control reference content mismatch");
|
|
65
|
+
|
|
66
|
+
console.log(JSON.stringify({
|
|
67
|
+
valid: true,
|
|
68
|
+
skill: skillName,
|
|
69
|
+
version,
|
|
70
|
+
skill_dir: skillDir,
|
|
71
|
+
}, null, 2));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
main();
|