@funkai/agents 0.1.0

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 (153) hide show
  1. package/.generated/req.txt +1 -0
  2. package/.turbo/turbo-build.log +21 -0
  3. package/.turbo/turbo-test$colon$coverage.log +109 -0
  4. package/.turbo/turbo-test.log +141 -0
  5. package/.turbo/turbo-typecheck.log +4 -0
  6. package/CHANGELOG.md +16 -0
  7. package/ISSUES.md +540 -0
  8. package/LICENSE +21 -0
  9. package/README.md +128 -0
  10. package/banner.svg +97 -0
  11. package/coverage/lcov-report/base.css +224 -0
  12. package/coverage/lcov-report/block-navigation.js +87 -0
  13. package/coverage/lcov-report/core/agents/base/agent.ts.html +1705 -0
  14. package/coverage/lcov-report/core/agents/base/index.html +146 -0
  15. package/coverage/lcov-report/core/agents/base/output.ts.html +256 -0
  16. package/coverage/lcov-report/core/agents/base/utils.ts.html +694 -0
  17. package/coverage/lcov-report/core/agents/flow/engine.ts.html +928 -0
  18. package/coverage/lcov-report/core/agents/flow/flow-agent.ts.html +1462 -0
  19. package/coverage/lcov-report/core/agents/flow/index.html +146 -0
  20. package/coverage/lcov-report/core/agents/flow/messages.ts.html +508 -0
  21. package/coverage/lcov-report/core/agents/flow/steps/factory.ts.html +1975 -0
  22. package/coverage/lcov-report/core/agents/flow/steps/index.html +116 -0
  23. package/coverage/lcov-report/core/index.html +131 -0
  24. package/coverage/lcov-report/core/logger.ts.html +541 -0
  25. package/coverage/lcov-report/core/models/providers/index.html +116 -0
  26. package/coverage/lcov-report/core/models/providers/openai.ts.html +337 -0
  27. package/coverage/lcov-report/core/provider/index.html +131 -0
  28. package/coverage/lcov-report/core/provider/provider.ts.html +346 -0
  29. package/coverage/lcov-report/core/provider/usage.ts.html +376 -0
  30. package/coverage/lcov-report/core/tool.ts.html +577 -0
  31. package/coverage/lcov-report/favicon.png +0 -0
  32. package/coverage/lcov-report/index.html +221 -0
  33. package/coverage/lcov-report/lib/hooks.ts.html +262 -0
  34. package/coverage/lcov-report/lib/index.html +161 -0
  35. package/coverage/lcov-report/lib/middleware.ts.html +274 -0
  36. package/coverage/lcov-report/lib/runnable.ts.html +151 -0
  37. package/coverage/lcov-report/lib/trace.ts.html +520 -0
  38. package/coverage/lcov-report/prettify.css +1 -0
  39. package/coverage/lcov-report/prettify.js +2 -0
  40. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  41. package/coverage/lcov-report/sorter.js +210 -0
  42. package/coverage/lcov-report/utils/attempt.ts.html +199 -0
  43. package/coverage/lcov-report/utils/error.ts.html +421 -0
  44. package/coverage/lcov-report/utils/index.html +176 -0
  45. package/coverage/lcov-report/utils/resolve.ts.html +208 -0
  46. package/coverage/lcov-report/utils/result.ts.html +538 -0
  47. package/coverage/lcov-report/utils/zod.ts.html +178 -0
  48. package/coverage/lcov.info +1566 -0
  49. package/dist/index.d.mts +2883 -0
  50. package/dist/index.d.mts.map +1 -0
  51. package/dist/index.mjs +2312 -0
  52. package/dist/index.mjs.map +1 -0
  53. package/docs/core/agent.md +231 -0
  54. package/docs/core/hooks.md +95 -0
  55. package/docs/core/overview.md +87 -0
  56. package/docs/core/step.md +279 -0
  57. package/docs/core/tools.md +98 -0
  58. package/docs/core/workflow.md +235 -0
  59. package/docs/guides/create-agent.md +224 -0
  60. package/docs/guides/create-tool.md +137 -0
  61. package/docs/guides/create-workflow.md +374 -0
  62. package/docs/overview.md +244 -0
  63. package/docs/provider/models.md +55 -0
  64. package/docs/provider/overview.md +106 -0
  65. package/docs/provider/usage.md +100 -0
  66. package/docs/research/experimental-context.md +167 -0
  67. package/docs/research/gap-analysis.md +86 -0
  68. package/docs/research/prepare-step-and-active-tools.md +138 -0
  69. package/docs/research/sub-agent-model.md +249 -0
  70. package/docs/troubleshooting.md +60 -0
  71. package/logo.svg +17 -0
  72. package/models.config.json +18 -0
  73. package/package.json +60 -0
  74. package/scripts/generate-models.ts +324 -0
  75. package/src/core/agents/base/agent.test.ts +1522 -0
  76. package/src/core/agents/base/agent.ts +547 -0
  77. package/src/core/agents/base/output.test.ts +93 -0
  78. package/src/core/agents/base/output.ts +57 -0
  79. package/src/core/agents/base/types.test-d.ts +69 -0
  80. package/src/core/agents/base/types.ts +503 -0
  81. package/src/core/agents/base/utils.test.ts +397 -0
  82. package/src/core/agents/base/utils.ts +197 -0
  83. package/src/core/agents/flow/engine.test.ts +452 -0
  84. package/src/core/agents/flow/engine.ts +281 -0
  85. package/src/core/agents/flow/flow-agent.test.ts +1027 -0
  86. package/src/core/agents/flow/flow-agent.ts +473 -0
  87. package/src/core/agents/flow/messages.test.ts +198 -0
  88. package/src/core/agents/flow/messages.ts +141 -0
  89. package/src/core/agents/flow/steps/agent.test.ts +280 -0
  90. package/src/core/agents/flow/steps/agent.ts +87 -0
  91. package/src/core/agents/flow/steps/all.test.ts +300 -0
  92. package/src/core/agents/flow/steps/all.ts +73 -0
  93. package/src/core/agents/flow/steps/builder.ts +124 -0
  94. package/src/core/agents/flow/steps/each.test.ts +257 -0
  95. package/src/core/agents/flow/steps/each.ts +61 -0
  96. package/src/core/agents/flow/steps/factory.test-d.ts +50 -0
  97. package/src/core/agents/flow/steps/factory.test.ts +1025 -0
  98. package/src/core/agents/flow/steps/factory.ts +645 -0
  99. package/src/core/agents/flow/steps/map.test.ts +273 -0
  100. package/src/core/agents/flow/steps/map.ts +75 -0
  101. package/src/core/agents/flow/steps/race.test.ts +290 -0
  102. package/src/core/agents/flow/steps/race.ts +59 -0
  103. package/src/core/agents/flow/steps/reduce.test.ts +310 -0
  104. package/src/core/agents/flow/steps/reduce.ts +73 -0
  105. package/src/core/agents/flow/steps/result.ts +27 -0
  106. package/src/core/agents/flow/steps/step.test.ts +402 -0
  107. package/src/core/agents/flow/steps/step.ts +51 -0
  108. package/src/core/agents/flow/steps/while.test.ts +283 -0
  109. package/src/core/agents/flow/steps/while.ts +75 -0
  110. package/src/core/agents/flow/types.ts +348 -0
  111. package/src/core/logger.test.ts +163 -0
  112. package/src/core/logger.ts +152 -0
  113. package/src/core/models/index.test.ts +137 -0
  114. package/src/core/models/index.ts +152 -0
  115. package/src/core/models/providers/openai.ts +84 -0
  116. package/src/core/provider/provider.test.ts +128 -0
  117. package/src/core/provider/provider.ts +99 -0
  118. package/src/core/provider/types.ts +98 -0
  119. package/src/core/provider/usage.test.ts +304 -0
  120. package/src/core/provider/usage.ts +97 -0
  121. package/src/core/tool.test.ts +65 -0
  122. package/src/core/tool.ts +164 -0
  123. package/src/core/types.ts +66 -0
  124. package/src/index.ts +95 -0
  125. package/src/lib/context.test.ts +86 -0
  126. package/src/lib/context.ts +49 -0
  127. package/src/lib/hooks.test.ts +102 -0
  128. package/src/lib/hooks.ts +59 -0
  129. package/src/lib/middleware.test.ts +122 -0
  130. package/src/lib/middleware.ts +63 -0
  131. package/src/lib/runnable.test.ts +41 -0
  132. package/src/lib/runnable.ts +22 -0
  133. package/src/lib/trace.test.ts +291 -0
  134. package/src/lib/trace.ts +145 -0
  135. package/src/models/index.ts +123 -0
  136. package/src/models/providers/index.ts +15 -0
  137. package/src/models/providers/openai.ts +84 -0
  138. package/src/testing/context.ts +32 -0
  139. package/src/testing/index.ts +2 -0
  140. package/src/testing/logger.ts +19 -0
  141. package/src/utils/attempt.test.ts +127 -0
  142. package/src/utils/attempt.ts +38 -0
  143. package/src/utils/error.test.ts +179 -0
  144. package/src/utils/error.ts +112 -0
  145. package/src/utils/resolve.test.ts +38 -0
  146. package/src/utils/resolve.ts +41 -0
  147. package/src/utils/result.test.ts +79 -0
  148. package/src/utils/result.ts +151 -0
  149. package/src/utils/zod.test.ts +69 -0
  150. package/src/utils/zod.ts +31 -0
  151. package/tsconfig.json +25 -0
  152. package/tsdown.config.ts +15 -0
  153. package/vitest.config.ts +46 -0
