dsh-remote-agent 0.0.0-stage → 0.4.1

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 (70) hide show
  1. package/CHANGELOG.md +700 -0
  2. package/CONTRIBUTING.md +358 -0
  3. package/KNOWN-ISSUES.md +601 -0
  4. package/LICENSE +21 -0
  5. package/README.en.md +353 -0
  6. package/README.md +317 -2
  7. package/SECURITY.md +348 -0
  8. package/bin/dsh-remote-relay.js +257 -0
  9. package/bin/dsh-remote-setup.js +440 -0
  10. package/bin/setup.cmd +30 -0
  11. package/cordis.patch.yml +87 -0
  12. package/deploy/relay-vps/Caddyfile +24 -0
  13. package/deploy/relay-vps/README.md +132 -0
  14. package/deploy/relay-vps/dsh-remote-relay.service +47 -0
  15. package/deploy/relay-vps/nginx.conf +49 -0
  16. package/deploy/relay-vps/relay.env.example +20 -0
  17. package/docs/dispatch-automation-eval.md +140 -0
  18. package/docs/screenshots/panel-main.png +0 -0
  19. package/docs/screenshots/panel-task-detail.png +0 -0
  20. package/docs/verification-agent-e2e.md +425 -0
  21. package/docs/verification-repos-routing-real.md +521 -0
  22. package/docs/verification-resume-real.md +254 -0
  23. package/docs/worker-setup-pitfalls.md +266 -0
  24. package/lib/artifacts.js +451 -0
  25. package/lib/client.js +1752 -0
  26. package/lib/e2e.js +304 -0
  27. package/lib/glob.js +225 -0
  28. package/lib/hub/audit-log.js +161 -0
  29. package/lib/hub/hub-util.js +114 -0
  30. package/lib/hub/index.js +500 -0
  31. package/lib/hub/node-registry.js +943 -0
  32. package/lib/hub/pull-manager.js +781 -0
  33. package/lib/hub/registry-handshake.js +403 -0
  34. package/lib/hub/registry-ingest.js +346 -0
  35. package/lib/hub/relay-link.js +228 -0
  36. package/lib/hub/subagent-provider.js +424 -0
  37. package/lib/hub/templates.js +693 -0
  38. package/lib/hub/tools.js +1059 -0
  39. package/lib/hub/ui-routes.js +856 -0
  40. package/lib/hub/views.js +351 -0
  41. package/lib/identity.js +271 -0
  42. package/lib/index.js +272 -0
  43. package/lib/node/artifact-service.js +231 -0
  44. package/lib/node/diff.js +124 -0
  45. package/lib/node/exec.js +536 -0
  46. package/lib/node/hub-pin.js +71 -0
  47. package/lib/node/index.js +1022 -0
  48. package/lib/node/repos.js +134 -0
  49. package/lib/node/resource.js +63 -0
  50. package/lib/node/runner.js +792 -0
  51. package/lib/node/task-engine.js +712 -0
  52. package/lib/node/task-store.js +273 -0
  53. package/lib/node/transport.js +763 -0
  54. package/lib/pairing.js +186 -0
  55. package/lib/protocol.js +414 -0
  56. package/lib/relay-config.js +317 -0
  57. package/lib/relay.js +732 -0
  58. package/lib/setup-routes.js +313 -0
  59. package/lib/setup.js +522 -0
  60. package/lib/ws.js +466 -0
  61. package/package.json +103 -4
  62. package/profiles/README.md +573 -0
  63. package/profiles/hub.cordis.yml +84 -0
  64. package/profiles/worker.cordis.yml +60 -0
  65. package/scripts/check-doc-drift.mjs +802 -0
  66. package/scripts/check-packaging.mjs +177 -0
  67. package/scripts/diag-inject.mjs +243 -0
  68. package/scripts/e2e-live-check.mjs +181 -0
  69. package/scripts/relay-init.ps1 +286 -0
  70. package/scripts/relay-init.sh +199 -0
