@yolk-sdk/agent 0.0.1-canary.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 (161) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -0
  3. package/dist/client/index.d.mts +3 -0
  4. package/dist/client/index.mjs +3 -0
  5. package/dist/client/state.d.mts +99 -0
  6. package/dist/client/state.d.mts.map +1 -0
  7. package/dist/client/state.mjs +245 -0
  8. package/dist/client/state.mjs.map +1 -0
  9. package/dist/client/transport.d.mts +67 -0
  10. package/dist/client/transport.d.mts.map +1 -0
  11. package/dist/client/transport.mjs +219 -0
  12. package/dist/client/transport.mjs.map +1 -0
  13. package/dist/index.d.mts +1 -0
  14. package/dist/index.mjs +1 -0
  15. package/dist/loop/accumulator.d.mts +11 -0
  16. package/dist/loop/accumulator.d.mts.map +1 -0
  17. package/dist/loop/accumulator.mjs +40 -0
  18. package/dist/loop/accumulator.mjs.map +1 -0
  19. package/dist/loop/error.d.mts +36 -0
  20. package/dist/loop/error.d.mts.map +1 -0
  21. package/dist/loop/error.mjs +84 -0
  22. package/dist/loop/error.mjs.map +1 -0
  23. package/dist/loop/index.d.mts +9 -0
  24. package/dist/loop/index.mjs +9 -0
  25. package/dist/loop/llm-event.d.mts +44 -0
  26. package/dist/loop/llm-event.d.mts.map +1 -0
  27. package/dist/loop/llm-event.mjs +34 -0
  28. package/dist/loop/llm-event.mjs.map +1 -0
  29. package/dist/loop/run.d.mts +37 -0
  30. package/dist/loop/run.d.mts.map +1 -0
  31. package/dist/loop/run.mjs +624 -0
  32. package/dist/loop/run.mjs.map +1 -0
  33. package/dist/loop/services/context-transformer.d.mts +18 -0
  34. package/dist/loop/services/context-transformer.d.mts.map +1 -0
  35. package/dist/loop/services/context-transformer.mjs +12 -0
  36. package/dist/loop/services/context-transformer.mjs.map +1 -0
  37. package/dist/loop/services/llm-provider.d.mts +20 -0
  38. package/dist/loop/services/llm-provider.d.mts.map +1 -0
  39. package/dist/loop/services/llm-provider.mjs +7 -0
  40. package/dist/loop/services/llm-provider.mjs.map +1 -0
  41. package/dist/loop/services/loop-config.d.mts +17 -0
  42. package/dist/loop/services/loop-config.d.mts.map +1 -0
  43. package/dist/loop/services/loop-config.mjs +15 -0
  44. package/dist/loop/services/loop-config.mjs.map +1 -0
  45. package/dist/loop/services/tool-executor.d.mts +12 -0
  46. package/dist/loop/services/tool-executor.d.mts.map +1 -0
  47. package/dist/loop/services/tool-executor.mjs +7 -0
  48. package/dist/loop/services/tool-executor.mjs.map +1 -0
  49. package/dist/loop/testing/faux-provider.d.mts +31 -0
  50. package/dist/loop/testing/faux-provider.d.mts.map +1 -0
  51. package/dist/loop/testing/faux-provider.mjs +47 -0
  52. package/dist/loop/testing/faux-provider.mjs.map +1 -0
  53. package/dist/loop/testing/index.d.mts +3 -0
  54. package/dist/loop/testing/index.mjs +3 -0
  55. package/dist/loop/testing/test-tool-executor.d.mts +10 -0
  56. package/dist/loop/testing/test-tool-executor.d.mts.map +1 -0
  57. package/dist/loop/testing/test-tool-executor.mjs +21 -0
  58. package/dist/loop/testing/test-tool-executor.mjs.map +1 -0
  59. package/dist/protocol/capability.d.mts +20 -0
  60. package/dist/protocol/capability.d.mts.map +1 -0
  61. package/dist/protocol/capability.mjs +34 -0
  62. package/dist/protocol/capability.mjs.map +1 -0
  63. package/dist/protocol/content.d.mts +31 -0
  64. package/dist/protocol/content.d.mts.map +1 -0
  65. package/dist/protocol/content.mjs +52 -0
  66. package/dist/protocol/content.mjs.map +1 -0
  67. package/dist/protocol/event.d.mts +228 -0
  68. package/dist/protocol/event.d.mts.map +1 -0
  69. package/dist/protocol/event.mjs +217 -0
  70. package/dist/protocol/event.mjs.map +1 -0
  71. package/dist/protocol/index.d.mts +14 -0
  72. package/dist/protocol/index.d.mts.map +1 -0
  73. package/dist/protocol/index.mjs +9 -0
  74. package/dist/protocol/message.d.mts +53 -0
  75. package/dist/protocol/message.d.mts.map +1 -0
  76. package/dist/protocol/message.mjs +49 -0
  77. package/dist/protocol/message.mjs.map +1 -0
  78. package/dist/protocol/reasoning.d.mts +8 -0
  79. package/dist/protocol/reasoning.d.mts.map +1 -0
  80. package/dist/protocol/reasoning.mjs +13 -0
  81. package/dist/protocol/reasoning.mjs.map +1 -0
  82. package/dist/protocol/session.d.mts +39 -0
  83. package/dist/protocol/session.d.mts.map +1 -0
  84. package/dist/protocol/session.mjs +38 -0
  85. package/dist/protocol/session.mjs.map +1 -0
  86. package/dist/protocol/tool.d.mts +101 -0
  87. package/dist/protocol/tool.d.mts.map +1 -0
  88. package/dist/protocol/tool.mjs +102 -0
  89. package/dist/protocol/tool.mjs.map +1 -0
  90. package/dist/protocol/usage.d.mts +26 -0
  91. package/dist/protocol/usage.d.mts.map +1 -0
  92. package/dist/protocol/usage.mjs +40 -0
  93. package/dist/protocol/usage.mjs.map +1 -0
  94. package/dist/runtime/error.d.mts +29 -0
  95. package/dist/runtime/error.d.mts.map +1 -0
  96. package/dist/runtime/error.mjs +46 -0
  97. package/dist/runtime/error.mjs.map +1 -0
  98. package/dist/runtime/index.d.mts +9 -0
  99. package/dist/runtime/index.d.mts.map +1 -0
  100. package/dist/runtime/index.mjs +4 -0
  101. package/dist/runtime/run-runtime.d.mts +47 -0
  102. package/dist/runtime/run-runtime.d.mts.map +1 -0
  103. package/dist/runtime/run-runtime.mjs +112 -0
  104. package/dist/runtime/run-runtime.mjs.map +1 -0
  105. package/dist/runtime/session-event-store.d.mts +75 -0
  106. package/dist/runtime/session-event-store.d.mts.map +1 -0
  107. package/dist/runtime/session-event-store.mjs +124 -0
  108. package/dist/runtime/session-event-store.mjs.map +1 -0
  109. package/dist/tools/index.d.mts +4 -0
  110. package/dist/tools/index.mjs +4 -0
  111. package/dist/tools/question.d.mts +21 -0
  112. package/dist/tools/question.d.mts.map +1 -0
  113. package/dist/tools/question.mjs +41 -0
  114. package/dist/tools/question.mjs.map +1 -0
  115. package/dist/tools/registry.d.mts +61 -0
  116. package/dist/tools/registry.d.mts.map +1 -0
  117. package/dist/tools/registry.mjs +113 -0
  118. package/dist/tools/registry.mjs.map +1 -0
  119. package/dist/tools/task.d.mts +34 -0
  120. package/dist/tools/task.d.mts.map +1 -0
  121. package/dist/tools/task.mjs +81 -0
  122. package/dist/tools/task.mjs.map +1 -0
  123. package/package.json +86 -0
  124. package/src/client/README.md +23 -0
  125. package/src/client/index.ts +43 -0
  126. package/src/client/state.ts +380 -0
  127. package/src/client/transport.ts +517 -0
  128. package/src/index.ts +2 -0
  129. package/src/loop/README.md +23 -0
  130. package/src/loop/accumulator.ts +71 -0
  131. package/src/loop/error.ts +105 -0
  132. package/src/loop/index.ts +35 -0
  133. package/src/loop/llm-event.ts +52 -0
  134. package/src/loop/run.ts +1237 -0
  135. package/src/loop/services/context-transformer.ts +24 -0
  136. package/src/loop/services/llm-provider.ts +20 -0
  137. package/src/loop/services/loop-config.ts +20 -0
  138. package/src/loop/services/tool-executor.ts +11 -0
  139. package/src/loop/testing/faux-provider.ts +94 -0
  140. package/src/loop/testing/index.ts +3 -0
  141. package/src/loop/testing/test-tool-executor.ts +28 -0
  142. package/src/protocol/README.md +24 -0
  143. package/src/protocol/capability.ts +29 -0
  144. package/src/protocol/content.ts +76 -0
  145. package/src/protocol/event.ts +286 -0
  146. package/src/protocol/index.ts +109 -0
  147. package/src/protocol/message.ts +86 -0
  148. package/src/protocol/reasoning.ts +4 -0
  149. package/src/protocol/session.ts +47 -0
  150. package/src/protocol/tool.ts +154 -0
  151. package/src/protocol/usage.ts +48 -0
  152. package/src/runtime/README.md +44 -0
  153. package/src/runtime/error.ts +70 -0
  154. package/src/runtime/index.ts +43 -0
  155. package/src/runtime/run-runtime.ts +307 -0
  156. package/src/runtime/session-event-store.ts +254 -0
  157. package/src/tools/README.md +22 -0
  158. package/src/tools/index.ts +29 -0
  159. package/src/tools/question.ts +58 -0
  160. package/src/tools/registry.ts +228 -0
  161. package/src/tools/task.ts +132 -0
