dsh-autotier 0.2.18 → 0.2.20
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 +12 -0
- package/README-es.md +199 -78
- package/README-hi.md +203 -80
- package/README-pt.md +201 -80
- package/README-zh.md +172 -52
- package/README.md +204 -84
- package/docs/assets/dsh-autotier-flow.svg +19 -0
- package/lib/client.js +583 -357
- package/lib/client.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/typert.host.js +1 -1
- package/lib/{wire-BxsY8BiN.js → wire-DHFKQqYR.js} +583 -357
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# dsh-autotier
|
|
2
2
|
|
|
3
|
+
> 🧊 **FROZEN — 2026-10-31. Maintenance mode.** No new features; security and dependency fixes only.
|
|
4
|
+
|
|
5
|
+
## Maintenance status: 🧊 FROZEN
|
|
6
|
+
|
|
7
|
+
Frozen on 2026-10-31 in maintenance mode. The package stays installable; only security and dependency fixes are planned.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
dsh plugin --profile <name> add dsh-autotier
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
|
|
3
15
|
**English** | [简体中文](README-zh.md) | [Español](README-es.md) | [Português](README-pt.md) | [हिन्दी](README-hi.md)
|
|
4
16
|
|
|
5
17
|
Automatic model-tier routing for DeepSeek Harness: one user instruction enters,
|
|
@@ -30,11 +42,52 @@ escalate to the strong tier with a TTL fallback.
|
|
|
30
42
|
**📖 Ecosystem knowledge base** — measured data, not marketing: [plugin development guide · plugin-selection data · maintenance criteria](https://perrylink.github.io/dsh-plugin-guide/).
|
|
31
43
|
|
|
32
44
|
<!-- star-cta -->
|
|
45
|
+
## Install & uninstall
|
|
46
|
+
|
|
47
|
+
**npm channel**
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
dsh plugin --profile web add dsh-autotier
|
|
51
|
+
npm i -g dsh1024
|
|
52
|
+
dsh1024 plugin --profile web add dsh-autotier
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**git channel**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
dsh plugin --profile web add github:PerryLink/dsh-autotier
|
|
59
|
+
git clone https://github.com/PerryLink/dsh-autotier.git
|
|
60
|
+
cd dsh-autotier && pnpm install && pnpm run build
|
|
61
|
+
dsh plugin --profile web add .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Optional preset prompt section.** The router works without it. To let the
|
|
65
|
+
model know which tier it is running on, add one row to *your* agent preset
|
|
66
|
+
(`docs/preset-row.md` has the exact block):
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
- insert:
|
|
70
|
+
- id: autotier-prompt
|
|
71
|
+
name: '@deepseek-ai/dsh-system-prompt'
|
|
72
|
+
# sections: [...] — see docs/preset-row.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Uninstall**
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
dsh plugin --profile web remove dsh-autotier
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The row, its command, its tools and its listeners are all removed with the
|
|
82
|
+
plugin. Configuration a user saved through the Plugins page lives in the active
|
|
83
|
+
profile patch and belongs to that profile, not to this plugin; removing the row
|
|
84
|
+
leaves it there untouched.
|
|
85
|
+
|
|
33
86
|
## ⭐ 如果它帮到了你
|
|
34
87
|
|
|
35
|
-
这个插件是 [DSH 插件家族](https://github.com/PerryLink)的一员(
|
|
88
|
+
这个插件是 [DSH 插件家族](https://github.com/PerryLink)的一员(95 个,全部 Apache-2.0)。如果你在用,**给个 star** —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
|
|
36
89
|
|
|
37
|
-
*English:* part of a
|
|
90
|
+
*English:* part of a 95 plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
|
|
38
91
|
|
|
39
92
|
|
|
40
93
|
## What is dsh-autotier?
|
|
@@ -43,11 +96,11 @@ npm channel
|
|
|
43
96
|
|
|
44
97
|
git channel
|
|
45
98
|
|
|
46
|
-

|
|
100
|
+
|
|
101
|
+
*Workflow overview: call → plugin → result. The examples below use the real command surface.*
|
|
47
102
|
|
|
48
|
-

|
|
49
103
|
|
|
50
|
-
*The same run, animated.*
|
|
51
104
|
|
|
52
105
|
## Compatibility
|
|
53
106
|
|
|
@@ -120,46 +173,58 @@ dsh1024 plugin --profile web add dsh-autotier
|
|
|
120
173
|
Then start (or restart) the harness. The row is appended to your profile's
|
|
121
174
|
`cordis.patch.yml`; routing starts on the next turn with no further setup.
|
|
122
175
|
|
|
123
|
-
|
|
176
|
+
### Examples
|
|
124
177
|
|
|
125
|
-
|
|
178
|
+
These are the plugin's real entry points; install once, then call one.
|
|
126
179
|
|
|
127
|
-
|
|
128
|
-
dsh plugin --profile web add dsh-autotier
|
|
129
|
-
npm i -g dsh1024
|
|
130
|
-
dsh1024 plugin --profile web add dsh-autotier
|
|
131
|
-
```
|
|
180
|
+
#### Detailed example
|
|
132
181
|
|
|
133
|
-
**
|
|
182
|
+
**Command**
|
|
134
183
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
cd dsh-autotier && pnpm install && pnpm run build
|
|
139
|
-
dsh plugin --profile web add .
|
|
140
|
-
```
|
|
184
|
+
~~~sh
|
|
185
|
+
tier_route
|
|
186
|
+
~~~
|
|
141
187
|
|
|
142
|
-
**
|
|
143
|
-
model know which tier it is running on, add one row to *your* agent preset
|
|
144
|
-
(`docs/preset-row.md` has the exact block):
|
|
188
|
+
**Input**
|
|
145
189
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
name: '@deepseek-ai/dsh-system-prompt'
|
|
150
|
-
# sections: [...] — see docs/preset-row.md
|
|
151
|
-
```
|
|
190
|
+
~~~json
|
|
191
|
+
{ "text": "Plan the migration of the storage layer end to end" }
|
|
192
|
+
~~~
|
|
152
193
|
|
|
153
|
-
**
|
|
194
|
+
**Output**
|
|
154
195
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
196
|
+
~~~text
|
|
197
|
+
{
|
|
198
|
+
"tier": "strong",
|
|
199
|
+
"scenario": "planning",
|
|
200
|
+
"confidence": 0.97,
|
|
201
|
+
"fingerprint": "planning|0|0",
|
|
202
|
+
"reason": "explicit planning intent"
|
|
203
|
+
}
|
|
204
|
+
~~~
|
|
158
205
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
206
|
+
*Observed from `README.md:248 (Tools & surfaces); tests/tools.spec.ts:96-109; src/tools.ts:80`*
|
|
207
|
+
|
|
208
|
+
#### Failure branch
|
|
209
|
+
|
|
210
|
+
**Input**
|
|
211
|
+
|
|
212
|
+
~~~text
|
|
213
|
+
resolveConfig({ tiers: { cheap: { provider: 'deepseek-official', model: 'deepseek-v4-pro', effort: 'high', followSession: false } } })
|
|
214
|
+
~~~
|
|
215
|
+
|
|
216
|
+
**Output**
|
|
217
|
+
|
|
218
|
+
~~~text
|
|
219
|
+
Error: dsh-autotier: config.tiers strong and cheap resolve to the same landing (deepseek-official/deepseek-v4-pro@high); tiering would be a no-op
|
|
220
|
+
~~~
|
|
221
|
+
|
|
222
|
+
*Observed from `plugins/dsh-autotier/src/config.ts:377-386; plugins/dsh-autotier/tests/config.spec.ts:87-92; plugins/dsh-autotier/README.md:208-209`*
|
|
223
|
+
|
|
224
|
+
#### Brief examples
|
|
225
|
+
|
|
226
|
+
- `tier_status`
|
|
227
|
+
- `tier_route`
|
|
163
228
|
|
|
164
229
|
## Configuration
|
|
165
230
|
|
|
@@ -340,55 +405,110 @@ PerryLink. Issues and pull requests are welcome at
|
|
|
340
405
|
|
|
341
406
|
## PerryLink DSH Plugin Family
|
|
342
407
|
|
|
343
|
-
This project is
|
|
408
|
+
This project is part of the DeepSeek Harness plugin family from [PerryLink](https://github.com/PerryLink). The roster stays collapsed below so every README keeps a short first screen; expand it to see every row and its status.
|
|
344
409
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
|
349
|
-
|
|
350
|
-
| **[dsh-
|
|
351
|
-
| **[dsh-
|
|
352
|
-
| **[dsh-
|
|
353
|
-
| **[dsh-
|
|
354
|
-
| **[dsh-
|
|
355
|
-
| **[dsh-
|
|
356
|
-
| **[dsh-
|
|
357
|
-
| **[dsh-
|
|
358
|
-
| **[dsh-
|
|
359
|
-
| **[dsh-
|
|
360
|
-
| **[dsh-
|
|
361
|
-
| **[dsh-
|
|
362
|
-
| **[dsh-
|
|
363
|
-
| **[dsh-
|
|
364
|
-
| **[dsh-
|
|
365
|
-
| **[dsh-
|
|
366
|
-
| **[dsh-
|
|
367
|
-
| **[dsh-
|
|
368
|
-
| **[dsh-
|
|
369
|
-
| **[dsh-
|
|
370
|
-
| **[dsh-
|
|
371
|
-
| **[dsh-
|
|
372
|
-
| **[dsh-
|
|
373
|
-
| **[dsh-
|
|
374
|
-
| **[dsh-
|
|
375
|
-
| **[dsh-
|
|
376
|
-
| **[dsh-
|
|
377
|
-
| **[dsh-
|
|
378
|
-
| **[dsh-
|
|
379
|
-
| **[dsh-
|
|
380
|
-
| **[dsh-
|
|
381
|
-
| **[dsh-
|
|
382
|
-
| **[dsh-
|
|
383
|
-
| **[dsh-
|
|
384
|
-
| **[dsh-
|
|
385
|
-
| **[dsh-
|
|
386
|
-
| **[dsh-
|
|
387
|
-
| **[dsh-
|
|
388
|
-
| **[dsh-
|
|
389
|
-
| **[dsh-
|
|
390
|
-
| **[dsh-
|
|
391
|
-
| **[dsh-
|
|
410
|
+
<details>
|
|
411
|
+
<summary>Expand all plugins</summary>
|
|
412
|
+
|
|
413
|
+
| Plugin | Status |
|
|
414
|
+
|---|---|
|
|
415
|
+
| **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
|
|
416
|
+
| **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
|
|
417
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
|
|
418
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
|
|
419
|
+
| **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
|
|
420
|
+
| **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
|
|
421
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
|
|
422
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
|
|
423
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
|
|
424
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
|
|
425
|
+
| **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
|
|
426
|
+
| **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
|
|
427
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | |
|
|
428
|
+
| **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
|
|
429
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
|
|
430
|
+
| **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
|
|
431
|
+
| **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
|
|
432
|
+
| **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
|
|
433
|
+
| **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
|
|
434
|
+
| **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
|
|
435
|
+
| **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
|
|
436
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
|
|
437
|
+
| **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
|
|
438
|
+
| **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
|
|
439
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
|
|
440
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
|
|
441
|
+
| **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
|
|
442
|
+
| **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
|
|
443
|
+
| **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
|
|
444
|
+
| **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
|
|
445
|
+
| **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
|
|
446
|
+
| **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
|
|
447
|
+
| **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
|
|
448
|
+
| **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
|
|
449
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
|
|
450
|
+
| **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
|
|
451
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
|
|
452
|
+
| **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
|
|
453
|
+
| **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
|
|
454
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
|
|
455
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
|
|
456
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
|
|
457
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
|
|
458
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
|
|
459
|
+
| **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
|
|
460
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | |
|
|
461
|
+
| **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
|
|
462
|
+
| **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
|
|
463
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
|
|
464
|
+
| **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
|
|
465
|
+
| **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
|
|
466
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
|
|
467
|
+
| **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
|
|
468
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
|
|
469
|
+
| **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
|
|
470
|
+
| **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
|
|
471
|
+
| **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
|
|
472
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | |
|
|
473
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
|
|
474
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | |
|
|
475
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | |
|
|
476
|
+
| **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
|
|
477
|
+
| **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
|
|
478
|
+
| **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
|
|
479
|
+
| **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
|
|
480
|
+
| **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
|
|
481
|
+
| **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
|
|
482
|
+
| **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
|
|
483
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
|
|
484
|
+
| **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
|
|
485
|
+
| **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
|
|
486
|
+
| **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
|
|
487
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | |
|
|
488
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
|
|
489
|
+
| **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
|
|
490
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
|
|
491
|
+
| **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
|
|
492
|
+
| **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
|
|
493
|
+
| **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
|
|
494
|
+
| **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
|
|
495
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
|
|
496
|
+
| **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
|
|
497
|
+
| **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
|
|
498
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
|
|
499
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | |
|
|
500
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
|
|
501
|
+
| **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
|
|
502
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 FROZEN — see the repo README |
|
|
503
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 FROZEN — see the repo README |
|
|
504
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 FROZEN — see the repo README |
|
|
505
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 FROZEN — see the repo README |
|
|
506
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 FROZEN — see the repo README |
|
|
507
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 RETIRED — see the repo README |
|
|
508
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRED — see the repo README |
|
|
509
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRED — see the repo README |
|
|
510
|
+
|
|
511
|
+
</details>
|
|
392
512
|
|
|
393
513
|
## License
|
|
394
514
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="360" viewBox="0 0 1200 360" role="img" aria-label="dsh-autotier workflow">
|
|
2
|
+
<title>dsh-autotier workflow</title>
|
|
3
|
+
<rect width="1200" height="360" rx="18" fill="#0d1117"/>
|
|
4
|
+
<text x="60" y="58" fill="#f0f6fc" font-family="ui-sans-serif,system-ui,sans-serif" font-size="30" font-weight="700">dsh-autotier</text>
|
|
5
|
+
<text x="60" y="92" fill="#8b949e" font-family="ui-monospace,monospace" font-size="16">DeepSeek Harness plugin</text>
|
|
6
|
+
<line x1="60" y1="118" x2="1140" y2="118" stroke="#30363d"/>
|
|
7
|
+
<rect x="120" y="150" width="240" height="140" rx="14" fill="#161b22" stroke="#16a34a" stroke-width="2"/>
|
|
8
|
+
<rect x="216" y="191" width="48" height="48" rx="7" fill="none" stroke="#16a34a" stroke-width="3"/><path d="M225 203l9 9-9 9m16 0h12" fill="none" stroke="#16a34a" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
9
|
+
<circle cx="330" cy="270" r="13" fill="#16a34a"/><text x="330" y="276" fill="#0d1117" text-anchor="middle" font-family="ui-monospace,monospace" font-size="14" font-weight="700">1</text>
|
|
10
|
+
<path d="M368 220h64" stroke="#16a34a" stroke-width="3"/><path d="M422 213l10 7-10 7" fill="none" stroke="#16a34a" stroke-width="3" stroke-linecap="round"/>
|
|
11
|
+
<rect x="480" y="150" width="240" height="140" rx="14" fill="#161b22" stroke="#16a34a" stroke-width="2"/>
|
|
12
|
+
<path d="M580 192h14v9a7 7 0 1 0 0 14v9H580z" fill="none" stroke="#16a34a" stroke-width="3"/><path d="M601 192h14v9a7 7 0 1 1 0 14v9H601" fill="none" stroke="#16a34a" stroke-width="3"/>
|
|
13
|
+
<circle cx="690" cy="270" r="13" fill="#16a34a"/><text x="690" y="276" fill="#0d1117" text-anchor="middle" font-family="ui-monospace,monospace" font-size="14" font-weight="700">2</text>
|
|
14
|
+
<path d="M728 220h64" stroke="#16a34a" stroke-width="3"/><path d="M782 213l10 7-10 7" fill="none" stroke="#16a34a" stroke-width="3" stroke-linecap="round"/>
|
|
15
|
+
<rect x="840" y="150" width="240" height="140" rx="14" fill="#161b22" stroke="#16a34a" stroke-width="2"/>
|
|
16
|
+
<path d="M960 188l6 24 24 6-24 6-6 24-6-24-24-6 24-6z" fill="none" stroke="#16a34a" stroke-width="3" stroke-linejoin="round"/>
|
|
17
|
+
<circle cx="1050" cy="270" r="13" fill="#16a34a"/><text x="1050" y="276" fill="#0d1117" text-anchor="middle" font-family="ui-monospace,monospace" font-size="14" font-weight="700">3</text>
|
|
18
|
+
<text x="60" y="332" fill="#8b949e" font-family="ui-monospace,monospace" font-size="14">PerryLink DSH plugin family · Apache-2.0</text>
|
|
19
|
+
</svg>
|