@clawos-dev/clawd 0.2.576 → 0.2.577

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/dist/cli.cjs CHANGED
@@ -5983,13 +5983,20 @@ function connectorBlockers(c2) {
5983
5983
  if (c2.credentialSource === "shared" && c2.fields.length === 0) out.push(`\u8FDE\u63A5\u5668 ${c2.name} \u9009\u4E86\u53D1\u5E03\u8005\u7684\u8D26\u53F7\uFF0C\u4F46\u8981\u586B\u7684\u53D8\u91CF\u8FD8\u6CA1\u5217`);
5984
5984
  return out;
5985
5985
  }
5986
+ function packageBlockers(p3) {
5987
+ const provided = CLOUD_ROOT_PROVIDES.includes(p3.name) || CLOUD_BASE_PROVIDES.includes(p3.name);
5988
+ if (p3.from?.startsWith("github:") && !p3.artifact && !provided) {
5989
+ return [`${p3.name} \u8FD8\u6CA1\u9489\u4E0B\u8F7D\u8D44\u4EA7\uFF08github: \u8981\u5177\u4F53\u5230\u54EA\u4E2A\u6587\u4EF6\uFF09\u2014\u2014\u91CD\u65B0\u626B\u63CF`];
5990
+ }
5991
+ return [];
5992
+ }
5986
5993
  function sharedConnectorSecrets(m3) {
5987
5994
  return m3.connectors.filter((c2) => c2.credentialSource === "shared" && c2.fields.length > 0).map((c2) => ({ name: c2.name, env: [...c2.fields] }));
5988
5995
  }
5989
5996
  function requiredSecretEnvNames(m3) {
5990
5997
  return [.../* @__PURE__ */ new Set([...m3.secrets.flatMap((s2) => s2.env), ...sharedConnectorSecrets(m3).flatMap((s2) => s2.env)])];
5991
5998
  }
5992
- var EnvArtifactSchema, CLOUD_ROOT_PROVIDES, EnvPackageSchema, EnvSecretSchema, ConnectorNameSchema, CONNECTOR_KINDS, CONNECTOR_RUNNERS, CONNECTOR_PROTOCOLS, CREDENTIAL_SOURCES, CONNECTOR_AUTHS, ConnectorFieldSchema, EnvConnectorSchema, normalizeLegacyManifest, MANIFEST_BODY, EnvManifestBodySchema, EnvironmentManifestSchema, EnvEvidenceSchema;
5999
+ var EnvArtifactSchema, CLOUD_ROOT_PROVIDES, CLOUD_BASE_PROVIDES, EnvPackageSchema, EnvSecretSchema, ConnectorNameSchema, CONNECTOR_KINDS, CONNECTOR_RUNNERS, CONNECTOR_PROTOCOLS, CREDENTIAL_SOURCES, CONNECTOR_AUTHS, ConnectorFieldSchema, EnvConnectorSchema, normalizeLegacyManifest, MANIFEST_BODY, EnvManifestBodySchema, EnvironmentManifestSchema, EnvEvidenceSchema;
5993
6000
  var init_environment_schemas = __esm({
5994
6001
  "../protocol/src/environment-schemas.ts"() {
5995
6002
  "use strict";
@@ -6002,6 +6009,24 @@ var init_environment_schemas = __esm({
6002
6009
  size: external_exports.number().int().positive()
6003
6010
  });
6004
6011
  CLOUD_ROOT_PROVIDES = ["node", "npm"];
6012
+ CLOUD_BASE_PROVIDES = [
6013
+ "codex",
6014
+ "git",
6015
+ "lark-cli",
6016
+ "pi",
6017
+ "pi-mcp-bridge",
6018
+ "pi-cliproxyapi-provider",
6019
+ "python3",
6020
+ "jq",
6021
+ "rsync",
6022
+ "psql",
6023
+ "pnpm",
6024
+ "whiteboard-cli",
6025
+ "s",
6026
+ "supabase-mcp",
6027
+ "mcp-server-kibana",
6028
+ "aliyun"
6029
+ ];
6005
6030
  EnvPackageSchema = external_exports.object({
6006
6031
  // 装完后在 PATH 里能直接调到的名字('aliyun' / 's' / 'pnpm' / 'python3');npm 包报 bin 名,包名进 from
6007
6032
  name: external_exports.string().min(1),
@@ -60361,6 +60386,7 @@ function buildDeployHandlers(deps) {
60361
60386
  const missing = requiredEnvNames(entry.manifest).filter((e) => !present.has(e));
60362
60387
  if (missing.length > 0) blockers.push(`${missing.join(" / ")} \u8FD8\u6CA1\u586B`);
60363
60388
  for (const c2 of entry.manifest.connectors) blockers.push(...connectorBlockers(c2));
60389
+ for (const p3 of entry.manifest.packages) blockers.push(...packageBlockers(p3));
60364
60390
  if (!deps.personaEngine(personaId2)?.model) {
60365
60391
  blockers.push("\u8FD8\u6CA1\u9009\u6A21\u578B\uFF08\u5207\u5F15\u64CE\u65F6\u4F1A\u6E05\u7A7A\uFF09\u2014\u2014\u53BB persona \u8BBE\u7F6E\u91CC\u9009\u4E00\u4E2A");
60366
60392
  }
@@ -71583,7 +71609,7 @@ function computeMethodAccess(args) {
71583
71609
  }
71584
71610
 
71585
71611
  // src/version.ts
71586
- var version = "0.2.576".length > 0 ? "0.2.576" : "dev";
71612
+ var version = "0.2.577".length > 0 ? "0.2.577" : "dev";
71587
71613
 
71588
71614
  // src/cli-probe/probe.ts
71589
71615
  var fs79 = __toESM(require("fs"), 1);
@@ -42,6 +42,8 @@ git diff --name-only <任务里给的 sha> -- .
42
42
  - `evidence` 用记录里 `target` 等于 `package:<name>` 那条的 `reason` / `file` / `quote` 原样回传。
43
43
  - 记录里**没有**这条 evidence 的(老板在页面上手工补的条目)跳过不报——上报口要求 evidence,编一条就是造假。
44
44
  - 被拒就按错误里说的做:`github:` 包本机版本变了,daemon 会告诉你新版本,按它重找资产再报(规则见 package 那节第 2 步)。
45
+ - **记录里没有 `artifact` 的 `github:` 包(早先扫的旧单据),重报之后接着把资产钉上**:按 package 那节「`github:` 要钉资产」
46
+ 第 2 步,用这次返回的 `version` 找 linux-amd64 资产再报一次。没钉资产的 `github:` 包云上装不了,页面会拦着不让发布。
45
47
  3. 然后再去读改动文件。改动涉及的条目在那一趟会再报一次,新结论盖过这里的,顺序不能反。
46
48
 
47
49
  两件最容易做错的事:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawos-dev/clawd",
3
- "version": "0.2.576",
3
+ "version": "0.2.577",
4
4
  "description": "Standalone clawd daemon — Claude Code (and future Codex) session server over WebSocket",
5
5
  "type": "module",
6
6
  "license": "MIT",