@@ -0,0 +1,105 @@
1
+ import * as Schema from 'effect/Schema'
2
+ import { AgentError, type AgentErrorCode } from '@yolk-sdk/agent/protocol'
3
+
4
+ export class LLMError extends Schema.TaggedErrorClass<LLMError>()('LLMError', {
5
+ cause: Schema.Literals([
6
+ 'validation_error',
7
+ 'provider_error',
8
+ 'rate_limit',
9
+ 'context_overflow',
10
+ 'invalid_response'
11
+ ]),
12
+ message: Schema.String,
13
+ retryable: Schema.Boolean
14
+ }) {}
15
+
16
+ export class FauxExhaustedError extends Schema.TaggedErrorClass<FauxExhaustedError>()(
17
+ 'FauxExhaustedError',
18
+ {
19
+ message: Schema.String
20
+ }
21
+ ) {}
22
+
23
+ export class ToolError extends Schema.TaggedErrorClass<ToolError>()('ToolError', {
24
+ tool: Schema.String,
25
+ message: Schema.String,
26
+ cause: Schema.Literals([
27
+ 'validation',
28
+ 'invalid_input',
29
+ 'execution',
30
+ 'timeout',
31
+ 'permission',
32
+ 'denied',
33
+ 'not_found',
34
+ 'unavailable'
35
+ ])
36
+ }) {}
37
+
38
+ export class ContextTransformError extends Schema.TaggedErrorClass<ContextTransformError>()(
39
+ 'ContextTransformError',
40
+ {
41
+ cause: Schema.Literals(['context_overflow', 'invalid_response']),
42
+ message: Schema.String,
43
+ retryable: Schema.Boolean
44
+ }
45
+ ) {}
46
+
47
+ export class AbortError extends Schema.TaggedErrorClass<AbortError>()('AbortError', {
48
+ reason: Schema.Literals(['user', 'system', 'max_turns'])
49
+ }) {}
50
+
51
+ export type LLMProviderError = LLMError | FauxExhaustedError | AbortError
52
+
53
+ export type AgentLoopError = LLMProviderError | ToolError | ContextTransformError
54
+
55
+ const toolErrorCode = (error: ToolError): AgentErrorCode => {
56
+ switch (error.cause) {
57
+ case 'validation':
58
+ case 'invalid_input':
59
+ return 'validation_error'
60
+ case 'timeout':
61
+ return 'tool_timeout'
62
+ case 'permission':
63
+ case 'denied':
64
+ return 'tool_denied'
65
+ case 'execution':
66
+ case 'not_found':
67
+ case 'unavailable':
68
+ return 'tool_error'
69
+ }
70
+ }
71
+
72
+ export const agentLoopErrorToAgentError = (error: AgentLoopError): AgentError => {
73
+ switch (error._tag) {
74
+ case 'LLMError':
75
+ return AgentError.make({
76
+ code: error.cause,
77
+ message: error.message,
78
+ retryable: error.retryable
79
+ })
80
+ case 'ToolError':
81
+ return AgentError.make({
82
+ code: toolErrorCode(error),
83
+ message: error.message,
84
+ retryable: error.cause === 'timeout'
85
+ })
86
+ case 'ContextTransformError':
87
+ return AgentError.make({
88
+ code: error.cause,
89
+ message: error.message,
90
+ retryable: error.retryable
91
+ })
92
+ case 'AbortError':
93
+ return AgentError.make({
94
+ code: 'aborted',
95
+ message: `Agent run aborted: ${error.reason}`,
96
+ retryable: error.reason === 'system'
97
+ })
98
+ case 'FauxExhaustedError':
99
+ return AgentError.make({
100
+ code: 'provider_error',
101
+ message: error.message,
102
+ retryable: false
103
+ })
104
+ }
105
+ }
@@ -0,0 +1,35 @@
1
+ export {
2
+ accumulateAssistantMessage,
3
+ collectReasoning,
4
+ collectText,
5
+ collectToolCalls
6
+ } from './accumulator.ts'
7
+ export {
8
+ AbortError,
9
+ agentLoopErrorToAgentError,
10
+ ContextTransformError,
11
+ FauxExhaustedError,
12
+ LLMError,
13
+ ToolError
14
+ } from './error.ts'
15
+ export type { AgentLoopError, LLMProviderError } from './error.ts'
16
+ export {
17
+ LLMDone,
18
+ LLMEvent,
19
+ LLMProviderToolResult,
20
+ LLMReasoningDelta,
21
+ LLMTextDelta,
22
+ LLMToolCall,
23
+ LLMToolInputDelta,
24
+ LLMToolInputStart,
25
+ LLMUsage
26
+ } from './llm-event.ts'
27
+ export { run, runModelTurn, runToolBatch } from './run.ts'
28
+ export type { AgentLoopRunId, ModelTurnConfig, RunConfig, ToolBatchConfig } from './run.ts'
29
+ export { ContextTransformer } from './services/context-transformer.ts'
30
+ export type { ContextTransformResult } from './services/context-transformer.ts'
31
+ export { LLMProvider } from './services/llm-provider.ts'
32
+ export type { LLMRequest } from './services/llm-provider.ts'
33
+ export { LoopConfig } from './services/loop-config.ts'
34
+ export type { LoopConfigShape } from './services/loop-config.ts'
35
+ export { ToolExecutor } from './services/tool-executor.ts'
@@ -0,0 +1,52 @@
1
+ import * as Schema from 'effect/Schema'
2
+ import { AgentUsage, ToolCall, ToolResult } from '@yolk-sdk/agent/protocol'
3
+
4
+ export class LLMTextDelta extends Schema.TaggedClass<LLMTextDelta>()('TextDelta', {
5
+ text: Schema.String
6
+ }) {}
7
+
8
+ export class LLMReasoningDelta extends Schema.TaggedClass<LLMReasoningDelta>()('ReasoningDelta', {
9
+ text: Schema.String
10
+ }) {}
11
+
12
+ export class LLMDone extends Schema.TaggedClass<LLMDone>()('Done', {
13
+ stopReason: Schema.Literals(['stop', 'tool_use'])
14
+ }) {}
15
+
16
+ export class LLMToolCall extends Schema.TaggedClass<LLMToolCall>()('ToolCall', {
17
+ call: ToolCall
18
+ }) {}
19
+
20
+ export class LLMToolInputStart extends Schema.TaggedClass<LLMToolInputStart>()('ToolInputStart', {
21
+ id: Schema.String,
22
+ name: Schema.optional(Schema.String)
23
+ }) {}
24
+
25
+ export class LLMToolInputDelta extends Schema.TaggedClass<LLMToolInputDelta>()('ToolInputDelta', {
26
+ id: Schema.String,
27
+ delta: Schema.String
28
+ }) {}
29
+
30
+ export class LLMProviderToolResult extends Schema.TaggedClass<LLMProviderToolResult>()(
31
+ 'ProviderToolResult',
32
+ {
33
+ call: ToolCall,
34
+ result: ToolResult
35
+ }
36
+ ) {}
37
+
38
+ export class LLMUsage extends Schema.TaggedClass<LLMUsage>()('Usage', {
39
+ usage: AgentUsage
40
+ }) {}
41
+
42
+ export const LLMEvent = Schema.Union([
43
+ LLMTextDelta,
44
+ LLMReasoningDelta,
45
+ LLMDone,
46
+ LLMToolCall,
47
+ LLMToolInputStart,
48
+ LLMToolInputDelta,
49
+ LLMProviderToolResult,
50
+ LLMUsage
51
+ ])
52
+ export type LLMEvent = typeof LLMEvent.Type