@drunkcoding/agents-and-skills 0.0.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.
- package/.claude-plugin/marketplace.json +26 -0
- package/LICENSE +21 -0
- package/README.md +50 -0
- package/package.json +33 -0
- package/plugins/tech-graph/.claude-plugin/plugin.json +17 -0
- package/plugins/tech-graph/README.md +66 -0
- package/plugins/tech-graph/agents/tech-graph.md +89 -0
- package/plugins/tech-graph/commands/tech-graph.md +13 -0
- package/plugins/tech-graph/scripts/check-deps.sh +55 -0
- package/plugins/tech-graph/skills/tech-graph/LICENSE +21 -0
- package/plugins/tech-graph/skills/tech-graph/README.md +555 -0
- package/plugins/tech-graph/skills/tech-graph/README.zh.md +514 -0
- package/plugins/tech-graph/skills/tech-graph/SKILL.md +559 -0
- package/plugins/tech-graph/skills/tech-graph/agents/openai.yaml +4 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style1-flat.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style2-dark.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style3-blueprint.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style4-notion.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style5-glass.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style6-claude.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style7-openai.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/agent-memory-types-style4.json +181 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/api-flow-style7.json +40 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/mem0-style1.json +297 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/microservices-style3.json +64 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/multi-agent-style5.json +45 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/system-architecture-style6.json +48 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/tool-call-style2.json +182 -0
- package/plugins/tech-graph/skills/tech-graph/package.json +42 -0
- package/plugins/tech-graph/skills/tech-graph/references/icons.md +406 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-1-flat-icon.md +108 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-2-dark-terminal.md +107 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-3-blueprint.md +113 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-4-notion-clean.md +95 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-5-glassmorphism.md +125 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-6-claude-official.md +209 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-7-openai.md +215 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-diagram-matrix.md +135 -0
- package/plugins/tech-graph/skills/tech-graph/references/svg-layout-best-practices.md +100 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/README.md +269 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/generate-diagram.sh +181 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/generate-from-template.py +1587 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/test-all-styles.sh +143 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/validate-svg.sh +306 -0
- package/plugins/tech-graph/skills/tech-graph/templates/agent-architecture.svg +28 -0
- package/plugins/tech-graph/skills/tech-graph/templates/architecture.svg +23 -0
- package/plugins/tech-graph/skills/tech-graph/templates/comparison-matrix.svg +14 -0
- package/plugins/tech-graph/skills/tech-graph/templates/data-flow.svg +28 -0
- package/plugins/tech-graph/skills/tech-graph/templates/er-diagram.svg +21 -0
- package/plugins/tech-graph/skills/tech-graph/templates/flowchart.svg +21 -0
- package/plugins/tech-graph/skills/tech-graph/templates/sequence.svg +20 -0
- package/plugins/tech-graph/skills/tech-graph/templates/state-machine.svg +20 -0
- package/plugins/tech-graph/skills/tech-graph/templates/timeline.svg +19 -0
- package/plugins/tech-graph/skills/tech-graph/templates/use-case.svg +21 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "neptune",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "steven",
|
|
5
|
+
"email": "steven.hoang@transwap.com"
|
|
6
|
+
},
|
|
7
|
+
"metadata": {
|
|
8
|
+
"description": "Personal agents and skills marketplace"
|
|
9
|
+
},
|
|
10
|
+
"plugins": [
|
|
11
|
+
{
|
|
12
|
+
"name": "tech-graph",
|
|
13
|
+
"source": "./plugins/tech-graph",
|
|
14
|
+
"description": "6-step wizard for technical diagrams (SVG/PNG) via fireworks-tech-graph",
|
|
15
|
+
"version": "0.0.1",
|
|
16
|
+
"category": "diagram",
|
|
17
|
+
"keywords": [
|
|
18
|
+
"diagram",
|
|
19
|
+
"svg",
|
|
20
|
+
"architecture",
|
|
21
|
+
"uml",
|
|
22
|
+
"flowchart"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Steven Hoang
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# agents-and-skills
|
|
2
|
+
|
|
3
|
+
Personal [Claude Code](https://code.claude.com) plugin marketplace. Hosts agents, skills, and slash commands as installable plugins.
|
|
4
|
+
|
|
5
|
+
Published on npm as [`@drunkcoding/agents-and-skills`](https://www.npmjs.com/package/@drunkcoding/agents-and-skills).
|
|
6
|
+
|
|
7
|
+
## Plugins
|
|
8
|
+
|
|
9
|
+
| Plugin | Description |
|
|
10
|
+
|--------|-------------|
|
|
11
|
+
| [`tech-graph`](plugins/tech-graph) | 6-step wizard for technical diagrams (SVG + PNG). |
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
### Claude Code marketplace
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
/plugin marketplace add drunkcoding/agents-and-skills
|
|
19
|
+
/plugin install <plugin-name>@neptune
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Only the plugin you install loads; others stay dormant.
|
|
23
|
+
|
|
24
|
+
### npm / npx
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Whole marketplace
|
|
28
|
+
npm install -g @drunkcoding/agents-and-skills
|
|
29
|
+
|
|
30
|
+
# Or via npx skills (https://github.com/vercel-labs/skills)
|
|
31
|
+
npx skills add @drunkcoding/agents-and-skills
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Layout
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
.claude-plugin/marketplace.json # marketplace manifest (Claude Code)
|
|
38
|
+
plugins/<plugin>/ # one folder per plugin
|
|
39
|
+
.claude-plugin/plugin.json # plugin manifest
|
|
40
|
+
agents/ commands/ skills/ # plugin contents
|
|
41
|
+
package.json # npm metadata
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Contributing
|
|
45
|
+
|
|
46
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
|
47
|
+
|
|
48
|
+
## License
|
|
49
|
+
|
|
50
|
+
MIT
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@drunkcoding/agents-and-skills",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Personal collection of Claude Code skills and agents, installable via `npx skills`.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"claude-code",
|
|
7
|
+
"claude-skills",
|
|
8
|
+
"agent-skills",
|
|
9
|
+
"skills",
|
|
10
|
+
"gitnexus",
|
|
11
|
+
"npx-skills"
|
|
12
|
+
],
|
|
13
|
+
"author": "Steven Hoang",
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/drunkcoding/agents-and-skills.git"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/drunkcoding/agents-and-skills#readme",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/drunkcoding/agents-and-skills/issues"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"plugins/**",
|
|
25
|
+
".claude-plugin/marketplace.json",
|
|
26
|
+
"README.md",
|
|
27
|
+
"LICENSE"
|
|
28
|
+
],
|
|
29
|
+
"private": false,
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tech-graph",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Step-by-step wizard for generating technical diagrams as SVG+PNG.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "steven"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [
|
|
9
|
+
"diagram",
|
|
10
|
+
"svg",
|
|
11
|
+
"architecture",
|
|
12
|
+
"uml",
|
|
13
|
+
"flowchart",
|
|
14
|
+
"sequence",
|
|
15
|
+
"er"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# tech-graph
|
|
2
|
+
|
|
3
|
+
Step-by-step wizard for generating technical diagrams (architecture, flowchart, sequence, UML-class, ER, agent-loop, concept-map) as SVG + PNG. Delegates rendering to the upstream [`fireworks-tech-graph`](https://github.com/yizhiyanhua-ai/fireworks-tech-graph) skill (vendored here under `skills/tech-graph/`).
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
From inside Claude Code:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
/plugin marketplace add <user>/neptune
|
|
11
|
+
/plugin install tech-graph@neptune
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Then run `/tech-graph` (or `/tech-graph "auth flow"` to seed a topic).
|
|
15
|
+
|
|
16
|
+
## Renderer Dependency
|
|
17
|
+
|
|
18
|
+
The plugin needs ONE of these on your system (cairosvg recommended):
|
|
19
|
+
|
|
20
|
+
| Renderer | Install |
|
|
21
|
+
|----------|---------|
|
|
22
|
+
| `cairosvg` | `pip install cairosvg` (Python ≥ 3.8) |
|
|
23
|
+
| `rsvg-convert` | macOS: `brew install librsvg` / Debian: `apt-get install librsvg2-bin` |
|
|
24
|
+
| `puppeteer` | `npm install -g puppeteer` (heavy; last resort) |
|
|
25
|
+
|
|
26
|
+
Probe + auto-select:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
bash plugins/tech-graph/scripts/check-deps.sh
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The script writes the selected renderer name to `skills/tech-graph/.renderer` and skips re-probing on later runs.
|
|
33
|
+
|
|
34
|
+
## Wizard Steps
|
|
35
|
+
|
|
36
|
+
1. Purpose — exec-summary / engineering-review ★ / docs / blog / debug-thinking
|
|
37
|
+
2. Type — architecture ★ / flowchart / sequence / UML-class / ER / agent-loop / concept-map
|
|
38
|
+
3. Style — one of 7 (recommended ★ based on purpose × type)
|
|
39
|
+
4. Format — SVG ★ / PNG / both
|
|
40
|
+
5. Density — minimal / standard ★ / detailed
|
|
41
|
+
6. Confirm — render or edit a previous step
|
|
42
|
+
|
|
43
|
+
Mid-wizard you may say: `redo step 3`, `change style`, or `cancel`.
|
|
44
|
+
|
|
45
|
+
## Output
|
|
46
|
+
|
|
47
|
+
- Default outdir: `./diagrams/`
|
|
48
|
+
- Filename: `<topic-slug>-<type>-<style>.svg` (collisions → `-2`, `-3`, …)
|
|
49
|
+
|
|
50
|
+
## Optional — draw.io MCP
|
|
51
|
+
|
|
52
|
+
This plugin does **not** bundle draw.io's MCP server. If you want it available alongside, add this to `~/.claude/settings.json` or your project's `.mcp.json`:
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"mcpServers": {
|
|
57
|
+
"drawio": { "type": "http", "url": "https://mcp.draw.io/mcp" }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The `tech-graph` subagent does **not** depend on this MCP — it is purely opt-in.
|
|
63
|
+
|
|
64
|
+
## Upstream Sync
|
|
65
|
+
|
|
66
|
+
See `../../CONTRIBUTING.md` at the repo root for the `git subtree pull` workflow.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tech-graph
|
|
3
|
+
description: Step-by-step wizard for generating technical diagrams (architecture, flowchart, sequence, UML, ER, agent-loop, concept-map) as SVG/PNG via the fireworks-tech-graph skill.
|
|
4
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tech-Graph Wizard
|
|
9
|
+
|
|
10
|
+
You are a diagram wizard. Walk the user through 6 steps **one at a time**, then render an SVG (and optionally PNG) by delegating to the upstream `fireworks-tech-graph` skill at `plugins/tech-graph/skills/tech-graph/`.
|
|
11
|
+
|
|
12
|
+
## Hard Rules
|
|
13
|
+
|
|
14
|
+
1. **One question per message.** Always multiple-choice. Mark the default with `★`.
|
|
15
|
+
2. Never skip a step unless the user explicitly says "use defaults".
|
|
16
|
+
3. Maintain wizard state in your working memory as JSON:
|
|
17
|
+
```json
|
|
18
|
+
{ "topic": "", "purpose": "", "type": "", "style": "", "format": "", "density": "", "filename": "", "outdir": "./diagrams" }
|
|
19
|
+
```
|
|
20
|
+
4. Defer reading the upstream `SKILL.md`, `references/`, `templates/` until step 6 (confirmation). At step 6, Read them, then author SVG content.
|
|
21
|
+
5. **Fail fast on missing renderer.** Before authoring SVG, run `bash plugins/tech-graph/scripts/check-deps.sh`. If exit != 0, quote the script's stderr verbatim to the user and halt. Do not write any SVG.
|
|
22
|
+
6. Never edit anything under `plugins/tech-graph/skills/tech-graph/` — that path is a git subtree and must stay verbatim.
|
|
23
|
+
|
|
24
|
+
## The 6 Steps
|
|
25
|
+
|
|
26
|
+
### Step 1 — Purpose / audience
|
|
27
|
+
Ask: "What is this diagram for?"
|
|
28
|
+
Options:
|
|
29
|
+
- (a) exec-summary
|
|
30
|
+
- (b) engineering-review ★
|
|
31
|
+
- (c) docs
|
|
32
|
+
- (d) blog
|
|
33
|
+
- (e) debug-thinking
|
|
34
|
+
|
|
35
|
+
### Step 2 — Diagram type
|
|
36
|
+
Ask: "What type of diagram?"
|
|
37
|
+
Options:
|
|
38
|
+
- (a) architecture ★
|
|
39
|
+
- (b) flowchart
|
|
40
|
+
- (c) sequence
|
|
41
|
+
- (d) UML-class
|
|
42
|
+
- (e) ER
|
|
43
|
+
- (f) agent-loop
|
|
44
|
+
- (g) concept-map
|
|
45
|
+
|
|
46
|
+
### Step 3 — Style
|
|
47
|
+
Read `plugins/tech-graph/skills/tech-graph/references/` for the 7 upstream style references. Recommend one based on `(purpose, type)` and present all 7 with the recommendation marked `★`.
|
|
48
|
+
|
|
49
|
+
### Step 4 — Format
|
|
50
|
+
Ask: "Output format?"
|
|
51
|
+
Options:
|
|
52
|
+
- (a) SVG ★
|
|
53
|
+
- (b) PNG
|
|
54
|
+
- (c) both
|
|
55
|
+
|
|
56
|
+
### Step 5 — Complexity / density
|
|
57
|
+
Ask: "How dense should it be?"
|
|
58
|
+
Options:
|
|
59
|
+
- (a) minimal
|
|
60
|
+
- (b) standard ★
|
|
61
|
+
- (c) detailed
|
|
62
|
+
|
|
63
|
+
### Step 6 — Confirm
|
|
64
|
+
Show the user the full state summary, plus the resolved `filename` and `outdir`. Filename pattern: `<topic-slug>-<type>-<style>.svg`. If the file exists, append `-2`, `-3`, …
|
|
65
|
+
Options: (a) yes — render, (b) edit step N, (c) cancel.
|
|
66
|
+
|
|
67
|
+
## Render Protocol (after step 6 = yes)
|
|
68
|
+
|
|
69
|
+
1. `bash plugins/tech-graph/scripts/check-deps.sh` — abort on failure (rule 5).
|
|
70
|
+
2. Read upstream `SKILL.md` and the template files for the chosen `type`/`style`.
|
|
71
|
+
3. Author the SVG content following the upstream style reference and density hint, then either:
|
|
72
|
+
- Write SVG directly to `<outdir>/<filename>`, OR
|
|
73
|
+
- Use `python3 plugins/tech-graph/skills/tech-graph/scripts/generate-from-template.py <type> <out.svg> '<json>'` when a template applies.
|
|
74
|
+
4. Validate + export PNG (when format=PNG or both):
|
|
75
|
+
`bash plugins/tech-graph/skills/tech-graph/scripts/generate-diagram.sh -t <type> -s <style> -o <out.svg>`
|
|
76
|
+
5. Report the absolute path of every file written. Suggest the user run `snip open <path>` for visual review.
|
|
77
|
+
|
|
78
|
+
## Re-entry
|
|
79
|
+
|
|
80
|
+
Accept these at any point:
|
|
81
|
+
- "redo step N" — return to step N keeping all other state.
|
|
82
|
+
- "change style" — return to step 3.
|
|
83
|
+
- "cancel" — discard state and stop.
|
|
84
|
+
|
|
85
|
+
## Failure Handling
|
|
86
|
+
|
|
87
|
+
- Missing renderer → quote the `check-deps.sh` stderr verbatim, halt.
|
|
88
|
+
- Upstream script non-zero exit → quote the script's stderr verbatim, halt; do not write a partial SVG.
|
|
89
|
+
- Invalid SVG (validation failure) → quote validator output, halt, do not export PNG.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Step-by-step wizard for generating technical diagrams (SVG/PNG).
|
|
3
|
+
argument-hint: [optional one-line topic]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Dispatch the `tech-graph` subagent using the Agent tool. Pass `$ARGUMENTS` (which may be empty) as the initial topic seed in the subagent prompt.
|
|
7
|
+
|
|
8
|
+
Subagent dispatch prompt template:
|
|
9
|
+
|
|
10
|
+
> Run the tech-graph wizard. Initial topic seed: `$ARGUMENTS`.
|
|
11
|
+
> Walk the user through all 6 steps even when a seed is provided. Use multiple-choice options with the marked default (★). Maintain wizard state as JSON in your working memory across turns. Do not skip steps unless the user explicitly says "use defaults".
|
|
12
|
+
|
|
13
|
+
Do not perform any rendering or file generation in the main thread — the subagent owns the full wizard and the render call.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# check-deps.sh — probe SVG→PNG renderers for tech-graph plugin.
|
|
3
|
+
# Probes in order: cairosvg (python) → rsvg-convert (system) → puppeteer (node).
|
|
4
|
+
# Writes the first available choice to skills/tech-graph/.renderer.
|
|
5
|
+
# Exits 0 on success, 1 if none found (prints exact install cmd).
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
10
|
+
PLUGIN_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
11
|
+
RENDERER_FILE="$PLUGIN_DIR/skills/tech-graph/.renderer"
|
|
12
|
+
|
|
13
|
+
probe_cairosvg() {
|
|
14
|
+
python3 -c "import cairosvg" >/dev/null 2>&1
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
probe_rsvg() {
|
|
18
|
+
command -v rsvg-convert >/dev/null 2>&1
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
probe_puppeteer() {
|
|
22
|
+
node -e "require('puppeteer')" >/dev/null 2>&1
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if probe_cairosvg; then
|
|
26
|
+
echo "cairosvg" > "$RENDERER_FILE"
|
|
27
|
+
echo "Renderer: cairosvg (python) — selected"
|
|
28
|
+
exit 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if probe_rsvg; then
|
|
32
|
+
echo "rsvg-convert" > "$RENDERER_FILE"
|
|
33
|
+
echo "Renderer: rsvg-convert — selected"
|
|
34
|
+
exit 0
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
if probe_puppeteer; then
|
|
38
|
+
echo "puppeteer" > "$RENDERER_FILE"
|
|
39
|
+
echo "Renderer: puppeteer (node) — selected"
|
|
40
|
+
exit 0
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
cat <<'EOF' >&2
|
|
44
|
+
ERROR: No SVG→PNG renderer found on this system.
|
|
45
|
+
|
|
46
|
+
Install ONE of the following (cairosvg is recommended):
|
|
47
|
+
|
|
48
|
+
1) pip install cairosvg # requires Python >= 3.8
|
|
49
|
+
2) brew install librsvg # macOS
|
|
50
|
+
apt-get install librsvg2-bin # Debian/Ubuntu
|
|
51
|
+
3) npm install -g puppeteer # heavy; last resort
|
|
52
|
+
|
|
53
|
+
After install, re-run: bash plugins/tech-graph/scripts/check-deps.sh
|
|
54
|
+
EOF
|
|
55
|
+
exit 1
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 fireworks-tech-graph contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|