attocode 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 (488) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/LICENSE +21 -0
  3. package/README.md +164 -0
  4. package/dist/src/adapters.d.ts +83 -0
  5. package/dist/src/adapters.d.ts.map +1 -0
  6. package/dist/src/adapters.js +221 -0
  7. package/dist/src/adapters.js.map +1 -0
  8. package/dist/src/agent-tools/index.d.ts +7 -0
  9. package/dist/src/agent-tools/index.d.ts.map +1 -0
  10. package/dist/src/agent-tools/index.js +8 -0
  11. package/dist/src/agent-tools/index.js.map +1 -0
  12. package/dist/src/agent-tools/lsp-file-tools.d.ts +33 -0
  13. package/dist/src/agent-tools/lsp-file-tools.d.ts.map +1 -0
  14. package/dist/src/agent-tools/lsp-file-tools.js +200 -0
  15. package/dist/src/agent-tools/lsp-file-tools.js.map +1 -0
  16. package/dist/src/agent.d.ts +667 -0
  17. package/dist/src/agent.d.ts.map +1 -0
  18. package/dist/src/agent.js +2824 -0
  19. package/dist/src/agent.js.map +1 -0
  20. package/dist/src/cli.d.ts +36 -0
  21. package/dist/src/cli.d.ts.map +1 -0
  22. package/dist/src/cli.js +176 -0
  23. package/dist/src/cli.js.map +1 -0
  24. package/dist/src/commands/handler.d.ts +22 -0
  25. package/dist/src/commands/handler.d.ts.map +1 -0
  26. package/dist/src/commands/handler.js +1320 -0
  27. package/dist/src/commands/handler.js.map +1 -0
  28. package/dist/src/commands/init.d.ts +7 -0
  29. package/dist/src/commands/init.d.ts.map +1 -0
  30. package/dist/src/commands/init.js +153 -0
  31. package/dist/src/commands/init.js.map +1 -0
  32. package/dist/src/commands/types.d.ts +70 -0
  33. package/dist/src/commands/types.d.ts.map +1 -0
  34. package/dist/src/commands/types.js +8 -0
  35. package/dist/src/commands/types.js.map +1 -0
  36. package/dist/src/config.d.ts +22 -0
  37. package/dist/src/config.d.ts.map +1 -0
  38. package/dist/src/config.js +25 -0
  39. package/dist/src/config.js.map +1 -0
  40. package/dist/src/core/index.d.ts +32 -0
  41. package/dist/src/core/index.d.ts.map +1 -0
  42. package/dist/src/core/index.js +35 -0
  43. package/dist/src/core/index.js.map +1 -0
  44. package/dist/src/core/process-handlers.d.ts +43 -0
  45. package/dist/src/core/process-handlers.d.ts.map +1 -0
  46. package/dist/src/core/process-handlers.js +117 -0
  47. package/dist/src/core/process-handlers.js.map +1 -0
  48. package/dist/src/core/protocol/bridge.d.ts +117 -0
  49. package/dist/src/core/protocol/bridge.d.ts.map +1 -0
  50. package/dist/src/core/protocol/bridge.js +149 -0
  51. package/dist/src/core/protocol/bridge.js.map +1 -0
  52. package/dist/src/core/protocol/index.d.ts +8 -0
  53. package/dist/src/core/protocol/index.d.ts.map +1 -0
  54. package/dist/src/core/protocol/index.js +8 -0
  55. package/dist/src/core/protocol/index.js.map +1 -0
  56. package/dist/src/core/protocol/types.d.ts +539 -0
  57. package/dist/src/core/protocol/types.d.ts.map +1 -0
  58. package/dist/src/core/protocol/types.js +149 -0
  59. package/dist/src/core/protocol/types.js.map +1 -0
  60. package/dist/src/core/queues/atomic-counter.d.ts +36 -0
  61. package/dist/src/core/queues/atomic-counter.d.ts.map +1 -0
  62. package/dist/src/core/queues/atomic-counter.js +46 -0
  63. package/dist/src/core/queues/atomic-counter.js.map +1 -0
  64. package/dist/src/core/queues/event-queue.d.ts +126 -0
  65. package/dist/src/core/queues/event-queue.d.ts.map +1 -0
  66. package/dist/src/core/queues/event-queue.js +208 -0
  67. package/dist/src/core/queues/event-queue.js.map +1 -0
  68. package/dist/src/core/queues/index.d.ts +12 -0
  69. package/dist/src/core/queues/index.d.ts.map +1 -0
  70. package/dist/src/core/queues/index.js +15 -0
  71. package/dist/src/core/queues/index.js.map +1 -0
  72. package/dist/src/core/queues/submission-queue.d.ts +116 -0
  73. package/dist/src/core/queues/submission-queue.d.ts.map +1 -0
  74. package/dist/src/core/queues/submission-queue.js +236 -0
  75. package/dist/src/core/queues/submission-queue.js.map +1 -0
  76. package/dist/src/costs/index.d.ts +22 -0
  77. package/dist/src/costs/index.d.ts.map +1 -0
  78. package/dist/src/costs/index.js +22 -0
  79. package/dist/src/costs/index.js.map +1 -0
  80. package/dist/src/costs/model-registry.d.ts +80 -0
  81. package/dist/src/costs/model-registry.d.ts.map +1 -0
  82. package/dist/src/costs/model-registry.js +237 -0
  83. package/dist/src/costs/model-registry.js.map +1 -0
  84. package/dist/src/costs/types.d.ts +50 -0
  85. package/dist/src/costs/types.d.ts.map +1 -0
  86. package/dist/src/costs/types.js +2 -0
  87. package/dist/src/costs/types.js.map +1 -0
  88. package/dist/src/defaults.d.ts +114 -0
  89. package/dist/src/defaults.d.ts.map +1 -0
  90. package/dist/src/defaults.js +457 -0
  91. package/dist/src/defaults.js.map +1 -0
  92. package/dist/src/first-run.d.ts +35 -0
  93. package/dist/src/first-run.d.ts.map +1 -0
  94. package/dist/src/first-run.js +94 -0
  95. package/dist/src/first-run.js.map +1 -0
  96. package/dist/src/hello.d.ts +2 -0
  97. package/dist/src/hello.d.ts.map +1 -0
  98. package/dist/src/hello.js +4 -0
  99. package/dist/src/hello.js.map +1 -0
  100. package/dist/src/integrations/agent-registry.d.ts +160 -0
  101. package/dist/src/integrations/agent-registry.d.ts.map +1 -0
  102. package/dist/src/integrations/agent-registry.js +446 -0
  103. package/dist/src/integrations/agent-registry.js.map +1 -0
  104. package/dist/src/integrations/auto-compaction.d.ts +177 -0
  105. package/dist/src/integrations/auto-compaction.d.ts.map +1 -0
  106. package/dist/src/integrations/auto-compaction.js +428 -0
  107. package/dist/src/integrations/auto-compaction.js.map +1 -0
  108. package/dist/src/integrations/cancellation.d.ts +162 -0
  109. package/dist/src/integrations/cancellation.d.ts.map +1 -0
  110. package/dist/src/integrations/cancellation.js +339 -0
  111. package/dist/src/integrations/cancellation.js.map +1 -0
  112. package/dist/src/integrations/codebase-context.d.ts +319 -0
  113. package/dist/src/integrations/codebase-context.d.ts.map +1 -0
  114. package/dist/src/integrations/codebase-context.js +816 -0
  115. package/dist/src/integrations/codebase-context.js.map +1 -0
  116. package/dist/src/integrations/compaction.d.ts +192 -0
  117. package/dist/src/integrations/compaction.d.ts.map +1 -0
  118. package/dist/src/integrations/compaction.js +376 -0
  119. package/dist/src/integrations/compaction.js.map +1 -0
  120. package/dist/src/integrations/context-engineering.d.ts +246 -0
  121. package/dist/src/integrations/context-engineering.d.ts.map +1 -0
  122. package/dist/src/integrations/context-engineering.js +394 -0
  123. package/dist/src/integrations/context-engineering.js.map +1 -0
  124. package/dist/src/integrations/diff-utils.d.ts +105 -0
  125. package/dist/src/integrations/diff-utils.d.ts.map +1 -0
  126. package/dist/src/integrations/diff-utils.js +497 -0
  127. package/dist/src/integrations/diff-utils.js.map +1 -0
  128. package/dist/src/integrations/economics.d.ts +192 -0
  129. package/dist/src/integrations/economics.d.ts.map +1 -0
  130. package/dist/src/integrations/economics.js +431 -0
  131. package/dist/src/integrations/economics.js.map +1 -0
  132. package/dist/src/integrations/execution-policy.d.ts +189 -0
  133. package/dist/src/integrations/execution-policy.d.ts.map +1 -0
  134. package/dist/src/integrations/execution-policy.js +352 -0
  135. package/dist/src/integrations/execution-policy.js.map +1 -0
  136. package/dist/src/integrations/file-change-tracker.d.ts +161 -0
  137. package/dist/src/integrations/file-change-tracker.d.ts.map +1 -0
  138. package/dist/src/integrations/file-change-tracker.js +520 -0
  139. package/dist/src/integrations/file-change-tracker.js.map +1 -0
  140. package/dist/src/integrations/hierarchical-config.d.ts +212 -0
  141. package/dist/src/integrations/hierarchical-config.d.ts.map +1 -0
  142. package/dist/src/integrations/hierarchical-config.js +484 -0
  143. package/dist/src/integrations/hierarchical-config.js.map +1 -0
  144. package/dist/src/integrations/hooks.d.ts +114 -0
  145. package/dist/src/integrations/hooks.d.ts.map +1 -0
  146. package/dist/src/integrations/hooks.js +326 -0
  147. package/dist/src/integrations/hooks.js.map +1 -0
  148. package/dist/src/integrations/ignore.d.ts +143 -0
  149. package/dist/src/integrations/ignore.d.ts.map +1 -0
  150. package/dist/src/integrations/ignore.js +417 -0
  151. package/dist/src/integrations/ignore.js.map +1 -0
  152. package/dist/src/integrations/image-renderer.d.ts +119 -0
  153. package/dist/src/integrations/image-renderer.d.ts.map +1 -0
  154. package/dist/src/integrations/image-renderer.js +306 -0
  155. package/dist/src/integrations/image-renderer.js.map +1 -0
  156. package/dist/src/integrations/index.d.ts +42 -0
  157. package/dist/src/integrations/index.d.ts.map +1 -0
  158. package/dist/src/integrations/index.js +73 -0
  159. package/dist/src/integrations/index.js.map +1 -0
  160. package/dist/src/integrations/lsp.d.ts +196 -0
  161. package/dist/src/integrations/lsp.d.ts.map +1 -0
  162. package/dist/src/integrations/lsp.js +582 -0
  163. package/dist/src/integrations/lsp.js.map +1 -0
  164. package/dist/src/integrations/mcp-client.d.ts +270 -0
  165. package/dist/src/integrations/mcp-client.d.ts.map +1 -0
  166. package/dist/src/integrations/mcp-client.js +698 -0
  167. package/dist/src/integrations/mcp-client.js.map +1 -0
  168. package/dist/src/integrations/mcp-tool-search.d.ts +77 -0
  169. package/dist/src/integrations/mcp-tool-search.d.ts.map +1 -0
  170. package/dist/src/integrations/mcp-tool-search.js +220 -0
  171. package/dist/src/integrations/mcp-tool-search.js.map +1 -0
  172. package/dist/src/integrations/memory.d.ts +108 -0
  173. package/dist/src/integrations/memory.d.ts.map +1 -0
  174. package/dist/src/integrations/memory.js +288 -0
  175. package/dist/src/integrations/memory.js.map +1 -0
  176. package/dist/src/integrations/multi-agent.d.ts +150 -0
  177. package/dist/src/integrations/multi-agent.d.ts.map +1 -0
  178. package/dist/src/integrations/multi-agent.js +306 -0
  179. package/dist/src/integrations/multi-agent.js.map +1 -0
  180. package/dist/src/integrations/observability.d.ts +162 -0
  181. package/dist/src/integrations/observability.d.ts.map +1 -0
  182. package/dist/src/integrations/observability.js +406 -0
  183. package/dist/src/integrations/observability.js.map +1 -0
  184. package/dist/src/integrations/openrouter-pricing.d.ts +42 -0
  185. package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -0
  186. package/dist/src/integrations/openrouter-pricing.js +124 -0
  187. package/dist/src/integrations/openrouter-pricing.js.map +1 -0
  188. package/dist/src/integrations/pending-plan.d.ts +171 -0
  189. package/dist/src/integrations/pending-plan.d.ts.map +1 -0
  190. package/dist/src/integrations/pending-plan.js +244 -0
  191. package/dist/src/integrations/pending-plan.js.map +1 -0
  192. package/dist/src/integrations/persistence.d.ts +48 -0
  193. package/dist/src/integrations/persistence.d.ts.map +1 -0
  194. package/dist/src/integrations/persistence.js +196 -0
  195. package/dist/src/integrations/persistence.js.map +1 -0
  196. package/dist/src/integrations/planning.d.ts +96 -0
  197. package/dist/src/integrations/planning.d.ts.map +1 -0
  198. package/dist/src/integrations/planning.js +338 -0
  199. package/dist/src/integrations/planning.js.map +1 -0
  200. package/dist/src/integrations/pty-shell.d.ts +169 -0
  201. package/dist/src/integrations/pty-shell.d.ts.map +1 -0
  202. package/dist/src/integrations/pty-shell.js +367 -0
  203. package/dist/src/integrations/pty-shell.js.map +1 -0
  204. package/dist/src/integrations/react.d.ts +139 -0
  205. package/dist/src/integrations/react.d.ts.map +1 -0
  206. package/dist/src/integrations/react.js +273 -0
  207. package/dist/src/integrations/react.js.map +1 -0
  208. package/dist/src/integrations/resources.d.ts +177 -0
  209. package/dist/src/integrations/resources.d.ts.map +1 -0
  210. package/dist/src/integrations/resources.js +311 -0
  211. package/dist/src/integrations/resources.js.map +1 -0
  212. package/dist/src/integrations/result-synthesizer.d.ts +389 -0
  213. package/dist/src/integrations/result-synthesizer.d.ts.map +1 -0
  214. package/dist/src/integrations/result-synthesizer.js +951 -0
  215. package/dist/src/integrations/result-synthesizer.js.map +1 -0
  216. package/dist/src/integrations/routing.d.ts +117 -0
  217. package/dist/src/integrations/routing.d.ts.map +1 -0
  218. package/dist/src/integrations/routing.js +347 -0
  219. package/dist/src/integrations/routing.js.map +1 -0
  220. package/dist/src/integrations/rules.d.ts +131 -0
  221. package/dist/src/integrations/rules.d.ts.map +1 -0
  222. package/dist/src/integrations/rules.js +284 -0
  223. package/dist/src/integrations/rules.js.map +1 -0
  224. package/dist/src/integrations/safety.d.ts +142 -0
  225. package/dist/src/integrations/safety.d.ts.map +1 -0
  226. package/dist/src/integrations/safety.js +342 -0
  227. package/dist/src/integrations/safety.js.map +1 -0
  228. package/dist/src/integrations/sandbox/basic.d.ts +74 -0
  229. package/dist/src/integrations/sandbox/basic.d.ts.map +1 -0
  230. package/dist/src/integrations/sandbox/basic.js +310 -0
  231. package/dist/src/integrations/sandbox/basic.js.map +1 -0
  232. package/dist/src/integrations/sandbox/docker.d.ts +94 -0
  233. package/dist/src/integrations/sandbox/docker.d.ts.map +1 -0
  234. package/dist/src/integrations/sandbox/docker.js +293 -0
  235. package/dist/src/integrations/sandbox/docker.js.map +1 -0
  236. package/dist/src/integrations/sandbox/index.d.ts +182 -0
  237. package/dist/src/integrations/sandbox/index.d.ts.map +1 -0
  238. package/dist/src/integrations/sandbox/index.js +382 -0
  239. package/dist/src/integrations/sandbox/index.js.map +1 -0
  240. package/dist/src/integrations/sandbox/landlock.d.ts +59 -0
  241. package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -0
  242. package/dist/src/integrations/sandbox/landlock.js +326 -0
  243. package/dist/src/integrations/sandbox/landlock.js.map +1 -0
  244. package/dist/src/integrations/sandbox/seatbelt.d.ts +68 -0
  245. package/dist/src/integrations/sandbox/seatbelt.d.ts.map +1 -0
  246. package/dist/src/integrations/sandbox/seatbelt.js +298 -0
  247. package/dist/src/integrations/sandbox/seatbelt.js.map +1 -0
  248. package/dist/src/integrations/semantic-cache.d.ts +178 -0
  249. package/dist/src/integrations/semantic-cache.d.ts.map +1 -0
  250. package/dist/src/integrations/semantic-cache.js +372 -0
  251. package/dist/src/integrations/semantic-cache.js.map +1 -0
  252. package/dist/src/integrations/session-store.d.ts +183 -0
  253. package/dist/src/integrations/session-store.d.ts.map +1 -0
  254. package/dist/src/integrations/session-store.js +345 -0
  255. package/dist/src/integrations/session-store.js.map +1 -0
  256. package/dist/src/integrations/shared-blackboard.d.ts +403 -0
  257. package/dist/src/integrations/shared-blackboard.d.ts.map +1 -0
  258. package/dist/src/integrations/shared-blackboard.js +710 -0
  259. package/dist/src/integrations/shared-blackboard.js.map +1 -0
  260. package/dist/src/integrations/skills.d.ts +171 -0
  261. package/dist/src/integrations/skills.d.ts.map +1 -0
  262. package/dist/src/integrations/skills.js +403 -0
  263. package/dist/src/integrations/skills.js.map +1 -0
  264. package/dist/src/integrations/smart-decomposer.d.ts +322 -0
  265. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -0
  266. package/dist/src/integrations/smart-decomposer.js +856 -0
  267. package/dist/src/integrations/smart-decomposer.js.map +1 -0
  268. package/dist/src/integrations/sourcegraph.d.ts +169 -0
  269. package/dist/src/integrations/sourcegraph.d.ts.map +1 -0
  270. package/dist/src/integrations/sourcegraph.js +379 -0
  271. package/dist/src/integrations/sourcegraph.js.map +1 -0
  272. package/dist/src/integrations/sqlite-store.d.ts +518 -0
  273. package/dist/src/integrations/sqlite-store.d.ts.map +1 -0
  274. package/dist/src/integrations/sqlite-store.js +1423 -0
  275. package/dist/src/integrations/sqlite-store.js.map +1 -0
  276. package/dist/src/integrations/streaming.d.ts +102 -0
  277. package/dist/src/integrations/streaming.d.ts.map +1 -0
  278. package/dist/src/integrations/streaming.js +362 -0
  279. package/dist/src/integrations/streaming.js.map +1 -0
  280. package/dist/src/integrations/thread-manager.d.ts +199 -0
  281. package/dist/src/integrations/thread-manager.d.ts.map +1 -0
  282. package/dist/src/integrations/thread-manager.js +357 -0
  283. package/dist/src/integrations/thread-manager.js.map +1 -0
  284. package/dist/src/main.d.ts +26 -0
  285. package/dist/src/main.d.ts.map +1 -0
  286. package/dist/src/main.js +170 -0
  287. package/dist/src/main.js.map +1 -0
  288. package/dist/src/modes/index.d.ts +10 -0
  289. package/dist/src/modes/index.d.ts.map +1 -0
  290. package/dist/src/modes/index.js +10 -0
  291. package/dist/src/modes/index.js.map +1 -0
  292. package/dist/src/modes/repl.d.ts +19 -0
  293. package/dist/src/modes/repl.d.ts.map +1 -0
  294. package/dist/src/modes/repl.js +393 -0
  295. package/dist/src/modes/repl.js.map +1 -0
  296. package/dist/src/modes/tui.d.ts +29 -0
  297. package/dist/src/modes/tui.d.ts.map +1 -0
  298. package/dist/src/modes/tui.js +272 -0
  299. package/dist/src/modes/tui.js.map +1 -0
  300. package/dist/src/modes.d.ts +179 -0
  301. package/dist/src/modes.d.ts.map +1 -0
  302. package/dist/src/modes.js +385 -0
  303. package/dist/src/modes.js.map +1 -0
  304. package/dist/src/observability/tracer.d.ts +111 -0
  305. package/dist/src/observability/tracer.d.ts.map +1 -0
  306. package/dist/src/observability/tracer.js +300 -0
  307. package/dist/src/observability/tracer.js.map +1 -0
  308. package/dist/src/observability/types.d.ts +271 -0
  309. package/dist/src/observability/types.d.ts.map +1 -0
  310. package/dist/src/observability/types.js +24 -0
  311. package/dist/src/observability/types.js.map +1 -0
  312. package/dist/src/paths.d.ts +101 -0
  313. package/dist/src/paths.d.ts.map +1 -0
  314. package/dist/src/paths.js +148 -0
  315. package/dist/src/paths.js.map +1 -0
  316. package/dist/src/persistence/index.d.ts +38 -0
  317. package/dist/src/persistence/index.d.ts.map +1 -0
  318. package/dist/src/persistence/index.js +48 -0
  319. package/dist/src/persistence/index.js.map +1 -0
  320. package/dist/src/persistence/migrator.d.ts +135 -0
  321. package/dist/src/persistence/migrator.d.ts.map +1 -0
  322. package/dist/src/persistence/migrator.js +303 -0
  323. package/dist/src/persistence/migrator.js.map +1 -0
  324. package/dist/src/persistence/schema.d.ts +101 -0
  325. package/dist/src/persistence/schema.d.ts.map +1 -0
  326. package/dist/src/persistence/schema.js +395 -0
  327. package/dist/src/persistence/schema.js.map +1 -0
  328. package/dist/src/providers/adapters/anthropic.d.ts +20 -0
  329. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -0
  330. package/dist/src/providers/adapters/anthropic.js +124 -0
  331. package/dist/src/providers/adapters/anthropic.js.map +1 -0
  332. package/dist/src/providers/adapters/mock.d.ts +25 -0
  333. package/dist/src/providers/adapters/mock.d.ts.map +1 -0
  334. package/dist/src/providers/adapters/mock.js +133 -0
  335. package/dist/src/providers/adapters/mock.js.map +1 -0
  336. package/dist/src/providers/adapters/openai.d.ts +21 -0
  337. package/dist/src/providers/adapters/openai.d.ts.map +1 -0
  338. package/dist/src/providers/adapters/openai.js +126 -0
  339. package/dist/src/providers/adapters/openai.js.map +1 -0
  340. package/dist/src/providers/adapters/openrouter.d.ts +49 -0
  341. package/dist/src/providers/adapters/openrouter.d.ts.map +1 -0
  342. package/dist/src/providers/adapters/openrouter.js +363 -0
  343. package/dist/src/providers/adapters/openrouter.js.map +1 -0
  344. package/dist/src/providers/provider.d.ts +54 -0
  345. package/dist/src/providers/provider.d.ts.map +1 -0
  346. package/dist/src/providers/provider.js +111 -0
  347. package/dist/src/providers/provider.js.map +1 -0
  348. package/dist/src/providers/resilient-fetch.d.ts +99 -0
  349. package/dist/src/providers/resilient-fetch.d.ts.map +1 -0
  350. package/dist/src/providers/resilient-fetch.js +208 -0
  351. package/dist/src/providers/resilient-fetch.js.map +1 -0
  352. package/dist/src/providers/types.d.ts +227 -0
  353. package/dist/src/providers/types.d.ts.map +1 -0
  354. package/dist/src/providers/types.js +24 -0
  355. package/dist/src/providers/types.js.map +1 -0
  356. package/dist/src/session-picker.d.ts +28 -0
  357. package/dist/src/session-picker.d.ts.map +1 -0
  358. package/dist/src/session-picker.js +256 -0
  359. package/dist/src/session-picker.js.map +1 -0
  360. package/dist/src/test-sqlite.d.ts +2 -0
  361. package/dist/src/test-sqlite.d.ts.map +1 -0
  362. package/dist/src/test-sqlite.js +114 -0
  363. package/dist/src/test-sqlite.js.map +1 -0
  364. package/dist/src/tools/agent.d.ts +44 -0
  365. package/dist/src/tools/agent.d.ts.map +1 -0
  366. package/dist/src/tools/agent.js +110 -0
  367. package/dist/src/tools/agent.js.map +1 -0
  368. package/dist/src/tools/bash.d.ts +52 -0
  369. package/dist/src/tools/bash.d.ts.map +1 -0
  370. package/dist/src/tools/bash.js +141 -0
  371. package/dist/src/tools/bash.js.map +1 -0
  372. package/dist/src/tools/file.d.ts +47 -0
  373. package/dist/src/tools/file.d.ts.map +1 -0
  374. package/dist/src/tools/file.js +263 -0
  375. package/dist/src/tools/file.js.map +1 -0
  376. package/dist/src/tools/permission.d.ts +43 -0
  377. package/dist/src/tools/permission.d.ts.map +1 -0
  378. package/dist/src/tools/permission.js +216 -0
  379. package/dist/src/tools/permission.js.map +1 -0
  380. package/dist/src/tools/registry.d.ts +63 -0
  381. package/dist/src/tools/registry.d.ts.map +1 -0
  382. package/dist/src/tools/registry.js +250 -0
  383. package/dist/src/tools/registry.js.map +1 -0
  384. package/dist/src/tools/standard.d.ts +57 -0
  385. package/dist/src/tools/standard.d.ts.map +1 -0
  386. package/dist/src/tools/standard.js +113 -0
  387. package/dist/src/tools/standard.js.map +1 -0
  388. package/dist/src/tools/types.d.ts +146 -0
  389. package/dist/src/tools/types.d.ts.map +1 -0
  390. package/dist/src/tools/types.js +28 -0
  391. package/dist/src/tools/types.js.map +1 -0
  392. package/dist/src/tools/undo.d.ts +71 -0
  393. package/dist/src/tools/undo.d.ts.map +1 -0
  394. package/dist/src/tools/undo.js +123 -0
  395. package/dist/src/tools/undo.js.map +1 -0
  396. package/dist/src/tracing/cache-boundary-tracker.d.ts +189 -0
  397. package/dist/src/tracing/cache-boundary-tracker.d.ts.map +1 -0
  398. package/dist/src/tracing/cache-boundary-tracker.js +411 -0
  399. package/dist/src/tracing/cache-boundary-tracker.js.map +1 -0
  400. package/dist/src/tracing/trace-collector.d.ts +274 -0
  401. package/dist/src/tracing/trace-collector.d.ts.map +1 -0
  402. package/dist/src/tracing/trace-collector.js +727 -0
  403. package/dist/src/tracing/trace-collector.js.map +1 -0
  404. package/dist/src/tracing/types.d.ts +657 -0
  405. package/dist/src/tracing/types.d.ts.map +1 -0
  406. package/dist/src/tracing/types.js +39 -0
  407. package/dist/src/tracing/types.js.map +1 -0
  408. package/dist/src/tricks/failure-evidence.d.ts +268 -0
  409. package/dist/src/tricks/failure-evidence.d.ts.map +1 -0
  410. package/dist/src/tricks/failure-evidence.js +544 -0
  411. package/dist/src/tricks/failure-evidence.js.map +1 -0
  412. package/dist/src/tricks/json-utils.d.ts +77 -0
  413. package/dist/src/tricks/json-utils.d.ts.map +1 -0
  414. package/dist/src/tricks/json-utils.js +247 -0
  415. package/dist/src/tricks/json-utils.js.map +1 -0
  416. package/dist/src/tricks/kv-cache-context.d.ts +227 -0
  417. package/dist/src/tricks/kv-cache-context.d.ts.map +1 -0
  418. package/dist/src/tricks/kv-cache-context.js +377 -0
  419. package/dist/src/tricks/kv-cache-context.js.map +1 -0
  420. package/dist/src/tricks/recitation.d.ts +208 -0
  421. package/dist/src/tricks/recitation.d.ts.map +1 -0
  422. package/dist/src/tricks/recitation.js +374 -0
  423. package/dist/src/tricks/recitation.js.map +1 -0
  424. package/dist/src/tricks/reversible-compaction.d.ts +251 -0
  425. package/dist/src/tricks/reversible-compaction.d.ts.map +1 -0
  426. package/dist/src/tricks/reversible-compaction.js +555 -0
  427. package/dist/src/tricks/reversible-compaction.js.map +1 -0
  428. package/dist/src/tricks/serialization-diversity.d.ts +197 -0
  429. package/dist/src/tricks/serialization-diversity.d.ts.map +1 -0
  430. package/dist/src/tricks/serialization-diversity.js +460 -0
  431. package/dist/src/tricks/serialization-diversity.js.map +1 -0
  432. package/dist/src/tui/app.d.ts +42 -0
  433. package/dist/src/tui/app.d.ts.map +1 -0
  434. package/dist/src/tui/app.js +1076 -0
  435. package/dist/src/tui/app.js.map +1 -0
  436. package/dist/src/tui/components/ApprovalDialog.d.ts +28 -0
  437. package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -0
  438. package/dist/src/tui/components/ApprovalDialog.js +59 -0
  439. package/dist/src/tui/components/ApprovalDialog.js.map +1 -0
  440. package/dist/src/tui/components/InputArea.d.ts +35 -0
  441. package/dist/src/tui/components/InputArea.d.ts.map +1 -0
  442. package/dist/src/tui/components/InputArea.js +144 -0
  443. package/dist/src/tui/components/InputArea.js.map +1 -0
  444. package/dist/src/tui/components/MessageItem.d.ts +28 -0
  445. package/dist/src/tui/components/MessageItem.d.ts.map +1 -0
  446. package/dist/src/tui/components/MessageItem.js +27 -0
  447. package/dist/src/tui/components/MessageItem.js.map +1 -0
  448. package/dist/src/tui/components/ScrollableBox.d.ts +41 -0
  449. package/dist/src/tui/components/ScrollableBox.d.ts.map +1 -0
  450. package/dist/src/tui/components/ScrollableBox.js +101 -0
  451. package/dist/src/tui/components/ScrollableBox.js.map +1 -0
  452. package/dist/src/tui/components/ToolCallItem.d.ts +33 -0
  453. package/dist/src/tui/components/ToolCallItem.d.ts.map +1 -0
  454. package/dist/src/tui/components/ToolCallItem.js +91 -0
  455. package/dist/src/tui/components/ToolCallItem.js.map +1 -0
  456. package/dist/src/tui/components/index.d.ts +13 -0
  457. package/dist/src/tui/components/index.d.ts.map +1 -0
  458. package/dist/src/tui/components/index.js +15 -0
  459. package/dist/src/tui/components/index.js.map +1 -0
  460. package/dist/src/tui/event-display.d.ts +19 -0
  461. package/dist/src/tui/event-display.d.ts.map +1 -0
  462. package/dist/src/tui/event-display.js +178 -0
  463. package/dist/src/tui/event-display.js.map +1 -0
  464. package/dist/src/tui/index.d.ts +105 -0
  465. package/dist/src/tui/index.d.ts.map +1 -0
  466. package/dist/src/tui/index.js +214 -0
  467. package/dist/src/tui/index.js.map +1 -0
  468. package/dist/src/tui/input/CommandPalette.d.ts +55 -0
  469. package/dist/src/tui/input/CommandPalette.d.ts.map +1 -0
  470. package/dist/src/tui/input/CommandPalette.js +135 -0
  471. package/dist/src/tui/input/CommandPalette.js.map +1 -0
  472. package/dist/src/tui/input/index.d.ts +7 -0
  473. package/dist/src/tui/input/index.d.ts.map +1 -0
  474. package/dist/src/tui/input/index.js +7 -0
  475. package/dist/src/tui/input/index.js.map +1 -0
  476. package/dist/src/tui/theme/index.d.ts +45 -0
  477. package/dist/src/tui/theme/index.d.ts.map +1 -0
  478. package/dist/src/tui/theme/index.js +215 -0
  479. package/dist/src/tui/theme/index.js.map +1 -0
  480. package/dist/src/tui/types.d.ts +214 -0
  481. package/dist/src/tui/types.d.ts.map +1 -0
  482. package/dist/src/tui/types.js +27 -0
  483. package/dist/src/tui/types.js.map +1 -0
  484. package/dist/src/types.d.ts +905 -0
  485. package/dist/src/types.d.ts.map +1 -0
  486. package/dist/src/types.js +9 -0
  487. package/dist/src/types.js.map +1 -0
  488. package/package.json +89 -0
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Trick T: Serialization Diversity
3
+ *
4
+ * Introduces controlled variation in how context is serialized to prevent
5
+ * few-shot pattern collapse and over-fitting to specific formats.
6
+ *
7
+ * Problem: When tool results and context are always serialized identically,
8
+ * the model may develop rigid patterns - expecting certain fields in certain
9
+ * orders, or failing when encountering slight variations.
10
+ *
11
+ * Solution: Introduce controlled diversity in serialization:
12
+ * - Vary key ordering
13
+ * - Use different quote styles
14
+ * - Alternate between compact and pretty printing
15
+ * - Randomize array orderings where semantically equivalent
16
+ *
17
+ * This helps the model stay robust to format variations.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { createDiverseSerializer, serializeWithVariation } from './serialization-diversity';
22
+ *
23
+ * const serializer = createDiverseSerializer({
24
+ * variationLevel: 0.3, // 30% variation
25
+ * preserveSemantics: true,
26
+ * });
27
+ *
28
+ * // Each call may produce slightly different (but equivalent) output
29
+ * const json1 = serializer.serialize(data);
30
+ * const json2 = serializer.serialize(data);
31
+ * // json1 and json2 are semantically equivalent but may differ in format
32
+ * ```
33
+ */
34
+ /**
35
+ * Configuration for serialization diversity.
36
+ */
37
+ export interface DiverseSerializerConfig {
38
+ /** Level of variation (0-1). Higher = more variation. Default: 0.3 */
39
+ variationLevel?: number;
40
+ /** Whether to preserve semantic meaning (never break validity) */
41
+ preserveSemantics?: boolean;
42
+ /** Whether to vary key ordering */
43
+ varyKeyOrder?: boolean;
44
+ /** Whether to vary indentation */
45
+ varyIndentation?: boolean;
46
+ /** Whether to vary spacing */
47
+ varySpacing?: boolean;
48
+ /** Whether to sometimes omit null/undefined values */
49
+ omitNullish?: boolean;
50
+ /** Whether to vary array element formatting */
51
+ varyArrayFormat?: boolean;
52
+ /** Seed for deterministic variation (useful for testing) */
53
+ seed?: number;
54
+ }
55
+ /**
56
+ * Serialization style options.
57
+ */
58
+ export interface SerializationStyle {
59
+ /** Indentation: 0 (compact), 2, 4, or 'tab' */
60
+ indent: number | 'tab';
61
+ /** Whether to sort keys */
62
+ sortKeys: boolean;
63
+ /** Key sort order: 'asc', 'desc', or 'random' */
64
+ keySortOrder: 'asc' | 'desc' | 'random';
65
+ /** Whether to include trailing commas (for template literals) */
66
+ trailingComma: boolean;
67
+ /** Space after colons */
68
+ spaceAfterColon: boolean;
69
+ /** Space inside brackets/braces */
70
+ spaceInsideBrackets: boolean;
71
+ /** Whether to omit null values */
72
+ omitNull: boolean;
73
+ /** Whether to omit undefined values */
74
+ omitUndefined: boolean;
75
+ /** Array style: 'compact', 'expanded', 'mixed' */
76
+ arrayStyle: 'compact' | 'expanded' | 'mixed';
77
+ }
78
+ /**
79
+ * Statistics about serialization diversity.
80
+ */
81
+ export interface DiversityStats {
82
+ /** Total serializations performed */
83
+ totalSerializations: number;
84
+ /** Distribution of styles used */
85
+ styleDistribution: Map<string, number>;
86
+ /** Average variation score */
87
+ averageVariation: number;
88
+ }
89
+ /**
90
+ * Events emitted by diverse serializer.
91
+ */
92
+ export type SerializerEvent = {
93
+ type: 'serialization.performed';
94
+ style: Partial<SerializationStyle>;
95
+ variation: number;
96
+ } | {
97
+ type: 'style.changed';
98
+ newStyle: Partial<SerializationStyle>;
99
+ };
100
+ export type SerializerEventListener = (event: SerializerEvent) => void;
101
+ /**
102
+ * Serializer that introduces controlled variation.
103
+ */
104
+ export declare class DiverseSerializer {
105
+ private config;
106
+ private random;
107
+ private stats;
108
+ private listeners;
109
+ constructor(config?: DiverseSerializerConfig);
110
+ /**
111
+ * Serialize data with controlled variation.
112
+ */
113
+ serialize(data: unknown): string;
114
+ /**
115
+ * Serialize with a specific style.
116
+ */
117
+ serializeWithStyle(data: unknown, style: Partial<SerializationStyle>): string;
118
+ /**
119
+ * Generate a random style based on variation level.
120
+ */
121
+ generateStyle(): Partial<SerializationStyle>;
122
+ /**
123
+ * Get a consistent style for deterministic output.
124
+ */
125
+ getConsistentStyle(): SerializationStyle;
126
+ /**
127
+ * Get serialization statistics.
128
+ */
129
+ getStats(): DiversityStats;
130
+ /**
131
+ * Reset statistics.
132
+ */
133
+ resetStats(): void;
134
+ /**
135
+ * Update variation level.
136
+ */
137
+ setVariationLevel(level: number): void;
138
+ /**
139
+ * Subscribe to events.
140
+ */
141
+ on(listener: SerializerEventListener): () => void;
142
+ private mergeWithDefaults;
143
+ private doSerialize;
144
+ private serializeArray;
145
+ private serializeObject;
146
+ private getIndentString;
147
+ private getStyleKey;
148
+ private parseStyleKey;
149
+ private calculateVariation;
150
+ private emit;
151
+ }
152
+ /**
153
+ * Create a diverse serializer.
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const serializer = createDiverseSerializer({
158
+ * variationLevel: 0.3,
159
+ * preserveSemantics: true,
160
+ * });
161
+ *
162
+ * // Serialize tool results with variation
163
+ * const result1 = serializer.serialize({ files: ['a.ts', 'b.ts'], count: 2 });
164
+ * const result2 = serializer.serialize({ files: ['a.ts', 'b.ts'], count: 2 });
165
+ *
166
+ * // Results are semantically equivalent but may differ in format:
167
+ * // result1: {"count": 2, "files": ["a.ts", "b.ts"]}
168
+ * // result2: {"files": ["a.ts", "b.ts"], "count": 2}
169
+ * ```
170
+ */
171
+ export declare function createDiverseSerializer(config?: DiverseSerializerConfig): DiverseSerializer;
172
+ /**
173
+ * Quick helper to serialize with variation.
174
+ */
175
+ export declare function serializeWithVariation(data: unknown, variationLevel?: number): string;
176
+ /**
177
+ * Generate multiple serializations of the same data.
178
+ * Useful for training data or testing robustness.
179
+ */
180
+ export declare function generateVariations(data: unknown, count: number, variationLevel?: number): string[];
181
+ /**
182
+ * Apply diversity to tool call arguments.
183
+ */
184
+ export declare function diversifyToolArgs(args: Record<string, unknown>, variationLevel?: number): string;
185
+ /**
186
+ * Apply diversity to tool results.
187
+ */
188
+ export declare function diversifyToolResult(result: unknown, variationLevel?: number): string;
189
+ /**
190
+ * Format diversity stats for display.
191
+ */
192
+ export declare function formatDiversityStats(stats: DiversityStats): string;
193
+ /**
194
+ * Validate that two serializations are semantically equivalent.
195
+ */
196
+ export declare function areSemanticEquivalent(json1: string, json2: string): boolean;
197
+ //# sourceMappingURL=serialization-diversity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization-diversity.d.ts","sourceRoot":"","sources":["../../../src/tricks/serialization-diversity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,460 @@
1
+ /**
2
+ * Trick T: Serialization Diversity
3
+ *
4
+ * Introduces controlled variation in how context is serialized to prevent
5
+ * few-shot pattern collapse and over-fitting to specific formats.
6
+ *
7
+ * Problem: When tool results and context are always serialized identically,
8
+ * the model may develop rigid patterns - expecting certain fields in certain
9
+ * orders, or failing when encountering slight variations.
10
+ *
11
+ * Solution: Introduce controlled diversity in serialization:
12
+ * - Vary key ordering
13
+ * - Use different quote styles
14
+ * - Alternate between compact and pretty printing
15
+ * - Randomize array orderings where semantically equivalent
16
+ *
17
+ * This helps the model stay robust to format variations.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { createDiverseSerializer, serializeWithVariation } from './serialization-diversity';
22
+ *
23
+ * const serializer = createDiverseSerializer({
24
+ * variationLevel: 0.3, // 30% variation
25
+ * preserveSemantics: true,
26
+ * });
27
+ *
28
+ * // Each call may produce slightly different (but equivalent) output
29
+ * const json1 = serializer.serialize(data);
30
+ * const json2 = serializer.serialize(data);
31
+ * // json1 and json2 are semantically equivalent but may differ in format
32
+ * ```
33
+ */
34
+ // =============================================================================
35
+ // RANDOM UTILITIES
36
+ // =============================================================================
37
+ /**
38
+ * Simple seeded random number generator.
39
+ */
40
+ class SeededRandom {
41
+ seed;
42
+ constructor(seed) {
43
+ this.seed = seed ?? Date.now();
44
+ }
45
+ /**
46
+ * Get next random number between 0 and 1.
47
+ */
48
+ next() {
49
+ this.seed = (this.seed * 1103515245 + 12345) & 0x7fffffff;
50
+ return this.seed / 0x7fffffff;
51
+ }
52
+ /**
53
+ * Get random integer in range [min, max].
54
+ */
55
+ nextInt(min, max) {
56
+ return Math.floor(this.next() * (max - min + 1)) + min;
57
+ }
58
+ /**
59
+ * Get random boolean with given probability.
60
+ */
61
+ nextBool(probability = 0.5) {
62
+ return this.next() < probability;
63
+ }
64
+ /**
65
+ * Shuffle array in place.
66
+ */
67
+ shuffle(array) {
68
+ for (let i = array.length - 1; i > 0; i--) {
69
+ const j = this.nextInt(0, i);
70
+ [array[i], array[j]] = [array[j], array[i]];
71
+ }
72
+ return array;
73
+ }
74
+ /**
75
+ * Pick random element from array.
76
+ */
77
+ pick(array) {
78
+ return array[this.nextInt(0, array.length - 1)];
79
+ }
80
+ }
81
+ // =============================================================================
82
+ // DIVERSE SERIALIZER
83
+ // =============================================================================
84
+ /**
85
+ * Serializer that introduces controlled variation.
86
+ */
87
+ export class DiverseSerializer {
88
+ config;
89
+ random;
90
+ stats = {
91
+ totalSerializations: 0,
92
+ styleDistribution: new Map(),
93
+ };
94
+ listeners = [];
95
+ constructor(config = {}) {
96
+ this.config = {
97
+ variationLevel: config.variationLevel ?? 0.3,
98
+ preserveSemantics: config.preserveSemantics ?? true,
99
+ varyKeyOrder: config.varyKeyOrder ?? true,
100
+ varyIndentation: config.varyIndentation ?? true,
101
+ varySpacing: config.varySpacing ?? true,
102
+ omitNullish: config.omitNullish ?? true,
103
+ varyArrayFormat: config.varyArrayFormat ?? true,
104
+ seed: config.seed ?? Date.now(),
105
+ };
106
+ this.random = new SeededRandom(this.config.seed);
107
+ }
108
+ /**
109
+ * Serialize data with controlled variation.
110
+ */
111
+ serialize(data) {
112
+ const style = this.generateStyle();
113
+ const result = this.serializeWithStyle(data, style);
114
+ this.stats.totalSerializations++;
115
+ const styleKey = this.getStyleKey(style);
116
+ this.stats.styleDistribution.set(styleKey, (this.stats.styleDistribution.get(styleKey) || 0) + 1);
117
+ const variation = this.calculateVariation(style);
118
+ this.emit({ type: 'serialization.performed', style, variation });
119
+ return result;
120
+ }
121
+ /**
122
+ * Serialize with a specific style.
123
+ */
124
+ serializeWithStyle(data, style) {
125
+ const fullStyle = this.mergeWithDefaults(style);
126
+ return this.doSerialize(data, fullStyle, 0);
127
+ }
128
+ /**
129
+ * Generate a random style based on variation level.
130
+ */
131
+ generateStyle() {
132
+ const level = this.config.variationLevel;
133
+ const style = {};
134
+ // Indentation
135
+ if (this.config.varyIndentation && this.random.nextBool(level)) {
136
+ style.indent = this.random.pick([0, 2, 4, 'tab']);
137
+ }
138
+ // Key ordering
139
+ if (this.config.varyKeyOrder && this.random.nextBool(level)) {
140
+ style.sortKeys = this.random.nextBool(0.5);
141
+ style.keySortOrder = this.random.pick(['asc', 'desc', 'random']);
142
+ }
143
+ // Spacing
144
+ if (this.config.varySpacing && this.random.nextBool(level)) {
145
+ style.spaceAfterColon = this.random.nextBool(0.8);
146
+ style.spaceInsideBrackets = this.random.nextBool(0.2);
147
+ }
148
+ // Null handling
149
+ if (this.config.omitNullish && this.random.nextBool(level * 0.5)) {
150
+ style.omitNull = this.random.nextBool(0.5);
151
+ style.omitUndefined = true; // Always omit undefined in JSON
152
+ }
153
+ // Array formatting
154
+ if (this.config.varyArrayFormat && this.random.nextBool(level)) {
155
+ style.arrayStyle = this.random.pick(['compact', 'expanded', 'mixed']);
156
+ }
157
+ return style;
158
+ }
159
+ /**
160
+ * Get a consistent style for deterministic output.
161
+ */
162
+ getConsistentStyle() {
163
+ return {
164
+ indent: 2,
165
+ sortKeys: true,
166
+ keySortOrder: 'asc',
167
+ trailingComma: false,
168
+ spaceAfterColon: true,
169
+ spaceInsideBrackets: false,
170
+ omitNull: false,
171
+ omitUndefined: true,
172
+ arrayStyle: 'expanded',
173
+ };
174
+ }
175
+ /**
176
+ * Get serialization statistics.
177
+ */
178
+ getStats() {
179
+ const variations = [];
180
+ for (const [styleKey, count] of this.stats.styleDistribution) {
181
+ const style = this.parseStyleKey(styleKey);
182
+ variations.push(...Array(count).fill(this.calculateVariation(style)));
183
+ }
184
+ return {
185
+ totalSerializations: this.stats.totalSerializations,
186
+ styleDistribution: new Map(this.stats.styleDistribution),
187
+ averageVariation: variations.length > 0
188
+ ? variations.reduce((a, b) => a + b, 0) / variations.length
189
+ : 0,
190
+ };
191
+ }
192
+ /**
193
+ * Reset statistics.
194
+ */
195
+ resetStats() {
196
+ this.stats.totalSerializations = 0;
197
+ this.stats.styleDistribution.clear();
198
+ }
199
+ /**
200
+ * Update variation level.
201
+ */
202
+ setVariationLevel(level) {
203
+ this.config.variationLevel = Math.max(0, Math.min(1, level));
204
+ }
205
+ /**
206
+ * Subscribe to events.
207
+ */
208
+ on(listener) {
209
+ this.listeners.push(listener);
210
+ return () => {
211
+ const idx = this.listeners.indexOf(listener);
212
+ if (idx >= 0)
213
+ this.listeners.splice(idx, 1);
214
+ };
215
+ }
216
+ // Internal methods
217
+ mergeWithDefaults(style) {
218
+ return {
219
+ indent: style.indent ?? 2,
220
+ sortKeys: style.sortKeys ?? true,
221
+ keySortOrder: style.keySortOrder ?? 'asc',
222
+ trailingComma: style.trailingComma ?? false,
223
+ spaceAfterColon: style.spaceAfterColon ?? true,
224
+ spaceInsideBrackets: style.spaceInsideBrackets ?? false,
225
+ omitNull: style.omitNull ?? false,
226
+ omitUndefined: style.omitUndefined ?? true,
227
+ arrayStyle: style.arrayStyle ?? 'expanded',
228
+ };
229
+ }
230
+ doSerialize(data, style, depth) {
231
+ if (data === null) {
232
+ return style.omitNull ? '' : 'null';
233
+ }
234
+ if (data === undefined) {
235
+ return ''; // Always omit undefined in JSON
236
+ }
237
+ if (typeof data === 'string') {
238
+ return JSON.stringify(data);
239
+ }
240
+ if (typeof data === 'number' || typeof data === 'boolean') {
241
+ return String(data);
242
+ }
243
+ if (Array.isArray(data)) {
244
+ return this.serializeArray(data, style, depth);
245
+ }
246
+ if (typeof data === 'object') {
247
+ return this.serializeObject(data, style, depth);
248
+ }
249
+ return JSON.stringify(data);
250
+ }
251
+ serializeArray(arr, style, depth) {
252
+ if (arr.length === 0) {
253
+ return style.spaceInsideBrackets ? '[ ]' : '[]';
254
+ }
255
+ const indent = this.getIndentString(style.indent);
256
+ const newline = style.indent === 0 ? '' : '\n';
257
+ const currentIndent = indent.repeat(depth);
258
+ const itemIndent = indent.repeat(depth + 1);
259
+ // Determine if compact
260
+ const useCompact = style.arrayStyle === 'compact' ||
261
+ (style.arrayStyle === 'mixed' && arr.length <= 3 && arr.every(item => typeof item !== 'object' || item === null));
262
+ if (useCompact || style.indent === 0) {
263
+ const items = arr.map(item => this.doSerialize(item, style, depth + 1)).filter(Boolean);
264
+ const inner = items.join(', ');
265
+ return style.spaceInsideBrackets ? `[ ${inner} ]` : `[${inner}]`;
266
+ }
267
+ const items = arr
268
+ .map(item => this.doSerialize(item, style, depth + 1))
269
+ .filter(Boolean)
270
+ .map(item => `${itemIndent}${item}`);
271
+ return `[${newline}${items.join(`,${newline}`)}${newline}${currentIndent}]`;
272
+ }
273
+ serializeObject(obj, style, depth) {
274
+ let keys = Object.keys(obj);
275
+ // Filter keys based on style
276
+ keys = keys.filter(key => {
277
+ const value = obj[key];
278
+ if (value === undefined)
279
+ return false;
280
+ if (value === null && style.omitNull)
281
+ return false;
282
+ return true;
283
+ });
284
+ if (keys.length === 0) {
285
+ return style.spaceInsideBrackets ? '{ }' : '{}';
286
+ }
287
+ // Sort keys based on style
288
+ if (style.sortKeys) {
289
+ if (style.keySortOrder === 'random') {
290
+ this.random.shuffle(keys);
291
+ }
292
+ else {
293
+ keys.sort();
294
+ if (style.keySortOrder === 'desc') {
295
+ keys.reverse();
296
+ }
297
+ }
298
+ }
299
+ const indent = this.getIndentString(style.indent);
300
+ const newline = style.indent === 0 ? '' : '\n';
301
+ const currentIndent = indent.repeat(depth);
302
+ const propIndent = indent.repeat(depth + 1);
303
+ const colonSpace = style.spaceAfterColon ? ' ' : '';
304
+ if (style.indent === 0) {
305
+ const pairs = keys.map(key => {
306
+ const value = this.doSerialize(obj[key], style, depth + 1);
307
+ return `${JSON.stringify(key)}:${colonSpace}${value}`;
308
+ });
309
+ return `{${pairs.join(',')}}`;
310
+ }
311
+ const pairs = keys.map(key => {
312
+ const value = this.doSerialize(obj[key], style, depth + 1);
313
+ return `${propIndent}${JSON.stringify(key)}:${colonSpace}${value}`;
314
+ });
315
+ return `{${newline}${pairs.join(`,${newline}`)}${newline}${currentIndent}}`;
316
+ }
317
+ getIndentString(indent) {
318
+ if (indent === 'tab')
319
+ return '\t';
320
+ return ' '.repeat(indent);
321
+ }
322
+ getStyleKey(style) {
323
+ return `${style.indent ?? 2}-${style.sortKeys ?? true}-${style.keySortOrder ?? 'asc'}`;
324
+ }
325
+ parseStyleKey(key) {
326
+ const [indent, sortKeys, keySortOrder] = key.split('-');
327
+ return {
328
+ indent: indent === 'tab' ? 'tab' : parseInt(indent, 10),
329
+ sortKeys: sortKeys === 'true',
330
+ keySortOrder: keySortOrder,
331
+ };
332
+ }
333
+ calculateVariation(style) {
334
+ let variation = 0;
335
+ const defaults = this.getConsistentStyle();
336
+ if (style.indent !== undefined && style.indent !== defaults.indent)
337
+ variation += 0.2;
338
+ if (style.sortKeys !== undefined && style.sortKeys !== defaults.sortKeys)
339
+ variation += 0.2;
340
+ if (style.keySortOrder !== undefined && style.keySortOrder !== defaults.keySortOrder)
341
+ variation += 0.2;
342
+ if (style.spaceAfterColon !== undefined && style.spaceAfterColon !== defaults.spaceAfterColon)
343
+ variation += 0.1;
344
+ if (style.omitNull !== undefined && style.omitNull !== defaults.omitNull)
345
+ variation += 0.1;
346
+ if (style.arrayStyle !== undefined && style.arrayStyle !== defaults.arrayStyle)
347
+ variation += 0.2;
348
+ return Math.min(1, variation);
349
+ }
350
+ emit(event) {
351
+ for (const listener of this.listeners) {
352
+ try {
353
+ listener(event);
354
+ }
355
+ catch {
356
+ // Ignore listener errors
357
+ }
358
+ }
359
+ }
360
+ }
361
+ // =============================================================================
362
+ // FACTORY FUNCTIONS
363
+ // =============================================================================
364
+ /**
365
+ * Create a diverse serializer.
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * const serializer = createDiverseSerializer({
370
+ * variationLevel: 0.3,
371
+ * preserveSemantics: true,
372
+ * });
373
+ *
374
+ * // Serialize tool results with variation
375
+ * const result1 = serializer.serialize({ files: ['a.ts', 'b.ts'], count: 2 });
376
+ * const result2 = serializer.serialize({ files: ['a.ts', 'b.ts'], count: 2 });
377
+ *
378
+ * // Results are semantically equivalent but may differ in format:
379
+ * // result1: {"count": 2, "files": ["a.ts", "b.ts"]}
380
+ * // result2: {"files": ["a.ts", "b.ts"], "count": 2}
381
+ * ```
382
+ */
383
+ export function createDiverseSerializer(config = {}) {
384
+ return new DiverseSerializer(config);
385
+ }
386
+ // =============================================================================
387
+ // UTILITIES
388
+ // =============================================================================
389
+ /**
390
+ * Quick helper to serialize with variation.
391
+ */
392
+ export function serializeWithVariation(data, variationLevel = 0.3) {
393
+ const serializer = createDiverseSerializer({ variationLevel });
394
+ return serializer.serialize(data);
395
+ }
396
+ /**
397
+ * Generate multiple serializations of the same data.
398
+ * Useful for training data or testing robustness.
399
+ */
400
+ export function generateVariations(data, count, variationLevel = 0.5) {
401
+ const serializer = createDiverseSerializer({ variationLevel });
402
+ const results = [];
403
+ for (let i = 0; i < count; i++) {
404
+ results.push(serializer.serialize(data));
405
+ }
406
+ return results;
407
+ }
408
+ /**
409
+ * Apply diversity to tool call arguments.
410
+ */
411
+ export function diversifyToolArgs(args, variationLevel = 0.3) {
412
+ const serializer = createDiverseSerializer({
413
+ variationLevel,
414
+ preserveSemantics: true,
415
+ });
416
+ return serializer.serialize(args);
417
+ }
418
+ /**
419
+ * Apply diversity to tool results.
420
+ */
421
+ export function diversifyToolResult(result, variationLevel = 0.3) {
422
+ const serializer = createDiverseSerializer({
423
+ variationLevel,
424
+ preserveSemantics: true,
425
+ varyArrayFormat: true,
426
+ });
427
+ return serializer.serialize(result);
428
+ }
429
+ /**
430
+ * Format diversity stats for display.
431
+ */
432
+ export function formatDiversityStats(stats) {
433
+ const lines = [
434
+ `Serialization Diversity Statistics:`,
435
+ ` Total serializations: ${stats.totalSerializations}`,
436
+ ` Average variation: ${(stats.averageVariation * 100).toFixed(1)}%`,
437
+ '',
438
+ ' Style distribution:',
439
+ ];
440
+ for (const [style, count] of stats.styleDistribution) {
441
+ const percent = ((count / stats.totalSerializations) * 100).toFixed(1);
442
+ lines.push(` ${style}: ${count} (${percent}%)`);
443
+ }
444
+ return lines.join('\n');
445
+ }
446
+ /**
447
+ * Validate that two serializations are semantically equivalent.
448
+ */
449
+ export function areSemanticEquivalent(json1, json2) {
450
+ try {
451
+ const obj1 = JSON.parse(json1);
452
+ const obj2 = JSON.parse(json2);
453
+ return JSON.stringify(obj1, Object.keys(obj1).sort()) ===
454
+ JSON.stringify(obj2, Object.keys(obj2).sort());
455
+ }
456
+ catch {
457
+ return false;
458
+ }
459
+ }
460
+ //# sourceMappingURL=serialization-diversity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization-diversity.js","sourceRoot":"","sources":["../../../src/tricks/serialization-diversity.ts"],"names":[],"mappings":"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"}