@runweave/server-linux-x64 0.1.14 → 0.1.16

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.
Files changed (93) hide show
  1. package/manifest.json +172 -171
  2. package/native.tar.gz +0 -0
  3. package/package.json +1 -1
  4. package/payload/app-server/build-info.json +4 -4
  5. package/payload/app-server/configuration-compatibility.json +1 -1
  6. package/payload/app-server/index.cjs +979 -637
  7. package/payload/app-server/index.cjs.map +1 -1
  8. package/payload/backend/activity-sqlite-worker.cjs +3 -1
  9. package/payload/backend/build-info.json +4 -4
  10. package/payload/backend/dev-resources/control.cjs +6 -2
  11. package/payload/backend/index.cjs +1766 -1316
  12. package/payload/backend/scheduled-tasks-sqlite-worker.cjs +3 -1
  13. package/payload/frontend/dist/assets/{_baseUniq-BqvkeJO_.js → _baseUniq-PiWEH-yN.js} +1 -1
  14. package/payload/frontend/dist/assets/{access-DdS0UJde.js → access-khJ9m2er.js} +1 -1
  15. package/payload/frontend/dist/assets/{advanced-BbcDBPNv.js → advanced-DGKohnXi.js} +1 -1
  16. package/payload/frontend/dist/assets/{appearance-BvmkpQdR.js → appearance-U-Ug7IyD.js} +1 -1
  17. package/payload/frontend/dist/assets/{arc-C0XOrQvn.js → arc-BRbsuNBv.js} +1 -1
  18. package/payload/frontend/dist/assets/{architectureDiagram-Q4EWVU46-BPP9wqzx.js → architectureDiagram-Q4EWVU46-nAa6CrLt.js} +1 -1
  19. package/payload/frontend/dist/assets/{blockDiagram-DXYQGD6D-C-tmnyfm.js → blockDiagram-DXYQGD6D-B32hMZsU.js} +1 -1
  20. package/payload/frontend/dist/assets/{c4Diagram-AHTNJAMY-C6uI9h_3.js → c4Diagram-AHTNJAMY-BF-z05RQ.js} +1 -1
  21. package/payload/frontend/dist/assets/channel-BbKg1_I_.js +1 -0
  22. package/payload/frontend/dist/assets/{chunk-4BX2VUAB-CCI-uz3D.js → chunk-4BX2VUAB-CpsbjQI6.js} +1 -1
  23. package/payload/frontend/dist/assets/{chunk-4TB4RGXK-CqUM0_7D.js → chunk-4TB4RGXK-CczITrGa.js} +1 -1
  24. package/payload/frontend/dist/assets/{chunk-55IACEB6-DDxrCLKB.js → chunk-55IACEB6-CpJ67cqM.js} +1 -1
  25. package/payload/frontend/dist/assets/{chunk-EDXVE4YY-LwYMVaGh.js → chunk-EDXVE4YY-DbBbY4zX.js} +1 -1
  26. package/payload/frontend/dist/assets/{chunk-FMBD7UC4-CQR_-5z5.js → chunk-FMBD7UC4-D7OUnmzc.js} +1 -1
  27. package/payload/frontend/dist/assets/{chunk-OYMX7WX6-DQ0IiFt5.js → chunk-OYMX7WX6-XW9wc5RB.js} +1 -1
  28. package/payload/frontend/dist/assets/{chunk-QZHKN3VN-BPX4TBXp.js → chunk-QZHKN3VN-BGTWWiWa.js} +1 -1
  29. package/payload/frontend/dist/assets/{chunk-YZCP3GAM-DqZhVlNy.js → chunk-YZCP3GAM-aDPViitX.js} +1 -1
  30. package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-CQ2mrjxw.js +1 -0
  31. package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-CQ2mrjxw.js +1 -0
  32. package/payload/frontend/dist/assets/clone-B-rmfNeZ.js +1 -0
  33. package/payload/frontend/dist/assets/{connection-ToakGqMm.js → connection-C6WeK41z.js} +1 -1
  34. package/payload/frontend/dist/assets/{connections-DD38aD2_.js → connections-DNdN1RmN.js} +1 -1
  35. package/payload/frontend/dist/assets/{cose-bilkent-S5V4N54A-Bi6kn4wb.js → cose-bilkent-S5V4N54A-Cwz2NhpB.js} +1 -1
  36. package/payload/frontend/dist/assets/{dagre-KV5264BT-D7PPmb_h.js → dagre-KV5264BT-BwQKFZOx.js} +1 -1
  37. package/payload/frontend/dist/assets/{desktop-D80mAqEi.js → desktop-pR36qBdU.js} +1 -1
  38. package/payload/frontend/dist/assets/{diagram-5BDNPKRD-2Fg0LDFB.js → diagram-5BDNPKRD-S0AGOE5T.js} +1 -1
  39. package/payload/frontend/dist/assets/{diagram-G4DWMVQ6-DDht1hGL.js → diagram-G4DWMVQ6-DovkRf9p.js} +1 -1
  40. package/payload/frontend/dist/assets/{diagram-MMDJMWI5-_slCo5qd.js → diagram-MMDJMWI5-Dq5WNwQl.js} +1 -1
  41. package/payload/frontend/dist/assets/{diagram-TYMM5635-BibhtXBj.js → diagram-TYMM5635-CCnuStVI.js} +1 -1
  42. package/payload/frontend/dist/assets/{erDiagram-SMLLAGMA-Tb9JdHm7.js → erDiagram-SMLLAGMA-BDMaPGeI.js} +1 -1
  43. package/payload/frontend/dist/assets/{flowDiagram-DWJPFMVM-DmV0VUHI.js → flowDiagram-DWJPFMVM-BDv6vMkM.js} +1 -1
  44. package/payload/frontend/dist/assets/{ganttDiagram-T4ZO3ILL-boTSPZL8.js → ganttDiagram-T4ZO3ILL-CY8dWNYQ.js} +1 -1
  45. package/payload/frontend/dist/assets/{gitGraphDiagram-UUTBAWPF-3Akku_ak.js → gitGraphDiagram-UUTBAWPF-oc3kHd5q.js} +1 -1
  46. package/payload/frontend/dist/assets/{graph-GAq0lcsb.js → graph-DKuyIZob.js} +1 -1
  47. package/payload/frontend/dist/assets/{image-PejzD76r.js → image-Dc8RoLU8.js} +1 -1
  48. package/payload/frontend/dist/assets/{index-BBNE8InR.js → index-yjpBPGaI.js} +5 -5
  49. package/payload/frontend/dist/assets/{infoDiagram-42DDH7IO-TrixGt-D.js → infoDiagram-42DDH7IO-BLcpWdtJ.js} +1 -1
  50. package/payload/frontend/dist/assets/{ishikawaDiagram-UXIWVN3A-BYKU82ro.js → ishikawaDiagram-UXIWVN3A-BA51Kxg1.js} +1 -1
  51. package/payload/frontend/dist/assets/{journeyDiagram-VCZTEJTY-BL_50q1o.js → journeyDiagram-VCZTEJTY-DihQv76o.js} +1 -1
  52. package/payload/frontend/dist/assets/{kanban-definition-6JOO6SKY-Clxk3CDg.js → kanban-definition-6JOO6SKY-f8IFXcQ8.js} +1 -1
  53. package/payload/frontend/dist/assets/{layout-BbxLzgiJ.js → layout-CXtaqE_c.js} +1 -1
  54. package/payload/frontend/dist/assets/{linear-DWemxXgm.js → linear-M-kNw4GE.js} +1 -1
  55. package/payload/frontend/dist/assets/{main-BHwOPARZ.js → main-2Qq7QDN9.js} +5 -5
  56. package/payload/frontend/dist/assets/{min-DIL93Hib.js → min-CA0jPMDz.js} +1 -1
  57. package/payload/frontend/dist/assets/{mindmap-definition-QFDTVHPH-DlfLczjR.js → mindmap-definition-QFDTVHPH-swU906Iz.js} +1 -1
  58. package/payload/frontend/dist/assets/{monitoring-B6pQ-P1J.js → monitoring-BXwlTH4w.js} +1 -1
  59. package/payload/frontend/dist/assets/{notifications-B9lXATqv.js → notifications-HSWJoZsd.js} +1 -1
  60. package/payload/frontend/dist/assets/{pieDiagram-DEJITSTG-BaU_H2x3.js → pieDiagram-DEJITSTG-9HEe0TSS.js} +1 -1
  61. package/payload/frontend/dist/assets/{quadrantDiagram-34T5L4WZ-D3nVMaXv.js → quadrantDiagram-34T5L4WZ-D6XYJZTB.js} +1 -1
  62. package/payload/frontend/dist/assets/{record-content-Dn6GE_dv.js → record-content-BeTlb4At.js} +1 -1
  63. package/payload/frontend/dist/assets/{requirementDiagram-MS252O5E-C7J-xGnU.js → requirementDiagram-MS252O5E-WEqUAT3C.js} +1 -1
  64. package/payload/frontend/dist/assets/{sankeyDiagram-XADWPNL6-BAkualMS.js → sankeyDiagram-XADWPNL6-aArdTOj7.js} +1 -1
  65. package/payload/frontend/dist/assets/{sequenceDiagram-FGHM5R23-BYWAdS9C.js → sequenceDiagram-FGHM5R23-CDeRkIe0.js} +1 -1
  66. package/payload/frontend/dist/assets/{stateDiagram-FHFEXIEX-C3qD8m-7.js → stateDiagram-FHFEXIEX-1imZLfkb.js} +1 -1
  67. package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-DafDrUDX.js +1 -0
  68. package/payload/frontend/dist/assets/{status-MDvjSQ51.js → status-CoUwjZ7k.js} +1 -1
  69. package/payload/frontend/dist/assets/suiji-Dch5gUBM.js +1 -0
  70. package/payload/frontend/dist/assets/{svg-C0XZL3qU.js → svg-5T9dQhUs.js} +1 -1
  71. package/payload/frontend/dist/assets/{tabs-Y-BEbPyW.js → tabs-yWf361z8.js} +1 -1
  72. package/payload/frontend/dist/assets/{timeline-definition-GMOUNBTQ-JER6Qyhn.js → timeline-definition-GMOUNBTQ-TPyxkidk.js} +1 -1
  73. package/payload/frontend/dist/assets/{vennDiagram-DHZGUBPP-kRp3Wh4r.js → vennDiagram-DHZGUBPP-NmkcMXEI.js} +1 -1
  74. package/payload/frontend/dist/assets/{wardley-RL74JXVD-Dnh_rEyA.js → wardley-RL74JXVD-B_n5wDkw.js} +1 -1
  75. package/payload/frontend/dist/assets/{wardleyDiagram-NUSXRM2D-DxiIy5IP.js → wardleyDiagram-NUSXRM2D-xyfZ4Ot2.js} +1 -1
  76. package/payload/frontend/dist/assets/{xychartDiagram-5P7HB3ND-DcckHE39.js → xychartDiagram-5P7HB3ND-L0NM-pq_.js} +1 -1
  77. package/payload/frontend/dist/build-info.json +4 -4
  78. package/payload/frontend/dist/companion.html +1 -1
  79. package/payload/frontend/dist/index.html +2 -2
  80. package/payload/plugins/pi/dist/bridge/runweave-hook-bridge.cjs +12 -1
  81. package/payload/plugins/pi/dist/bridge/runweave-hook-completion.cjs +49 -3
  82. package/payload/plugins/toolkit/.codex-plugin/plugin.json +1 -1
  83. package/payload/plugins/toolkit/hooks/runweave-hook-bridge.cjs +12 -1
  84. package/payload/plugins/toolkit/hooks/runweave-hook-completion.cjs +49 -3
  85. package/payload/plugins/toolkit-release.json +1 -1
  86. package/payload/pty-host/index.cjs +3 -1
  87. package/payload/server/index.cjs +5 -1
  88. package/payload/frontend/dist/assets/channel-DaIQFY7W.js +0 -1
  89. package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-TM6ckD19.js +0 -1
  90. package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-TM6ckD19.js +0 -1
  91. package/payload/frontend/dist/assets/clone-BoG338Z7.js +0 -1
  92. package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-C18IEkog.js +0 -1
  93. package/payload/frontend/dist/assets/suiji-B6w3AzG7.js +0 -1
