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.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/index.js +8 -0
  4. 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
@@ -0,0 +1,8 @@
1
+ export function placeholder() {
2
+ return {
3
+ status: "placeholder",
4
+ message: "Loreli is under active development. This package reserves the name.",
5
+ };
6
+ }
7
+
8
+ export default placeholder;
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
+ }