@@ -0,0 +1 @@
1
+ 2026-03-03T19:12:46.284Z
@@ -0,0 +1,21 @@
1
+
2
+ 
3
+ > @funkai/agents@0.1.0 build /Users/zacrosenbauer/Code/joggr/funkai/packages/agents
4
+ > tsdown
5
+
6
+ ℹ tsdown v0.21.2 powered by rolldown v1.0.0-rc.9
7
+ ℹ config file: /Users/zacrosenbauer/Code/joggr/funkai/packages/agents/tsdown.config.ts
8
+ ℹ entry: src/index.ts
9
+ ℹ target: node22
10
+ ℹ tsconfig: tsconfig.json
11
+
12
+  WARN  `external` is deprecated. Use `deps.neverBundle` instead.
13
+
14
+ ℹ Build start
15
+ ℹ Cleaning 4 files
16
+ ℹ dist/index.mjs  66.70 kB │ gzip: 16.43 kB
17
+ ℹ dist/index.mjs.map 154.48 kB │ gzip: 35.44 kB
18
+ ℹ dist/index.d.mts.map  17.15 kB │ gzip: 4.77 kB
19
+ ℹ dist/index.d.mts  92.50 kB │ gzip: 21.21 kB
20
+ ℹ 4 files, total: 330.82 kB
21
+ ✔ Build complete in 546ms
@@ -0,0 +1,109 @@
1
+
2
+ > @funkai/agents@0.4.0 test:coverage /Users/zacrosenbauer/Code/joggr/funkai/packages/agents
3
+ > vitest run --coverage
4
+
5
+
6
+  RUN  v4.1.0 /Users/zacrosenbauer/Code/joggr/funkai/packages/agents
7
+ Coverage enabled with v8
8
+
9
+ ✓ src/lib/trace.test.ts (19 tests) 4ms
10
+ ✓ src/utils/zod.test.ts (11 tests) 5ms
11
+ ✓ src/core/agents/flow/steps/race.test.ts (13 tests) 7ms
12
+ ✓ src/core/agents/flow/steps/reduce.test.ts (14 tests) 10ms
13
+ ✓ src/core/agents/flow/steps/agent.test.ts (14 tests) 13ms
14
+ ✓ src/core/agents/flow/steps/step.test.ts (19 tests) 14ms
15
+ ✓ src/core/agents/flow/steps/while.test.ts (14 tests) 14ms
16
+ ✓ src/lib/middleware.test.ts (5 tests) 10ms
17
+ ✓ src/core/agents/flow/steps/all.test.ts (14 tests) 38ms
18
+ stdout | src/core/agents/flow/flow-agent.test.ts > edge cases > uses default logger when none provided
19
+ { flowAgentId: 'no-logger-flow', name: 'no-logger-flow' } flowAgent.generate start
20
+
21
+ stdout | src/core/agents/flow/flow-agent.test.ts > edge cases > uses default logger when none provided
22
+ { flowAgentId: 'no-logger-flow', name: 'no-logger-flow', duration: 1 } flowAgent.generate finish
23
+
24
+ ✓ src/core/agents/flow/engine.test.ts (14 tests) 8ms
25
+ ✓ src/core/agents/base/output.test.ts (9 tests) 46ms
26
+ ✓ src/core/agents/flow/flow-agent.test.ts (47 tests) 22ms
27
+ ✓ src/core/agents/flow/steps/map.test.ts (13 tests) 74ms
28
+ ✓ src/core/agents/flow/steps/factory.test.ts (35 tests) 72ms
29
+ ✓ src/lib/hooks.test.ts (7 tests) 6ms
30
+ ✓ src/core/logger.test.ts (14 tests) 4ms
31
+ stdout | src/core/agents/base/agent.test.ts > edge cases > uses default logger when none provided
32
+ { agentId: 'no-logger-agent', name: 'no-logger-agent' } agent.generate start
33
+
34
+ stdout | src/core/agents/base/agent.test.ts > edge cases > uses default logger when none provided
35
+ { agentId: 'no-logger-agent', name: 'no-logger-agent', duration: 1 } agent.generate finish
36
+
37
+ ✓ src/lib/context.test.ts (10 tests) 5ms
38
+ ✓ src/core/agents/base/agent.test.ts (69 tests) 95ms
39
+ ✓ src/core/agents/flow/steps/each.test.ts (13 tests) 6ms
40
+ ✓ src/core/provider/provider.test.ts (9 tests) 5ms
41
+ ✓ src/core/models/index.test.ts (16 tests) 4ms
42
+ ✓ src/core/provider/usage.test.ts (17 tests) 4ms
43
+ ✓ src/core/agents/flow/messages.test.ts (14 tests) 3ms
44
+ ✓ src/utils/result.test.ts (10 tests) 4ms
45
+ ✓ src/core/agents/base/utils.test.ts (28 tests) 6ms
46
+ ✓ src/utils/error.test.ts (32 tests) 3ms
47
+ ✓ src/utils/attempt.test.ts (12 tests) 3ms
48
+ ✓ src/lib/runnable.test.ts (5 tests) 2ms
49
+ ✓ src/utils/resolve.test.ts (6 tests) 3ms
50
+ ✓ src/core/tool.test.ts (6 tests) 3ms
51
+
52
+  Test Files  30 passed (30)
53
+  Tests  509 passed (509)
54
+  Start at  20:28:55
55
+  Duration  627ms (transform 1.16s, setup 0ms, import 2.72s, tests 492ms, environment 1ms)
56
+
57
+  % Coverage report from v8
58
+ -------------------|---------|----------|---------|---------|-------------------
59
+ File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
60
+ -------------------|---------|----------|---------|---------|-------------------
61
+ All files | 92.68 | 87.01 | 91.2 | 92.58 |
62
+ core | 88 | 78.57 | 100 | 88 |
63
+ logger.ts | 100 | 100 | 100 | 100 |
64
+ tool.ts | 78.57 | 70 | 100 | 78.57 | 152,156,160
65
+ types.ts | 0 | 0 | 0 | 0 |
66
+ core/agents/base | 89.03 | 88.67 | 79.59 | 89.03 |
67
+ agent.ts | 85.97 | 80 | 66.66 | 85.97 | ...26-427,470-475
68
+ output.ts | 100 | 100 | 100 | 100 |
69
+ types.ts | 0 | 0 | 0 | 0 |
70
+ utils.ts | 96.36 | 100 | 90 | 96.36 | 174,180
71
+ core/agents/flow | 93.7 | 82.81 | 84.37 | 93.66 |
72
+ engine.ts | 97.14 | 83.33 | 100 | 97.05 | 252
73
+ flow-agent.ts | 94.84 | 82.5 | 85.71 | 94.84 | ...23,346,352-353
74
+ messages.ts | 72.72 | 83.33 | 66.66 | 72.72 | 136-138
75
+ types.ts | 0 | 0 | 0 | 0 |
76
+ ...nts/flow/steps | 91.86 | 79.36 | 92.59 | 91.77 |
77
+ agent.ts | 0 | 0 | 0 | 0 |
78
+ all.ts | 0 | 0 | 0 | 0 |
79
+ builder.ts | 0 | 0 | 0 | 0 |
80
+ each.ts | 0 | 0 | 0 | 0 |
81
+ factory.ts | 91.86 | 79.36 | 92.59 | 91.77 | ...29,265-284,613
82
+ map.ts | 0 | 0 | 0 | 0 |
83
+ race.ts | 0 | 0 | 0 | 0 |
84
+ reduce.ts | 0 | 0 | 0 | 0 |
85
+ result.ts | 0 | 0 | 0 | 0 |
86
+ step.ts | 0 | 0 | 0 | 0 |
87
+ while.ts | 0 | 0 | 0 | 0 |
88
+ ...dels/providers | 100 | 100 | 100 | 100 |
89
+ openai.ts | 100 | 100 | 100 | 100 |
90
+ core/provider | 100 | 100 | 100 | 100 |
91
+ provider.ts | 100 | 100 | 100 | 100 |
92
+ types.ts | 0 | 0 | 0 | 0 |
93
+ usage.ts | 100 | 100 | 100 | 100 |
94
+ lib | 100 | 94.11 | 100 | 100 |
95
+ context.ts | 0 | 0 | 0 | 0 |
96
+ hooks.ts | 100 | 100 | 100 | 100 |
97
+ middleware.ts | 100 | 88.88 | 100 | 100 | 39
98
+ runnable.ts | 100 | 100 | 100 | 100 |
99
+ trace.ts | 100 | 100 | 100 | 100 |
100
+ testing | 100 | 100 | 100 | 100 |
101
+ context.ts | 100 | 100 | 100 | 100 |
102
+ logger.ts | 100 | 100 | 100 | 100 |
103
+ utils | 100 | 100 | 100 | 100 |
104
+ attempt.ts | 100 | 100 | 100 | 100 |
105
+ error.ts | 100 | 100 | 100 | 100 |
106
+ resolve.ts | 100 | 100 | 100 | 100 |
107
+ result.ts | 100 | 100 | 100 | 100 |
108
+ zod.ts | 100 | 100 | 100 | 100 |
109
+ -------------------|---------|----------|---------|---------|-------------------
@@ -0,0 +1,141 @@
1
+
2
+ 
3
+ > @funkai/agents@0.4.0 test /Users/zacrosenbauer/Code/joggr/funkai/packages/agents
4
+ > vitest run --typecheck
5
+
6
+ [?25lTesting types with tsc and vue-tsc is an experimental feature.
7
+ Breaking changes might not follow SemVer, please pin Vitest's version when using it.
8
+
9
+  RUN  v4.1.0 /Users/zacrosenbauer/Code/joggr/funkai/packages/agents
10
+
11
+ [?2026h
12
+  ❯ src/core/agents/base/output.test.ts [queued]
13
+
14
+  Test Files 0 passed (32)
15
+  Tests 0 passed (0)
16
+  Start at 21:15:41
17
+  Duration 100ms
18
+ [?2026l[?2026h
19
+  ❯ src/core/agents/base/agent.test.ts [queued]
20
+  ❯ src/core/agents/base/output.test.ts 0/9
21
+  ❯ src/core/agents/base/utils.test.ts [queued]
22
+  ❯ src/core/agents/flow/engine.test.ts [queued]
23
+  ❯ src/core/agents/flow/flow-agent.test.ts [queued]
24
+  ❯ src/core/agents/flow/steps/agent.test.ts [queued]
25
+  ❯ src/core/agents/flow/steps/all.test.ts [queued]
26
+  ❯ src/core/agents/flow/steps/each.test.ts [queued]
27
+  ❯ src/core/agents/flow/steps/factory.test.ts [queued]
28
+  ❯ src/core/agents/flow/steps/map.test.ts [queued]
29
+  ❯ src/core/agents/flow/steps/race.test.ts [queued]
30
+  ❯ src/core/agents/flow/steps/reduce.test.ts [queued]
31
+  ❯ src/core/agents/flow/steps/step.test.ts [queued]
32
+  ❯ src/core/agents/flow/steps/while.test.ts [queued]
33
+  ❯ src/lib/middleware.test.ts [queued]
34
+
35
+  Test Files 0 passed (32)
36
+  Tests 0 passed (9)
37
+  Start at 21:15:41
38
+  Duration 203ms
39
+ [?2026l[?2026h ✓ src/lib/middleware.test.ts (6 tests) 9ms
40
+ ✓ src/core/agents/flow/steps/race.test.ts (13 tests) 6ms
41
+ ✓ src/core/agents/flow/steps/each.test.ts (13 tests) 5ms
42
+ ✓ src/core/agents/flow/steps/reduce.test.ts (14 tests) 5ms
43
+ ✓ src/core/agents/base/utils.test.ts (30 tests) 5ms
44
+ ✓ src/core/agents/flow/steps/while.test.ts (14 tests) 8ms
45
+ ✓ src/core/agents/flow/steps/agent.test.ts (14 tests) 7ms
46
+ ✓ src/core/agents/flow/steps/step.test.ts (19 tests) 13ms
47
+ ✓ src/core/agents/base/output.test.ts (9 tests) 33ms
48
+ stdout | src/core/agents/flow/engine.test.ts > createFlowEngine > edge cases > falls back to createDefaultLogger when logger is omitted from config
49
+ { flowAgentId: 'no-logger-flow', name: 'no-logger-flow' } flowAgent.generate start
50
+
51
+ stdout | src/core/agents/flow/engine.test.ts > createFlowEngine > edge cases > falls back to createDefaultLogger when logger is omitted from config
52
+ { flowAgentId: 'no-logger-flow', name: 'no-logger-flow', duration: 1 } flowAgent.generate finish
53
+
54
+ ✓ src/core/agents/flow/engine.test.ts (17 tests) 10ms
55
+ stdout | src/core/agents/flow/flow-agent.test.ts > edge cases > uses default logger when none provided
56
+ { flowAgentId: 'no-logger-flow', name: 'no-logger-flow' } flowAgent.generate start
57
+
58
+ stdout | src/core/agents/flow/flow-agent.test.ts > edge cases > uses default logger when none provided
59
+ { flowAgentId: 'no-logger-flow', name: 'no-logger-flow', duration: 0 } flowAgent.generate finish
60
+
61
+ ✓ src/core/agents/flow/steps/all.test.ts (14 tests) 40ms
62
+ ✓ src/core/agents/flow/flow-agent.test.ts (52 tests) 19ms
63
+ ✓ src/core/agents/flow/steps/factory.test.ts (40 tests) 65ms
64
+ ✓ src/core/agents/flow/steps/map.test.ts (13 tests) 75ms
65
+
66
+  ❯ src/core/agents/base/agent.test.ts 0/76
67
+  ❯ src/core/agents/base/output.test.ts 9/9
68
+  ❯ src/core/agents/base/utils.test.ts 30/30
69
+  ❯ src/core/agents/flow/engine.test.ts 17/17
70
+  ❯ src/core/agents/flow/flow-agent.test.ts 52/52
71
+  ❯ src/core/agents/flow/steps/agent.test.ts 14/14
72
+  ❯ src/core/agents/flow/steps/all.test.ts 14/14
73
+  ❯ src/core/agents/flow/steps/each.test.ts 13/13
74
+  ❯ src/core/agents/flow/steps/factory.test.ts 40/40
75
+  ❯ src/core/agents/flow/steps/map.test.ts 13/13
76
+  ❯ src/core/agents/flow/steps/race.test.ts 13/13
77
+  ❯ src/core/agents/flow/steps/reduce.test.ts 14/14
78
+  ❯ src/core/agents/flow/steps/step.test.ts 19/19
79
+  ❯ src/core/agents/flow/steps/while.test.ts 14/14
80
+  ❯ src/core/provider/provider.test.ts [queued]
81
+
82
+  Test Files 14 passed (32)
83
+  Tests 268 passed (344)
84
+  Start at 21:15:41
85
+  Duration 404ms
86
+ [?2026l[?2026h ✓ src/lib/hooks.test.ts (7 tests) 3ms
87
+ ✓ src/lib/trace.test.ts (19 tests) 3ms
88
+ ✓ src/lib/context.test.ts (10 tests) 3ms
89
+ ✓ src/core/logger.test.ts (14 tests) 4ms
90
+ ✓ src/core/provider/provider.test.ts (9 tests) 4ms
91
+ ✓ src/core/models/index.test.ts (16 tests) 4ms
92
+ ✓ src/utils/zod.test.ts (11 tests) 4ms
93
+ stdout | src/core/agents/base/agent.test.ts > edge cases > uses default logger when none provided
94
+ { agentId: 'no-logger-agent', name: 'no-logger-agent' } agent.generate start
95
+
96
+ stdout | src/core/agents/base/agent.test.ts > edge cases > uses default logger when none provided
97
+ { agentId: 'no-logger-agent', name: 'no-logger-agent', duration: 1 } agent.generate finish
98
+
99
+ ✓ src/core/agents/flow/messages.test.ts (18 tests) 3ms
100
+ ✓ src/utils/error.test.ts (32 tests) 3ms
101
+ ✓ src/core/provider/usage.test.ts (17 tests) 3ms
102
+ ✓ src/utils/attempt.test.ts (12 tests) 3ms
103
+ ✓ src/lib/runnable.test.ts (5 tests) 2ms
104
+ ✓ src/utils/resolve.test.ts (6 tests) 2ms
105
+
106
+
107
+
108
+
109
+  ❯ src/core/agents/base/agent.test.ts 55/76
110
+  ❯ src/core/tool.test.ts [queued]
111
+  ❯ src/lib/trace.test.ts 19/19
112
+  ❯ src/utils/result.test.ts 0/10
113
+
114
+  Test Files 27 passed (32)
115
+  Tests 499 passed (530)
116
+  Start at 21:15:41
117
+  Duration 504ms
118
+ [?2026l[?2026h ✓ src/utils/result.test.ts (10 tests) 2ms
119
+ ✓ src/core/tool.test.ts (6 tests) 2ms
120
+ ✓ src/core/agents/base/agent.test.ts (76 tests) 225ms
121
+
122
+
123
+
124
+
125
+  ❯  TS  src/core/agents/base/types.test-d.ts 0/13
126
+  ❯  TS  src/core/agents/flow/steps/factory.test-d.ts 0/8
127
+
128
+  Test Files 30 passed (32)
129
+  Tests 536 passed (557)
130
+  Start at 21:15:41
131
+  Duration 908ms
132
+ [?2026l ✓  TS  src/core/agents/base/types.test-d.ts (13 tests)
133
+ ✓  TS  src/core/agents/flow/steps/factory.test-d.ts (8 tests)
134
+
135
+  Test Files  32 passed (32)
136
+  Tests  557 passed (557)
137
+ Type Errors  no errors
138
+  Start at  21:15:41
139
+  Duration  1.05s (transform 1.34s, setup 0ms, import 2.93s, tests 573ms, environment 2ms, typecheck 481ms)
140
+
141
+ [?25h
@@ -0,0 +1,4 @@
1
+
2
+ > @funkai/agents@0.1.0 typecheck /Users/zacrosenbauer/Code/joggr/funkai/packages/agents
3
+ > tsc --noEmit
4
+
package/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ # @funkai/agents
2
+
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Initial release of `@funkai/agents` — lightweight workflow and agent orchestration framework built on the Vercel AI SDK.
8
+
9
+ - `agent()` — Create AI agents with typed input/output, system prompts, and tool integration
10
+ - `tool()` — Define function-calling tools with Zod-validated schemas
11
+ - `workflow()` — Build multi-step workflows with typed I/O and tracked steps via the `$` step builder
12
+ - `createWorkflowEngine()` — Create workflow factories with shared configuration and custom step types
13
+ - `openrouter()` / `createOpenRouter()` — OpenRouter provider integration
14
+ - Result-based error handling — all public methods return `Result<T>` discriminated unions
15
+ - Streaming support for both agents and workflows
16
+ - Step builder (`$`) with `step`, `agent`, `map`, `each`, `reduce`, `while`, `all`, and `race` operations