@@ -1,6 +1,39 @@
1
- /* global fetch, module, require */
1
+ /* global fetch, module, require, process, AbortSignal */
2
2
  /* eslint-disable @typescript-eslint/no-require-imports */
3
- const { buildCompletionHookBody } = require("./runweave-hook-payload.cjs");
3
+ const { buildCompletionHookBody, extractUserPrompt, isFeishuAttentionHook, readNotificationType } = require("./runweave-hook-payload.cjs");
4
+ const { spawnSync } = require("node:child_process");
5
+ const { randomUUID } = require("node:crypto");
6
+ const path = require("node:path");
7
+
8
+ function readClaudeInstance(spawnSync) {
9
+ const result = spawnSync("ps", ["-axo", "pid=,ppid=,comm="], {
10
+ encoding: "utf8", timeout: 1000, maxBuffer: 2 * 1024 * 1024,
11
+ });
12
+ if (result.error || result.status !== 0) return null;
13
+ const processes = new Map();
14
+ for (const line of String(result.stdout).split(/\r?\n/)) {
15
+ const match = line.match(/^\s*(\d+)\s+(\d+)\s+(.+?)\s*$/);
16
+ if (match) processes.set(Number(match[1]), { parent: Number(match[2]), command: path.basename(match[3]) });
17
+ }
18
+ let claudePid = null;
19
+ const visited = new Set();
20
+ for (let pid = process.ppid; pid > 1 && !visited.has(pid); ) {
21
+ visited.add(pid);
22
+ const entry = processes.get(pid);
23
+ if (!entry) return null;
24
+ if (["claude", "codex", "trae", "traex", "pi"].includes(entry.command)) {
25
+ if (claudePid || entry.command !== "claude") return null;
26
+ claudePid = pid;
27
+ }
28
+ pid = entry.parent;
29
+ }
30
+ if (!claudePid) return null;
31
+ const started = spawnSync("ps", ["-p", String(claudePid), "-o", "lstart="], {
32
+ encoding: "utf8", timeout: 1000,
33
+ });
34
+ const stamp = String(started.stdout || "").trim();
35
+ return !started.error && started.status === 0 && stamp ? `${claudePid}:${stamp}` : null;
36
+ }
4
37
 
