Skip to content

Commit c198640

Browse files
authored
Merge pull request #360 from stabilitydao/upd
πŸ“¦πŸ€ OS building
2 parents 474e6b9 + 3516a80 commit c198640

File tree

8 files changed

+979
-522
lines changed

8 files changed

+979
-522
lines changed

β€Žpackage.jsonβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@stabilitydao/stability",
3-
"version": "0.53.0",
3+
"version": "0.54.0",
44
"description": "Stability Operating System Library",
55
"main": "out/index.js",
66
"types": "out/index.d.ts",

β€Žsrc/activity/builder.tsβ€Ž

Lines changed: 90 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,110 @@
1+
/**
2+
BUILDER activity.
3+
BUILDER is a team of engineers managed by DAOs.
4+
*/
5+
16
import { UnitComponentCategory } from "../os";
27

3-
export interface ILabel {
4-
name: string;
5-
description: string;
6-
color: string;
7-
}
8+
/**
9+
BUILDER data.
810
9-
export interface IGithubUser {
10-
username: string;
11-
img: string;
11+
@alpha
12+
@interface
13+
*/
14+
export interface IBuilderActivity {
15+
/** Safe multisig account of dev team */
16+
multisig: string[];
17+
/** Tracked Github repositories where development going on */
18+
repo: string[];
19+
/** Engineers */
20+
workers: IWorker[];
21+
/** Conveyors of unit components. */
22+
conveyors: IConveyor[];
23+
/** Pools of development tasks. */
24+
pools: IPool[];
25+
/** Total salaries paid */
26+
burnRate: {
27+
/** Period of burning. Can be 1 month or any other. */
28+
period: string;
29+
/** How much USD was spent during period. */
30+
usdAmount: number;
31+
}[];
1232
}
1333

14-
export interface IIssue {
15-
repo: string;
16-
id: number;
17-
title: string;
18-
labels: ILabel[];
19-
assignees: IGithubUser;
20-
body?: string;
21-
}
34+
/**
35+
Engineer hired by a DAO. Can be human or machine (AI agent).
2236
23-
export interface IBuildersMemory {
24-
[tokenSymbol: string]: {
25-
openIssues: {
26-
total: { [repo: string]: number };
27-
pools: { [poolName: string]: IIssue[] };
28-
};
29-
conveyors: {
30-
[conveyorName: string]: {
31-
[taskId: string]: {
32-
[stepName: string]: IIssue[];
33-
};
34-
};
35-
};
36-
};
37+
@alpha
38+
@interface
39+
*/
40+
export interface IWorker {
41+
/** Github username */
42+
github: string;
43+
/** USD hourly rate */
44+
rate?: number;
45+
/** USD xTOKEN hourly rate */
46+
xRate?: number;
3747
}
3848

3949
/**
40-
* Pool of development tasks.
50+
* Pool of development tasks. A set of open github issues.
4151
* @interface
4252
*/
4353
export interface IPool {
54+
/** Pool is always linked to a set of units. */
4455
unitIds: string[];
56+
/** Short name of the pool. */
4557
name: string;
46-
label: ILabel;
47-
productTypes?: string[];
58+
/** Label on github repositories identifying relation to the pool. */
59+
label: IGithubLabel;
60+
/** What need to be done by the pool? */
61+
description?: string;
62+
/** Each solved task in the pool must have an artifact of specified type. */
4863
artifacts?: ArtifactType[];
4964
}
5065

66+
/**
67+
* Conveyor belt for building a components for units.
68+
* @interface
69+
*/
5170
export interface IConveyor {
71+
/** Linked unit */
5272
unitId: string;
5373
componentCategory: UnitComponentCategory;
5474
name: string;
5575
symbol: string;
5676
type: string;
57-
label: ILabel;
77+
label: IGithubLabel;
5878
description: string;
5979
issueTitleTemplate: string;
6080
taskIdIs: string;
6181
steps: IConveyorStep[];
6282
}
6383

84+
export interface IGithubLabel {
85+
name: string;
86+
description: string;
87+
color: string;
88+
}
89+
90+
export interface IGithubUser {
91+
username: string;
92+
img: string;
93+
}
94+
95+
export interface IGithubIssue {
96+
repo: string;
97+
id: number;
98+
title: string;
99+
labels: IGithubLabel[];
100+
assignees: IGithubUser;
101+
body?: string;
102+
}
103+
64104
export const enum ArtifactType {
65-
LIBRARY_RELEASE_TAG = "Library release tag",
66-
DEPLOYMENT_ADDRESSES = "Deployment addresses",
67105
URL_UI = "URL to UI page",
106+
URL_RELEASE = "Github package release link",
107+
DEPLOYMENT_ADDRESSES = "Deployment addresses",
68108
URL_API = "API endpoint",
69109
URL_STATIC = "Static content URL",
70110
CONTRACT_ADDRESS = "Address of deployed contract",
@@ -84,18 +124,18 @@ export interface IConveyorStep {
84124
guide?: string;
85125
}
86126

87-
export interface IBuilderActivity {
88-
/** Safe multisig account of dev team */
89-
multisig: string[];
90-
/** Tracked Github repositories where development going on */
91-
repo: string[];
92-
burnRate: {
93-
period: string;
94-
usdAmount: number;
95-
}[];
96-
workers: string[];
97-
/** Conveyors of unit components. */
98-
conveyors: IConveyor[];
99-
/** Pools of development tasks. */
100-
pools: IPool[];
127+
export interface IBuildersMemory {
128+
[tokenSymbol: string]: {
129+
openIssues: {
130+
total: { [repo: string]: number };
131+
pools: { [poolName: string]: IGithubIssue[] };
132+
};
133+
conveyors: {
134+
[conveyorName: string]: {
135+
[taskId: string]: {
136+
[stepName: string]: IGithubIssue[];
137+
};
138+
};
139+
};
140+
};
101141
}

0 commit comments

Comments
Β (0)