chore: update pnpm lockfile and workspace configuration

- Updated package versions in pnpm-lock.yaml, including rollup and sass dependencies.
- Added new 'landing' package to pnpm-workspace.yaml.
- Enhanced README with additional images for better visual representation.
This commit is contained in:
iliya 2026-03-23 16:06:43 +02:00
parent ad1741f05e
commit b24d90d799
4 changed files with 7375 additions and 88 deletions

View file

@ -25,12 +25,20 @@
<p align="center">
<sub>100% free, open source. No API keys. No configuration. Runs entirely locally. Not just coding agents.</sub>
</p>
<table>
<tr>
<td width="50%">
https://github.com/user-attachments/assets/9cae73cd-7f42-46e5-a8fb-ad6d41737ff8
</td>
<td width="50%">
https://github.com/user-attachments/assets/35e27989-726d-4059-8662-bae610e46b42
</td>
</tr>
</table>
<br />

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,6 @@
packages:
- agent-teams-controller
- mcp-server
- landing
ignoredBuiltDependencies:
- esbuild

View file

@ -246,6 +246,38 @@ describe('TeamMemberResolver', () => {
expect(bob?.currentTaskId).toBeNull();
});
it('merges inbox-derived "lead" alias into canonical "team-lead"', () => {
const resolver = new TeamMemberResolver();
const config: TeamConfig = {
name: 'Team',
members: [
{ name: 'team-lead', agentType: 'team-lead', role: 'lead' },
{ name: 'alice', agentType: 'general-purpose' },
],
};
// Teammates sometimes send messages to "lead" instead of "team-lead",
// creating a separate inbox file that the resolver picks up.
const inboxNames = ['team-lead', 'lead', 'alice'];
const members = resolver.resolveMembers(config, [], inboxNames, [], []);
const names = members.map((m) => m.name);
expect(names).toContain('team-lead');
expect(names).not.toContain('lead');
expect(names).toContain('alice');
});
it('keeps "lead" as a member when "team-lead" is not present', () => {
const resolver = new TeamMemberResolver();
const config: TeamConfig = {
name: 'Team',
members: [{ name: 'lead', agentType: 'team-lead', role: 'lead' }],
};
const members = resolver.resolveMembers(config, [], ['lead'], [], []);
const names = members.map((m) => m.name);
expect(names).toContain('lead');
});
it('clears currentTaskId when task status is completed', () => {
const resolver = new TeamMemberResolver();
const config: TeamConfig = {