@twinsearth/w2m-dsh-plugin 1.9.12 → 1.9.15
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/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +18 -0
- package/bin/w2m-joint.mjs +151 -0
- package/bin/w2m-operator.mjs +73 -0
- package/codex/mcp-servers.toml +1 -1
- package/docs/acceptance/1.9.13/RELEASE-1913.json +20 -0
- package/docs/acceptance/1.9.14/RELEASE-1914.json +20 -0
- package/docs/acceptance/1.9.15/RELEASE-1915.json +22 -0
- package/package.json +265 -265
- package/plugin.json +1 -1
- package/src/plugin/npm-update.mjs +62 -0
- package/src/plugin/operator-token.mjs +83 -0
- package/src/plugin/tools.mjs +20 -5
- package/src/plugin/update-route.mjs +31 -0
- package/src/relay/repair-ledger.mjs +8 -2
package/package.json
CHANGED
|
@@ -1,266 +1,266 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
"
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
"
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@twinsearth/w2m-dsh-plugin",
|
|
3
|
+
"version": "1.9.15",
|
|
4
|
+
"description": "Run one project across your own Windows and macOS machines from a single DeepSeek account, through 11 w2m_* tools. Four coordination modes (replicate, split, broadcast, pipeline) and six aggregate verdicts (consistent, divergent, divergent-platform, failed, partial, unverifiable). P2P hole punching by default, with a bundled relay, STUN responder and ledger fallback, so the fleet needs no third-party service. Joining needs a pairing code plus autoStartAgent: true; installing alone does not join.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./lib/index.js",
|
|
8
|
+
"./tools": "./lib/tools.js",
|
|
9
|
+
"./client": "./lib/client.js",
|
|
10
|
+
"./rabbit": "./bin/w2m-rabbit.mjs",
|
|
11
|
+
"./localside": "./bin/w2m-localside.mjs",
|
|
12
|
+
"./stun": "./bin/w2m-stun.mjs",
|
|
13
|
+
"./package.json": "./package.json",
|
|
14
|
+
"./gpw": "./lib/gpw.js"
|
|
15
|
+
},
|
|
16
|
+
"dsh": {
|
|
17
|
+
"plugin": true,
|
|
18
|
+
"kind": "server",
|
|
19
|
+
"bundle": {
|
|
20
|
+
"patch": "cordis.patch.yml"
|
|
21
|
+
},
|
|
22
|
+
"client": {
|
|
23
|
+
"platform": "web"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"mcp.json",
|
|
28
|
+
"plugin.json",
|
|
29
|
+
"lib",
|
|
30
|
+
"src",
|
|
31
|
+
"bin",
|
|
32
|
+
"deploy",
|
|
33
|
+
"docs",
|
|
34
|
+
"skills",
|
|
35
|
+
"cordis.patch.yml",
|
|
36
|
+
"README.md",
|
|
37
|
+
"CHANGELOG.md",
|
|
38
|
+
"HANDOFF.md",
|
|
39
|
+
"ROADMAP.md",
|
|
40
|
+
"FLEET-RULES.md",
|
|
41
|
+
"LICENSE",
|
|
42
|
+
"PROTOCOL.md",
|
|
43
|
+
"PROTOCOL-v0.1.2.md",
|
|
44
|
+
"PROTOCOL-v0.3.0.md",
|
|
45
|
+
"PROTOCOL-v0.3.9.md",
|
|
46
|
+
"PROTOCOL-v0.4.0.md",
|
|
47
|
+
"TROUBLESHOOTING.md",
|
|
48
|
+
"SECURITY.md",
|
|
49
|
+
"CONTRIBUTING.md",
|
|
50
|
+
".claude-plugin",
|
|
51
|
+
"codex"
|
|
52
|
+
],
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=20.19.0"
|
|
55
|
+
},
|
|
56
|
+
"license": "MIT",
|
|
57
|
+
"scripts": {
|
|
58
|
+
"format": "prettier --write .",
|
|
59
|
+
"format:check": "prettier --check .",
|
|
60
|
+
"layer-check": "node scripts/layer-check.mjs",
|
|
61
|
+
"lint": "eslint .",
|
|
62
|
+
"lint:fix": "eslint . --fix",
|
|
63
|
+
"orphans": "node --test --test-force-exit test/accepted-orphans.test.mjs",
|
|
64
|
+
"pack": "node scripts/pack.mjs",
|
|
65
|
+
"reachability": "node scripts/reachability-check.mjs",
|
|
66
|
+
"reachability:classify": "node scripts/reachability-classify.mjs",
|
|
67
|
+
"test": "node --test --test-force-exit test/relay.test.mjs test/broadcast.test.mjs test/blake2s.test.mjs test/agent.test.mjs test/plan-sec-cmd.test.mjs test/authority.test.mjs test/blocks.test.mjs test/approval-index.test.mjs test/fleet-sync.test.mjs test/fleet-merge.test.mjs test/fleet-memory-e2e.test.mjs test/fleet-concurrency.test.mjs test/fleet-merge-race.test.mjs test/health.test.mjs test/storage.test.mjs test/exit-channel.test.mjs test/council.test.mjs test/council-session.test.mjs test/log-bounds.test.mjs test/test-report.test.mjs test/fleet-scale.test.mjs test/fleet-state.test.mjs test/crypto-blake2s.test.mjs test/installed-version.test.mjs test/permission.test.mjs test/machine-test-packet.test.mjs test/field-authority.test.mjs test/approval-gate.test.mjs test/authority-choice.test.mjs test/reachability-check.test.mjs test/reachability-classify.test.mjs test/accepted-orphans.test.mjs test/acceptance-doc.test.mjs test/layer-model.test.mjs test/cwd-containment.test.mjs test/cwd-outside-project.test.mjs test/memory.test.mjs test/tools.test.mjs test/claims.test.mjs test/fleet-target.test.mjs test/client-bundle.test.mjs test/schedule.test.mjs test/auto-update.test.mjs test/update-source.test.mjs test/update-install.test.mjs test/update-wiring.test.mjs test/signing.test.mjs test/stress.test.mjs test/shared-config.test.mjs test/metrics.test.mjs test/metrics-route.test.mjs test/tool-cards.test.mjs test/p2p-stun.test.mjs test/p2p-transport.test.mjs test/p2p-signaling.test.mjs test/p2p-node.test.mjs test/p2p-transport-fields.test.mjs test/p2p-plugin.test.mjs test/p2p-crypto.test.mjs test/stun-server.test.mjs test/loader-entry.test.mjs test/mdns-wire.test.mjs test/mdns-discover.test.mjs test/chatops-approval.test.mjs test/chatops-policy.test.mjs test/chatops-file-safety.test.mjs test/chatops-outbound-queue.test.mjs test/chatops-commands.test.mjs test/chatops-bridge.test.mjs test/chatops-config-route.test.mjs test/chatops-apply.test.mjs test/chatops-ilink-contract.test.mjs test/chatops-fleet.test.mjs test/chatops-account.test.mjs test/chatops-auth.test.mjs test/chatops-fleet-scope.test.mjs test/chatops-handoff.test.mjs test/chatops-fleet-wiring.test.mjs test/chatops-fleet-live.test.mjs test/chatops-takeover.test.mjs test/chatops-device-signing.test.mjs test/chatops-relay-verify.test.mjs test/chatops-durability.test.mjs test/chatops-run-command.test.mjs test/secrets-guard.test.mjs test/chatops-ilink-fleet-bridge.test.mjs test/agent-plugins.test.mjs test/memory-layer.test.mjs test/mcp-server.test.mjs test/portable-plugins.test.mjs test/mcp-http.test.mjs test/mcp-http-live.test.mjs test/vision.test.mjs test/ilink-shape.test.mjs test/chatops-fleet-join.test.mjs test/admission.test.mjs test/admission-routes.test.mjs test/join-degradation.test.mjs test/account-identity.test.mjs test/join-challenge.test.mjs test/exec-env-injection.test.mjs test/account-join.test.mjs test/fleet-messages.test.mjs test/message-shards.test.mjs test/fleet-messages-http.test.mjs test/message-notify.test.mjs test/update-channels.test.mjs test/update-prerelease.test.mjs test/session-watch.test.mjs test/session-readonly.test.mjs test/session-sync.test.mjs test/fleet-chat-identity.test.mjs test/identity-reader.test.mjs test/intents.test.mjs test/dataflow.test.mjs test/council-fleet.test.mjs test/fleet-memory.test.mjs test/memory-view.test.mjs test/schema-spec.test.mjs test/fleet-weight-parity.test.mjs test/task-deps.test.mjs test/dataflow-wiring.test.mjs test/task-graph.test.mjs test/ask-store.test.mjs test/turn.test.mjs test/fleet-members.test.mjs test/redact.test.mjs test/policy-matrix.test.mjs test/envelope-signature.test.mjs test/chat-crypto.test.mjs test/reduce-suggestion.test.mjs test/merge-hint.test.mjs test/fleet-chat-route.test.mjs test/maintenance.test.mjs test/maintenance-ferry.test.mjs test/grant.test.mjs test/grant-gate.test.mjs test/worktree.test.mjs test/patch-artifact.test.mjs test/merge-queue.test.mjs test/m3-workflow.test.mjs test/project-room.test.mjs test/project-attribution.test.mjs test/project-locks.test.mjs test/project-reviews.test.mjs test/project-notifications.test.mjs test/blob-sessions.test.mjs test/outbox.test.mjs test/reliability-metrics.test.mjs test/evidence.test.mjs test/grant-issue.test.mjs test/project-refs.test.mjs test/exec-capability.test.mjs test/secondary-link.test.mjs test/bootstrap-cli.test.mjs test/bootstrap.test.mjs test/windows-hidden-task.test.mjs test/relay-failover.test.mjs test/npm-update.test.mjs test/agent-start-nonblocking.test.mjs test/fleet-chat-capture.test.mjs test/capture-route.test.mjs test/update-resolver.test.mjs test/agent-identity-safe.test.mjs test/re-pair-stale-token.test.mjs test/gpw-folder-policy.test.mjs test/gpw-activation.test.mjs test/gpw-hardening.test.mjs test/gpw-tamper-gate.test.mjs test/gpw-persistence.test.mjs test/gpw-colors.test.mjs test/gpw-recent-fold.test.mjs test/gpw-auto-approve.test.mjs test/data-plane.test.mjs test/sealed-object.test.mjs test/joint-dev-dispatch.test.mjs test/joint-dev-loop.test.mjs test/joint-dev-audit.test.mjs test/joint-dev-redline.test.mjs test/relay-redline-guard.test.mjs test/relay-p0-projection.test.mjs test/guarded-dispatch.test.mjs test/p0-single-matcher.test.mjs test/path-policy.test.mjs test/path-policy-fs.test.mjs test/gpw-inheritance-table.test.mjs test/gpw-policy-adapter.test.mjs test/target-policy.test.mjs test/relay-redline-audit.test.mjs test/relay-repair-ledger.test.mjs test/relay-purge-blobs.test.mjs test/relay-scrub.test.mjs test/joint-dev-plan-store.test.mjs test/relay-basepath-blobs.test.mjs test/operator-token.test.mjs",
|
|
68
|
+
"test:acceptance-doc": "node --test --test-force-exit test/acceptance-doc.test.mjs",
|
|
69
|
+
"test:account-identity": "node --test --test-force-exit test/account-identity.test.mjs",
|
|
70
|
+
"test:account-join": "node --test --test-force-exit test/account-join.test.mjs",
|
|
71
|
+
"test:admission": "node --test --test-force-exit test/admission.test.mjs",
|
|
72
|
+
"test:admission-routes": "node --test --test-force-exit test/admission-routes.test.mjs",
|
|
73
|
+
"test:agent": "node --test --test-force-exit test/agent.test.mjs test/memory.test.mjs",
|
|
74
|
+
"test:all": "node --test --test-force-exit test/relay.test.mjs test/broadcast.test.mjs test/blake2s.test.mjs test/agent.test.mjs test/plan-sec-cmd.test.mjs test/authority.test.mjs test/blocks.test.mjs test/approval-index.test.mjs test/fleet-sync.test.mjs test/fleet-merge.test.mjs test/fleet-memory-e2e.test.mjs test/fleet-concurrency.test.mjs test/fleet-merge-race.test.mjs test/health.test.mjs test/storage.test.mjs test/exit-channel.test.mjs test/council.test.mjs test/council-session.test.mjs test/log-bounds.test.mjs test/test-report.test.mjs test/fleet-scale.test.mjs test/fleet-state.test.mjs test/crypto-blake2s.test.mjs test/installed-version.test.mjs test/permission.test.mjs test/machine-test-packet.test.mjs test/field-authority.test.mjs test/approval-gate.test.mjs test/authority-choice.test.mjs test/reachability-check.test.mjs test/reachability-classify.test.mjs test/accepted-orphans.test.mjs test/acceptance-doc.test.mjs test/layer-model.test.mjs test/cwd-containment.test.mjs test/cwd-outside-project.test.mjs test/memory.test.mjs test/tools.test.mjs test/claims.test.mjs test/fleet-target.test.mjs test/client-bundle.test.mjs test/schedule.test.mjs test/auto-update.test.mjs test/update-source.test.mjs test/update-install.test.mjs test/update-wiring.test.mjs test/signing.test.mjs test/stress.test.mjs test/e2e.test.mjs test/crossnetwork.test.mjs test/signing-e2e.test.mjs test/outbound-only.test.mjs test/recovery.test.mjs test/pipeline-e2e.test.mjs test/shared-config.test.mjs test/metrics.test.mjs test/metrics-route.test.mjs test/tool-cards.test.mjs test/p2p-stun.test.mjs test/p2p-transport.test.mjs test/p2p-signaling.test.mjs test/p2p-node.test.mjs test/p2p-transport-fields.test.mjs test/p2p-plugin.test.mjs test/p2p-agent.test.mjs test/stun-server.test.mjs test/loader-entry.test.mjs test/mdns-wire.test.mjs test/mdns-discover.test.mjs test/p2p-crypto.test.mjs test/chatops-approval.test.mjs test/chatops-policy.test.mjs test/chatops-file-safety.test.mjs test/chatops-outbound-queue.test.mjs test/chatops-commands.test.mjs test/chatops-bridge.test.mjs test/chatops-config-route.test.mjs test/chatops-apply.test.mjs test/chatops-ilink-contract.test.mjs test/chatops-fleet.test.mjs test/chatops-account.test.mjs test/chatops-auth.test.mjs test/chatops-fleet-scope.test.mjs test/chatops-handoff.test.mjs test/chatops-fleet-wiring.test.mjs test/chatops-fleet-live.test.mjs test/chatops-takeover.test.mjs test/chatops-device-signing.test.mjs test/chatops-relay-verify.test.mjs test/chatops-durability.test.mjs test/chatops-run-command.test.mjs test/secrets-guard.test.mjs test/chatops-ilink-fleet-bridge.test.mjs test/agent-plugins.test.mjs test/memory-layer.test.mjs test/mcp-server.test.mjs test/portable-plugins.test.mjs test/mcp-http.test.mjs test/mcp-http-live.test.mjs test/vision.test.mjs test/ilink-shape.test.mjs test/chatops-fleet-join.test.mjs test/admission.test.mjs test/admission-routes.test.mjs test/join-degradation.test.mjs test/account-identity.test.mjs test/join-challenge.test.mjs test/exec-env-injection.test.mjs test/account-join.test.mjs test/fleet-messages.test.mjs test/message-shards.test.mjs test/fleet-messages-http.test.mjs test/message-notify.test.mjs test/update-channels.test.mjs test/update-prerelease.test.mjs test/session-watch.test.mjs test/session-readonly.test.mjs test/session-sync.test.mjs test/fleet-chat-identity.test.mjs test/identity-reader.test.mjs test/intents.test.mjs test/dataflow.test.mjs test/council-fleet.test.mjs test/fleet-memory.test.mjs test/memory-view.test.mjs test/schema-spec.test.mjs test/fleet-weight-parity.test.mjs test/task-deps.test.mjs test/dataflow-wiring.test.mjs test/task-graph.test.mjs test/ask-store.test.mjs test/turn.test.mjs test/fleet-members.test.mjs test/redact.test.mjs test/policy-matrix.test.mjs test/envelope-signature.test.mjs test/chat-crypto.test.mjs test/reduce-suggestion.test.mjs test/merge-hint.test.mjs test/fleet-chat-route.test.mjs test/maintenance.test.mjs",
|
|
75
|
+
"test:approval-gate": "node --test --test-force-exit test/approval-gate.test.mjs",
|
|
76
|
+
"test:approval-index": "node --test --test-force-exit test/approval-index.test.mjs",
|
|
77
|
+
"test:authority": "node --test --test-force-exit test/authority.test.mjs",
|
|
78
|
+
"test:authority-choice": "node --test --test-force-exit test/authority-choice.test.mjs",
|
|
79
|
+
"test:blake2s": "node --test --test-force-exit test/blake2s.test.mjs",
|
|
80
|
+
"test:blocks": "node --test --test-force-exit test/blocks.test.mjs",
|
|
81
|
+
"test:council": "node --test --test-force-exit test/council.test.mjs",
|
|
82
|
+
"test:council-session": "node --test --test-force-exit test/council-session.test.mjs",
|
|
83
|
+
"test:crossnetwork": "node --test --test-force-exit test/crossnetwork.test.mjs",
|
|
84
|
+
"test:crypto-blake2s": "node --test --test-force-exit test/crypto-blake2s.test.mjs",
|
|
85
|
+
"test:e2e": "node --test --test-force-exit test/e2e.test.mjs test/crossnetwork.test.mjs test/signing-e2e.test.mjs test/outbound-only.test.mjs test/recovery.test.mjs test/pipeline-e2e.test.mjs test/p2p-agent.test.mjs test/secondary-link.test.mjs test/bootstrap-cli.test.mjs test/bootstrap.test.mjs test/windows-hidden-task.test.mjs test/relay-failover.test.mjs test/npm-update.test.mjs test/agent-start-nonblocking.test.mjs test/fleet-chat-capture.test.mjs test/capture-route.test.mjs test/update-resolver.test.mjs test/agent-identity-safe.test.mjs test/re-pair-stale-token.test.mjs test/gpw-folder-policy.test.mjs test/gpw-activation.test.mjs test/gpw-hardening.test.mjs test/gpw-tamper-gate.test.mjs test/gpw-persistence.test.mjs test/gpw-colors.test.mjs test/gpw-recent-fold.test.mjs test/gpw-auto-approve.test.mjs",
|
|
86
|
+
"test:exec-env": "node --test --test-force-exit test/exec-env-injection.test.mjs",
|
|
87
|
+
"test:exit-channel": "node --test --test-force-exit test/exit-channel.test.mjs",
|
|
88
|
+
"test:field-authority": "node --test --test-force-exit test/field-authority.test.mjs",
|
|
89
|
+
"test:fleet-chat-identity": "node --test --test-force-exit test/fleet-chat-identity.test.mjs",
|
|
90
|
+
"test:fleet-concurrency": "node --test --test-force-exit test/fleet-concurrency.test.mjs",
|
|
91
|
+
"test:fleet-memory-e2e": "node --test --test-force-exit test/fleet-memory-e2e.test.mjs",
|
|
92
|
+
"test:fleet-merge": "node --test --test-force-exit test/fleet-merge.test.mjs",
|
|
93
|
+
"test:fleet-merge-race": "node --test --test-force-exit test/fleet-merge-race.test.mjs",
|
|
94
|
+
"test:fleet-messages": "node --test --test-force-exit test/fleet-messages.test.mjs",
|
|
95
|
+
"test:fleet-messages-http": "node --test --test-force-exit test/fleet-messages-http.test.mjs",
|
|
96
|
+
"test:fleet-scale": "node --test --test-force-exit test/fleet-scale.test.mjs",
|
|
97
|
+
"test:fleet-state": "node --test --test-force-exit test/fleet-state.test.mjs",
|
|
98
|
+
"test:fleet-sync": "node --test --test-force-exit test/fleet-sync.test.mjs",
|
|
99
|
+
"test:health": "node --test --test-force-exit test/health.test.mjs",
|
|
100
|
+
"test:identity-reader": "node --test --test-force-exit test/identity-reader.test.mjs",
|
|
101
|
+
"test:installed-version": "node --test --test-force-exit test/installed-version.test.mjs",
|
|
102
|
+
"test:join-challenge": "node --test --test-force-exit test/join-challenge.test.mjs",
|
|
103
|
+
"test:join-degradation": "node --test --test-force-exit test/join-degradation.test.mjs",
|
|
104
|
+
"test:layers": "node --test --test-force-exit test/layer-model.test.mjs",
|
|
105
|
+
"test:log-bounds": "node --test --test-force-exit test/log-bounds.test.mjs",
|
|
106
|
+
"test:memory": "node --test --test-force-exit test/memory.test.mjs",
|
|
107
|
+
"test:message-notify": "node --test --test-force-exit test/message-notify.test.mjs",
|
|
108
|
+
"test:message-shards": "node --test --test-force-exit test/message-shards.test.mjs",
|
|
109
|
+
"test:p2p": "node --test --test-force-exit test/p2p-stun.test.mjs test/p2p-transport.test.mjs test/p2p-signaling.test.mjs test/p2p-node.test.mjs test/stun-server.test.mjs test/p2p-transport-fields.test.mjs test/p2p-plugin.test.mjs test/p2p-agent.test.mjs",
|
|
110
|
+
"test:packet": "node --test --test-force-exit test/machine-test-packet.test.mjs",
|
|
111
|
+
"test:permission": "node --test --test-force-exit test/permission.test.mjs",
|
|
112
|
+
"test:portable": "node --test --test-force-exit test/portable-plugins.test.mjs",
|
|
113
|
+
"test:reachability": "node --test --test-force-exit test/reachability-check.test.mjs",
|
|
114
|
+
"test:relay": "node --test --test-force-exit test/relay.test.mjs",
|
|
115
|
+
"test:session-readonly": "node --test --test-force-exit test/session-readonly.test.mjs",
|
|
116
|
+
"test:session-sync": "node --test --test-force-exit test/session-sync.test.mjs",
|
|
117
|
+
"test:session-watch": "node --test --test-force-exit test/session-watch.test.mjs",
|
|
118
|
+
"test:storage": "node --test --test-force-exit test/storage.test.mjs",
|
|
119
|
+
"test:test-report": "node --test --test-force-exit test/test-report.test.mjs",
|
|
120
|
+
"test:tools": "node --test --test-force-exit test/tools.test.mjs",
|
|
121
|
+
"test:update-channels": "node --test --test-force-exit test/update-channels.test.mjs",
|
|
122
|
+
"test:update-prerelease": "node --test --test-force-exit test/update-prerelease.test.mjs",
|
|
123
|
+
"verify": "node scripts/check-entrypoints.mjs && node --test --test-force-exit test/relay.test.mjs test/broadcast.test.mjs test/agent.test.mjs test/tools.test.mjs test/e2e.test.mjs test/crossnetwork.test.mjs test/p2p-node.test.mjs test/p2p-agent.test.mjs test/client-bundle.test.mjs test/loader-entry.test.mjs",
|
|
124
|
+
"verify:join": "node scripts/verify-join.mjs",
|
|
125
|
+
"test:intents": "node --test --test-force-exit test/intents.test.mjs",
|
|
126
|
+
"test:dataflow": "node --test --test-force-exit test/dataflow.test.mjs",
|
|
127
|
+
"test:council-fleet": "node --test --test-force-exit test/council-fleet.test.mjs",
|
|
128
|
+
"test:fleet-memory": "node --test --test-force-exit test/fleet-memory.test.mjs",
|
|
129
|
+
"test:memory-view": "node --test --test-force-exit test/memory-view.test.mjs",
|
|
130
|
+
"test:schema-spec": "node --test --test-force-exit test/schema-spec.test.mjs",
|
|
131
|
+
"test:fleet-weight-parity": "node --test --test-force-exit test/fleet-weight-parity.test.mjs",
|
|
132
|
+
"test:task-deps": "node --test --test-force-exit test/task-deps.test.mjs",
|
|
133
|
+
"test:dataflow-wiring": "node --test --test-force-exit test/dataflow-wiring.test.mjs",
|
|
134
|
+
"test:task-graph": "node --test --test-force-exit test/task-graph.test.mjs",
|
|
135
|
+
"test:ask-store": "node --test --test-force-exit test/ask-store.test.mjs",
|
|
136
|
+
"test:turn": "node --test --test-force-exit test/turn.test.mjs",
|
|
137
|
+
"test:fleet-members": "node --test --test-force-exit test/fleet-members.test.mjs",
|
|
138
|
+
"test:redact": "node --test --test-force-exit test/redact.test.mjs",
|
|
139
|
+
"test:policy-matrix": "node --test --test-force-exit test/policy-matrix.test.mjs",
|
|
140
|
+
"test:envelope-signature": "node --test --test-force-exit test/envelope-signature.test.mjs",
|
|
141
|
+
"test:chat-crypto": "node --test --test-force-exit test/chat-crypto.test.mjs",
|
|
142
|
+
"test:reduce-suggestion": "node --test --test-force-exit test/reduce-suggestion.test.mjs",
|
|
143
|
+
"test:merge-hint": "node --test --test-force-exit test/merge-hint.test.mjs",
|
|
144
|
+
"test:fleet-chat-route": "node --test --test-force-exit test/fleet-chat-route.test.mjs",
|
|
145
|
+
"test:maintenance": "node --test --test-force-exit test/maintenance.test.mjs",
|
|
146
|
+
"test:maintenance-ferry": "node --test --test-force-exit test/maintenance-ferry.test.mjs",
|
|
147
|
+
"test:grant": "node --test --test-force-exit test/grant.test.mjs",
|
|
148
|
+
"test:grant-gate": "node --test --test-force-exit test/grant-gate.test.mjs",
|
|
149
|
+
"test:worktree": "node --test --test-force-exit test/worktree.test.mjs",
|
|
150
|
+
"test:patch-artifact": "node --test --test-force-exit test/patch-artifact.test.mjs",
|
|
151
|
+
"test:merge-queue": "node --test --test-force-exit test/merge-queue.test.mjs",
|
|
152
|
+
"test:m3-workflow": "node --test --test-force-exit test/m3-workflow.test.mjs",
|
|
153
|
+
"test:project-room": "node --test --test-force-exit test/project-room.test.mjs",
|
|
154
|
+
"test:project-attribution": "node --test --test-force-exit test/project-attribution.test.mjs",
|
|
155
|
+
"test:project-locks": "node --test --test-force-exit test/project-locks.test.mjs",
|
|
156
|
+
"test:project-reviews": "node --test --test-force-exit test/project-reviews.test.mjs",
|
|
157
|
+
"test:project-notifications": "node --test --test-force-exit test/project-notifications.test.mjs",
|
|
158
|
+
"test:blob-sessions": "node --test --test-force-exit test/blob-sessions.test.mjs",
|
|
159
|
+
"test:outbox": "node --test --test-force-exit test/outbox.test.mjs",
|
|
160
|
+
"test:metrics": "node --test --test-force-exit test/metrics.test.mjs",
|
|
161
|
+
"test:reliability-metrics": "node --test --test-force-exit test/metrics.test.mjs",
|
|
162
|
+
"test:evidence": "node --test --test-force-exit test/evidence.test.mjs",
|
|
163
|
+
"test:grant-issue": "node --test --test-force-exit test/grant-issue.test.mjs",
|
|
164
|
+
"test:project-refs": "node --test --test-force-exit test/project-refs.test.mjs",
|
|
165
|
+
"test:secondary-link": "node --test --test-force-exit test/secondary-link.test.mjs",
|
|
166
|
+
"verify:fleet-isolation": "node scripts/verify-fleet-isolation.mjs"
|
|
167
|
+
},
|
|
168
|
+
"devDependencies": {
|
|
169
|
+
"@eslint/js": "^10.0.1",
|
|
170
|
+
"eslint": "^10.12.0",
|
|
171
|
+
"globals": "^17.13.0",
|
|
172
|
+
"prettier": "^3.9.9"
|
|
173
|
+
},
|
|
174
|
+
"publishConfig": {
|
|
175
|
+
"access": "public"
|
|
176
|
+
},
|
|
177
|
+
"repository": {
|
|
178
|
+
"type": "git",
|
|
179
|
+
"url": "git+https://github.com/TwinsEarth/dsh-windows2macos.git"
|
|
180
|
+
},
|
|
181
|
+
"homepage": "https://github.com/TwinsEarth/dsh-windows2macos",
|
|
182
|
+
"bugs": {
|
|
183
|
+
"url": "https://github.com/TwinsEarth/dsh-windows2macos/issues"
|
|
184
|
+
},
|
|
185
|
+
"keywords": [
|
|
186
|
+
"dsh-bundle",
|
|
187
|
+
"dsh-plugin",
|
|
188
|
+
"deepseek-harness",
|
|
189
|
+
"deepseek",
|
|
190
|
+
"windows2macos",
|
|
191
|
+
"w2m",
|
|
192
|
+
"cross-platform",
|
|
193
|
+
"multi-machine",
|
|
194
|
+
"orchestration",
|
|
195
|
+
"replicate",
|
|
196
|
+
"sharding"
|
|
197
|
+
],
|
|
198
|
+
"main": "lib/index.js",
|
|
199
|
+
"bin": {
|
|
200
|
+
"w2m-localside": "bin/w2m-localside.mjs",
|
|
201
|
+
"w2m-mcp": "bin/w2m-mcp.mjs",
|
|
202
|
+
"w2m-rabbit": "bin/w2m-rabbit.mjs",
|
|
203
|
+
"w2m-stun": "bin/w2m-stun.mjs",
|
|
204
|
+
"w2m-grant": "./bin/w2m-grant.mjs",
|
|
205
|
+
"w2m-secondary-link": "bin/w2m-secondary-link.mjs",
|
|
206
|
+
"w2m-bootstrap": "bin/w2m-bootstrap.mjs",
|
|
207
|
+
"w2m-bootstrap-sign": "bin/w2m-bootstrap-sign.mjs",
|
|
208
|
+
"w2m-hidden-task": "bin/w2m-hidden-task.mjs",
|
|
209
|
+
"w2m-self-update": "bin/w2m-self-update.mjs",
|
|
210
|
+
"w2m-joint": "bin/w2m-joint.mjs",
|
|
211
|
+
"w2m-operator": "bin/w2m-operator.mjs"
|
|
212
|
+
},
|
|
213
|
+
"disclosure": {
|
|
214
|
+
"cloud": true,
|
|
215
|
+
"network": [
|
|
216
|
+
"http://202.182.123.154:8787",
|
|
217
|
+
"202.182.123.154:3478",
|
|
218
|
+
"stun.cloudflare.com:3478",
|
|
219
|
+
"stun.l.google.com:19302",
|
|
220
|
+
"stun.nextcloud.com:443",
|
|
221
|
+
"ilinkai.weixin.qq.com:443",
|
|
222
|
+
"weixin.qq.com:443",
|
|
223
|
+
"api.weixin.qq.com:443"
|
|
224
|
+
],
|
|
225
|
+
"offlineMode": false,
|
|
226
|
+
"apiKeys": [
|
|
227
|
+
{
|
|
228
|
+
"env": "W2M_OPERATOR_TOKEN",
|
|
229
|
+
"storage": "profile-config"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"env": null,
|
|
233
|
+
"storage": "file-0600"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"env": null,
|
|
237
|
+
"storage": "profile-config"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"env": null,
|
|
241
|
+
"storage": "im-bot-token"
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"permissions": {
|
|
245
|
+
"network": "the configured relay (default: the shared server above), STUN servers, and UDP to the peer machines. The optional chatops channels reach one instant-messaging platform each, and only when that channel is named in `channels` and the host has supplied the transport: the WeChat channel reaches ilinkai.weixin.qq.com and sends the bot token as a bearer credential, and both that host and the base url in a login response are checked against an allow-list before a token is sent anywhere",
|
|
246
|
+
"filesystem": "read/write inside the project directory and DSH_HOME; the agent writes its spool and state under --state; the chatops file fence reads inside `projectRoot` only, after resolving symlinks",
|
|
247
|
+
"env": [
|
|
248
|
+
"W2M_*"
|
|
249
|
+
]
|
|
250
|
+
},
|
|
251
|
+
"jurisdiction": [
|
|
252
|
+
"CN",
|
|
253
|
+
"JP"
|
|
254
|
+
],
|
|
255
|
+
"retention": "server"
|
|
256
|
+
},
|
|
257
|
+
"dependencies": {},
|
|
258
|
+
"peerDependencies": {
|
|
259
|
+
"@deepseek-ai/dsh-tools": "*"
|
|
260
|
+
},
|
|
261
|
+
"peerDependenciesMeta": {
|
|
262
|
+
"@deepseek-ai/dsh-tools": {
|
|
263
|
+
"optional": true
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
266
|
}
|