@cogitator-ai/core 0.1.0 → 0.3.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 (252) hide show
  1. package/README.md +920 -15
  2. package/dist/__tests__/agent.test.js +2 -2
  3. package/dist/__tests__/agent.test.js.map +1 -1
  4. package/dist/__tests__/base64.test.js +1 -1
  5. package/dist/__tests__/base64.test.js.map +1 -1
  6. package/dist/__tests__/calculator.test.js +1 -1
  7. package/dist/__tests__/calculator.test.js.map +1 -1
  8. package/dist/__tests__/cogitator-memory.test.js +2 -2
  9. package/dist/__tests__/cogitator-memory.test.js.map +1 -1
  10. package/dist/__tests__/datetime.test.js +1 -1
  11. package/dist/__tests__/datetime.test.js.map +1 -1
  12. package/dist/__tests__/exec.test.js +1 -1
  13. package/dist/__tests__/exec.test.js.map +1 -1
  14. package/dist/__tests__/filesystem.test.js +1 -1
  15. package/dist/__tests__/filesystem.test.js.map +1 -1
  16. package/dist/__tests__/google-backend.test.js +1 -1
  17. package/dist/__tests__/google-backend.test.js.map +1 -1
  18. package/dist/__tests__/hash.test.js +1 -1
  19. package/dist/__tests__/hash.test.js.map +1 -1
  20. package/dist/__tests__/http.test.js +1 -1
  21. package/dist/__tests__/http.test.js.map +1 -1
  22. package/dist/__tests__/json.test.js +1 -1
  23. package/dist/__tests__/json.test.js.map +1 -1
  24. package/dist/__tests__/logger.test.js +1 -1
  25. package/dist/__tests__/logger.test.js.map +1 -1
  26. package/dist/__tests__/random.test.js +1 -1
  27. package/dist/__tests__/random.test.js.map +1 -1
  28. package/dist/__tests__/regex.test.js +1 -1
  29. package/dist/__tests__/regex.test.js.map +1 -1
  30. package/dist/__tests__/registry.test.js +2 -2
  31. package/dist/__tests__/registry.test.js.map +1 -1
  32. package/dist/__tests__/sleep.test.js +1 -1
  33. package/dist/__tests__/sleep.test.js.map +1 -1
  34. package/dist/__tests__/tool.test.js +1 -1
  35. package/dist/__tests__/tool.test.js.map +1 -1
  36. package/dist/__tests__/uuid.test.js +1 -1
  37. package/dist/__tests__/uuid.test.js.map +1 -1
  38. package/dist/cogitator.d.ts +46 -1
  39. package/dist/cogitator.d.ts.map +1 -1
  40. package/dist/cogitator.js +274 -17
  41. package/dist/cogitator.js.map +1 -1
  42. package/dist/constitutional/constitution.d.ts +9 -0
  43. package/dist/constitutional/constitution.d.ts.map +1 -0
  44. package/dist/constitutional/constitution.js +215 -0
  45. package/dist/constitutional/constitution.js.map +1 -0
  46. package/dist/constitutional/constitutional-ai.d.ts +36 -0
  47. package/dist/constitutional/constitutional-ai.d.ts.map +1 -0
  48. package/dist/constitutional/constitutional-ai.js +163 -0
  49. package/dist/constitutional/constitutional-ai.js.map +1 -0
  50. package/dist/constitutional/critique-reviser.d.ts +20 -0
  51. package/dist/constitutional/critique-reviser.d.ts.map +1 -0
  52. package/dist/constitutional/critique-reviser.js +98 -0
  53. package/dist/constitutional/critique-reviser.js.map +1 -0
  54. package/dist/constitutional/index.d.ts +13 -0
  55. package/dist/constitutional/index.d.ts.map +1 -0
  56. package/dist/constitutional/index.js +8 -0
  57. package/dist/constitutional/index.js.map +1 -0
  58. package/dist/constitutional/input-filter.d.ts +19 -0
  59. package/dist/constitutional/input-filter.d.ts.map +1 -0
  60. package/dist/constitutional/input-filter.js +88 -0
  61. package/dist/constitutional/input-filter.js.map +1 -0
  62. package/dist/constitutional/output-filter.d.ts +19 -0
  63. package/dist/constitutional/output-filter.d.ts.map +1 -0
  64. package/dist/constitutional/output-filter.js +86 -0
  65. package/dist/constitutional/output-filter.js.map +1 -0
  66. package/dist/constitutional/prompts.d.ts +11 -0
  67. package/dist/constitutional/prompts.d.ts.map +1 -0
  68. package/dist/constitutional/prompts.js +202 -0
  69. package/dist/constitutional/prompts.js.map +1 -0
  70. package/dist/constitutional/tool-guard.d.ts +18 -0
  71. package/dist/constitutional/tool-guard.d.ts.map +1 -0
  72. package/dist/constitutional/tool-guard.js +125 -0
  73. package/dist/constitutional/tool-guard.js.map +1 -0
  74. package/dist/cost-routing/budget-enforcer.d.ts +26 -0
  75. package/dist/cost-routing/budget-enforcer.d.ts.map +1 -0
  76. package/dist/cost-routing/budget-enforcer.js +86 -0
  77. package/dist/cost-routing/budget-enforcer.js.map +1 -0
  78. package/dist/cost-routing/cost-router.d.ts +34 -0
  79. package/dist/cost-routing/cost-router.d.ts.map +1 -0
  80. package/dist/cost-routing/cost-router.js +80 -0
  81. package/dist/cost-routing/cost-router.js.map +1 -0
  82. package/dist/cost-routing/cost-tracker.d.ts +20 -0
  83. package/dist/cost-routing/cost-tracker.d.ts.map +1 -0
  84. package/dist/cost-routing/cost-tracker.js +85 -0
  85. package/dist/cost-routing/cost-tracker.js.map +1 -0
  86. package/dist/cost-routing/index.d.ts +6 -0
  87. package/dist/cost-routing/index.d.ts.map +1 -0
  88. package/dist/cost-routing/index.js +6 -0
  89. package/dist/cost-routing/index.js.map +1 -0
  90. package/dist/cost-routing/model-selector.d.ts +15 -0
  91. package/dist/cost-routing/model-selector.d.ts.map +1 -0
  92. package/dist/cost-routing/model-selector.js +216 -0
  93. package/dist/cost-routing/model-selector.js.map +1 -0
  94. package/dist/cost-routing/task-analyzer.d.ts +13 -0
  95. package/dist/cost-routing/task-analyzer.d.ts.map +1 -0
  96. package/dist/cost-routing/task-analyzer.js +185 -0
  97. package/dist/cost-routing/task-analyzer.js.map +1 -0
  98. package/dist/index.d.ts +19 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +9 -0
  101. package/dist/index.js.map +1 -1
  102. package/dist/learning/ab-testing.d.ts +45 -0
  103. package/dist/learning/ab-testing.d.ts.map +1 -0
  104. package/dist/learning/ab-testing.js +267 -0
  105. package/dist/learning/ab-testing.js.map +1 -0
  106. package/dist/learning/agent-optimizer.d.ts +42 -0
  107. package/dist/learning/agent-optimizer.d.ts.map +1 -0
  108. package/dist/learning/agent-optimizer.js +273 -0
  109. package/dist/learning/agent-optimizer.js.map +1 -0
  110. package/dist/learning/auto-optimizer.d.ts +38 -0
  111. package/dist/learning/auto-optimizer.d.ts.map +1 -0
  112. package/dist/learning/auto-optimizer.js +229 -0
  113. package/dist/learning/auto-optimizer.js.map +1 -0
  114. package/dist/learning/demo-selector.d.ts +29 -0
  115. package/dist/learning/demo-selector.d.ts.map +1 -0
  116. package/dist/learning/demo-selector.js +235 -0
  117. package/dist/learning/demo-selector.js.map +1 -0
  118. package/dist/learning/index.d.ts +24 -0
  119. package/dist/learning/index.d.ts.map +1 -0
  120. package/dist/learning/index.js +13 -0
  121. package/dist/learning/index.js.map +1 -0
  122. package/dist/learning/instruction-optimizer.d.ts +29 -0
  123. package/dist/learning/instruction-optimizer.d.ts.map +1 -0
  124. package/dist/learning/instruction-optimizer.js +175 -0
  125. package/dist/learning/instruction-optimizer.js.map +1 -0
  126. package/dist/learning/metrics.d.ts +37 -0
  127. package/dist/learning/metrics.d.ts.map +1 -0
  128. package/dist/learning/metrics.js +310 -0
  129. package/dist/learning/metrics.js.map +1 -0
  130. package/dist/learning/postgres-trace-store.d.ts +53 -0
  131. package/dist/learning/postgres-trace-store.d.ts.map +1 -0
  132. package/dist/learning/postgres-trace-store.js +692 -0
  133. package/dist/learning/postgres-trace-store.js.map +1 -0
  134. package/dist/learning/prompt-logger.d.ts +29 -0
  135. package/dist/learning/prompt-logger.d.ts.map +1 -0
  136. package/dist/learning/prompt-logger.js +157 -0
  137. package/dist/learning/prompt-logger.js.map +1 -0
  138. package/dist/learning/prompt-monitor.d.ts +29 -0
  139. package/dist/learning/prompt-monitor.d.ts.map +1 -0
  140. package/dist/learning/prompt-monitor.js +243 -0
  141. package/dist/learning/prompt-monitor.js.map +1 -0
  142. package/dist/learning/prompts.d.ts +28 -0
  143. package/dist/learning/prompts.d.ts.map +1 -0
  144. package/dist/learning/prompts.js +195 -0
  145. package/dist/learning/prompts.js.map +1 -0
  146. package/dist/learning/rollback-manager.d.ts +36 -0
  147. package/dist/learning/rollback-manager.d.ts.map +1 -0
  148. package/dist/learning/rollback-manager.js +177 -0
  149. package/dist/learning/rollback-manager.js.map +1 -0
  150. package/dist/learning/trace-store.d.ts +26 -0
  151. package/dist/learning/trace-store.d.ts.map +1 -0
  152. package/dist/learning/trace-store.js +218 -0
  153. package/dist/learning/trace-store.js.map +1 -0
  154. package/dist/llm/google.d.ts.map +1 -1
  155. package/dist/llm/google.js +1 -2
  156. package/dist/llm/google.js.map +1 -1
  157. package/dist/reasoning/branch-evaluator.d.ts +28 -0
  158. package/dist/reasoning/branch-evaluator.d.ts.map +1 -0
  159. package/dist/reasoning/branch-evaluator.js +143 -0
  160. package/dist/reasoning/branch-evaluator.js.map +1 -0
  161. package/dist/reasoning/branch-generator.d.ts +9 -0
  162. package/dist/reasoning/branch-generator.d.ts.map +1 -0
  163. package/dist/reasoning/branch-generator.js +60 -0
  164. package/dist/reasoning/branch-generator.js.map +1 -0
  165. package/dist/reasoning/index.d.ts +5 -0
  166. package/dist/reasoning/index.d.ts.map +1 -0
  167. package/dist/reasoning/index.js +5 -0
  168. package/dist/reasoning/index.js.map +1 -0
  169. package/dist/reasoning/prompts.d.ts +19 -0
  170. package/dist/reasoning/prompts.d.ts.map +1 -0
  171. package/dist/reasoning/prompts.js +161 -0
  172. package/dist/reasoning/prompts.js.map +1 -0
  173. package/dist/reasoning/thought-tree.d.ts +32 -0
  174. package/dist/reasoning/thought-tree.d.ts.map +1 -0
  175. package/dist/reasoning/thought-tree.js +352 -0
  176. package/dist/reasoning/thought-tree.js.map +1 -0
  177. package/dist/reflection/index.d.ts +4 -0
  178. package/dist/reflection/index.d.ts.map +1 -0
  179. package/dist/reflection/index.js +4 -0
  180. package/dist/reflection/index.js.map +1 -0
  181. package/dist/reflection/insight-store.d.ts +19 -0
  182. package/dist/reflection/insight-store.d.ts.map +1 -0
  183. package/dist/reflection/insight-store.js +129 -0
  184. package/dist/reflection/insight-store.js.map +1 -0
  185. package/dist/reflection/prompts.d.ts +18 -0
  186. package/dist/reflection/prompts.d.ts.map +1 -0
  187. package/dist/reflection/prompts.js +157 -0
  188. package/dist/reflection/prompts.js.map +1 -0
  189. package/dist/reflection/reflection-engine.d.ts +25 -0
  190. package/dist/reflection/reflection-engine.d.ts.map +1 -0
  191. package/dist/reflection/reflection-engine.js +202 -0
  192. package/dist/reflection/reflection-engine.js.map +1 -0
  193. package/dist/registry.d.ts +1 -0
  194. package/dist/registry.d.ts.map +1 -1
  195. package/dist/registry.js +3 -0
  196. package/dist/registry.js.map +1 -1
  197. package/dist/time-travel/checkpoint-store.d.ts +34 -0
  198. package/dist/time-travel/checkpoint-store.d.ts.map +1 -0
  199. package/dist/time-travel/checkpoint-store.js +240 -0
  200. package/dist/time-travel/checkpoint-store.js.map +1 -0
  201. package/dist/time-travel/comparator.d.ts +26 -0
  202. package/dist/time-travel/comparator.d.ts.map +1 -0
  203. package/dist/time-travel/comparator.js +253 -0
  204. package/dist/time-travel/comparator.js.map +1 -0
  205. package/dist/time-travel/forker.d.ts +22 -0
  206. package/dist/time-travel/forker.d.ts.map +1 -0
  207. package/dist/time-travel/forker.js +118 -0
  208. package/dist/time-travel/forker.js.map +1 -0
  209. package/dist/time-travel/index.d.ts +6 -0
  210. package/dist/time-travel/index.d.ts.map +1 -0
  211. package/dist/time-travel/index.js +6 -0
  212. package/dist/time-travel/index.js.map +1 -0
  213. package/dist/time-travel/replayer.d.ts +20 -0
  214. package/dist/time-travel/replayer.d.ts.map +1 -0
  215. package/dist/time-travel/replayer.js +147 -0
  216. package/dist/time-travel/replayer.js.map +1 -0
  217. package/dist/time-travel/time-travel.d.ts +41 -0
  218. package/dist/time-travel/time-travel.d.ts.map +1 -0
  219. package/dist/time-travel/time-travel.js +127 -0
  220. package/dist/time-travel/time-travel.js.map +1 -0
  221. package/dist/tool.d.ts.map +1 -1
  222. package/dist/tool.js +2 -0
  223. package/dist/tool.js.map +1 -1
  224. package/dist/tools/base64.d.ts.map +1 -1
  225. package/dist/tools/base64.js +2 -8
  226. package/dist/tools/base64.js.map +1 -1
  227. package/dist/tools/datetime.d.ts.map +1 -1
  228. package/dist/tools/datetime.js.map +1 -1
  229. package/dist/tools/exec.d.ts.map +1 -1
  230. package/dist/tools/exec.js +1 -4
  231. package/dist/tools/exec.js.map +1 -1
  232. package/dist/tools/filesystem.d.ts.map +1 -1
  233. package/dist/tools/filesystem.js +4 -1
  234. package/dist/tools/filesystem.js.map +1 -1
  235. package/dist/tools/hash.d.ts.map +1 -1
  236. package/dist/tools/hash.js +1 -4
  237. package/dist/tools/hash.js.map +1 -1
  238. package/dist/tools/http.d.ts.map +1 -1
  239. package/dist/tools/http.js +1 -4
  240. package/dist/tools/http.js.map +1 -1
  241. package/dist/tools/regex.d.ts.map +1 -1
  242. package/dist/tools/regex.js +4 -1
  243. package/dist/tools/regex.js.map +1 -1
  244. package/dist/utils/circuit-breaker.d.ts.map +1 -1
  245. package/dist/utils/circuit-breaker.js.map +1 -1
  246. package/dist/utils/fallback.d.ts.map +1 -1
  247. package/dist/utils/fallback.js +1 -4
  248. package/dist/utils/fallback.js.map +1 -1
  249. package/dist/utils/retry.d.ts.map +1 -1
  250. package/dist/utils/retry.js +8 -13
  251. package/dist/utils/retry.js.map +1 -1
  252. package/package.json +17 -8
