autonomous-agents 0.1.0 → 2.0.1
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/.turbo/turbo-build.log +5 -0
- package/CHANGELOG.md +9 -0
- package/README.md +260 -96
- package/dist/actions.d.ts +136 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +303 -0
- package/dist/actions.js.map +1 -0
- package/dist/agent.d.ts +49 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +452 -0
- package/dist/agent.js.map +1 -0
- package/dist/goals.d.ts +138 -0
- package/dist/goals.d.ts.map +1 -0
- package/dist/goals.js +342 -0
- package/dist/goals.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics.d.ts +245 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +436 -0
- package/dist/metrics.js.map +1 -0
- package/dist/role.d.ts +122 -0
- package/dist/role.d.ts.map +1 -0
- package/dist/role.js +393 -0
- package/dist/role.js.map +1 -0
- package/dist/team.d.ts +152 -0
- package/dist/team.d.ts.map +1 -0
- package/dist/team.js +347 -0
- package/dist/team.js.map +1 -0
- package/dist/types.d.ts +327 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +27 -36
- package/src/actions.ts +366 -0
- package/src/agent.ts +548 -0
- package/src/goals.ts +435 -0
- package/src/index.ts +135 -0
- package/src/metrics.ts +591 -0
- package/src/role.ts +422 -0
- package/src/team.ts +466 -0
- package/src/types.ts +356 -0
- package/test/actions.test.ts +522 -0
- package/test/agent.test.ts +490 -0
- package/test/goals.test.ts +570 -0
- package/test/metrics.test.ts +707 -0
- package/test/role.test.ts +423 -0
- package/test/team.test.ts +708 -0
- package/tsconfig.json +9 -0
package/dist/role.d.ts
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role - Define an agent or worker role
|
|
3
|
+
*
|
|
4
|
+
* Roles define the responsibilities, skills, permissions, and capabilities
|
|
5
|
+
* for agents or human workers within a digital workforce.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { Role as RoleType, AIFunctionDefinition } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Create a role definition
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { Role } from 'autonomous-agents'
|
|
16
|
+
*
|
|
17
|
+
* const productManager = Role({
|
|
18
|
+
* name: 'Product Manager',
|
|
19
|
+
* description: 'Responsible for product strategy, roadmap, and feature prioritization',
|
|
20
|
+
* skills: [
|
|
21
|
+
* 'product strategy',
|
|
22
|
+
* 'user research',
|
|
23
|
+
* 'roadmap planning',
|
|
24
|
+
* 'stakeholder management',
|
|
25
|
+
* 'data analysis',
|
|
26
|
+
* ],
|
|
27
|
+
* permissions: ['create:feature', 'update:roadmap', 'approve:requirements'],
|
|
28
|
+
* outputs: ['product briefs', 'roadmaps', 'user stories', 'requirements'],
|
|
29
|
+
* })
|
|
30
|
+
*
|
|
31
|
+
* const engineer = Role({
|
|
32
|
+
* name: 'Software Engineer',
|
|
33
|
+
* description: 'Designs, develops, and maintains software systems',
|
|
34
|
+
* skills: [
|
|
35
|
+
* 'software design',
|
|
36
|
+
* 'coding',
|
|
37
|
+
* 'testing',
|
|
38
|
+
* 'debugging',
|
|
39
|
+
* 'code review',
|
|
40
|
+
* ],
|
|
41
|
+
* permissions: ['read:code', 'write:code', 'deploy:staging'],
|
|
42
|
+
* tools: [
|
|
43
|
+
* { name: 'runTests', description: 'Run test suite', parameters: {}, handler: async () => {} },
|
|
44
|
+
* { name: 'deploy', description: 'Deploy to environment', parameters: {}, handler: async () => {} },
|
|
45
|
+
* ],
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function Role(config: {
|
|
50
|
+
name: string;
|
|
51
|
+
description: string;
|
|
52
|
+
skills: string[];
|
|
53
|
+
permissions?: string[];
|
|
54
|
+
tools?: AIFunctionDefinition[];
|
|
55
|
+
outputs?: string[];
|
|
56
|
+
}): RoleType;
|
|
57
|
+
/**
|
|
58
|
+
* Predefined common roles
|
|
59
|
+
*/
|
|
60
|
+
export declare const Roles: {
|
|
61
|
+
/**
|
|
62
|
+
* Product Manager role
|
|
63
|
+
*/
|
|
64
|
+
ProductManager: RoleType;
|
|
65
|
+
/**
|
|
66
|
+
* Software Engineer role
|
|
67
|
+
*/
|
|
68
|
+
SoftwareEngineer: RoleType;
|
|
69
|
+
/**
|
|
70
|
+
* Designer role
|
|
71
|
+
*/
|
|
72
|
+
Designer: RoleType;
|
|
73
|
+
/**
|
|
74
|
+
* Data Analyst role
|
|
75
|
+
*/
|
|
76
|
+
DataAnalyst: RoleType;
|
|
77
|
+
/**
|
|
78
|
+
* Content Writer role
|
|
79
|
+
*/
|
|
80
|
+
ContentWriter: RoleType;
|
|
81
|
+
/**
|
|
82
|
+
* Customer Support role
|
|
83
|
+
*/
|
|
84
|
+
CustomerSupport: RoleType;
|
|
85
|
+
/**
|
|
86
|
+
* Project Manager role
|
|
87
|
+
*/
|
|
88
|
+
ProjectManager: RoleType;
|
|
89
|
+
/**
|
|
90
|
+
* QA Engineer role
|
|
91
|
+
*/
|
|
92
|
+
QAEngineer: RoleType;
|
|
93
|
+
/**
|
|
94
|
+
* Marketing Manager role
|
|
95
|
+
*/
|
|
96
|
+
MarketingManager: RoleType;
|
|
97
|
+
/**
|
|
98
|
+
* DevOps Engineer role
|
|
99
|
+
*/
|
|
100
|
+
DevOpsEngineer: RoleType;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Check if a role has a specific permission
|
|
104
|
+
*/
|
|
105
|
+
export declare function hasPermission(role: RoleType, permission: string): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Check if a role has a specific skill
|
|
108
|
+
*/
|
|
109
|
+
export declare function hasSkill(role: RoleType, skill: string): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Get all permissions for a role
|
|
112
|
+
*/
|
|
113
|
+
export declare function getPermissions(role: RoleType): string[];
|
|
114
|
+
/**
|
|
115
|
+
* Get all skills for a role
|
|
116
|
+
*/
|
|
117
|
+
export declare function getSkills(role: RoleType): string[];
|
|
118
|
+
/**
|
|
119
|
+
* Merge multiple roles into a compound role
|
|
120
|
+
*/
|
|
121
|
+
export declare function mergeRoles(name: string, ...roles: RoleType[]): RoleType;
|
|
122
|
+
//# sourceMappingURL=role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../src/role.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,GAAG,QAAQ,CAaX;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB;;OAEG;;IA4BH;;OAEG;;IA4BH;;OAEG;;IA2BH;;OAEG;;IA0BH;;OAEG;;IA0BH;;OAEG;;IAyBH;;OAEG;;IA2BH;;OAEG;;IA0BH;;OAEG;;IA2BH;;OAEG;;CA0BJ,CAAA;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAK/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAuBvE"}
|
package/dist/role.js
ADDED
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role - Define an agent or worker role
|
|
3
|
+
*
|
|
4
|
+
* Roles define the responsibilities, skills, permissions, and capabilities
|
|
5
|
+
* for agents or human workers within a digital workforce.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Create a role definition
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Role } from 'autonomous-agents'
|
|
15
|
+
*
|
|
16
|
+
* const productManager = Role({
|
|
17
|
+
* name: 'Product Manager',
|
|
18
|
+
* description: 'Responsible for product strategy, roadmap, and feature prioritization',
|
|
19
|
+
* skills: [
|
|
20
|
+
* 'product strategy',
|
|
21
|
+
* 'user research',
|
|
22
|
+
* 'roadmap planning',
|
|
23
|
+
* 'stakeholder management',
|
|
24
|
+
* 'data analysis',
|
|
25
|
+
* ],
|
|
26
|
+
* permissions: ['create:feature', 'update:roadmap', 'approve:requirements'],
|
|
27
|
+
* outputs: ['product briefs', 'roadmaps', 'user stories', 'requirements'],
|
|
28
|
+
* })
|
|
29
|
+
*
|
|
30
|
+
* const engineer = Role({
|
|
31
|
+
* name: 'Software Engineer',
|
|
32
|
+
* description: 'Designs, develops, and maintains software systems',
|
|
33
|
+
* skills: [
|
|
34
|
+
* 'software design',
|
|
35
|
+
* 'coding',
|
|
36
|
+
* 'testing',
|
|
37
|
+
* 'debugging',
|
|
38
|
+
* 'code review',
|
|
39
|
+
* ],
|
|
40
|
+
* permissions: ['read:code', 'write:code', 'deploy:staging'],
|
|
41
|
+
* tools: [
|
|
42
|
+
* { name: 'runTests', description: 'Run test suite', parameters: {}, handler: async () => {} },
|
|
43
|
+
* { name: 'deploy', description: 'Deploy to environment', parameters: {}, handler: async () => {} },
|
|
44
|
+
* ],
|
|
45
|
+
* })
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export function Role(config) {
|
|
49
|
+
// Generate a unique ID based on the role name
|
|
50
|
+
const id = config.name.toLowerCase().replace(/\s+/g, '-');
|
|
51
|
+
return {
|
|
52
|
+
id,
|
|
53
|
+
name: config.name,
|
|
54
|
+
description: config.description,
|
|
55
|
+
skills: config.skills,
|
|
56
|
+
permissions: config.permissions,
|
|
57
|
+
tools: config.tools,
|
|
58
|
+
outputs: config.outputs,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Predefined common roles
|
|
63
|
+
*/
|
|
64
|
+
export const Roles = {
|
|
65
|
+
/**
|
|
66
|
+
* Product Manager role
|
|
67
|
+
*/
|
|
68
|
+
ProductManager: Role({
|
|
69
|
+
name: 'Product Manager',
|
|
70
|
+
description: 'Owns product vision, strategy, and roadmap. Prioritizes features based on user needs and business goals.',
|
|
71
|
+
skills: [
|
|
72
|
+
'product strategy',
|
|
73
|
+
'user research',
|
|
74
|
+
'roadmap planning',
|
|
75
|
+
'feature prioritization',
|
|
76
|
+
'stakeholder management',
|
|
77
|
+
'data analysis',
|
|
78
|
+
'market research',
|
|
79
|
+
],
|
|
80
|
+
permissions: [
|
|
81
|
+
'create:feature',
|
|
82
|
+
'update:roadmap',
|
|
83
|
+
'approve:requirements',
|
|
84
|
+
'view:analytics',
|
|
85
|
+
],
|
|
86
|
+
outputs: [
|
|
87
|
+
'product briefs',
|
|
88
|
+
'roadmaps',
|
|
89
|
+
'user stories',
|
|
90
|
+
'requirements documents',
|
|
91
|
+
'prioritization frameworks',
|
|
92
|
+
],
|
|
93
|
+
}),
|
|
94
|
+
/**
|
|
95
|
+
* Software Engineer role
|
|
96
|
+
*/
|
|
97
|
+
SoftwareEngineer: Role({
|
|
98
|
+
name: 'Software Engineer',
|
|
99
|
+
description: 'Designs, develops, tests, and maintains software systems following best practices.',
|
|
100
|
+
skills: [
|
|
101
|
+
'software design',
|
|
102
|
+
'programming',
|
|
103
|
+
'testing',
|
|
104
|
+
'debugging',
|
|
105
|
+
'code review',
|
|
106
|
+
'system architecture',
|
|
107
|
+
'version control',
|
|
108
|
+
],
|
|
109
|
+
permissions: [
|
|
110
|
+
'read:code',
|
|
111
|
+
'write:code',
|
|
112
|
+
'review:pr',
|
|
113
|
+
'deploy:staging',
|
|
114
|
+
],
|
|
115
|
+
outputs: [
|
|
116
|
+
'code',
|
|
117
|
+
'tests',
|
|
118
|
+
'documentation',
|
|
119
|
+
'technical designs',
|
|
120
|
+
'pull requests',
|
|
121
|
+
],
|
|
122
|
+
}),
|
|
123
|
+
/**
|
|
124
|
+
* Designer role
|
|
125
|
+
*/
|
|
126
|
+
Designer: Role({
|
|
127
|
+
name: 'Designer',
|
|
128
|
+
description: 'Creates user interfaces, experiences, and visual designs that are intuitive and engaging.',
|
|
129
|
+
skills: [
|
|
130
|
+
'UI design',
|
|
131
|
+
'UX design',
|
|
132
|
+
'visual design',
|
|
133
|
+
'prototyping',
|
|
134
|
+
'user research',
|
|
135
|
+
'accessibility',
|
|
136
|
+
'design systems',
|
|
137
|
+
],
|
|
138
|
+
permissions: [
|
|
139
|
+
'create:design',
|
|
140
|
+
'update:design-system',
|
|
141
|
+
'approve:mockups',
|
|
142
|
+
],
|
|
143
|
+
outputs: [
|
|
144
|
+
'mockups',
|
|
145
|
+
'prototypes',
|
|
146
|
+
'design systems',
|
|
147
|
+
'style guides',
|
|
148
|
+
'user flows',
|
|
149
|
+
],
|
|
150
|
+
}),
|
|
151
|
+
/**
|
|
152
|
+
* Data Analyst role
|
|
153
|
+
*/
|
|
154
|
+
DataAnalyst: Role({
|
|
155
|
+
name: 'Data Analyst',
|
|
156
|
+
description: 'Analyzes data to uncover insights, trends, and actionable recommendations.',
|
|
157
|
+
skills: [
|
|
158
|
+
'data analysis',
|
|
159
|
+
'statistics',
|
|
160
|
+
'SQL',
|
|
161
|
+
'data visualization',
|
|
162
|
+
'A/B testing',
|
|
163
|
+
'reporting',
|
|
164
|
+
],
|
|
165
|
+
permissions: [
|
|
166
|
+
'read:analytics',
|
|
167
|
+
'query:database',
|
|
168
|
+
'create:report',
|
|
169
|
+
],
|
|
170
|
+
outputs: [
|
|
171
|
+
'reports',
|
|
172
|
+
'dashboards',
|
|
173
|
+
'insights',
|
|
174
|
+
'recommendations',
|
|
175
|
+
'metrics',
|
|
176
|
+
],
|
|
177
|
+
}),
|
|
178
|
+
/**
|
|
179
|
+
* Content Writer role
|
|
180
|
+
*/
|
|
181
|
+
ContentWriter: Role({
|
|
182
|
+
name: 'Content Writer',
|
|
183
|
+
description: 'Creates compelling written content for various channels and audiences.',
|
|
184
|
+
skills: [
|
|
185
|
+
'writing',
|
|
186
|
+
'editing',
|
|
187
|
+
'SEO',
|
|
188
|
+
'content strategy',
|
|
189
|
+
'storytelling',
|
|
190
|
+
'brand voice',
|
|
191
|
+
],
|
|
192
|
+
permissions: [
|
|
193
|
+
'create:content',
|
|
194
|
+
'publish:blog',
|
|
195
|
+
'update:docs',
|
|
196
|
+
],
|
|
197
|
+
outputs: [
|
|
198
|
+
'blog posts',
|
|
199
|
+
'documentation',
|
|
200
|
+
'marketing copy',
|
|
201
|
+
'social media content',
|
|
202
|
+
'emails',
|
|
203
|
+
],
|
|
204
|
+
}),
|
|
205
|
+
/**
|
|
206
|
+
* Customer Support role
|
|
207
|
+
*/
|
|
208
|
+
CustomerSupport: Role({
|
|
209
|
+
name: 'Customer Support',
|
|
210
|
+
description: 'Provides help and assistance to customers, resolving issues and answering questions.',
|
|
211
|
+
skills: [
|
|
212
|
+
'customer service',
|
|
213
|
+
'problem solving',
|
|
214
|
+
'communication',
|
|
215
|
+
'empathy',
|
|
216
|
+
'product knowledge',
|
|
217
|
+
'troubleshooting',
|
|
218
|
+
],
|
|
219
|
+
permissions: [
|
|
220
|
+
'read:tickets',
|
|
221
|
+
'update:ticket',
|
|
222
|
+
'access:customer-data',
|
|
223
|
+
],
|
|
224
|
+
outputs: [
|
|
225
|
+
'ticket responses',
|
|
226
|
+
'knowledge base articles',
|
|
227
|
+
'customer feedback',
|
|
228
|
+
'issue reports',
|
|
229
|
+
],
|
|
230
|
+
}),
|
|
231
|
+
/**
|
|
232
|
+
* Project Manager role
|
|
233
|
+
*/
|
|
234
|
+
ProjectManager: Role({
|
|
235
|
+
name: 'Project Manager',
|
|
236
|
+
description: 'Plans, executes, and delivers projects on time and within budget.',
|
|
237
|
+
skills: [
|
|
238
|
+
'project planning',
|
|
239
|
+
'task management',
|
|
240
|
+
'risk management',
|
|
241
|
+
'stakeholder communication',
|
|
242
|
+
'resource allocation',
|
|
243
|
+
'agile methodologies',
|
|
244
|
+
],
|
|
245
|
+
permissions: [
|
|
246
|
+
'create:project',
|
|
247
|
+
'assign:task',
|
|
248
|
+
'update:timeline',
|
|
249
|
+
'view:resources',
|
|
250
|
+
],
|
|
251
|
+
outputs: [
|
|
252
|
+
'project plans',
|
|
253
|
+
'status reports',
|
|
254
|
+
'timelines',
|
|
255
|
+
'risk assessments',
|
|
256
|
+
'retrospectives',
|
|
257
|
+
],
|
|
258
|
+
}),
|
|
259
|
+
/**
|
|
260
|
+
* QA Engineer role
|
|
261
|
+
*/
|
|
262
|
+
QAEngineer: Role({
|
|
263
|
+
name: 'QA Engineer',
|
|
264
|
+
description: 'Ensures software quality through testing, automation, and quality assurance processes.',
|
|
265
|
+
skills: [
|
|
266
|
+
'manual testing',
|
|
267
|
+
'test automation',
|
|
268
|
+
'bug reporting',
|
|
269
|
+
'test planning',
|
|
270
|
+
'quality assurance',
|
|
271
|
+
'regression testing',
|
|
272
|
+
],
|
|
273
|
+
permissions: [
|
|
274
|
+
'run:tests',
|
|
275
|
+
'create:bug-report',
|
|
276
|
+
'approve:release',
|
|
277
|
+
],
|
|
278
|
+
outputs: [
|
|
279
|
+
'test plans',
|
|
280
|
+
'test cases',
|
|
281
|
+
'bug reports',
|
|
282
|
+
'automation scripts',
|
|
283
|
+
'quality reports',
|
|
284
|
+
],
|
|
285
|
+
}),
|
|
286
|
+
/**
|
|
287
|
+
* Marketing Manager role
|
|
288
|
+
*/
|
|
289
|
+
MarketingManager: Role({
|
|
290
|
+
name: 'Marketing Manager',
|
|
291
|
+
description: 'Develops and executes marketing strategies to drive growth and brand awareness.',
|
|
292
|
+
skills: [
|
|
293
|
+
'marketing strategy',
|
|
294
|
+
'campaign management',
|
|
295
|
+
'digital marketing',
|
|
296
|
+
'analytics',
|
|
297
|
+
'brand management',
|
|
298
|
+
'content marketing',
|
|
299
|
+
],
|
|
300
|
+
permissions: [
|
|
301
|
+
'create:campaign',
|
|
302
|
+
'approve:content',
|
|
303
|
+
'view:analytics',
|
|
304
|
+
'manage:budget',
|
|
305
|
+
],
|
|
306
|
+
outputs: [
|
|
307
|
+
'marketing plans',
|
|
308
|
+
'campaigns',
|
|
309
|
+
'content calendars',
|
|
310
|
+
'performance reports',
|
|
311
|
+
'brand guidelines',
|
|
312
|
+
],
|
|
313
|
+
}),
|
|
314
|
+
/**
|
|
315
|
+
* DevOps Engineer role
|
|
316
|
+
*/
|
|
317
|
+
DevOpsEngineer: Role({
|
|
318
|
+
name: 'DevOps Engineer',
|
|
319
|
+
description: 'Manages infrastructure, deployment pipelines, and ensures system reliability.',
|
|
320
|
+
skills: [
|
|
321
|
+
'infrastructure management',
|
|
322
|
+
'CI/CD',
|
|
323
|
+
'monitoring',
|
|
324
|
+
'automation',
|
|
325
|
+
'cloud platforms',
|
|
326
|
+
'security',
|
|
327
|
+
],
|
|
328
|
+
permissions: [
|
|
329
|
+
'deploy:production',
|
|
330
|
+
'manage:infrastructure',
|
|
331
|
+
'access:logs',
|
|
332
|
+
'configure:monitoring',
|
|
333
|
+
],
|
|
334
|
+
outputs: [
|
|
335
|
+
'deployment scripts',
|
|
336
|
+
'infrastructure code',
|
|
337
|
+
'monitoring dashboards',
|
|
338
|
+
'incident reports',
|
|
339
|
+
'runbooks',
|
|
340
|
+
],
|
|
341
|
+
}),
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Check if a role has a specific permission
|
|
345
|
+
*/
|
|
346
|
+
export function hasPermission(role, permission) {
|
|
347
|
+
return role.permissions?.includes(permission) || false;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Check if a role has a specific skill
|
|
351
|
+
*/
|
|
352
|
+
export function hasSkill(role, skill) {
|
|
353
|
+
return role.skills.some(s => s.toLowerCase() === skill.toLowerCase() ||
|
|
354
|
+
s.toLowerCase().includes(skill.toLowerCase()));
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Get all permissions for a role
|
|
358
|
+
*/
|
|
359
|
+
export function getPermissions(role) {
|
|
360
|
+
return role.permissions || [];
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Get all skills for a role
|
|
364
|
+
*/
|
|
365
|
+
export function getSkills(role) {
|
|
366
|
+
return role.skills;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Merge multiple roles into a compound role
|
|
370
|
+
*/
|
|
371
|
+
export function mergeRoles(name, ...roles) {
|
|
372
|
+
const allSkills = new Set();
|
|
373
|
+
const allPermissions = new Set();
|
|
374
|
+
const allTools = [];
|
|
375
|
+
const allOutputs = new Set();
|
|
376
|
+
const descriptions = [];
|
|
377
|
+
roles.forEach(role => {
|
|
378
|
+
role.skills.forEach(skill => allSkills.add(skill));
|
|
379
|
+
role.permissions?.forEach(permission => allPermissions.add(permission));
|
|
380
|
+
role.tools?.forEach(tool => allTools.push(tool));
|
|
381
|
+
role.outputs?.forEach(output => allOutputs.add(output));
|
|
382
|
+
descriptions.push(role.description);
|
|
383
|
+
});
|
|
384
|
+
return Role({
|
|
385
|
+
name,
|
|
386
|
+
description: descriptions.join(' '),
|
|
387
|
+
skills: Array.from(allSkills),
|
|
388
|
+
permissions: Array.from(allPermissions),
|
|
389
|
+
tools: allTools,
|
|
390
|
+
outputs: Array.from(allOutputs),
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
//# sourceMappingURL=role.js.map
|
package/dist/role.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["../src/role.ts"],"names":[],"mappings":"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"}
|
package/dist/team.d.ts
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team - Define and coordinate a team of agents and humans
|
|
3
|
+
*
|
|
4
|
+
* Teams enable collaboration and coordination between multiple agents
|
|
5
|
+
* and human workers working toward shared goals.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { Team as TeamType, TeamMember, Agent, Role as RoleType, Goal, CommunicationChannel } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Create a team
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { Team, Agent, Role } from 'autonomous-agents'
|
|
16
|
+
*
|
|
17
|
+
* const productTeam = Team({
|
|
18
|
+
* name: 'Product Development',
|
|
19
|
+
* description: 'Cross-functional team building product features',
|
|
20
|
+
* members: [
|
|
21
|
+
* {
|
|
22
|
+
* id: 'pm-1',
|
|
23
|
+
* name: 'Sarah',
|
|
24
|
+
* type: 'human',
|
|
25
|
+
* role: Roles.ProductManager,
|
|
26
|
+
* status: 'active',
|
|
27
|
+
* availability: 'available',
|
|
28
|
+
* },
|
|
29
|
+
* {
|
|
30
|
+
* id: 'dev-agent-1',
|
|
31
|
+
* name: 'DevAgent',
|
|
32
|
+
* type: 'agent',
|
|
33
|
+
* role: Roles.SoftwareEngineer,
|
|
34
|
+
* status: 'active',
|
|
35
|
+
* availability: 'available',
|
|
36
|
+
* },
|
|
37
|
+
* ],
|
|
38
|
+
* goals: [
|
|
39
|
+
* {
|
|
40
|
+
* id: 'q1-goal',
|
|
41
|
+
* description: 'Launch new feature X',
|
|
42
|
+
* target: '100%',
|
|
43
|
+
* deadline: new Date('2024-03-31'),
|
|
44
|
+
* priority: 'high',
|
|
45
|
+
* },
|
|
46
|
+
* ],
|
|
47
|
+
* channels: [
|
|
48
|
+
* { id: 'team-slack', type: 'slack', config: { channel: '#product-dev' } },
|
|
49
|
+
* ],
|
|
50
|
+
* })
|
|
51
|
+
*
|
|
52
|
+
* // Add a new member
|
|
53
|
+
* team.addMember({
|
|
54
|
+
* id: 'designer-1',
|
|
55
|
+
* name: 'Alex',
|
|
56
|
+
* type: 'human',
|
|
57
|
+
* role: Roles.Designer,
|
|
58
|
+
* })
|
|
59
|
+
*
|
|
60
|
+
* // Broadcast to team
|
|
61
|
+
* await team.broadcast('Starting sprint planning!')
|
|
62
|
+
*
|
|
63
|
+
* // Get available members
|
|
64
|
+
* const available = team.getAvailableMembers()
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function Team(config: {
|
|
68
|
+
name: string;
|
|
69
|
+
description?: string;
|
|
70
|
+
members?: TeamMember[];
|
|
71
|
+
goals?: Goal[];
|
|
72
|
+
context?: Record<string, unknown>;
|
|
73
|
+
channels?: CommunicationChannel[];
|
|
74
|
+
}): TeamInstance;
|
|
75
|
+
/**
|
|
76
|
+
* Team instance with methods
|
|
77
|
+
*/
|
|
78
|
+
export interface TeamInstance extends TeamType {
|
|
79
|
+
/** Add a member to the team */
|
|
80
|
+
addMember(member: TeamMember): void;
|
|
81
|
+
/** Remove a member from the team */
|
|
82
|
+
removeMember(memberId: string): boolean;
|
|
83
|
+
/** Get a specific member */
|
|
84
|
+
getMember(memberId: string): TeamMember | undefined;
|
|
85
|
+
/** Get all members */
|
|
86
|
+
getMembers(): TeamMember[];
|
|
87
|
+
/** Get available members */
|
|
88
|
+
getAvailableMembers(): TeamMember[];
|
|
89
|
+
/** Get members by role */
|
|
90
|
+
getMembersByRole(roleId: string): TeamMember[];
|
|
91
|
+
/** Get members by type */
|
|
92
|
+
getMembersByType(type: 'agent' | 'human'): TeamMember[];
|
|
93
|
+
/** Update a member */
|
|
94
|
+
updateMember(memberId: string, updates: Partial<Omit<TeamMember, 'id'>>): void;
|
|
95
|
+
/** Add a goal */
|
|
96
|
+
addGoal(goal: Goal): void;
|
|
97
|
+
/** Update a goal */
|
|
98
|
+
updateGoal(goalId: string, updates: Partial<Omit<Goal, 'id'>>): void;
|
|
99
|
+
/** Remove a goal */
|
|
100
|
+
removeGoal(goalId: string): boolean;
|
|
101
|
+
/** Get all goals */
|
|
102
|
+
getGoals(): Goal[];
|
|
103
|
+
/** Add a communication channel */
|
|
104
|
+
addChannel(channel: CommunicationChannel): void;
|
|
105
|
+
/** Remove a communication channel */
|
|
106
|
+
removeChannel(channelId: string): boolean;
|
|
107
|
+
/** Broadcast message to all team members */
|
|
108
|
+
broadcast(message: string, channelType?: string): Promise<void>;
|
|
109
|
+
/** Send message to specific members */
|
|
110
|
+
sendTo(memberIds: string[], message: string, channelType?: string): Promise<void>;
|
|
111
|
+
/** Update team context */
|
|
112
|
+
updateContext(key: string, value: unknown): void;
|
|
113
|
+
/** Get team context */
|
|
114
|
+
getContext<T = unknown>(key?: string): T | Record<string, unknown>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Create a team member entry
|
|
118
|
+
*/
|
|
119
|
+
export declare function createTeamMember(config: {
|
|
120
|
+
id: string;
|
|
121
|
+
name: string;
|
|
122
|
+
type: 'agent' | 'human';
|
|
123
|
+
role: RoleType;
|
|
124
|
+
status?: 'active' | 'inactive' | 'away';
|
|
125
|
+
availability?: 'available' | 'busy' | 'offline';
|
|
126
|
+
}): TeamMember;
|
|
127
|
+
/**
|
|
128
|
+
* Create a team member from an agent
|
|
129
|
+
*/
|
|
130
|
+
export declare function teamMemberFromAgent(agent: Agent): TeamMember;
|
|
131
|
+
/**
|
|
132
|
+
* Calculate team capacity based on available members
|
|
133
|
+
*/
|
|
134
|
+
export declare function calculateTeamCapacity(team: TeamInstance): {
|
|
135
|
+
total: number;
|
|
136
|
+
available: number;
|
|
137
|
+
busy: number;
|
|
138
|
+
offline: number;
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Get team skills - aggregated from all members
|
|
142
|
+
*/
|
|
143
|
+
export declare function getTeamSkills(team: TeamInstance): string[];
|
|
144
|
+
/**
|
|
145
|
+
* Check if team has a specific skill
|
|
146
|
+
*/
|
|
147
|
+
export declare function teamHasSkill(team: TeamInstance, skill: string): boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Find best member for a task based on role skills
|
|
150
|
+
*/
|
|
151
|
+
export declare function findBestMemberForTask(team: TeamInstance, requiredSkills: string[]): TeamMember | null;
|
|
152
|
+
//# sourceMappingURL=team.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../src/team.ts"],"names":[],"mappings":"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"}
|