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/goals.js ADDED
@@ -0,0 +1,342 @@
1
+ /**
2
+ * Goals - Define and track goals for agents and teams
3
+ *
4
+ * Goals provide direction and measurable outcomes for autonomous agents
5
+ * and teams to work towards.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Create a goals configuration
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { Goals } from 'autonomous-agents'
15
+ *
16
+ * const goals = Goals({
17
+ * goals: [
18
+ * {
19
+ * id: 'revenue-q1',
20
+ * description: 'Increase Q1 revenue by 20%',
21
+ * target: 120000,
22
+ * progress: 45000,
23
+ * priority: 'high',
24
+ * deadline: new Date('2024-03-31'),
25
+ * status: 'active',
26
+ * },
27
+ * {
28
+ * id: 'feature-launch',
29
+ * description: 'Launch new AI features',
30
+ * target: '100%',
31
+ * progress: '60%',
32
+ * priority: 'high',
33
+ * deadline: new Date('2024-02-15'),
34
+ * status: 'active',
35
+ * subgoals: [
36
+ * {
37
+ * id: 'feature-design',
38
+ * description: 'Complete feature designs',
39
+ * target: '100%',
40
+ * progress: '100%',
41
+ * status: 'completed',
42
+ * },
43
+ * {
44
+ * id: 'feature-dev',
45
+ * description: 'Implement features',
46
+ * target: '100%',
47
+ * progress: '80%',
48
+ * status: 'active',
49
+ * },
50
+ * ],
51
+ * },
52
+ * ],
53
+ * strategy: 'Focus on high-impact features that drive revenue growth',
54
+ * timeHorizon: 'Q1 2024',
55
+ * })
56
+ * ```
57
+ */
58
+ export function Goals(config) {
59
+ const state = {
60
+ goals: config.goals,
61
+ strategy: config.strategy,
62
+ timeHorizon: config.timeHorizon,
63
+ };
64
+ return {
65
+ ...state,
66
+ addGoal,
67
+ removeGoal,
68
+ getGoal,
69
+ getGoals,
70
+ getActiveGoals,
71
+ getCompletedGoals,
72
+ getBlockedGoals,
73
+ getGoalsByPriority,
74
+ updateGoal,
75
+ updateProgress,
76
+ markCompleted,
77
+ markBlocked,
78
+ getProgress,
79
+ getOverallProgress,
80
+ };
81
+ /**
82
+ * Add a new goal
83
+ */
84
+ function addGoal(goal) {
85
+ state.goals.push(goal);
86
+ }
87
+ /**
88
+ * Remove a goal
89
+ */
90
+ function removeGoal(goalId) {
91
+ const index = state.goals.findIndex(g => g.id === goalId);
92
+ if (index === -1)
93
+ return false;
94
+ state.goals.splice(index, 1);
95
+ return true;
96
+ }
97
+ /**
98
+ * Get a specific goal
99
+ */
100
+ function getGoal(goalId) {
101
+ return findGoalRecursive(state.goals, goalId);
102
+ }
103
+ /**
104
+ * Get all goals
105
+ */
106
+ function getGoals() {
107
+ return [...state.goals];
108
+ }
109
+ /**
110
+ * Get active goals
111
+ */
112
+ function getActiveGoals() {
113
+ return state.goals.filter(g => g.status === 'active');
114
+ }
115
+ /**
116
+ * Get completed goals
117
+ */
118
+ function getCompletedGoals() {
119
+ return state.goals.filter(g => g.status === 'completed');
120
+ }
121
+ /**
122
+ * Get blocked goals
123
+ */
124
+ function getBlockedGoals() {
125
+ return state.goals.filter(g => g.status === 'blocked');
126
+ }
127
+ /**
128
+ * Get goals by priority
129
+ */
130
+ function getGoalsByPriority(priority) {
131
+ return state.goals.filter(g => g.priority === priority);
132
+ }
133
+ /**
134
+ * Update a goal
135
+ */
136
+ function updateGoal(goalId, updates) {
137
+ const goal = findGoalRecursive(state.goals, goalId);
138
+ if (!goal) {
139
+ throw new Error(`Goal with id ${goalId} not found`);
140
+ }
141
+ Object.assign(goal, updates);
142
+ }
143
+ /**
144
+ * Update goal progress
145
+ */
146
+ function updateProgress(goalId, progress) {
147
+ const goal = findGoalRecursive(state.goals, goalId);
148
+ if (!goal) {
149
+ throw new Error(`Goal with id ${goalId} not found`);
150
+ }
151
+ goal.progress = progress;
152
+ // Auto-complete if progress reaches target
153
+ if (isGoalComplete(goal)) {
154
+ goal.status = 'completed';
155
+ }
156
+ }
157
+ /**
158
+ * Mark goal as completed
159
+ */
160
+ function markCompleted(goalId) {
161
+ const goal = findGoalRecursive(state.goals, goalId);
162
+ if (!goal) {
163
+ throw new Error(`Goal with id ${goalId} not found`);
164
+ }
165
+ goal.status = 'completed';
166
+ goal.progress = goal.target;
167
+ }
168
+ /**
169
+ * Mark goal as blocked
170
+ */
171
+ function markBlocked(goalId, reason) {
172
+ const goal = findGoalRecursive(state.goals, goalId);
173
+ if (!goal) {
174
+ throw new Error(`Goal with id ${goalId} not found`);
175
+ }
176
+ goal.status = 'blocked';
177
+ }
178
+ /**
179
+ * Get progress for a specific goal
180
+ */
181
+ function getProgress(goalId) {
182
+ const goal = findGoalRecursive(state.goals, goalId);
183
+ if (!goal)
184
+ return 0;
185
+ return calculateProgress(goal);
186
+ }
187
+ /**
188
+ * Get overall progress across all goals
189
+ */
190
+ function getOverallProgress() {
191
+ if (state.goals.length === 0)
192
+ return 0;
193
+ const totalProgress = state.goals.reduce((sum, goal) => sum + calculateProgress(goal), 0);
194
+ return totalProgress / state.goals.length;
195
+ }
196
+ }
197
+ /**
198
+ * Find a goal recursively (including subgoals)
199
+ */
200
+ function findGoalRecursive(goals, goalId) {
201
+ for (const goal of goals) {
202
+ if (goal.id === goalId)
203
+ return goal;
204
+ if (goal.subgoals) {
205
+ const found = findGoalRecursive(goal.subgoals, goalId);
206
+ if (found)
207
+ return found;
208
+ }
209
+ }
210
+ return undefined;
211
+ }
212
+ /**
213
+ * Calculate progress percentage for a goal
214
+ */
215
+ function calculateProgress(goal) {
216
+ // If no progress set, return 0
217
+ if (goal.progress === undefined)
218
+ return 0;
219
+ // If goal is completed, return 100
220
+ if (goal.status === 'completed')
221
+ return 100;
222
+ // Handle numeric progress
223
+ if (typeof goal.progress === 'number' && typeof goal.target === 'number') {
224
+ return Math.min(100, (goal.progress / goal.target) * 100);
225
+ }
226
+ // Handle percentage strings
227
+ if (typeof goal.progress === 'string' && typeof goal.target === 'string') {
228
+ const progressMatch = goal.progress.match(/(\d+)%?/);
229
+ const targetMatch = goal.target.match(/(\d+)%?/);
230
+ if (progressMatch && targetMatch) {
231
+ const progressNum = parseInt(progressMatch[1], 10);
232
+ const targetNum = parseInt(targetMatch[1], 10);
233
+ return Math.min(100, (progressNum / targetNum) * 100);
234
+ }
235
+ }
236
+ // If we have subgoals, calculate from them
237
+ if (goal.subgoals && goal.subgoals.length > 0) {
238
+ const subgoalProgress = goal.subgoals.reduce((sum, subgoal) => sum + calculateProgress(subgoal), 0);
239
+ return subgoalProgress / goal.subgoals.length;
240
+ }
241
+ return 0;
242
+ }
243
+ /**
244
+ * Check if a goal is complete
245
+ */
246
+ function isGoalComplete(goal) {
247
+ // Check status
248
+ if (goal.status === 'completed')
249
+ return true;
250
+ // Check numeric progress vs target
251
+ if (typeof goal.progress === 'number' && typeof goal.target === 'number') {
252
+ return goal.progress >= goal.target;
253
+ }
254
+ // Check percentage strings
255
+ if (typeof goal.progress === 'string' && typeof goal.target === 'string') {
256
+ const progressMatch = goal.progress.match(/(\d+)%?/);
257
+ const targetMatch = goal.target.match(/(\d+)%?/);
258
+ if (progressMatch && targetMatch) {
259
+ return parseInt(progressMatch[1], 10) >= parseInt(targetMatch[1], 10);
260
+ }
261
+ }
262
+ // Check subgoals
263
+ if (goal.subgoals && goal.subgoals.length > 0) {
264
+ return goal.subgoals.every(subgoal => isGoalComplete(subgoal));
265
+ }
266
+ return false;
267
+ }
268
+ /**
269
+ * Create a simple goal
270
+ */
271
+ export function createGoal(config) {
272
+ return {
273
+ id: config.id,
274
+ description: config.description,
275
+ target: config.target,
276
+ priority: config.priority || 'medium',
277
+ deadline: config.deadline,
278
+ status: 'active',
279
+ };
280
+ }
281
+ /**
282
+ * Create a goal with subgoals
283
+ */
284
+ export function createGoalWithSubgoals(config) {
285
+ return {
286
+ id: config.id,
287
+ description: config.description,
288
+ target: config.target,
289
+ subgoals: config.subgoals,
290
+ priority: config.priority || 'medium',
291
+ deadline: config.deadline,
292
+ status: 'active',
293
+ };
294
+ }
295
+ /**
296
+ * Check if a goal is overdue
297
+ */
298
+ export function isGoalOverdue(goal) {
299
+ if (!goal.deadline)
300
+ return false;
301
+ return new Date() > goal.deadline && goal.status !== 'completed';
302
+ }
303
+ /**
304
+ * Get goals that are overdue
305
+ */
306
+ export function getOverdueGoals(goals) {
307
+ return goals.filter(isGoalOverdue);
308
+ }
309
+ /**
310
+ * Get goals due soon (within specified days)
311
+ */
312
+ export function getGoalsDueSoon(goals, days = 7) {
313
+ const now = new Date();
314
+ const threshold = new Date(now.getTime() + days * 24 * 60 * 60 * 1000);
315
+ return goals.filter(goal => {
316
+ if (!goal.deadline || goal.status === 'completed')
317
+ return false;
318
+ return goal.deadline <= threshold && goal.deadline > now;
319
+ });
320
+ }
321
+ /**
322
+ * Get goals by status
323
+ */
324
+ export function getGoalsByStatus(goals, status) {
325
+ return goals.filter(g => g.status === status);
326
+ }
327
+ /**
328
+ * Calculate time remaining until deadline
329
+ */
330
+ export function getTimeRemaining(goal) {
331
+ if (!goal.deadline)
332
+ return null;
333
+ const now = new Date();
334
+ const diff = goal.deadline.getTime() - now.getTime();
335
+ if (diff < 0)
336
+ return { days: 0, hours: 0, minutes: 0 };
337
+ const days = Math.floor(diff / (1000 * 60 * 60 * 24));
338
+ const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
339
+ const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
340
+ return { days, hours, minutes };
341
+ }
342
+ //# sourceMappingURL=goals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goals.js","sourceRoot":"","sources":["../src/goals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * autonomous-agents - Primitives for building and orchestrating autonomous AI agents
3
+ *
4
+ * This package provides primitives for creating autonomous AI agents that can:
5
+ * - Execute tasks and make decisions
6
+ * - Work in teams with other agents and humans
7
+ * - Track goals and metrics (KPIs, OKRs)
8
+ * - Request approvals and human oversight
9
+ * - Operate within defined roles and responsibilities
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { Agent, Role, Team, Goals } from 'autonomous-agents'
14
+ *
15
+ * // Create a role
16
+ * const productManager = Role({
17
+ * name: 'Product Manager',
18
+ * description: 'Manages product strategy and roadmap',
19
+ * skills: ['product strategy', 'user research', 'roadmap planning'],
20
+ * })
21
+ *
22
+ * // Create an agent
23
+ * const agent = Agent({
24
+ * name: 'ProductAgent',
25
+ * role: productManager,
26
+ * mode: 'autonomous',
27
+ * goals: [
28
+ * { id: 'g1', description: 'Define Q1 roadmap', target: '100%' }
29
+ * ],
30
+ * })
31
+ *
32
+ * // Execute tasks
33
+ * const result = await agent.do('Create product brief for feature X')
34
+ *
35
+ * // Make decisions
36
+ * const choice = await agent.decide(['A', 'B', 'C'], 'Which feature to prioritize?')
37
+ *
38
+ * // Request approval
39
+ * const approval = await agent.approve({
40
+ * title: 'Budget Request',
41
+ * description: 'Request $50k for research',
42
+ * data: { amount: 50000 },
43
+ * })
44
+ * ```
45
+ *
46
+ * @packageDocumentation
47
+ */
48
+ export type { Agent as AgentType, AgentConfig, AgentMode, AgentStatus, AgentHistoryEntry, Role as RoleType, Team as TeamType, TeamMember, Goal, GoalsConfig, KPI, OKR, KeyResult, Priority, ApprovalRequest, ApprovalResult, ApprovalStatus, NotificationOptions, CommunicationChannel, } from './types.js';
49
+ export { Agent } from './agent.js';
50
+ export { Role, Roles, hasPermission, hasSkill, getPermissions, getSkills, mergeRoles, } from './role.js';
51
+ export { Team, type TeamInstance, createTeamMember, teamMemberFromAgent, calculateTeamCapacity, getTeamSkills, teamHasSkill, findBestMemberForTask, } from './team.js';
52
+ export { Goals, type GoalsInstance, createGoal, createGoalWithSubgoals, isGoalOverdue, getOverdueGoals, getGoalsDueSoon, getGoalsByStatus, getTimeRemaining, } from './goals.js';
53
+ export { do, doAction, ask, decide, approve, generate, is, notify, } from './actions.js';
54
+ export { kpi, kpis, okr, okrs, type KPIInstance, type KPIsCollection, type OKRInstance, type OKRsCollection, createKeyResult, updateKeyResultStatus, } from './metrics.js';
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,YAAY,EACV,KAAK,IAAI,SAAS,EAClB,WAAW,EACX,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,IAAI,IAAI,QAAQ,EAChB,IAAI,IAAI,QAAQ,EAChB,UAAU,EACV,IAAI,EACJ,WAAW,EACX,GAAG,EACH,GAAG,EACH,SAAS,EACT,QAAQ,EACR,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,OAAO,EACL,IAAI,EACJ,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,SAAS,EACT,UAAU,GACX,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,IAAI,EACJ,KAAK,YAAY,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,qBAAqB,GACtB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,KAAK,EACL,KAAK,aAAa,EAClB,UAAU,EACV,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,EAAE,EACF,QAAQ,EACR,GAAG,EACH,MAAM,EACN,OAAO,EACP,QAAQ,EACR,EAAE,EACF,MAAM,GACP,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,cAAc,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,60 @@
1
+ /**
2
+ * autonomous-agents - Primitives for building and orchestrating autonomous AI agents
3
+ *
4
+ * This package provides primitives for creating autonomous AI agents that can:
5
+ * - Execute tasks and make decisions
6
+ * - Work in teams with other agents and humans
7
+ * - Track goals and metrics (KPIs, OKRs)
8
+ * - Request approvals and human oversight
9
+ * - Operate within defined roles and responsibilities
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { Agent, Role, Team, Goals } from 'autonomous-agents'
14
+ *
15
+ * // Create a role
16
+ * const productManager = Role({
17
+ * name: 'Product Manager',
18
+ * description: 'Manages product strategy and roadmap',
19
+ * skills: ['product strategy', 'user research', 'roadmap planning'],
20
+ * })
21
+ *
22
+ * // Create an agent
23
+ * const agent = Agent({
24
+ * name: 'ProductAgent',
25
+ * role: productManager,
26
+ * mode: 'autonomous',
27
+ * goals: [
28
+ * { id: 'g1', description: 'Define Q1 roadmap', target: '100%' }
29
+ * ],
30
+ * })
31
+ *
32
+ * // Execute tasks
33
+ * const result = await agent.do('Create product brief for feature X')
34
+ *
35
+ * // Make decisions
36
+ * const choice = await agent.decide(['A', 'B', 'C'], 'Which feature to prioritize?')
37
+ *
38
+ * // Request approval
39
+ * const approval = await agent.approve({
40
+ * title: 'Budget Request',
41
+ * description: 'Request $50k for research',
42
+ * data: { amount: 50000 },
43
+ * })
44
+ * ```
45
+ *
46
+ * @packageDocumentation
47
+ */
48
+ // Agent creation and management
49
+ export { Agent } from './agent.js';
50
+ // Role definitions
51
+ export { Role, Roles, hasPermission, hasSkill, getPermissions, getSkills, mergeRoles, } from './role.js';
52
+ // Team collaboration
53
+ export { Team, createTeamMember, teamMemberFromAgent, calculateTeamCapacity, getTeamSkills, teamHasSkill, findBestMemberForTask, } from './team.js';
54
+ // Goals and objectives
55
+ export { Goals, createGoal, createGoalWithSubgoals, isGoalOverdue, getOverdueGoals, getGoalsDueSoon, getGoalsByStatus, getTimeRemaining, } from './goals.js';
56
+ // Action primitives
57
+ export { do, doAction, ask, decide, approve, generate, is, notify, } from './actions.js';
58
+ // Metrics and performance tracking
59
+ export { kpi, kpis, okr, okrs, createKeyResult, updateKeyResultStatus, } from './metrics.js';
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAyBH,gCAAgC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,mBAAmB;AACnB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,SAAS,EACT,UAAU,GACX,MAAM,WAAW,CAAA;AAElB,qBAAqB;AACrB,OAAO,EACL,IAAI,EAEJ,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,qBAAqB,GACtB,MAAM,WAAW,CAAA;AAElB,uBAAuB;AACvB,OAAO,EACL,KAAK,EAEL,UAAU,EACV,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAEnB,oBAAoB;AACpB,OAAO,EACL,EAAE,EACF,QAAQ,EACR,GAAG,EACH,MAAM,EACN,OAAO,EACP,QAAQ,EACR,EAAE,EACF,MAAM,GACP,MAAM,cAAc,CAAA;AAErB,mCAAmC;AACnC,OAAO,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,IAAI,EAKJ,eAAe,EACf,qBAAqB,GACtB,MAAM,cAAc,CAAA"}