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.
Files changed (51) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +260 -96
  4. package/dist/actions.d.ts +136 -0
  5. package/dist/actions.d.ts.map +1 -0
  6. package/dist/actions.js +303 -0
  7. package/dist/actions.js.map +1 -0
  8. package/dist/agent.d.ts +49 -0
  9. package/dist/agent.d.ts.map +1 -0
  10. package/dist/agent.js +452 -0
  11. package/dist/agent.js.map +1 -0
  12. package/dist/goals.d.ts +138 -0
  13. package/dist/goals.d.ts.map +1 -0
  14. package/dist/goals.js +342 -0
  15. package/dist/goals.js.map +1 -0
  16. package/dist/index.d.ts +55 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +60 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/metrics.d.ts +245 -0
  21. package/dist/metrics.d.ts.map +1 -0
  22. package/dist/metrics.js +436 -0
  23. package/dist/metrics.js.map +1 -0
  24. package/dist/role.d.ts +122 -0
  25. package/dist/role.d.ts.map +1 -0
  26. package/dist/role.js +393 -0
  27. package/dist/role.js.map +1 -0
  28. package/dist/team.d.ts +152 -0
  29. package/dist/team.d.ts.map +1 -0
  30. package/dist/team.js +347 -0
  31. package/dist/team.js.map +1 -0
  32. package/dist/types.d.ts +327 -0
  33. package/dist/types.d.ts.map +1 -0
  34. package/dist/types.js +8 -0
  35. package/dist/types.js.map +1 -0
  36. package/package.json +27 -36
  37. package/src/actions.ts +366 -0
  38. package/src/agent.ts +548 -0
  39. package/src/goals.ts +435 -0
  40. package/src/index.ts +135 -0
  41. package/src/metrics.ts +591 -0
  42. package/src/role.ts +422 -0
  43. package/src/team.ts +466 -0
  44. package/src/types.ts +356 -0
  45. package/test/actions.test.ts +522 -0
  46. package/test/agent.test.ts +490 -0
  47. package/test/goals.test.ts +570 -0
  48. package/test/metrics.test.ts +707 -0
  49. package/test/role.test.ts +423 -0
  50. package/test/team.test.ts +708 -0
  51. 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
@@ -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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"}