5
38
  async function postCompletionHook({
6
39
  endpoint,
@@ -20,6 +53,18 @@ async function postCompletionHook({
20
53
  rawEvent,
21
54
  commandName,
22
55
  });
56
+ if (source === "claude") {
57
+ if (!endpoint) return { accepted: false };
58
+ const instanceId = readClaudeInstance(spawnSync);
59
+ if (!instanceId || payload.agent_id || payload.agent_transcript_path) return { accepted: false };
60
+ const notificationType = readNotificationType(payload);
61
+ const event = String(rawEvent).toLowerCase().replace(/[_\s-]/g, "");
62
+ body.claude = { instanceId, eventId: payload.runweaveHookEventId || randomUUID(),
63
+ ...(notificationType ? { notificationType } : {}),
64
+ ...(event === "userpromptsubmit" ? { query: extractUserPrompt(payload) || "" } : {}) };
65
+ body.completionReason = event === "permissionrequest" ||
66
+ (notificationType !== "idle_prompt" && isFeishuAttentionHook(payload, source)) ? "notify" : "hook_stop";
67
+ }
23
68
  try {
24
69
  const response = await fetch(endpoint, {
25
70
  method: "POST",
@@ -28,9 +73,10 @@ async function postCompletionHook({
28
73
  "X-Runweave-Hook-Token": token,
29
74
  },
30
75
  body: JSON.stringify(body),
76
+ ...(source === "claude" ? { signal: AbortSignal.timeout(5000), redirect: "error" } : {}),
31
77
  });
32
78
  const result = await response.json().catch(() => null);
33
- return { ok: response.ok, status: response.status, accepted: Boolean(result?.event || result?.notificationId) && !result?.ignored, notificationId: result?.notificationId ?? (result?.event?.payload?.completionRevision ? String(result.event.payload.completionRevision) : undefined) };
79
+ return { summary: result?.event?.payload?.summary, ok: response.ok, status: response.status, accepted: Boolean(result?.event || result?.notificationId) && !result?.ignored, notificationId: result?.notificationId ?? (result?.event?.payload?.completionRevision ? String(result.event.payload.completionRevision) : undefined) };
34
80
  } catch (error) {
35
81
  return {
36
82
  ok: false,
@@ -1 +1 @@
1
- {"version":"0.2.0+codex.e6c654a0a35a7c845cef6dccbc3a01e8c5c80c6ca2fedb13c14915076ccef52b","digest":"e6c654a0a35a7c845cef6dccbc3a01e8c5c80c6ca2fedb13c14915076ccef52b"}
1
+ {"version":"0.2.0+codex.e3512d5d9d040601bed063536fa4ae86b155cd7fc9bb9822ae2d5f977266bddf","digest":"e3512d5d9d040601bed063536fa4ae86b155cd7fc9bb9822ae2d5f977266bddf"}
@@ -14760,6 +14760,8 @@ var CONFIGURATION_FIELDS = [
14760
14760
  { "path": "services.feishu.legacyWebhook.transport", "type": "string", "domain": "services.feishu", "sensitive": false, "remote": true, "apply": "restart", "description": "\u65E7\u901A\u77E5 hook \u53D1\u9001\u65B9\u5F0F", "environmentKeys": ["FEISHU_NOTIFY_TRANSPORT"], "owner": "cli/feishu", "scope": "instance", "storage": "settings.yaml", "default": { "value": null }, "migrationSources": ["FEISHU_NOTIFY_TRANSPORT"] },
14761
14761
  { "path": "agents.codex.binary", "type": "string", "domain": "agents.codex", "sensitive": false, "remote": false, "apply": "restart", "description": "Codex \u53EF\u6267\u884C\u6587\u4EF6", "environmentKeys": ["CODEX_BIN", "RUNWEAVE_CODEX_BIN"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u672A\u6307\u5B9A\u65F6\u901A\u8FC7 PATH / \u5E73\u53F0\u5B89\u88C5\u4F4D\u7F6E\u67E5\u627E codex\uFF1B\u663E\u5F0F\u914D\u7F6E\u6307\u5411\u540C\u4E00\u53EF\u6267\u884C\u7A0B\u5E8F\u3002" }, "migrationSources": ["CODEX_BIN", "RUNWEAVE_CODEX_BIN"] },
14762
14762
  { "path": "agents.traex.binary", "type": "string", "domain": "agents.traex", "sensitive": false, "remote": false, "apply": "restart", "description": "Trae \u53EF\u6267\u884C\u6587\u4EF6\uFF1B\u591A\u4E2A\u5165\u53E3\u7EDF\u4E00", "environmentKeys": ["TRAEX_BIN", "RUNWEAVE_TRAE_BIN"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u672A\u6307\u5B9A\u65F6\u901A\u8FC7 PATH / \u5E73\u53F0\u5B89\u88C5\u4F4D\u7F6E\u67E5\u627E traex\uFF1B\u663E\u5F0F\u914D\u7F6E\u6307\u5411\u540C\u4E00\u53EF\u6267\u884C\u7A0B\u5E8F\u3002" }, "migrationSources": ["TRAEX_BIN", "RUNWEAVE_TRAE_BIN"] },
14763
+ { "path": "agents.claude.binary", "type": "string", "domain": "agents.claude", "sensitive": false, "remote": false, "apply": "restart", "description": "Claude Code \u53EF\u6267\u884C\u6587\u4EF6\uFF1B\u4EC5\u9650\u7A0B\u5E8F\u540D\u6216\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u4E0D\u63A5\u53D7\u547D\u4EE4\u53C2\u6570", "environmentKeys": [], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u4F7F\u7528\u5F53\u524D Backend \u7684 PATH \u67E5\u627E claude\uFF1B\u4E0D\u6539\u53D8\u73B0\u6709\u9ED8\u8BA4 provider\u3002" }, "migrationSources": ["new-field:no-legacy-source"] },
14764
+ { "path": "agents.claude.configDirectory", "type": "string", "domain": "agents.claude", "sensitive": false, "remote": false, "apply": "restart", "description": "Claude \u539F\u751F\u914D\u7F6E\u76EE\u5F55\u7684\u5916\u90E8\u5F15\u7528\uFF1B\u4F1A\u8BDD\u6839\u4E3A\u5176 projects \u5B50\u76EE\u5F55\uFF0C\u4E0D\u590D\u5236\u51ED\u636E", "environmentKeys": ["CLAUDE_CONFIG_DIR"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u663E\u5F0F\u5B9E\u4F8B\u76EE\u5F55\u4F18\u5148\uFF0C\u5426\u5219\u5F15\u7528\u5916\u90E8 CLAUDE_CONFIG_DIR \u6216\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u76EE\u5F55\u4E0B .claude\uFF1B\u5FC5\u987B\u4E3A\u7EDD\u5BF9\u8DEF\u5F84\u3002" }, "migrationSources": ["CLAUDE_CONFIG_DIR"] },
14763
14765
  { "path": "agents.companion.binary", "type": "string", "domain": "agents.companion", "sensitive": false, "remote": false, "apply": "restart", "description": "\u4F34\u968F\u7A97\u53E3 Agent \u53EF\u6267\u884C\u6587\u4EF6", "environmentKeys": ["RUNWEAVE_COMPANION_AGENT_EXECUTABLE"], "owner": "electron/companion", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u4F7F\u7528\u5DF2\u5B89\u88C5 Codex App \u81EA\u5E26\u6267\u884C\u5165\u53E3\uFF1B\u663E\u5F0F\u503C\u5FC5\u987B\u53EF\u6267\u884C\u3002" }, "migrationSources": ["RUNWEAVE_COMPANION_AGENT_EXECUTABLE"] },
14764
14766
  { "path": "agents.codex.sessionsDirectory", "type": "string", "domain": "agents.codex", "sensitive": false, "remote": false, "apply": "restart", "description": "\u5916\u90E8 Codex \u4F1A\u8BDD\u76EE\u5F55\u5F15\u7528", "environmentKeys": ["RUNWEAVE_CODEX_SESSIONS_DIR"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u5916\u90E8\u5DE5\u5177\u62E5\u6709\u7684 CODEX_HOME/sessions \u6216\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u76EE\u5F55\u4E0B .codex/sessions\uFF0C\u4EC5\u5F15\u7528\u3002" }, "migrationSources": ["RUNWEAVE_CODEX_SESSIONS_DIR"] },
14765
14767
  { "path": "agents.traex.sessionsDirectory", "type": "string", "domain": "agents.traex", "sensitive": false, "remote": false, "apply": "restart", "description": "\u5916\u90E8 Trae \u4F1A\u8BDD\u76EE\u5F55\u5F15\u7528", "environmentKeys": ["RUNWEAVE_TRAE_SESSIONS_DIR"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u76EE\u5F55\u4E0B .trae/cli/sessions\uFF0C\u4EC5\u5F15\u7528\u3002" }, "migrationSources": ["RUNWEAVE_TRAE_SESSIONS_DIR"] },
@@ -14887,7 +14889,7 @@ var CONFIGURATION_COMPATIBILITY = {
14887
14889
  };
14888
14890
  var APP_SERVER_CONFIGURATION_COMPATIBILITY = {
14889
14891
  ...CONFIGURATION_COMPATIBILITY,
14890
- domainVersions: Object.fromEntries(["appServer", "agents.codex", "agents.traex"].map((domain) => [domain, [CONFIGURATION_DOMAIN_VERSIONS[domain]]]))
14892
+ domainVersions: Object.fromEntries(["appServer", "agents.codex", "agents.traex", "agents.claude"].map((domain) => [domain, [CONFIGURATION_DOMAIN_VERSIONS[domain]]]))
14891
14893
  };
14892
14894
 
14893
14895
  // packages/config-node/src/store.ts
@@ -7633,6 +7633,8 @@ var CONFIGURATION_FIELDS = [
7633
7633
  { "path": "services.feishu.legacyWebhook.transport", "type": "string", "domain": "services.feishu", "sensitive": false, "remote": true, "apply": "restart", "description": "\u65E7\u901A\u77E5 hook \u53D1\u9001\u65B9\u5F0F", "environmentKeys": ["FEISHU_NOTIFY_TRANSPORT"], "owner": "cli/feishu", "scope": "instance", "storage": "settings.yaml", "default": { "value": null }, "migrationSources": ["FEISHU_NOTIFY_TRANSPORT"] },
7634
7634
  { "path": "agents.codex.binary", "type": "string", "domain": "agents.codex", "sensitive": false, "remote": false, "apply": "restart", "description": "Codex \u53EF\u6267\u884C\u6587\u4EF6", "environmentKeys": ["CODEX_BIN", "RUNWEAVE_CODEX_BIN"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u672A\u6307\u5B9A\u65F6\u901A\u8FC7 PATH / \u5E73\u53F0\u5B89\u88C5\u4F4D\u7F6E\u67E5\u627E codex\uFF1B\u663E\u5F0F\u914D\u7F6E\u6307\u5411\u540C\u4E00\u53EF\u6267\u884C\u7A0B\u5E8F\u3002" }, "migrationSources": ["CODEX_BIN", "RUNWEAVE_CODEX_BIN"] },
7635
7635
  { "path": "agents.traex.binary", "type": "string", "domain": "agents.traex", "sensitive": false, "remote": false, "apply": "restart", "description": "Trae \u53EF\u6267\u884C\u6587\u4EF6\uFF1B\u591A\u4E2A\u5165\u53E3\u7EDF\u4E00", "environmentKeys": ["TRAEX_BIN", "RUNWEAVE_TRAE_BIN"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u672A\u6307\u5B9A\u65F6\u901A\u8FC7 PATH / \u5E73\u53F0\u5B89\u88C5\u4F4D\u7F6E\u67E5\u627E traex\uFF1B\u663E\u5F0F\u914D\u7F6E\u6307\u5411\u540C\u4E00\u53EF\u6267\u884C\u7A0B\u5E8F\u3002" }, "migrationSources": ["TRAEX_BIN", "RUNWEAVE_TRAE_BIN"] },
7636
+ { "path": "agents.claude.binary", "type": "string", "domain": "agents.claude", "sensitive": false, "remote": false, "apply": "restart", "description": "Claude Code \u53EF\u6267\u884C\u6587\u4EF6\uFF1B\u4EC5\u9650\u7A0B\u5E8F\u540D\u6216\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u4E0D\u63A5\u53D7\u547D\u4EE4\u53C2\u6570", "environmentKeys": [], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u4F7F\u7528\u5F53\u524D Backend \u7684 PATH \u67E5\u627E claude\uFF1B\u4E0D\u6539\u53D8\u73B0\u6709\u9ED8\u8BA4 provider\u3002" }, "migrationSources": ["new-field:no-legacy-source"] },
7637
+ { "path": "agents.claude.configDirectory", "type": "string", "domain": "agents.claude", "sensitive": false, "remote": false, "apply": "restart", "description": "Claude \u539F\u751F\u914D\u7F6E\u76EE\u5F55\u7684\u5916\u90E8\u5F15\u7528\uFF1B\u4F1A\u8BDD\u6839\u4E3A\u5176 projects \u5B50\u76EE\u5F55\uFF0C\u4E0D\u590D\u5236\u51ED\u636E", "environmentKeys": ["CLAUDE_CONFIG_DIR"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u663E\u5F0F\u5B9E\u4F8B\u76EE\u5F55\u4F18\u5148\uFF0C\u5426\u5219\u5F15\u7528\u5916\u90E8 CLAUDE_CONFIG_DIR \u6216\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u76EE\u5F55\u4E0B .claude\uFF1B\u5FC5\u987B\u4E3A\u7EDD\u5BF9\u8DEF\u5F84\u3002" }, "migrationSources": ["CLAUDE_CONFIG_DIR"] },
7636
7638
  { "path": "agents.companion.binary", "type": "string", "domain": "agents.companion", "sensitive": false, "remote": false, "apply": "restart", "description": "\u4F34\u968F\u7A97\u53E3 Agent \u53EF\u6267\u884C\u6587\u4EF6", "environmentKeys": ["RUNWEAVE_COMPANION_AGENT_EXECUTABLE"], "owner": "electron/companion", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u4F7F\u7528\u5DF2\u5B89\u88C5 Codex App \u81EA\u5E26\u6267\u884C\u5165\u53E3\uFF1B\u663E\u5F0F\u503C\u5FC5\u987B\u53EF\u6267\u884C\u3002" }, "migrationSources": ["RUNWEAVE_COMPANION_AGENT_EXECUTABLE"] },
7637
7639
  { "path": "agents.codex.sessionsDirectory", "type": "string", "domain": "agents.codex", "sensitive": false, "remote": false, "apply": "restart", "description": "\u5916\u90E8 Codex \u4F1A\u8BDD\u76EE\u5F55\u5F15\u7528", "environmentKeys": ["RUNWEAVE_CODEX_SESSIONS_DIR"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u5916\u90E8\u5DE5\u5177\u62E5\u6709\u7684 CODEX_HOME/sessions \u6216\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u76EE\u5F55\u4E0B .codex/sessions\uFF0C\u4EC5\u5F15\u7528\u3002" }, "migrationSources": ["RUNWEAVE_CODEX_SESSIONS_DIR"] },
7638
7640
  { "path": "agents.traex.sessionsDirectory", "type": "string", "domain": "agents.traex", "sensitive": false, "remote": false, "apply": "restart", "description": "\u5916\u90E8 Trae \u4F1A\u8BDD\u76EE\u5F55\u5F15\u7528", "environmentKeys": ["RUNWEAVE_TRAE_SESSIONS_DIR"], "owner": "backend+app-server", "scope": "instance", "storage": "settings.yaml", "default": { "rule": "\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u76EE\u5F55\u4E0B .trae/cli/sessions\uFF0C\u4EC5\u5F15\u7528\u3002" }, "migrationSources": ["RUNWEAVE_TRAE_SESSIONS_DIR"] },
@@ -7760,7 +7762,7 @@ var CONFIGURATION_COMPATIBILITY = {
7760
7762
  };
7761
7763
  var APP_SERVER_CONFIGURATION_COMPATIBILITY = {
7762
7764
  ...CONFIGURATION_COMPATIBILITY,
7763
- domainVersions: Object.fromEntries(["appServer", "agents.codex", "agents.traex"].map((domain) => [domain, [CONFIGURATION_DOMAIN_VERSIONS[domain]]]))
7765
+ domainVersions: Object.fromEntries(["appServer", "agents.codex", "agents.traex", "agents.claude"].map((domain) => [domain, [CONFIGURATION_DOMAIN_VERSIONS[domain]]]))
7764
7766
  };
7765
7767
  function supportsConfiguration(target, value) {
7766
7768
  if (!target || typeof target !== "object") return false;
@@ -7963,6 +7965,8 @@ function validateDomains(value, context) {
7963
7965
  if (["backend.taskSupervision.model", "terminal.defaultShell.command"].includes(key) && typeof entry === "string" && !entry.trim()) issue(key, "CONFIG_FIELD_VALUE_INVALID");
7964
7966
  if (key === "terminal.defaultShell.command" && typeof entry === "string" && /[\\/]/.test(entry) && !import_node_path3.default.isAbsolute(entry.trim())) issue(key, "CONFIG_FIELD_VALUE_INVALID");
7965
7967
  if (key.startsWith("terminal.defaultShell.") && (typeof entry === "string" ? entry.includes("\0") : Array.isArray(entry) && entry.some((item) => typeof item === "string" && item.includes("\0")))) issue(key, "CONFIG_FIELD_VALUE_INVALID");
7968
+ if (key === "agents.claude.binary" && typeof entry === "string" && (!entry.trim() || entry !== entry.trim() || [...entry].some((character) => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127) || !import_node_path3.default.isAbsolute(entry) && !/^[A-Za-z0-9_][A-Za-z0-9_.+-]*$/.test(entry))) issue(key, "CONFIG_FIELD_VALUE_INVALID");
7969
+ if (key === "agents.claude.configDirectory" && typeof entry === "string" && (!import_node_path3.default.isAbsolute(entry) || [...entry].some((character) => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127))) issue(key, "CONFIG_FIELD_VALUE_INVALID");
7966
7970
  if (CONFIGURATION_ENUMS[key] && !CONFIGURATION_ENUMS[key].includes(String(entry))) issue(key, "CONFIG_FIELD_ENUM_INVALID");
7967
7971
  if (configurationServiceOrigin(key) && typeof entry === "string") {
7968
7972
  try {
@@ -1 +0,0 @@
1
- import{U as a,M as n}from"./index-BBNE8InR.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-CqUM0_7D.js";import{_ as i}from"./index-BBNE8InR.js";import"./chunk-FMBD7UC4-CQR_-5z5.js";import"./chunk-YZCP3GAM-DqZhVlNy.js";import"./chunk-55IACEB6-DDxrCLKB.js";import"./chunk-EDXVE4YY-LwYMVaGh.js";import"./main-BHwOPARZ.js";import"./index-D9-cSGu-.js";import"./record-content-Dn6GE_dv.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-CqUM0_7D.js";import{_ as i}from"./index-BBNE8InR.js";import"./chunk-FMBD7UC4-CQR_-5z5.js";import"./chunk-YZCP3GAM-DqZhVlNy.js";import"./chunk-55IACEB6-DDxrCLKB.js";import"./chunk-EDXVE4YY-LwYMVaGh.js";import"./main-BHwOPARZ.js";import"./index-D9-cSGu-.js";import"./record-content-Dn6GE_dv.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./graph-GAq0lcsb.js";var e=4;function a(o){return r(o,e)}export{a as c};
@@ -1 +0,0 @@
1
- import{s as r,b as e,a,S as s}from"./chunk-OYMX7WX6-DQ0IiFt5.js";import{_ as i}from"./index-BBNE8InR.js";import"./chunk-55IACEB6-DDxrCLKB.js";import"./chunk-EDXVE4YY-LwYMVaGh.js";import"./index-D9-cSGu-.js";import"./main-BHwOPARZ.js";import"./record-content-Dn6GE_dv.js";var n={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-D9-cSGu-.js";import o from"./connection-ToakGqMm.js";import"./main-BHwOPARZ.js";import"./record-content-Dn6GE_dv.js";function n(){return t.jsx(o,{accountOnly:!0})}export{n as default};