@@ -0,0 +1,60 @@
1
+ # dsh-remote-agent —— 副机(worker)profile 覆盖片段
2
+ #
3
+ # 用法:把本文件内容并入副机 profile 的 patch 层(默认
4
+ # `<DSH_HOME>/profiles/<profile>/cordis.patch.yml`)。
5
+ # 副机 dsh 启动时按这一行加载 worker:拨入 hub / relay,把主电脑派来的任务
6
+ # 在本机以独立 agent 会话持久执行。
7
+ #
8
+ # ⚠ id 必须是 `remote-agent`,与包内 cordis.patch.yml 插入的那一行**同 id**。
9
+ # loader 按 id 覆盖:同 id 才是"改这一行的 config",不同 id 会变成**两行**,
10
+ # 插件被挂载两次 → 启动失败(double-mount)。本文件是"覆盖那一行"。
11
+ #
12
+ # 关键点:
13
+ # - 副机不需要 webServer;缺 agentLoop 时自动降级到 headless 后端,不报错。
14
+ # - hub 不可达时**不会**阻塞或失败:连接在后台退避重试(1s→30s,带抖动),
15
+ # 期间本机 dsh 正常可用,已受理的任务照跑(断连不终止)。
16
+ # - relay 模式双方都在 NAT 后也能用;direct 模式需要 hub 侧有可达地址。
17
+ # 两种模式只改 transportMode / url,任务语义完全一样。
18
+ # - roots 是安全边界:只允许任务在列出的根目录内工作,务必按实际机器填写。
19
+ # 留空会退回保守默认(home 下的工作目录),不要依赖这个默认。
20
+ # - token 优先读配置;留空则读 <stateDir>/token 文件(便于不把凭证写进 YAML)。
21
+ # 上线前把 CHANGE_ME 换掉,或用一次性入网 token。
22
+ #
23
+ # 关闭本插件:给该行加 `disabled: true`(同 id),不要删文件。
24
+ - id: remote-agent
25
+ name: dsh-remote-agent
26
+ # ⚠ 副机**必须**清空 inject。
27
+ #
28
+ # 包内 cordis.patch.yml 给这一行声明了 `inject: ['webServer','tools','systemPrompt']`
29
+ # —— 那是 hub 需要的服务。而副机 profile 里**没有这些服务**,若不清空,这一行会
30
+ # 一直停在 PENDING **永远不激活**,副机也就永远不拨入 hub。
31
+ #
32
+ # loader 按 id 覆盖:这里写 `inject: []` 就覆盖掉包内的声明。
33
+ inject: []
34
+ config:
35
+ role: worker
36
+
37
+ # 节点唯一标识。必须匹配 ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$。
38
+ # 同 id 起两个实例会被中继以 duplicate-node 拒掉。
39
+ nodeId: slave-pc
40
+
41
+ # 'relay'(双方都在 NAT 后)| 'direct'(hub 有可达地址)
42
+ transportMode: relay
43
+ relayUrl: 'ws://RELAY_HOST:8890/relay'
44
+ # direct 模式改这两项,并注释掉上面的 relayUrl:
45
+ # transportMode: direct
46
+ # hubUrl: 'ws://HUB_HOST:8890/api/remote-agent/node'
47
+
48
+ token: 'CHANGE_ME'
49
+
50
+ # 允许任务操作的工作区根(绝对路径,必须真实存在)。
51
+ roots:
52
+ - 'D:\work'
53
+
54
+ # 以下为可选覆盖项,默认值已可用,按需打开:
55
+ # stateDir: 'C:\Users\you\.dsh-remote-agent' # 缺省 ~/.dsh-remote-agent
56
+ # denyPaths: [] # 额外禁止访问的路径
57
+ # dshBin: 'dsh' # headless 回退用的 dsh
58
+ # preferHeadless: false # true = 强制 headless 后端
59
+ # maxConcurrent: 2 # 并发任务上限
60
+ # resumeQueued: true # 启动时重跑遗留 queued 任务