@@ -0,0 +1,118 @@
1
+ import { nanoid } from 'nanoid';
2
+ export class ExecutionForker {
3
+ checkpointStore;
4
+ replayer;
5
+ constructor(options) {
6
+ this.checkpointStore = options.checkpointStore;
7
+ this.replayer = options.replayer;
8
+ }
9
+ async fork(cogitator, agent, options) {
10
+ const checkpoint = await this.checkpointStore.load(options.checkpointId);
11
+ if (!checkpoint) {
12
+ throw new Error(`Checkpoint not found: ${options.checkpointId}`);
13
+ }
14
+ const forkedCheckpoint = this.createForkedCheckpoint(checkpoint, options);
15
+ await this.checkpointStore.save(forkedCheckpoint);
16
+ const modifiedMessages = options.additionalContext
17
+ ? this.injectContext(forkedCheckpoint.messages, options.additionalContext)
18
+ : options.input
19
+ ? this.replaceInput(forkedCheckpoint.messages, options.input)
20
+ : undefined;
21
+ const result = await this.replayer.replay(cogitator, agent, {
22
+ fromCheckpoint: forkedCheckpoint.id,
23
+ mode: 'live',
24
+ modifiedMessages,
25
+ modifiedToolResults: options.mockToolResults,
26
+ });
27
+ return {
28
+ forkId: forkedCheckpoint.id,
29
+ checkpoint: forkedCheckpoint,
30
+ result,
31
+ };
32
+ }
33
+ async forkMultiple(cogitator, agent, checkpointId, variants) {
34
+ const results = [];
35
+ for (const variant of variants) {
36
+ const result = await this.fork(cogitator, agent, {
37
+ checkpointId,
38
+ ...variant,
39
+ });
40
+ results.push(result);
41
+ }
42
+ return results;
43
+ }
44
+ async forkWithContext(cogitator, agent, checkpointId, additionalContext, label) {
45
+ return this.fork(cogitator, agent, {
46
+ checkpointId,
47
+ additionalContext,
48
+ label: label ?? `fork_context_${nanoid(6)}`,
49
+ });
50
+ }
51
+ async forkWithMockedTools(cogitator, agent, checkpointId, mockResults, label) {
52
+ return this.fork(cogitator, agent, {
53
+ checkpointId,
54
+ mockToolResults: mockResults,
55
+ label: label ?? `fork_mocked_${nanoid(6)}`,
56
+ });
57
+ }
58
+ async forkWithNewInput(cogitator, agent, checkpointId, newInput, label) {
59
+ return this.fork(cogitator, agent, {
60
+ checkpointId,
61
+ input: newInput,
62
+ label: label ?? `fork_input_${nanoid(6)}`,
63
+ });
64
+ }
65
+ createForkedCheckpoint(original, options) {
66
+ return {
67
+ id: `ckpt_fork_${nanoid(12)}`,
68
+ traceId: original.traceId,
69
+ runId: original.runId,
70
+ agentId: original.agentId,
71
+ stepIndex: original.stepIndex,
72
+ messages: [...original.messages],
73
+ toolResults: { ...original.toolResults },
74
+ pendingToolCalls: [...original.pendingToolCalls],
75
+ label: options.label ?? `fork_of_${original.id}`,
76
+ createdAt: new Date(),
77
+ metadata: {
78
+ ...original.metadata,
79
+ forkedFrom: original.id,
80
+ forkType: options.additionalContext
81
+ ? 'context'
82
+ : options.input
83
+ ? 'input'
84
+ : options.mockToolResults
85
+ ? 'mocked'
86
+ : 'plain',
87
+ },
88
+ };
89
+ }
90
+ injectContext(messages, context) {
91
+ const result = [...messages];
92
+ const systemIndex = result.findIndex((m) => m.role === 'system');
93
+ if (systemIndex >= 0) {
94
+ result[systemIndex] = {
95
+ ...result[systemIndex],
96
+ content: `${result[systemIndex].content}\n\n---\nAdditional Context:\n${context}`,
97
+ };
98
+ }
99
+ else {
100
+ result.unshift({
101
+ role: 'system',
102
+ content: `Context:\n${context}`,
103
+ });
104
+ }
105
+ return result;
106
+ }
107
+ replaceInput(messages, newInput) {
108
+ const result = [...messages];
109
+ for (let i = result.length - 1; i >= 0; i--) {
110
+ if (result[i].role === 'user') {
111
+ result[i] = { ...result[i], content: newInput };
112
+ break;
113
+ }
114
+ }
115
+ return result;
116
+ }
117
+ }
118
+ //# sourceMappingURL=forker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forker.js","sourceRoot":"","sources":["../../src/time-travel/forker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { InMemoryCheckpointStore } from './checkpoint-store';
2
+ export { ExecutionReplayer, type ExecutionReplayerOptions } from './replayer';
3
+ export { ExecutionForker, type ExecutionForkerOptions } from './forker';
4
+ export { TraceComparator, type TraceComparatorOptions } from './comparator';
5
+ export { TimeTravel, type TimeTravelOptions } from './time-travel';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/time-travel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { InMemoryCheckpointStore } from './checkpoint-store';
2
+ export { ExecutionReplayer } from './replayer';
3
+ export { ExecutionForker } from './forker';
4
+ export { TraceComparator } from './comparator';
5
+ export { TimeTravel } from './time-travel';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/time-travel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAiC,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,eAAe,EAA+B,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,eAAe,EAA+B,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,UAAU,EAA0B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ReplayOptions, ReplayResult, TimeTravelCheckpointStore } from '@cogitator-ai/types';
2
+ import type { Agent } from '../agent';
3
+ import type { Cogitator } from '../cogitator';
4
+ export interface ExecutionReplayerOptions {
5
+ checkpointStore: TimeTravelCheckpointStore;
6
+ }
7
+ export declare class ExecutionReplayer {
8
+ private checkpointStore;
9
+ constructor(options: ExecutionReplayerOptions);
10
+ replay(cogitator: Cogitator, agent: Agent, options: ReplayOptions): Promise<ReplayResult>;
11
+ private replayDeterministic;
12
+ private replayLive;
13
+ private buildMessagesForReplay;
14
+ private mergeToolResults;
15
+ private extractUserInput;
16
+ private createReplayAgent;
17
+ private countSteps;
18
+ private findDivergencePoint;
19
+ }
20
+ //# sourceMappingURL=replayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replayer.d.ts","sourceRoot":"","sources":["../../src/time-travel/replayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACb,YAAY,EAGZ,yBAAyB,EAE1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,yBAAyB,CAAC;CAC5C;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,eAAe,CAA4B;gBAEvC,OAAO,EAAE,wBAAwB;IAIvC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAajF,mBAAmB;YAgDnB,UAAU;IA2CxB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,mBAAmB;CA4B5B"}
@@ -0,0 +1,147 @@
1
+ import { nanoid } from 'nanoid';
2
+ export class ExecutionReplayer {
3
+ checkpointStore;
4
+ constructor(options) {
5
+ this.checkpointStore = options.checkpointStore;
6
+ }
7
+ async replay(cogitator, agent, options) {
8
+ const checkpoint = await this.checkpointStore.load(options.fromCheckpoint);
9
+ if (!checkpoint) {
10
+ throw new Error(`Checkpoint not found: ${options.fromCheckpoint}`);
11
+ }
12
+ if (options.mode === 'deterministic') {
13
+ return this.replayDeterministic(cogitator, agent, checkpoint, options);
14
+ }
15
+ else {
16
+ return this.replayLive(cogitator, agent, checkpoint, options);
17
+ }
18
+ }
19
+ async replayDeterministic(_cogitator, agent, checkpoint, options) {
20
+ const messages = this.buildMessagesForReplay(checkpoint, options.modifiedMessages);
21
+ this.mergeToolResults(checkpoint.toolResults, options.modifiedToolResults);
22
+ const stepsReplayed = checkpoint.stepIndex + 1;
23
+ const stepsExecuted = 0;
24
+ const divergedAt = undefined;
25
+ const runId = `replay_${nanoid(12)}`;
26
+ const traceId = `trace_${nanoid(16)}`;
27
+ const startTime = Date.now();
28
+ const spans = [];
29
+ const output = messages.filter((m) => m.role === 'assistant').pop()?.content ?? '';
30
+ const result = {
31
+ output,
32
+ runId,
33
+ agentId: agent.id,
34
+ threadId: checkpoint.runId,
35
+ usage: {
36
+ inputTokens: 0,
37
+ outputTokens: 0,
38
+ totalTokens: 0,
39
+ cost: 0,
40
+ duration: Date.now() - startTime,
41
+ },
42
+ toolCalls: checkpoint.pendingToolCalls,
43
+ messages,
44
+ trace: {
45
+ traceId,
46
+ spans,
47
+ },
48
+ replayedFrom: checkpoint.id,
49
+ originalTraceId: checkpoint.traceId,
50
+ divergedAt,
51
+ stepsReplayed,
52
+ stepsExecuted,
53
+ };
54
+ return result;
55
+ }
56
+ async replayLive(cogitator, agent, checkpoint, options) {
57
+ const initialMessages = this.buildMessagesForReplay(checkpoint, options.modifiedMessages);
58
+ const input = this.extractUserInput(initialMessages);
59
+ const modifiedAgent = this.createReplayAgent(agent, initialMessages);
60
+ const runResult = await cogitator.run(modifiedAgent, {
61
+ input,
62
+ threadId: `replay_${checkpoint.runId}`,
63
+ onToolCall: (toolCall) => {
64
+ if (options.skipTools?.includes(toolCall.name)) {
65
+ return;
66
+ }
67
+ },
68
+ onToolResult: (result) => {
69
+ if (options.modifiedToolResults?.[result.callId]) {
70
+ result.result = options.modifiedToolResults[result.callId];
71
+ }
72
+ },
73
+ });
74
+ const stepsReplayed = checkpoint.stepIndex + 1;
75
+ const stepsExecuted = this.countSteps(runResult);
76
+ const divergedAt = this.findDivergencePoint(checkpoint, runResult);
77
+ const replayResult = {
78
+ ...runResult,
79
+ replayedFrom: checkpoint.id,
80
+ originalTraceId: checkpoint.traceId,
81
+ divergedAt,
82
+ stepsReplayed,
83
+ stepsExecuted,
84
+ };
85
+ return replayResult;
86
+ }
87
+ buildMessagesForReplay(checkpoint, modifications) {
88
+ if (modifications && modifications.length > 0) {
89
+ return modifications;
90
+ }
91
+ return [...checkpoint.messages];
92
+ }
93
+ mergeToolResults(cached, modified) {
94
+ return { ...cached, ...modified };
95
+ }
96
+ extractUserInput(messages) {
97
+ const userMessages = messages.filter((m) => m.role === 'user');
98
+ return userMessages[userMessages.length - 1]?.content ?? '';
99
+ }
100
+ createReplayAgent(agent, preloadedMessages) {
101
+ const systemMessage = preloadedMessages.find((m) => m.role === 'system');
102
+ const contextFromHistory = preloadedMessages
103
+ .filter((m) => m.role === 'assistant' || m.role === 'tool')
104
+ .map((m) => `[${m.role}]: ${m.content}`)
105
+ .join('\n');
106
+ const newInstructions = systemMessage
107
+ ? `${systemMessage.content}\n\n---\nReplay Context (conversation history up to checkpoint):\n${contextFromHistory}`
108
+ : agent.instructions;
109
+ return new agent.constructor({
110
+ ...agent.config,
111
+ name: `${agent.name}_replay`,
112
+ instructions: newInstructions,
113
+ });
114
+ }
115
+ countSteps(result) {
116
+ let count = 0;
117
+ for (const span of result.trace.spans) {
118
+ if (span.name.startsWith('tool.') ||
119
+ span.name.includes('llm') ||
120
+ span.name.includes('chat')) {
121
+ count++;
122
+ }
123
+ }
124
+ return count;
125
+ }
126
+ findDivergencePoint(checkpoint, result) {
127
+ const originalToolCalls = checkpoint.pendingToolCalls;
128
+ const newToolCalls = result.toolCalls;
129
+ for (let i = 0; i < Math.min(originalToolCalls.length, newToolCalls.length); i++) {
130
+ const orig = originalToolCalls[i];
131
+ const curr = newToolCalls[i];
132
+ if (orig.name !== curr.name) {
133
+ return checkpoint.stepIndex + i + 1;
134
+ }
135
+ const origArgs = JSON.stringify(orig.arguments);
136
+ const currArgs = JSON.stringify(curr.arguments);
137
+ if (origArgs !== currArgs) {
138
+ return checkpoint.stepIndex + i + 1;
139
+ }
140
+ }
141
+ if (originalToolCalls.length !== newToolCalls.length) {
142
+ return checkpoint.stepIndex + Math.min(originalToolCalls.length, newToolCalls.length) + 1;
143
+ }
144
+ return undefined;
145
+ }
146
+ }
147
+ //# sourceMappingURL=replayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replayer.js","sourceRoot":"","sources":["../../src/time-travel/replayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { ExecutionCheckpoint, ReplayOptions, ReplayResult, ForkOptions, ForkResult, TraceDiff, TraceStore, TimeTravelCheckpointStore, RunResult, TimeTravelConfig } from '@cogitator-ai/types';
2
+ import type { Agent } from '../agent';
3
+ import type { Cogitator } from '../cogitator';
4
+ export interface TimeTravelOptions {
5
+ checkpointStore?: TimeTravelCheckpointStore;
6
+ traceStore?: TraceStore;
7
+ config?: Partial<TimeTravelConfig>;
8
+ }
9
+ export declare class TimeTravel {
10
+ private cogitator;
11
+ private checkpointStore;
12
+ private traceStore;
13
+ private replayer;
14
+ private forker;
15
+ private comparator;
16
+ private config;
17
+ constructor(cogitator: Cogitator, options?: TimeTravelOptions);
18
+ checkpoint(result: RunResult, stepIndex: number, label?: string): Promise<ExecutionCheckpoint>;
19
+ checkpointAll(result: RunResult, labelPrefix?: string): Promise<ExecutionCheckpoint[]>;
20
+ checkpointEvery(result: RunResult, interval: number, labelPrefix?: string): Promise<ExecutionCheckpoint[]>;
21
+ getCheckpoints(traceId: string): Promise<ExecutionCheckpoint[]>;
22
+ getCheckpoint(checkpointId: string): Promise<ExecutionCheckpoint | null>;
23
+ deleteCheckpoint(checkpointId: string): Promise<boolean>;
24
+ replay(agent: Agent, checkpointId: string, options?: Partial<ReplayOptions>): Promise<ReplayResult>;
25
+ replayDeterministic(agent: Agent, checkpointId: string): Promise<ReplayResult>;
26
+ replayLive(agent: Agent, checkpointId: string, options?: Omit<Partial<ReplayOptions>, 'mode'>): Promise<ReplayResult>;
27
+ fork(agent: Agent, checkpointId: string, options?: Partial<ForkOptions>): Promise<ForkResult>;
28
+ forkWithContext(agent: Agent, checkpointId: string, additionalContext: string, label?: string): Promise<ForkResult>;
29
+ forkWithMockedTool(agent: Agent, checkpointId: string, toolName: string, mockResult: unknown, label?: string): Promise<ForkResult>;
30
+ forkWithMockedTools(agent: Agent, checkpointId: string, mockResults: Record<string, unknown>, label?: string): Promise<ForkResult>;
31
+ forkWithNewInput(agent: Agent, checkpointId: string, newInput: string, label?: string): Promise<ForkResult>;
32
+ forkMultiple(agent: Agent, checkpointId: string, variants: Array<Partial<ForkOptions>>): Promise<ForkResult[]>;
33
+ compare(traceId1: string, traceId2: string): Promise<TraceDiff>;
34
+ compareWithOriginal(replayResult: ReplayResult): Promise<TraceDiff>;
35
+ formatDiff(diff: TraceDiff): string;
36
+ getCheckpointStore(): TimeTravelCheckpointStore;
37
+ getTraceStore(): TraceStore;
38
+ getConfig(): TimeTravelConfig;
39
+ private countSteps;
40
+ }
41
+ //# sourceMappingURL=time-travel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-travel.d.ts","sourceRoot":"","sources":["../../src/time-travel/time-travel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { DEFAULT_TIME_TRAVEL_CONFIG } from '@cogitator-ai/types';
2
+ import { InMemoryCheckpointStore } from './checkpoint-store';
3
+ import { ExecutionReplayer } from './replayer';
4
+ import { ExecutionForker } from './forker';
5
+ import { TraceComparator } from './comparator';
6
+ import { InMemoryTraceStore } from '../learning/trace-store';
7
+ export class TimeTravel {
8
+ cogitator;
9
+ checkpointStore;
10
+ traceStore;
11
+ replayer;
12
+ forker;
13
+ comparator;
14
+ config;
15
+ constructor(cogitator, options) {
16
+ this.cogitator = cogitator;
17
+ this.config = { ...DEFAULT_TIME_TRAVEL_CONFIG, ...options?.config };
18
+ this.checkpointStore = options?.checkpointStore ?? new InMemoryCheckpointStore();
19
+ this.traceStore = options?.traceStore ?? new InMemoryTraceStore();
20
+ this.replayer = new ExecutionReplayer({
21
+ checkpointStore: this.checkpointStore,
22
+ });
23
+ this.forker = new ExecutionForker({
24
+ checkpointStore: this.checkpointStore,
25
+ replayer: this.replayer,
26
+ });
27
+ this.comparator = new TraceComparator({
28
+ traceStore: this.traceStore,
29
+ });
30
+ }
31
+ async checkpoint(result, stepIndex, label) {
32
+ const store = this.checkpointStore;
33
+ const checkpoint = store.createFromRunResult(result, stepIndex, { label });
34
+ await store.save(checkpoint);
35
+ return checkpoint;
36
+ }
37
+ async checkpointAll(result, labelPrefix) {
38
+ const store = this.checkpointStore;
39
+ return store.createAllFromRunResult(result, { labelPrefix });
40
+ }
41
+ async checkpointEvery(result, interval, labelPrefix) {
42
+ const store = this.checkpointStore;
43
+ const stepCount = this.countSteps(result);
44
+ const checkpoints = [];
45
+ for (let i = 0; i < stepCount; i += interval) {
46
+ const checkpoint = store.createFromRunResult(result, i, {
47
+ label: labelPrefix ? `${labelPrefix}_step_${i}` : undefined,
48
+ });
49
+ await store.save(checkpoint);
50
+ checkpoints.push(checkpoint);
51
+ }
52
+ return checkpoints;
53
+ }
54
+ async getCheckpoints(traceId) {
55
+ return this.checkpointStore.getByTrace(traceId);
56
+ }
57
+ async getCheckpoint(checkpointId) {
58
+ return this.checkpointStore.load(checkpointId);
59
+ }
60
+ async deleteCheckpoint(checkpointId) {
61
+ return this.checkpointStore.delete(checkpointId);
62
+ }
63
+ async replay(agent, checkpointId, options) {
64
+ return this.replayer.replay(this.cogitator, agent, {
65
+ fromCheckpoint: checkpointId,
66
+ mode: options?.mode ?? 'live',
67
+ ...options,
68
+ });
69
+ }
70
+ async replayDeterministic(agent, checkpointId) {
71
+ return this.replay(agent, checkpointId, { mode: 'deterministic' });
72
+ }
73
+ async replayLive(agent, checkpointId, options) {
74
+ return this.replay(agent, checkpointId, { mode: 'live', ...options });
75
+ }
76
+ async fork(agent, checkpointId, options) {
77
+ return this.forker.fork(this.cogitator, agent, {
78
+ checkpointId,
79
+ ...options,
80
+ });
81
+ }
82
+ async forkWithContext(agent, checkpointId, additionalContext, label) {
83
+ return this.forker.forkWithContext(this.cogitator, agent, checkpointId, additionalContext, label);
84
+ }
85
+ async forkWithMockedTool(agent, checkpointId, toolName, mockResult, label) {
86
+ return this.forker.forkWithMockedTools(this.cogitator, agent, checkpointId, { [toolName]: mockResult }, label);
87
+ }
88
+ async forkWithMockedTools(agent, checkpointId, mockResults, label) {
89
+ return this.forker.forkWithMockedTools(this.cogitator, agent, checkpointId, mockResults, label);
90
+ }
91
+ async forkWithNewInput(agent, checkpointId, newInput, label) {
92
+ return this.forker.forkWithNewInput(this.cogitator, agent, checkpointId, newInput, label);
93
+ }
94
+ async forkMultiple(agent, checkpointId, variants) {
95
+ return this.forker.forkMultiple(this.cogitator, agent, checkpointId, variants);
96
+ }
97
+ async compare(traceId1, traceId2) {
98
+ return this.comparator.compare(traceId1, traceId2);
99
+ }
100
+ async compareWithOriginal(replayResult) {
101
+ return this.comparator.compare(replayResult.originalTraceId, replayResult.trace.traceId);
102
+ }
103
+ formatDiff(diff) {
104
+ return this.comparator.formatDiff(diff);
105
+ }
106
+ getCheckpointStore() {
107
+ return this.checkpointStore;
108
+ }
109
+ getTraceStore() {
110
+ return this.traceStore;
111
+ }
112
+ getConfig() {
113
+ return { ...this.config };
114
+ }
115
+ countSteps(result) {
116
+ let count = 0;
117
+ for (const span of result.trace.spans) {
118
+ if (span.name.startsWith('tool.') ||
119
+ span.name.includes('llm') ||
120
+ span.name.includes('chat')) {
121
+ count++;
122
+ }
123
+ }
124
+ return count;
125
+ }
126
+ }
127
+ //# sourceMappingURL=time-travel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-travel.js","sourceRoot":"","sources":["../../src/time-travel/time-travel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIxE;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,EACnC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GACnC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAcxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAmBpF"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIxE;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,EACnC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GACnC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAgBxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAmBpF"}
package/dist/tool.js CHANGED
@@ -9,6 +9,8 @@ export function tool(config) {
9
9
  return {
10
10
  name: config.name,
11
11
  description: config.description,
12
+ category: config.category,
13
+ tags: config.tags,
12
14
  parameters: config.parameters,
13
15
  execute: config.execute,
14
16
  sideEffects: config.sideEffects,
package/dist/tool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,MAAoC;IAEpC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM;YACJ,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAmB,CAAyB;IACtE,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,UAAqB,EAAE;QAC1D,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,UAAqC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAgC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU;YACV,QAAQ;SACT;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,MAAoC;IAEpC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM;YACJ,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAmB,CAAyB;IACtE,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,UAAqB,EAAE;QAC1D,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,UAAqC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAgC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU;YACV,QAAQ;SACT;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/tools/base64.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,eAAO,MAAM,YAAY;;;;;;EAWvB,CAAC;AAUH,eAAO,MAAM,YAAY;;;;;;;;;;;EAmBvB,CAAC"}
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/tools/base64.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,eAAO,MAAM,YAAY;;;;;;EAWvB,CAAC;AAOH,eAAO,MAAM,YAAY;;;;;;;;;;;EAmBvB,CAAC"}
@@ -5,10 +5,7 @@ import { z } from 'zod';
5
5
  import { tool } from '../tool';
6
6
  const base64EncodeParams = z.object({
7
7
  data: z.string().describe('The string to encode'),
8
- urlSafe: z
9
- .boolean()
10
- .optional()
11
- .describe('Use URL-safe base64 encoding (default: false)'),
8
+ urlSafe: z.boolean().optional().describe('Use URL-safe base64 encoding (default: false)'),
12
9
  });
13
10
  export const base64Encode = tool({
14
11
  name: 'base64_encode',
@@ -24,10 +21,7 @@ export const base64Encode = tool({
24
21
  });
25
22
  const base64DecodeParams = z.object({
26
23
  data: z.string().describe('The base64 string to decode'),
27
- urlSafe: z
28
- .boolean()
29
- .optional()
30
- .describe('Input uses URL-safe base64 encoding (default: false)'),
24
+ urlSafe: z.boolean().optional().describe('Input uses URL-safe base64 encoding (default: false)'),
31
25
  });
32
26
  export const base64Decode = tool({
33
27
  name: 'base64_decode',
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/tools/base64.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACjD,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,8DAA8D;IAC3E,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,EAAE,EAAE;QAC3C,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACxD,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;CACpE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,4CAA4C;IACzD,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,KAAK,IAAI,GAAG,CAAC;gBACf,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/tools/base64.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;CAC1F,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,8DAA8D;IAC3E,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,EAAE,EAAE;QAC3C,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CACjG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,4CAA4C;IACzD,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,KAAK,IAAI,GAAG,CAAC;gBACf,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/tools/datetime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;EA2BnB,CAAC"}
1
+ {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/tools/datetime.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6EH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;EA2BnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/tools/datetime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/tools/datetime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/tools/exec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEf,CAAC"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/tools/exec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwEf,CAAC"}
@@ -16,10 +16,7 @@ const execParams = z.object({
16
16
  .max(300000)
17
17
  .optional()
18
18
  .describe('Command timeout in milliseconds (default: 30000, max: 300000 = 5 minutes)'),
19
- env: z
20
- .record(z.string())
21
- .optional()
22
- .describe('Additional environment variables'),
19
+ env: z.record(z.string()).optional().describe('Additional environment variables'),
23
20
  });
24
21
  export const exec = tool({
25
22
  name: 'exec',