token-steward 0.1.0
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/LICENSE +21 -0
- package/README.md +122 -0
- package/config/registry.yaml +413 -0
- package/dist/audit_log.d.ts +5 -0
- package/dist/audit_log.d.ts.map +1 -0
- package/dist/audit_log.js +28 -0
- package/dist/audit_log.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1029 -0
- package/dist/cli.js.map +1 -0
- package/dist/export_data.d.ts +45 -0
- package/dist/export_data.d.ts.map +1 -0
- package/dist/export_data.js +149 -0
- package/dist/export_data.js.map +1 -0
- package/dist/guardrails.d.ts +21 -0
- package/dist/guardrails.d.ts.map +1 -0
- package/dist/guardrails.js +87 -0
- package/dist/guardrails.js.map +1 -0
- package/dist/issue_discovery.d.ts +7 -0
- package/dist/issue_discovery.d.ts.map +1 -0
- package/dist/issue_discovery.js +180 -0
- package/dist/issue_discovery.js.map +1 -0
- package/dist/models.d.ts +333 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +41 -0
- package/dist/models.js.map +1 -0
- package/dist/policy_store.d.ts +9 -0
- package/dist/policy_store.d.ts.map +1 -0
- package/dist/policy_store.js +52 -0
- package/dist/policy_store.js.map +1 -0
- package/dist/registry_sync.d.ts +15 -0
- package/dist/registry_sync.d.ts.map +1 -0
- package/dist/registry_sync.js +67 -0
- package/dist/registry_sync.js.map +1 -0
- package/dist/run_orchestrator.d.ts +51 -0
- package/dist/run_orchestrator.d.ts.map +1 -0
- package/dist/run_orchestrator.js +435 -0
- package/dist/run_orchestrator.js.map +1 -0
- package/dist/scheduler.d.ts +14 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +196 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/scoring_engine.d.ts +7 -0
- package/dist/scoring_engine.d.ts.map +1 -0
- package/dist/scoring_engine.js +173 -0
- package/dist/scoring_engine.js.map +1 -0
- package/dist/store.d.ts +28 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +196 -0
- package/dist/store.js.map +1 -0
- package/dist/usage_adapter.d.ts +19 -0
- package/dist/usage_adapter.d.ts.map +1 -0
- package/dist/usage_adapter.js +251 -0
- package/dist/usage_adapter.js.map +1 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Robert Keenan
|
|
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,122 @@
|
|
|
1
|
+
# Token Steward
|
|
2
|
+
|
|
3
|
+
Turn your unused Claude Code tokens into open-source contributions.
|
|
4
|
+
|
|
5
|
+
Most Claude Max subscribers don't use their full weekly token allowance. Token Steward helps you put that surplus to work by finding real issues on important open-source projects and helping you resolve them with Claude Code.
|
|
6
|
+
|
|
7
|
+
## How it works
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
steward discover # Find impactful issues worth your time
|
|
11
|
+
steward work cli/cli#9432 # Jump into a guided Claude Code session
|
|
12
|
+
steward submit # Review your changes and open a draft PR
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Discover.** Find interesting, important open-source projects that actually need help. Token Steward uses the GitHub API and your curated registry to find open issues, then scores them by impact and feasibility. You see the ones where your contribution will matter most. Pick one and go.
|
|
16
|
+
|
|
17
|
+
**Propose.** For larger issues, Claude analyzes the codebase and posts a proposal comment on the issue before writing any code. The maintainer can approve, suggest changes, or decline — so you don't burn tokens on an approach they'd reject. This happens automatically for issues estimated above 30k tokens (configurable via `propose_first` in your policy).
|
|
18
|
+
|
|
19
|
+
**Work.** Solve real issues alongside Claude Code. Token Steward sets up everything (forks the repo, creates a branch, pulls in the issue details) then drops you into a Claude Code session with full context already loaded. Just ask Claude to get started. It already knows the issue, the codebase, and what needs to happen.
|
|
20
|
+
|
|
21
|
+
**Submit.** You're the human in the loop. Review the changes, run the tests, and when you're satisfied, submit quality code to a project that needs it. Token Steward pushes your branch and opens a draft PR. Safe to run multiple times.
|
|
22
|
+
|
|
23
|
+
## Setup
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
git clone <repo-url> token-steward && cd token-steward
|
|
27
|
+
nvm install 22 && nvm use 22
|
|
28
|
+
npm install && npm run setup
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`steward init` checks your environment, walks you through policy config, builds the project, and links the CLI globally. After that, `steward discover` is all you need.
|
|
32
|
+
|
|
33
|
+
Already set up? Run `steward init --check` to verify prerequisites without changing anything.
|
|
34
|
+
|
|
35
|
+
## Configuration
|
|
36
|
+
|
|
37
|
+
**`config/policy.yaml`** controls how and when you contribute:
|
|
38
|
+
|
|
39
|
+
```yaml
|
|
40
|
+
weekly_target_tokens: 500000
|
|
41
|
+
weekly_min_reserve_tokens: 25000
|
|
42
|
+
|
|
43
|
+
schedule:
|
|
44
|
+
- day: FRI
|
|
45
|
+
start: "18:00"
|
|
46
|
+
end: "23:59"
|
|
47
|
+
- day: SAT
|
|
48
|
+
start: "09:00"
|
|
49
|
+
end: "23:59"
|
|
50
|
+
|
|
51
|
+
filters:
|
|
52
|
+
categories_allow: [developer-tools, documentation, security, ai-ml]
|
|
53
|
+
min_confidence: 0.40
|
|
54
|
+
|
|
55
|
+
limits:
|
|
56
|
+
max_concurrency: 2
|
|
57
|
+
max_tokens_per_run: 60000
|
|
58
|
+
max_runs_per_day: 6
|
|
59
|
+
|
|
60
|
+
# auto = propose first for issues >30k tokens
|
|
61
|
+
# always = always propose before coding
|
|
62
|
+
# never = skip straight to implementation
|
|
63
|
+
propose_first: auto
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**`config/registry.yaml`** is your list of projects you want to contribute to. Each entry specifies which issue labels to look for:
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
repositories:
|
|
70
|
+
- slug: cli/cli
|
|
71
|
+
name: GitHub CLI
|
|
72
|
+
category: developer-tools
|
|
73
|
+
tags: [cli, go, github]
|
|
74
|
+
issue_labels: [good first issue, help wanted]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## How issues are scored
|
|
78
|
+
|
|
79
|
+
Token Steward ranks issues so you spend time on the ones that matter. Each issue is scored across four dimensions:
|
|
80
|
+
|
|
81
|
+
| Dimension | Weight | What it looks at |
|
|
82
|
+
|-------------|--------|------------------|
|
|
83
|
+
| Reach | 20% | Reactions, comments, repo stars |
|
|
84
|
+
| Impact | 25% | Bug vs feature, maintainer engagement, category |
|
|
85
|
+
| Confidence | 30% | LLM receptivity, approachability labels, CI, CONTRIBUTING.md |
|
|
86
|
+
| Effort | 25% | Issue age, complexity labels, token budget fit |
|
|
87
|
+
|
|
88
|
+
## Other commands
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
steward init # Setup wizard (prereqs, config, build)
|
|
92
|
+
steward init --check # Verify prerequisites only
|
|
93
|
+
steward status # Show current state
|
|
94
|
+
steward usage # Check token budget
|
|
95
|
+
steward runs # List recent contributions
|
|
96
|
+
steward stats # Show contribution statistics
|
|
97
|
+
steward cancel <id> # Cancel a run
|
|
98
|
+
steward clean # Remove workspace clones to free disk space
|
|
99
|
+
steward export # Export registry and scored issues as JSON
|
|
100
|
+
steward pause # Pause autopilot
|
|
101
|
+
steward resume # Resume autopilot
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Roadmap
|
|
105
|
+
|
|
106
|
+
- **Public leaderboard.** Track contributions across Token Steward users. Issues resolved, PRs merged, tokens donated. See who's making the biggest impact.
|
|
107
|
+
- **Shared registry.** A registry service that maintainers can submit their projects to directly, so contributors always have fresh work to pick from.
|
|
108
|
+
- **PR outcome tracking.** Follow up on submitted PRs to measure merge rates and contribution quality over time.
|
|
109
|
+
- **Multi-provider support.** Extend beyond Claude Code to other AI tools with token or credit systems.
|
|
110
|
+
- **Team mode.** Coordinate across multiple contributors to avoid duplicate work on the same issues.
|
|
111
|
+
|
|
112
|
+
## Development
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npm run dev # Run via tsx (no build step)
|
|
116
|
+
npm test # Run all tests (vitest)
|
|
117
|
+
npm run build # Compile TypeScript
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## License
|
|
121
|
+
|
|
122
|
+
MIT
|
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
# Token Steward Local Registry
|
|
2
|
+
# Curated repos where contributions are welcome.
|
|
3
|
+
# Each entry specifies which issue labels to scan for eligible work.
|
|
4
|
+
|
|
5
|
+
repositories:
|
|
6
|
+
# --- Documentation & Education ---
|
|
7
|
+
- slug: TheOdinProject/curriculum
|
|
8
|
+
name: The Odin Project Curriculum
|
|
9
|
+
description: Open-source web development curriculum.
|
|
10
|
+
category: documentation
|
|
11
|
+
tags: [education, web, curriculum]
|
|
12
|
+
issue_labels: [good first issue, help wanted]
|
|
13
|
+
|
|
14
|
+
- slug: mdn/content
|
|
15
|
+
name: MDN Web Docs
|
|
16
|
+
description: Source for MDN Web Docs content.
|
|
17
|
+
category: documentation
|
|
18
|
+
tags: [documentation, web, mdn]
|
|
19
|
+
issue_labels: [good first issue, help wanted, content]
|
|
20
|
+
|
|
21
|
+
- slug: tldr-pages/tldr
|
|
22
|
+
name: tldr-pages
|
|
23
|
+
description: Collaborative cheatsheets for console commands.
|
|
24
|
+
category: documentation
|
|
25
|
+
tags: [documentation, cli, reference]
|
|
26
|
+
issue_labels: [good first issue, help wanted]
|
|
27
|
+
|
|
28
|
+
# --- Developer Tools (TypeScript / JavaScript) ---
|
|
29
|
+
- slug: biomejs/biome
|
|
30
|
+
name: Biome
|
|
31
|
+
description: Fast formatter and linter for JS/TS/JSON/CSS.
|
|
32
|
+
category: developer-tools
|
|
33
|
+
tags: [rust, linter, formatter, javascript]
|
|
34
|
+
issue_labels: [good first issue, help wanted, easy]
|
|
35
|
+
|
|
36
|
+
- slug: hoppscotch/hoppscotch
|
|
37
|
+
name: Hoppscotch
|
|
38
|
+
description: Open-source API development ecosystem.
|
|
39
|
+
category: developer-tools
|
|
40
|
+
tags: [typescript, api, vue]
|
|
41
|
+
issue_labels: [good first issue, help wanted]
|
|
42
|
+
|
|
43
|
+
- slug: colinhacks/zod
|
|
44
|
+
name: Zod
|
|
45
|
+
description: TypeScript-first schema validation.
|
|
46
|
+
category: developer-tools
|
|
47
|
+
tags: [typescript, validation, schema]
|
|
48
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
49
|
+
|
|
50
|
+
- slug: drizzle-team/drizzle-orm
|
|
51
|
+
name: Drizzle ORM
|
|
52
|
+
description: TypeScript ORM for SQL databases.
|
|
53
|
+
category: developer-tools
|
|
54
|
+
tags: [typescript, orm, database]
|
|
55
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
56
|
+
|
|
57
|
+
# --- Developer Tools (Python) ---
|
|
58
|
+
- slug: astral-sh/ruff
|
|
59
|
+
name: Ruff
|
|
60
|
+
description: Extremely fast Python linter and formatter.
|
|
61
|
+
category: developer-tools
|
|
62
|
+
tags: [python, rust, linter]
|
|
63
|
+
issue_labels: [good first issue, help wanted]
|
|
64
|
+
|
|
65
|
+
- slug: pydantic/pydantic
|
|
66
|
+
name: Pydantic
|
|
67
|
+
description: Data validation using Python type annotations.
|
|
68
|
+
category: developer-tools
|
|
69
|
+
tags: [python, validation, typing]
|
|
70
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
71
|
+
|
|
72
|
+
- slug: tiangolo/fastapi
|
|
73
|
+
name: FastAPI
|
|
74
|
+
description: Modern, fast web framework for building APIs with Python.
|
|
75
|
+
category: developer-tools
|
|
76
|
+
tags: [python, api, web]
|
|
77
|
+
issue_labels: [good first issue, help wanted]
|
|
78
|
+
|
|
79
|
+
- slug: encode/httpx
|
|
80
|
+
name: HTTPX
|
|
81
|
+
description: Fully featured HTTP client for Python 3.
|
|
82
|
+
category: developer-tools
|
|
83
|
+
tags: [python, http, async]
|
|
84
|
+
issue_labels: [good first issue, help wanted]
|
|
85
|
+
|
|
86
|
+
# --- Developer Tools (Go) ---
|
|
87
|
+
- slug: cli/cli
|
|
88
|
+
name: GitHub CLI
|
|
89
|
+
description: GitHub's official command line tool.
|
|
90
|
+
category: developer-tools
|
|
91
|
+
tags: [cli, go, github]
|
|
92
|
+
issue_labels: [good first issue, help wanted]
|
|
93
|
+
|
|
94
|
+
- slug: charmbracelet/bubbletea
|
|
95
|
+
name: Bubble Tea
|
|
96
|
+
description: TUI framework for Go.
|
|
97
|
+
category: developer-tools
|
|
98
|
+
tags: [go, tui, cli]
|
|
99
|
+
issue_labels: [good first issue, help wanted]
|
|
100
|
+
|
|
101
|
+
- slug: junegunn/fzf
|
|
102
|
+
name: fzf
|
|
103
|
+
description: Command-line fuzzy finder.
|
|
104
|
+
category: developer-tools
|
|
105
|
+
tags: [go, cli, search]
|
|
106
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
107
|
+
|
|
108
|
+
# --- Developer Tools (Rust) ---
|
|
109
|
+
- slug: nushell/nushell
|
|
110
|
+
name: Nushell
|
|
111
|
+
description: A new type of shell with structured data.
|
|
112
|
+
category: developer-tools
|
|
113
|
+
tags: [shell, rust, cli]
|
|
114
|
+
issue_labels: [good-first-issue, help-wanted, easy]
|
|
115
|
+
|
|
116
|
+
- slug: BurntSushi/ripgrep
|
|
117
|
+
name: ripgrep
|
|
118
|
+
description: Recursively search directories for a regex pattern.
|
|
119
|
+
category: developer-tools
|
|
120
|
+
tags: [rust, cli, search]
|
|
121
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
122
|
+
|
|
123
|
+
- slug: sharkdp/bat
|
|
124
|
+
name: bat
|
|
125
|
+
description: A cat clone with syntax highlighting and Git integration.
|
|
126
|
+
category: developer-tools
|
|
127
|
+
tags: [rust, cli, terminal]
|
|
128
|
+
issue_labels: [good first issue, help wanted]
|
|
129
|
+
|
|
130
|
+
- slug: sharkdp/fd
|
|
131
|
+
name: fd
|
|
132
|
+
description: A simple, fast alternative to find.
|
|
133
|
+
category: developer-tools
|
|
134
|
+
tags: [rust, cli, search]
|
|
135
|
+
issue_labels: [good first issue, help wanted]
|
|
136
|
+
|
|
137
|
+
# --- AI / ML ---
|
|
138
|
+
- slug: langgenius/dify
|
|
139
|
+
name: Dify
|
|
140
|
+
description: Open-source LLM app development platform.
|
|
141
|
+
category: ai-ml
|
|
142
|
+
tags: [llm, python, platform]
|
|
143
|
+
issue_labels: [good first issue, help wanted]
|
|
144
|
+
|
|
145
|
+
- slug: vllm-project/vllm
|
|
146
|
+
name: vLLM
|
|
147
|
+
description: High-throughput LLM serving engine.
|
|
148
|
+
category: ai-ml
|
|
149
|
+
tags: [llm, python, serving, gpu]
|
|
150
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
151
|
+
|
|
152
|
+
- slug: langchain-ai/langchain
|
|
153
|
+
name: LangChain
|
|
154
|
+
description: Framework for building applications with LLMs.
|
|
155
|
+
category: ai-ml
|
|
156
|
+
tags: [llm, python, agents, rag]
|
|
157
|
+
issue_labels: [good first issue, help wanted]
|
|
158
|
+
|
|
159
|
+
- slug: run-llama/llama_index
|
|
160
|
+
name: LlamaIndex
|
|
161
|
+
description: Data framework for LLM applications.
|
|
162
|
+
category: ai-ml
|
|
163
|
+
tags: [llm, python, rag, indexing]
|
|
164
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
165
|
+
|
|
166
|
+
- slug: ollama/ollama
|
|
167
|
+
name: Ollama
|
|
168
|
+
description: Run LLMs locally with a simple CLI.
|
|
169
|
+
category: ai-ml
|
|
170
|
+
tags: [llm, go, local, cli]
|
|
171
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
172
|
+
|
|
173
|
+
- slug: open-webui/open-webui
|
|
174
|
+
name: Open WebUI
|
|
175
|
+
description: Feature-rich chat interface for LLMs.
|
|
176
|
+
category: ai-ml
|
|
177
|
+
tags: [llm, python, typescript, ui]
|
|
178
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
179
|
+
|
|
180
|
+
- slug: huggingface/transformers
|
|
181
|
+
name: Hugging Face Transformers
|
|
182
|
+
description: State-of-the-art ML model library for PyTorch, TensorFlow, and JAX.
|
|
183
|
+
category: ai-ml
|
|
184
|
+
tags: [llm, python, models, ml]
|
|
185
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
186
|
+
|
|
187
|
+
- slug: microsoft/autogen
|
|
188
|
+
name: AutoGen
|
|
189
|
+
description: Multi-agent conversation framework.
|
|
190
|
+
category: ai-ml
|
|
191
|
+
tags: [agents, python, multi-agent]
|
|
192
|
+
issue_labels: [good first issue, help wanted]
|
|
193
|
+
|
|
194
|
+
- slug: browser-use/browser-use
|
|
195
|
+
name: Browser Use
|
|
196
|
+
description: Browser automation for AI agents.
|
|
197
|
+
category: ai-ml
|
|
198
|
+
tags: [agents, python, browser, automation]
|
|
199
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
200
|
+
|
|
201
|
+
- slug: mlflow/mlflow
|
|
202
|
+
name: MLflow
|
|
203
|
+
description: Open-source MLOps platform for the ML lifecycle.
|
|
204
|
+
category: ai-ml
|
|
205
|
+
tags: [mlops, python, tracking, deployment]
|
|
206
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
207
|
+
|
|
208
|
+
- slug: optuna/optuna
|
|
209
|
+
name: Optuna
|
|
210
|
+
description: Hyperparameter optimization framework.
|
|
211
|
+
category: ai-ml
|
|
212
|
+
tags: [ml, python, optimization]
|
|
213
|
+
issue_labels: [good first issue, help wanted]
|
|
214
|
+
|
|
215
|
+
- slug: langflow-ai/langflow
|
|
216
|
+
name: Langflow
|
|
217
|
+
description: Visual framework for building multi-agent AI applications.
|
|
218
|
+
category: ai-ml
|
|
219
|
+
tags: [agents, python, typescript, visual]
|
|
220
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
221
|
+
|
|
222
|
+
# --- Security ---
|
|
223
|
+
- slug: OWASP/CheatSheetSeries
|
|
224
|
+
name: OWASP Cheat Sheet Series
|
|
225
|
+
description: Security cheat sheets for developers.
|
|
226
|
+
category: security
|
|
227
|
+
tags: [security, documentation, owasp]
|
|
228
|
+
issue_labels: [good first issue, help wanted]
|
|
229
|
+
|
|
230
|
+
# --- Infrastructure ---
|
|
231
|
+
- slug: containers/podman
|
|
232
|
+
name: Podman
|
|
233
|
+
description: Daemonless container engine for OCI containers.
|
|
234
|
+
category: developer-tools
|
|
235
|
+
tags: [containers, go, linux]
|
|
236
|
+
issue_labels: [good-first-issue, help wanted]
|
|
237
|
+
|
|
238
|
+
- slug: traefik/traefik
|
|
239
|
+
name: Traefik
|
|
240
|
+
description: Modern reverse proxy and load balancer.
|
|
241
|
+
category: developer-tools
|
|
242
|
+
tags: [proxy, go, cloud-native]
|
|
243
|
+
issue_labels: [good first issue, help wanted]
|
|
244
|
+
|
|
245
|
+
# --- Developer Tools (additions) ---
|
|
246
|
+
- slug: continuedev/continue
|
|
247
|
+
name: Continue
|
|
248
|
+
description: AI code assistant extension for VS Code and JetBrains.
|
|
249
|
+
category: developer-tools
|
|
250
|
+
tags: [typescript, ide, ai, extension]
|
|
251
|
+
issue_labels: [good first issue, help wanted]
|
|
252
|
+
|
|
253
|
+
- slug: n8n-io/n8n
|
|
254
|
+
name: n8n
|
|
255
|
+
description: AI-native workflow automation with 400+ integrations.
|
|
256
|
+
category: developer-tools
|
|
257
|
+
tags: [typescript, automation, workflow, ai]
|
|
258
|
+
issue_labels: [good first issue, help wanted]
|
|
259
|
+
|
|
260
|
+
- slug: iterative/dvc
|
|
261
|
+
name: DVC
|
|
262
|
+
description: Git for data - version control for ML datasets and pipelines.
|
|
263
|
+
category: developer-tools
|
|
264
|
+
tags: [python, data, versioning, ml]
|
|
265
|
+
issue_labels: [good first issue, help wanted]
|
|
266
|
+
|
|
267
|
+
- slug: PostHog/posthog
|
|
268
|
+
name: PostHog
|
|
269
|
+
description: Open-source product analytics with LLM usage tracking.
|
|
270
|
+
category: developer-tools
|
|
271
|
+
tags: [python, typescript, analytics, ai]
|
|
272
|
+
issue_labels: [good first issue, help wanted]
|
|
273
|
+
|
|
274
|
+
# --- AI / ML (additions) ---
|
|
275
|
+
- slug: crewAIInc/crewAI
|
|
276
|
+
name: CrewAI
|
|
277
|
+
description: Framework for orchestrating role-playing autonomous AI agents.
|
|
278
|
+
category: ai-ml
|
|
279
|
+
tags: [agents, python, multi-agent, orchestration]
|
|
280
|
+
issue_labels: [good first issue, help wanted]
|
|
281
|
+
|
|
282
|
+
- slug: langchain-ai/langgraph
|
|
283
|
+
name: LangGraph
|
|
284
|
+
description: Stateful multi-actor orchestration with cyclic flows for LLM agents.
|
|
285
|
+
category: ai-ml
|
|
286
|
+
tags: [agents, python, graphs, langchain]
|
|
287
|
+
issue_labels: [good first issue, help wanted]
|
|
288
|
+
|
|
289
|
+
- slug: All-Hands-AI/OpenHands
|
|
290
|
+
name: OpenHands
|
|
291
|
+
description: Autonomous AI software engineer with sandboxed execution.
|
|
292
|
+
category: ai-ml
|
|
293
|
+
tags: [agents, python, typescript, coding]
|
|
294
|
+
issue_labels: [good first issue, help wanted]
|
|
295
|
+
|
|
296
|
+
- slug: pydantic/pydantic-ai
|
|
297
|
+
name: Pydantic AI
|
|
298
|
+
description: Type-safe agent framework by the Pydantic team.
|
|
299
|
+
category: ai-ml
|
|
300
|
+
tags: [agents, python, typing, validation]
|
|
301
|
+
issue_labels: [good first issue, help wanted]
|
|
302
|
+
|
|
303
|
+
- slug: stanfordnlp/dspy
|
|
304
|
+
name: DSPy
|
|
305
|
+
description: Programming framework that compiles declarative LLM modules into optimized prompts.
|
|
306
|
+
category: ai-ml
|
|
307
|
+
tags: [llm, python, prompting, optimization]
|
|
308
|
+
issue_labels: [good first issue, help wanted]
|
|
309
|
+
|
|
310
|
+
- slug: BerriAI/litellm
|
|
311
|
+
name: LiteLLM
|
|
312
|
+
description: Universal LLM API gateway supporting 100+ providers.
|
|
313
|
+
category: ai-ml
|
|
314
|
+
tags: [llm, python, gateway, api]
|
|
315
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
316
|
+
|
|
317
|
+
- slug: unclecode/crawl4ai
|
|
318
|
+
name: Crawl4AI
|
|
319
|
+
description: LLM-friendly web crawler that outputs clean Markdown for RAG.
|
|
320
|
+
category: ai-ml
|
|
321
|
+
tags: [python, rag, scraping, data]
|
|
322
|
+
issue_labels: [good first issue, help wanted]
|
|
323
|
+
|
|
324
|
+
- slug: Aider-AI/aider
|
|
325
|
+
name: Aider
|
|
326
|
+
description: Terminal-based AI pair programmer with repository map feature.
|
|
327
|
+
category: ai-ml
|
|
328
|
+
tags: [python, coding, cli, agents]
|
|
329
|
+
issue_labels: [good first issue, help wanted, bug]
|
|
330
|
+
|
|
331
|
+
- slug: explodinggradients/ragas
|
|
332
|
+
name: RAGAS
|
|
333
|
+
description: Evaluation framework for Retrieval Augmented Generation pipelines.
|
|
334
|
+
category: ai-ml
|
|
335
|
+
tags: [python, rag, evaluation, testing]
|
|
336
|
+
issue_labels: [good first issue, help wanted]
|
|
337
|
+
|
|
338
|
+
- slug: confident-ai/deepeval
|
|
339
|
+
name: DeepEval
|
|
340
|
+
description: Unit testing framework for LLMs - Pytest for AI.
|
|
341
|
+
category: ai-ml
|
|
342
|
+
tags: [python, testing, evaluation, llm]
|
|
343
|
+
issue_labels: [good first issue, help wanted]
|
|
344
|
+
|
|
345
|
+
- slug: guardrails-ai/guardrails
|
|
346
|
+
name: Guardrails AI
|
|
347
|
+
description: Validation and reliability framework for LLM outputs.
|
|
348
|
+
category: ai-ml
|
|
349
|
+
tags: [python, validation, safety, llm]
|
|
350
|
+
issue_labels: [good first issue, help wanted]
|
|
351
|
+
|
|
352
|
+
- slug: chroma-core/chroma
|
|
353
|
+
name: Chroma
|
|
354
|
+
description: AI-native embedding database for RAG applications.
|
|
355
|
+
category: ai-ml
|
|
356
|
+
tags: [python, vector-db, rag, embeddings]
|
|
357
|
+
issue_labels: [good first issue, help wanted]
|
|
358
|
+
|
|
359
|
+
- slug: infiniflow/ragflow
|
|
360
|
+
name: RAGFlow
|
|
361
|
+
description: RAG engine with deep document understanding and layout parsing.
|
|
362
|
+
category: ai-ml
|
|
363
|
+
tags: [python, rag, document, nlp]
|
|
364
|
+
issue_labels: [good first issue, help wanted]
|
|
365
|
+
|
|
366
|
+
- slug: HumanSignal/label-studio
|
|
367
|
+
name: Label Studio
|
|
368
|
+
description: Multi-type data labeling and annotation tool.
|
|
369
|
+
category: ai-ml
|
|
370
|
+
tags: [python, labeling, annotation, data]
|
|
371
|
+
issue_labels: [good first issue, help wanted]
|
|
372
|
+
|
|
373
|
+
- slug: bentoml/BentoML
|
|
374
|
+
name: BentoML
|
|
375
|
+
description: Unified model serving framework for production APIs.
|
|
376
|
+
category: ai-ml
|
|
377
|
+
tags: [python, serving, deployment, mlops]
|
|
378
|
+
issue_labels: [good first issue, help wanted]
|
|
379
|
+
|
|
380
|
+
- slug: lobehub/lobe-chat
|
|
381
|
+
name: Lobe Chat
|
|
382
|
+
description: Agent UI framework with Model Context Protocol support.
|
|
383
|
+
category: ai-ml
|
|
384
|
+
tags: [typescript, ui, agents, mcp]
|
|
385
|
+
issue_labels: [good first issue, help wanted]
|
|
386
|
+
|
|
387
|
+
- slug: FlowiseAI/Flowise
|
|
388
|
+
name: Flowise
|
|
389
|
+
description: Drag-and-drop LLM workflow builder for the JavaScript ecosystem.
|
|
390
|
+
category: ai-ml
|
|
391
|
+
tags: [typescript, visual, workflow, langchain]
|
|
392
|
+
issue_labels: [good first issue, help wanted]
|
|
393
|
+
|
|
394
|
+
- slug: Arize-AI/phoenix
|
|
395
|
+
name: Arize Phoenix
|
|
396
|
+
description: LLM observability and tracing for AI application debugging.
|
|
397
|
+
category: ai-ml
|
|
398
|
+
tags: [python, observability, tracing, llm]
|
|
399
|
+
issue_labels: [good first issue, help wanted]
|
|
400
|
+
|
|
401
|
+
- slug: mendableai/firecrawl
|
|
402
|
+
name: Firecrawl
|
|
403
|
+
description: Web scraper for LLMs that handles dynamic JavaScript rendering.
|
|
404
|
+
category: ai-ml
|
|
405
|
+
tags: [typescript, scraping, rag, data]
|
|
406
|
+
issue_labels: [good first issue, help wanted]
|
|
407
|
+
|
|
408
|
+
- slug: Agenta-AI/agenta
|
|
409
|
+
name: Agenta
|
|
410
|
+
description: Open-source LLMOps platform for prompt management and evaluation.
|
|
411
|
+
category: ai-ml
|
|
412
|
+
tags: [python, llmops, evaluation, prompts]
|
|
413
|
+
issue_labels: [good first issue, help wanted]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit_log.d.ts","sourceRoot":"","sources":["../src/audit_log.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9C,wBAAgB,SAAS,IAAI,IAAI,CAAC,MAAM,CAUvC;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,EAC1B,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,IAAI,CAUN"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { appendFileSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import pino from "pino";
|
|
4
|
+
const STATE_DIR = "state";
|
|
5
|
+
const EVENTS_FILE = `${STATE_DIR}/events.jsonl`;
|
|
6
|
+
let logger = null;
|
|
7
|
+
export function getLogger() {
|
|
8
|
+
if (!logger) {
|
|
9
|
+
logger = pino({
|
|
10
|
+
transport: {
|
|
11
|
+
target: "pino-pretty",
|
|
12
|
+
options: { colorize: true, translateTime: "SYS:HH:MM:ss", destination: 2 },
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return logger;
|
|
17
|
+
}
|
|
18
|
+
export function emitEvent(event, data = {}) {
|
|
19
|
+
const entry = {
|
|
20
|
+
timestamp: new Date().toISOString(),
|
|
21
|
+
event,
|
|
22
|
+
data,
|
|
23
|
+
};
|
|
24
|
+
mkdirSync(dirname(EVENTS_FILE), { recursive: true });
|
|
25
|
+
appendFileSync(EVENTS_FILE, JSON.stringify(entry) + "\n");
|
|
26
|
+
getLogger().info({ event, ...data }, event);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=audit_log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit_log.js","sourceRoot":"","sources":["../src/audit_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,SAAS,GAAG,OAAO,CAAC;AAC1B,MAAM,WAAW,GAAG,GAAG,SAAS,eAAe,CAAC;AAEhD,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,CAAC;YACZ,SAAS,EAAE;gBACT,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,EAAE;aAC3E;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAA0B,EAC1B,OAAgC,EAAE;IAElC,MAAM,KAAK,GAAe;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,IAAI;KACL,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1D,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|