1+ /**
2+ BUILDER activity.
3+ BUILDER is a team of engineers managed by DAOs.
4+ */
5+
16import { 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 */
4353export 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+ */
5170export 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+
64104export 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