loreli 0.0.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 +103 -0
- package/index.js +8 -0
- package/package.json +23 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Arnout Kazemier
|
|
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,103 @@
|
|
|
1
|
+
# Loreli
|
|
2
|
+
|
|
3
|
+
Loreli is an agentic system that uses the GitHub patterns we're familiar with for orchestration. Issues becomes actions for agents. Pull Requests are review tasks. Discussions are where plans are discussed and then raised as issues on approval. The system uses an antagonist style where OpenAI will always be checked by Antrophic, ensuring you get input from both models.
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
Active development. Expect breaking changes until the first stable release.
|
|
8
|
+
|
|
9
|
+
## Goals
|
|
10
|
+
|
|
11
|
+
- Use GitHub issues as the system's action queue
|
|
12
|
+
- Use pull requests as review tasks with explicit acceptance criteria
|
|
13
|
+
- Use discussions as planning and approval forums
|
|
14
|
+
- Maintain an antagonist style: every decision is checked by an opposing model
|
|
15
|
+
- Provide an MCP server to expose orchestration primitives to agents and tools
|
|
16
|
+
|
|
17
|
+
### Architecture Overview
|
|
18
|
+
|
|
19
|
+
- GitHub Repo (source of truth)
|
|
20
|
+
- Issues: actionable work items, one per task
|
|
21
|
+
- Discussions: planning, debates, and approval
|
|
22
|
+
- Pull Requests: review and acceptance gates
|
|
23
|
+
- MCP Server (orchestrator)
|
|
24
|
+
- Watches GitHub events (issues, PRs, discussions)
|
|
25
|
+
- Assigns tasks to agent runners
|
|
26
|
+
- Stores run state and artifacts
|
|
27
|
+
- Agent Runners
|
|
28
|
+
- Worker processes that perform tasks (coding, analysis, documentation)
|
|
29
|
+
- Must use the MCP server for all GitHub interactions
|
|
30
|
+
- Antagonist Pairing
|
|
31
|
+
- For every primary agent action, a secondary agent provides critique
|
|
32
|
+
- MCP server aggregates both and posts back to GitHub
|
|
33
|
+
|
|
34
|
+
### Workflow (Happy Path)
|
|
35
|
+
|
|
36
|
+
1. Planning happens in a GitHub Discussion.
|
|
37
|
+
2. When a plan is approved, each action item becomes an Issue.
|
|
38
|
+
3. The MCP server detects new issues and assigns them to agents.
|
|
39
|
+
4. The primary agent produces a proposal; the antagonist critiques it.
|
|
40
|
+
5. The MCP server posts both to the Issue and optionally creates a PR.
|
|
41
|
+
6. The PR is the review task; it links to the Issue and Discussion.
|
|
42
|
+
7. Reviewers approve or request changes; MCP server updates status.
|
|
43
|
+
|
|
44
|
+
### Core Components
|
|
45
|
+
|
|
46
|
+
#### MCP Server
|
|
47
|
+
|
|
48
|
+
Responsibilities:
|
|
49
|
+
- Subscribe to GitHub webhooks
|
|
50
|
+
- Maintain a task queue keyed by Issue/PR IDs
|
|
51
|
+
- Provide MCP methods for:
|
|
52
|
+
- `list_issues`, `get_issue`, `comment_issue`
|
|
53
|
+
- `create_pr`, `update_pr`, `request_review`
|
|
54
|
+
- `list_discussions`, `create_discussion`, `comment_discussion`
|
|
55
|
+
- `assign_agent`, `store_artifact`, `fetch_artifact`
|
|
56
|
+
- Enforce antagonist pairing
|
|
57
|
+
|
|
58
|
+
#### Issue Model
|
|
59
|
+
|
|
60
|
+
Each Issue should have:
|
|
61
|
+
- Title: actionable, specific
|
|
62
|
+
- Labels: `type/*`, `priority/*`, `status/*`
|
|
63
|
+
- Checklist: acceptance criteria
|
|
64
|
+
- Links: relevant Discussion and related PR
|
|
65
|
+
|
|
66
|
+
#### PR Model
|
|
67
|
+
|
|
68
|
+
Each PR should:
|
|
69
|
+
- Reference the Issue it resolves
|
|
70
|
+
- Include a summary, risks, and test plan
|
|
71
|
+
- Include a section for antagonist critique
|
|
72
|
+
|
|
73
|
+
### Antagonist Style
|
|
74
|
+
|
|
75
|
+
Every action must be checked by an opposing model:
|
|
76
|
+
- Primary agent: propose solution and implementation
|
|
77
|
+
- Antagonist agent: identify risks, missing tests, alternative approaches
|
|
78
|
+
- MCP server posts both as a paired response
|
|
79
|
+
- Issues and PRs are not marked complete without antagonist feedback
|
|
80
|
+
|
|
81
|
+
### Data and State
|
|
82
|
+
|
|
83
|
+
- GitHub is the canonical record of decisions and status
|
|
84
|
+
- MCP server stores ephemeral state (task queue, agent assignments)
|
|
85
|
+
- Artifacts (logs, intermediate outputs) stored in a simple object store
|
|
86
|
+
|
|
87
|
+
### Security and Access
|
|
88
|
+
|
|
89
|
+
- MCP server uses GitHub App authentication
|
|
90
|
+
- Principle of least privilege: read/write issues, PRs, discussions only
|
|
91
|
+
- All agent actions are logged and attributed in GitHub
|
|
92
|
+
|
|
93
|
+
### Initial Milestones
|
|
94
|
+
|
|
95
|
+
1. MCP server skeleton with GitHub webhook handling
|
|
96
|
+
2. Basic issue-to-agent assignment
|
|
97
|
+
3. Antagonist pairing and GitHub comments
|
|
98
|
+
4. PR creation and review loop
|
|
99
|
+
5. Stable operational docs and onboarding
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
MIT
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "loreli",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Loreli is an agentic system that uses the GitHub patterns we're familiar with for orchestration. Issues becomes actions for agents. Pull Requests are review tasks. Discussions are where plans are discussed and then raised as issues on approval. The system uses an antagonist style where OpenAI will always be checked by Antrophic, ensuring you get input from both models.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"loreli",
|
|
7
|
+
"github",
|
|
8
|
+
"agentic",
|
|
9
|
+
"system",
|
|
10
|
+
"orchestration"
|
|
11
|
+
],
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "github.com/3rd-Eden/loreli"
|
|
15
|
+
},
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"author": "Arnout Kazemier",
|
|
18
|
+
"type": "module",
|
|
19
|
+
"main": "index.js",
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
22
|
+
}
|
|
23
|
+
}
|