@nhtio/adk 0.1.0-master-f0aa531d

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 (297) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +3 -0
  3. package/batteries/index.d.ts +28 -0
  4. package/batteries/llm/index.d.ts +11 -0
  5. package/batteries/llm/openai_chat_completions/adapter.cjs +916 -0
  6. package/batteries/llm/openai_chat_completions/adapter.cjs.map +1 -0
  7. package/batteries/llm/openai_chat_completions/adapter.d.ts +101 -0
  8. package/batteries/llm/openai_chat_completions/adapter.mjs +914 -0
  9. package/batteries/llm/openai_chat_completions/adapter.mjs.map +1 -0
  10. package/batteries/llm/openai_chat_completions/exceptions.cjs +89 -0
  11. package/batteries/llm/openai_chat_completions/exceptions.cjs.map +1 -0
  12. package/batteries/llm/openai_chat_completions/exceptions.d.ts +97 -0
  13. package/batteries/llm/openai_chat_completions/exceptions.mjs +81 -0
  14. package/batteries/llm/openai_chat_completions/exceptions.mjs.map +1 -0
  15. package/batteries/llm/openai_chat_completions/helpers.cjs +819 -0
  16. package/batteries/llm/openai_chat_completions/helpers.cjs.map +1 -0
  17. package/batteries/llm/openai_chat_completions/helpers.d.ts +233 -0
  18. package/batteries/llm/openai_chat_completions/helpers.mjs +783 -0
  19. package/batteries/llm/openai_chat_completions/helpers.mjs.map +1 -0
  20. package/batteries/llm/openai_chat_completions/index.d.ts +27 -0
  21. package/batteries/llm/openai_chat_completions/types.cjs +1 -0
  22. package/batteries/llm/openai_chat_completions/types.d.ts +524 -0
  23. package/batteries/llm/openai_chat_completions/types.mjs +0 -0
  24. package/batteries/llm/openai_chat_completions/validation.cjs +190 -0
  25. package/batteries/llm/openai_chat_completions/validation.cjs.map +1 -0
  26. package/batteries/llm/openai_chat_completions/validation.d.ts +31 -0
  27. package/batteries/llm/openai_chat_completions/validation.mjs +187 -0
  28. package/batteries/llm/openai_chat_completions/validation.mjs.map +1 -0
  29. package/batteries/llm/openai_chat_completions.cjs +51 -0
  30. package/batteries/llm/openai_chat_completions.mjs +5 -0
  31. package/batteries/llm/webllm_chat_completions/adapter.cjs +658 -0
  32. package/batteries/llm/webllm_chat_completions/adapter.cjs.map +1 -0
  33. package/batteries/llm/webllm_chat_completions/adapter.d.ts +103 -0
  34. package/batteries/llm/webllm_chat_completions/adapter.mjs +656 -0
  35. package/batteries/llm/webllm_chat_completions/adapter.mjs.map +1 -0
  36. package/batteries/llm/webllm_chat_completions/exceptions.cjs +70 -0
  37. package/batteries/llm/webllm_chat_completions/exceptions.cjs.map +1 -0
  38. package/batteries/llm/webllm_chat_completions/exceptions.d.ts +74 -0
  39. package/batteries/llm/webllm_chat_completions/exceptions.mjs +65 -0
  40. package/batteries/llm/webllm_chat_completions/exceptions.mjs.map +1 -0
  41. package/batteries/llm/webllm_chat_completions/helpers.cjs +38 -0
  42. package/batteries/llm/webllm_chat_completions/helpers.d.ts +6 -0
  43. package/batteries/llm/webllm_chat_completions/helpers.mjs +2 -0
  44. package/batteries/llm/webllm_chat_completions/index.d.ts +25 -0
  45. package/batteries/llm/webllm_chat_completions/types.d.ts +31 -0
  46. package/batteries/llm/webllm_chat_completions/validation.cjs +115 -0
  47. package/batteries/llm/webllm_chat_completions/validation.cjs.map +1 -0
  48. package/batteries/llm/webllm_chat_completions/validation.d.ts +8 -0
  49. package/batteries/llm/webllm_chat_completions/validation.mjs +112 -0
  50. package/batteries/llm/webllm_chat_completions/validation.mjs.map +1 -0
  51. package/batteries/llm/webllm_chat_completions.cjs +50 -0
  52. package/batteries/llm/webllm_chat_completions.mjs +6 -0
  53. package/batteries/llm.cjs +63 -0
  54. package/batteries/llm.mjs +10 -0
  55. package/batteries/storage/flydrive/index.d.ts +167 -0
  56. package/batteries/storage/flydrive.cjs +249 -0
  57. package/batteries/storage/flydrive.cjs.map +1 -0
  58. package/batteries/storage/flydrive.mjs +249 -0
  59. package/batteries/storage/flydrive.mjs.map +1 -0
  60. package/batteries/storage/in_memory/index.d.ts +106 -0
  61. package/batteries/storage/in_memory.cjs +121 -0
  62. package/batteries/storage/in_memory.cjs.map +1 -0
  63. package/batteries/storage/in_memory.mjs +119 -0
  64. package/batteries/storage/in_memory.mjs.map +1 -0
  65. package/batteries/storage/index.d.ts +18 -0
  66. package/batteries/storage/opfs/index.d.ts +299 -0
  67. package/batteries/storage/opfs.cjs +368 -0
  68. package/batteries/storage/opfs.cjs.map +1 -0
  69. package/batteries/storage/opfs.mjs +366 -0
  70. package/batteries/storage/opfs.mjs.map +1 -0
  71. package/batteries/storage.cjs +4 -0
  72. package/batteries/storage.mjs +2 -0
  73. package/batteries/tools/color/index.d.ts +37 -0
  74. package/batteries/tools/color.cjs +659 -0
  75. package/batteries/tools/color.cjs.map +1 -0
  76. package/batteries/tools/color.mjs +655 -0
  77. package/batteries/tools/color.mjs.map +1 -0
  78. package/batteries/tools/comparison/index.d.ts +29 -0
  79. package/batteries/tools/comparison.cjs +171 -0
  80. package/batteries/tools/comparison.cjs.map +1 -0
  81. package/batteries/tools/comparison.mjs +168 -0
  82. package/batteries/tools/comparison.mjs.map +1 -0
  83. package/batteries/tools/data_structure/index.d.ts +30 -0
  84. package/batteries/tools/data_structure.cjs +270 -0
  85. package/batteries/tools/data_structure.cjs.map +1 -0
  86. package/batteries/tools/data_structure.mjs +267 -0
  87. package/batteries/tools/data_structure.mjs.map +1 -0
  88. package/batteries/tools/datetime_extended/index.d.ts +51 -0
  89. package/batteries/tools/datetime_extended.cjs +309 -0
  90. package/batteries/tools/datetime_extended.cjs.map +1 -0
  91. package/batteries/tools/datetime_extended.mjs +302 -0
  92. package/batteries/tools/datetime_extended.mjs.map +1 -0
  93. package/batteries/tools/datetime_math/index.d.ts +36 -0
  94. package/batteries/tools/datetime_math.cjs +175 -0
  95. package/batteries/tools/datetime_math.cjs.map +1 -0
  96. package/batteries/tools/datetime_math.mjs +171 -0
  97. package/batteries/tools/datetime_math.mjs.map +1 -0
  98. package/batteries/tools/encoding/index.d.ts +36 -0
  99. package/batteries/tools/encoding.cjs +156 -0
  100. package/batteries/tools/encoding.cjs.map +1 -0
  101. package/batteries/tools/encoding.mjs +152 -0
  102. package/batteries/tools/encoding.mjs.map +1 -0
  103. package/batteries/tools/formatting/index.d.ts +28 -0
  104. package/batteries/tools/formatting.cjs +120 -0
  105. package/batteries/tools/formatting.cjs.map +1 -0
  106. package/batteries/tools/formatting.mjs +117 -0
  107. package/batteries/tools/formatting.mjs.map +1 -0
  108. package/batteries/tools/geo_basics/index.d.ts +33 -0
  109. package/batteries/tools/geo_basics.cjs +136 -0
  110. package/batteries/tools/geo_basics.cjs.map +1 -0
  111. package/batteries/tools/geo_basics.mjs +132 -0
  112. package/batteries/tools/geo_basics.mjs.map +1 -0
  113. package/batteries/tools/index.d.ts +32 -0
  114. package/batteries/tools/math/index.d.ts +37 -0
  115. package/batteries/tools/math.cjs +136 -0
  116. package/batteries/tools/math.cjs.map +1 -0
  117. package/batteries/tools/math.mjs +133 -0
  118. package/batteries/tools/math.mjs.map +1 -0
  119. package/batteries/tools/memory/index.d.ts +73 -0
  120. package/batteries/tools/memory.cjs +193 -0
  121. package/batteries/tools/memory.cjs.map +1 -0
  122. package/batteries/tools/memory.mjs +187 -0
  123. package/batteries/tools/memory.mjs.map +1 -0
  124. package/batteries/tools/parsing/index.d.ts +47 -0
  125. package/batteries/tools/parsing.cjs +191 -0
  126. package/batteries/tools/parsing.cjs.map +1 -0
  127. package/batteries/tools/parsing.mjs +185 -0
  128. package/batteries/tools/parsing.mjs.map +1 -0
  129. package/batteries/tools/retrievables/index.d.ts +81 -0
  130. package/batteries/tools/retrievables.cjs +215 -0
  131. package/batteries/tools/retrievables.cjs.map +1 -0
  132. package/batteries/tools/retrievables.mjs +209 -0
  133. package/batteries/tools/retrievables.mjs.map +1 -0
  134. package/batteries/tools/standing_instructions/index.d.ts +64 -0
  135. package/batteries/tools/standing_instructions.cjs +126 -0
  136. package/batteries/tools/standing_instructions.cjs.map +1 -0
  137. package/batteries/tools/standing_instructions.mjs +121 -0
  138. package/batteries/tools/standing_instructions.mjs.map +1 -0
  139. package/batteries/tools/statistics/index.d.ts +46 -0
  140. package/batteries/tools/statistics.cjs +253 -0
  141. package/batteries/tools/statistics.cjs.map +1 -0
  142. package/batteries/tools/statistics.mjs +248 -0
  143. package/batteries/tools/statistics.mjs.map +1 -0
  144. package/batteries/tools/string_processing/index.d.ts +29 -0
  145. package/batteries/tools/string_processing.cjs +154 -0
  146. package/batteries/tools/string_processing.cjs.map +1 -0
  147. package/batteries/tools/string_processing.mjs +151 -0
  148. package/batteries/tools/string_processing.mjs.map +1 -0
  149. package/batteries/tools/structured_data/index.d.ts +34 -0
  150. package/batteries/tools/structured_data.cjs +189 -0
  151. package/batteries/tools/structured_data.cjs.map +1 -0
  152. package/batteries/tools/structured_data.mjs +185 -0
  153. package/batteries/tools/structured_data.mjs.map +1 -0
  154. package/batteries/tools/text_analysis/index.d.ts +31 -0
  155. package/batteries/tools/text_analysis.cjs +120 -0
  156. package/batteries/tools/text_analysis.cjs.map +1 -0
  157. package/batteries/tools/text_analysis.mjs +117 -0
  158. package/batteries/tools/text_analysis.mjs.map +1 -0
  159. package/batteries/tools/text_comparison/index.d.ts +28 -0
  160. package/batteries/tools/text_comparison.cjs +96 -0
  161. package/batteries/tools/text_comparison.cjs.map +1 -0
  162. package/batteries/tools/text_comparison.mjs +93 -0
  163. package/batteries/tools/text_comparison.mjs.map +1 -0
  164. package/batteries/tools/time/index.d.ts +27 -0
  165. package/batteries/tools/time.cjs +63 -0
  166. package/batteries/tools/time.cjs.map +1 -0
  167. package/batteries/tools/time.mjs +60 -0
  168. package/batteries/tools/time.mjs.map +1 -0
  169. package/batteries/tools/unit_conversion/index.d.ts +19 -0
  170. package/batteries/tools/unit_conversion.cjs +452 -0
  171. package/batteries/tools/unit_conversion.cjs.map +1 -0
  172. package/batteries/tools/unit_conversion.mjs +450 -0
  173. package/batteries/tools/unit_conversion.mjs.map +1 -0
  174. package/batteries/tools.cjs +80 -0
  175. package/batteries/tools.mjs +21 -0
  176. package/batteries.cjs +142 -0
  177. package/batteries.mjs +30 -0
  178. package/chunk-KmRHZBOW.js +35 -0
  179. package/common-DeZaonK1.mjs +208 -0
  180. package/common-DeZaonK1.mjs.map +1 -0
  181. package/common-Od8edUXU.js +232 -0
  182. package/common-Od8edUXU.js.map +1 -0
  183. package/common.cjs +31 -0
  184. package/common.d.ts +108 -0
  185. package/common.mjs +8 -0
  186. package/dispatch_runner-9j6bXHL3.mjs +1609 -0
  187. package/dispatch_runner-9j6bXHL3.mjs.map +1 -0
  188. package/dispatch_runner-CsoH0nld.js +1627 -0
  189. package/dispatch_runner-CsoH0nld.js.map +1 -0
  190. package/dispatch_runner.cjs +3 -0
  191. package/dispatch_runner.d.ts +17 -0
  192. package/dispatch_runner.mjs +2 -0
  193. package/exceptions-D5YrO9Vm.js +280 -0
  194. package/exceptions-D5YrO9Vm.js.map +1 -0
  195. package/exceptions-NrzIHw_R.mjs +244 -0
  196. package/exceptions-NrzIHw_R.mjs.map +1 -0
  197. package/exceptions.cjs +33 -0
  198. package/exceptions.d.ts +52 -0
  199. package/exceptions.mjs +3 -0
  200. package/factories.cjs +4 -0
  201. package/factories.d.ts +39 -0
  202. package/factories.mjs +2 -0
  203. package/forge.cjs +9 -0
  204. package/forge.d.ts +49 -0
  205. package/forge.mjs +5 -0
  206. package/guards.cjs +96 -0
  207. package/guards.cjs.map +1 -0
  208. package/guards.d.ts +83 -0
  209. package/guards.mjs +72 -0
  210. package/guards.mjs.map +1 -0
  211. package/index.cjs +107 -0
  212. package/index.cjs.map +1 -0
  213. package/index.d.ts +18 -0
  214. package/index.mjs +31 -0
  215. package/index.mjs.map +1 -0
  216. package/lib/classes/artifact_tool.d.ts +129 -0
  217. package/lib/classes/base_exception.d.ts +83 -0
  218. package/lib/classes/identity.d.ts +71 -0
  219. package/lib/classes/media.d.ts +326 -0
  220. package/lib/classes/memory.d.ts +72 -0
  221. package/lib/classes/message.d.ts +137 -0
  222. package/lib/classes/registry.d.ts +79 -0
  223. package/lib/classes/retrievable.d.ts +100 -0
  224. package/lib/classes/spooled_artifact.d.ts +296 -0
  225. package/lib/classes/spooled_json_artifact.d.ts +158 -0
  226. package/lib/classes/spooled_markdown_artifact.d.ts +202 -0
  227. package/lib/classes/thought.d.ts +142 -0
  228. package/lib/classes/tokenizable.d.ts +124 -0
  229. package/lib/classes/tool.d.ts +228 -0
  230. package/lib/classes/tool_call.d.ts +190 -0
  231. package/lib/classes/tool_registry.d.ts +159 -0
  232. package/lib/classes/turn_gate.d.ts +109 -0
  233. package/lib/contracts/dispatch_context.d.ts +345 -0
  234. package/lib/contracts/media_reader.d.ts +60 -0
  235. package/lib/contracts/spool_reader.d.ts +80 -0
  236. package/lib/contracts/spooled_artifact_constructor.d.ts +38 -0
  237. package/lib/contracts/turn_runner_config.d.ts +101 -0
  238. package/lib/contracts/turn_runner_context.d.ts +267 -0
  239. package/lib/dispatch_runner.d.ts +98 -0
  240. package/lib/exceptions/runtime.d.ts +370 -0
  241. package/lib/helpers/media_readers.d.ts +39 -0
  242. package/lib/turn_runner.d.ts +144 -0
  243. package/lib/types/dispatch_context.d.ts +233 -0
  244. package/lib/types/dispatch_runner.d.ts +387 -0
  245. package/lib/types/turn_runner.d.ts +322 -0
  246. package/lib/utils/canonical_json.d.ts +18 -0
  247. package/lib/utils/exceptions.d.ts +78 -0
  248. package/lib/utils/guards.d.ts +32 -0
  249. package/lib/utils/validation.d.ts +77 -0
  250. package/package.json +334 -0
  251. package/runtime-BJVkrGQe.js +519 -0
  252. package/runtime-BJVkrGQe.js.map +1 -0
  253. package/runtime-CrEPIFgr.mjs +346 -0
  254. package/runtime-CrEPIFgr.mjs.map +1 -0
  255. package/skills/adk-assembly/SKILL.md +109 -0
  256. package/skills/adk-assembly/references/assembly-contract.md +66 -0
  257. package/skills/adk-assembly/references/executors-tools-pipelines-events.md +113 -0
  258. package/skills/adk-assembly/references/first-integration.md +93 -0
  259. package/skills/adk-assembly/references/storage-and-context.md +102 -0
  260. package/spooled_artifact-C5ZtGxuJ.mjs +544 -0
  261. package/spooled_artifact-C5ZtGxuJ.mjs.map +1 -0
  262. package/spooled_artifact-Cm9Te22K.js +568 -0
  263. package/spooled_artifact-Cm9Te22K.js.map +1 -0
  264. package/spooled_artifact.cjs +7 -0
  265. package/spooled_artifact.d.ts +40 -0
  266. package/spooled_artifact.mjs +3 -0
  267. package/spooled_markdown_artifact-BpUJol0W.mjs +771 -0
  268. package/spooled_markdown_artifact-BpUJol0W.mjs.map +1 -0
  269. package/spooled_markdown_artifact-RRB113sy.js +786 -0
  270. package/spooled_markdown_artifact-RRB113sy.js.map +1 -0
  271. package/thought-CDb457b4.mjs +470 -0
  272. package/thought-CDb457b4.mjs.map +1 -0
  273. package/thought-DuN2PgdO.js +494 -0
  274. package/thought-DuN2PgdO.js.map +1 -0
  275. package/tool-COSeH8I6.js +302 -0
  276. package/tool-COSeH8I6.js.map +1 -0
  277. package/tool-D2WB1EA1.mjs +296 -0
  278. package/tool-D2WB1EA1.mjs.map +1 -0
  279. package/tool_call-BKyyxGaZ.mjs +578 -0
  280. package/tool_call-BKyyxGaZ.mjs.map +1 -0
  281. package/tool_call-DFgzcVcU.js +608 -0
  282. package/tool_call-DFgzcVcU.js.map +1 -0
  283. package/tool_registry-Dkfprsck.js +641 -0
  284. package/tool_registry-Dkfprsck.js.map +1 -0
  285. package/tool_registry-DqLOyGyG.mjs +592 -0
  286. package/tool_registry-DqLOyGyG.mjs.map +1 -0
  287. package/turn_runner-CMm2BHdX.js +615 -0
  288. package/turn_runner-CMm2BHdX.js.map +1 -0
  289. package/turn_runner-y7eyEcJH.mjs +603 -0
  290. package/turn_runner-y7eyEcJH.mjs.map +1 -0
  291. package/turn_runner.cjs +3 -0
  292. package/turn_runner.d.ts +21 -0
  293. package/turn_runner.mjs +2 -0
  294. package/types.cjs +1 -0
  295. package/types.d.ts +56 -0
  296. package/types.mjs +0 -0
  297. package/vite-env.d.ts +23 -0
@@ -0,0 +1,452 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../../chunk-KmRHZBOW.js");
3
+ require("../../common-Od8edUXU.js");
4
+ const require_tool = require("../../tool-COSeH8I6.js");
5
+ let _nhtio_validation = require("@nhtio/validation");
6
+ //#region src/batteries/tools/unit_conversion/index.ts
7
+ /**
8
+ * Pre-constructed tools for converting values across common measurement units.
9
+ *
10
+ * @module @nhtio/adk/batteries/tools/unit_conversion
11
+ *
12
+ * @remarks
13
+ * Pre-constructed bundled tools for the `unit_conversion` category. Import individually, the whole
14
+ * category, or import every tool via `@nhtio/adk/batteries`.
15
+ */
16
+ var UNITS = {
17
+ m: {
18
+ category: "length",
19
+ factor: 1,
20
+ label: "metres"
21
+ },
22
+ km: {
23
+ category: "length",
24
+ factor: 1e3,
25
+ label: "kilometres"
26
+ },
27
+ cm: {
28
+ category: "length",
29
+ factor: .01,
30
+ label: "centimetres"
31
+ },
32
+ mm: {
33
+ category: "length",
34
+ factor: .001,
35
+ label: "millimetres"
36
+ },
37
+ mi: {
38
+ category: "length",
39
+ factor: 1609.344,
40
+ label: "miles"
41
+ },
42
+ ft: {
43
+ category: "length",
44
+ factor: .3048,
45
+ label: "feet"
46
+ },
47
+ in: {
48
+ category: "length",
49
+ factor: .0254,
50
+ label: "inches"
51
+ },
52
+ yd: {
53
+ category: "length",
54
+ factor: .9144,
55
+ label: "yards"
56
+ },
57
+ nmi: {
58
+ category: "length",
59
+ factor: 1852,
60
+ label: "nautical miles"
61
+ },
62
+ g: {
63
+ category: "mass",
64
+ factor: 1,
65
+ label: "grams"
66
+ },
67
+ kg: {
68
+ category: "mass",
69
+ factor: 1e3,
70
+ label: "kilograms"
71
+ },
72
+ mg: {
73
+ category: "mass",
74
+ factor: .001,
75
+ label: "milligrams"
76
+ },
77
+ t: {
78
+ category: "mass",
79
+ factor: 1e6,
80
+ label: "metric tons"
81
+ },
82
+ lb: {
83
+ category: "mass",
84
+ factor: 453.59237,
85
+ label: "pounds"
86
+ },
87
+ oz: {
88
+ category: "mass",
89
+ factor: 28.349523125,
90
+ label: "ounces"
91
+ },
92
+ st: {
93
+ category: "mass",
94
+ factor: 6350.29318,
95
+ label: "stone"
96
+ },
97
+ L: {
98
+ category: "volume",
99
+ factor: 1,
100
+ label: "litres"
101
+ },
102
+ mL: {
103
+ category: "volume",
104
+ factor: .001,
105
+ label: "millilitres"
106
+ },
107
+ m3: {
108
+ category: "volume",
109
+ factor: 1e3,
110
+ label: "cubic metres"
111
+ },
112
+ cm3: {
113
+ category: "volume",
114
+ factor: .001,
115
+ label: "cubic centimetres"
116
+ },
117
+ gal: {
118
+ category: "volume",
119
+ factor: 3.785411784,
120
+ label: "US gallons"
121
+ },
122
+ qt: {
123
+ category: "volume",
124
+ factor: .946352946,
125
+ label: "US quarts"
126
+ },
127
+ pt: {
128
+ category: "volume",
129
+ factor: .473176473,
130
+ label: "US pints"
131
+ },
132
+ cup: {
133
+ category: "volume",
134
+ factor: .2365882365,
135
+ label: "US cups"
136
+ },
137
+ floz: {
138
+ category: "volume",
139
+ factor: .029573529562,
140
+ label: "US fluid ounces"
141
+ },
142
+ tbsp: {
143
+ category: "volume",
144
+ factor: .014786764781,
145
+ label: "tablespoons"
146
+ },
147
+ tsp: {
148
+ category: "volume",
149
+ factor: .0049289215938,
150
+ label: "teaspoons"
151
+ },
152
+ m_s: {
153
+ category: "speed",
154
+ factor: 1,
155
+ label: "m/s"
156
+ },
157
+ km_h: {
158
+ category: "speed",
159
+ factor: 1 / 3.6,
160
+ label: "km/h"
161
+ },
162
+ mph: {
163
+ category: "speed",
164
+ factor: .44704,
165
+ label: "mph"
166
+ },
167
+ kn: {
168
+ category: "speed",
169
+ factor: .514444,
170
+ label: "knots"
171
+ },
172
+ ft_s: {
173
+ category: "speed",
174
+ factor: .3048,
175
+ label: "ft/s"
176
+ },
177
+ m2: {
178
+ category: "area",
179
+ factor: 1,
180
+ label: "m²"
181
+ },
182
+ km2: {
183
+ category: "area",
184
+ factor: 1e6,
185
+ label: "km²"
186
+ },
187
+ cm2: {
188
+ category: "area",
189
+ factor: 1e-4,
190
+ label: "cm²"
191
+ },
192
+ mm2: {
193
+ category: "area",
194
+ factor: 1e-6,
195
+ label: "mm²"
196
+ },
197
+ ft2: {
198
+ category: "area",
199
+ factor: .09290304,
200
+ label: "sq ft"
201
+ },
202
+ in2: {
203
+ category: "area",
204
+ factor: 64516e-8,
205
+ label: "sq in"
206
+ },
207
+ yd2: {
208
+ category: "area",
209
+ factor: .83612736,
210
+ label: "sq yd"
211
+ },
212
+ acre: {
213
+ category: "area",
214
+ factor: 4046.8564224,
215
+ label: "acres"
216
+ },
217
+ ha: {
218
+ category: "area",
219
+ factor: 1e4,
220
+ label: "hectares"
221
+ },
222
+ bit: {
223
+ category: "data",
224
+ factor: 1,
225
+ label: "bits"
226
+ },
227
+ B: {
228
+ category: "data",
229
+ factor: 8,
230
+ label: "bytes"
231
+ },
232
+ KB: {
233
+ category: "data",
234
+ factor: 8e3,
235
+ label: "kilobytes"
236
+ },
237
+ MB: {
238
+ category: "data",
239
+ factor: 8e6,
240
+ label: "megabytes"
241
+ },
242
+ GB: {
243
+ category: "data",
244
+ factor: 8e9,
245
+ label: "gigabytes"
246
+ },
247
+ TB: {
248
+ category: "data",
249
+ factor: 8e12,
250
+ label: "terabytes"
251
+ },
252
+ KiB: {
253
+ category: "data",
254
+ factor: 8 * 1024,
255
+ label: "kibibytes"
256
+ },
257
+ MiB: {
258
+ category: "data",
259
+ factor: 8 * 1024 ** 2,
260
+ label: "mebibytes"
261
+ },
262
+ GiB: {
263
+ category: "data",
264
+ factor: 8 * 1024 ** 3,
265
+ label: "gibibytes"
266
+ },
267
+ TiB: {
268
+ category: "data",
269
+ factor: 8 * 1024 ** 4,
270
+ label: "tebibytes"
271
+ },
272
+ ms: {
273
+ category: "time",
274
+ factor: .001,
275
+ label: "milliseconds"
276
+ },
277
+ s: {
278
+ category: "time",
279
+ factor: 1,
280
+ label: "seconds"
281
+ },
282
+ min: {
283
+ category: "time",
284
+ factor: 60,
285
+ label: "minutes"
286
+ },
287
+ h: {
288
+ category: "time",
289
+ factor: 3600,
290
+ label: "hours"
291
+ },
292
+ d: {
293
+ category: "time",
294
+ factor: 86400,
295
+ label: "days"
296
+ },
297
+ wk: {
298
+ category: "time",
299
+ factor: 604800,
300
+ label: "weeks"
301
+ },
302
+ J: {
303
+ category: "energy",
304
+ factor: 1,
305
+ label: "joules"
306
+ },
307
+ kJ: {
308
+ category: "energy",
309
+ factor: 1e3,
310
+ label: "kilojoules"
311
+ },
312
+ cal: {
313
+ category: "energy",
314
+ factor: 4.184,
315
+ label: "calories"
316
+ },
317
+ kcal: {
318
+ category: "energy",
319
+ factor: 4184,
320
+ label: "kilocalories"
321
+ },
322
+ Wh: {
323
+ category: "energy",
324
+ factor: 3600,
325
+ label: "watt-hours"
326
+ },
327
+ kWh: {
328
+ category: "energy",
329
+ factor: 36e5,
330
+ label: "kilowatt-hours"
331
+ },
332
+ BTU: {
333
+ category: "energy",
334
+ factor: 1055.05585,
335
+ label: "BTU"
336
+ },
337
+ Pa: {
338
+ category: "pressure",
339
+ factor: 1,
340
+ label: "pascals"
341
+ },
342
+ kPa: {
343
+ category: "pressure",
344
+ factor: 1e3,
345
+ label: "kilopascals"
346
+ },
347
+ MPa: {
348
+ category: "pressure",
349
+ factor: 1e6,
350
+ label: "megapascals"
351
+ },
352
+ bar: {
353
+ category: "pressure",
354
+ factor: 1e5,
355
+ label: "bar"
356
+ },
357
+ psi: {
358
+ category: "pressure",
359
+ factor: 6894.757,
360
+ label: "psi"
361
+ },
362
+ atm: {
363
+ category: "pressure",
364
+ factor: 101325,
365
+ label: "atm"
366
+ },
367
+ mmHg: {
368
+ category: "pressure",
369
+ factor: 133.322,
370
+ label: "mmHg"
371
+ },
372
+ rad: {
373
+ category: "angle",
374
+ factor: 1,
375
+ label: "radians"
376
+ },
377
+ deg: {
378
+ category: "angle",
379
+ factor: Math.PI / 180,
380
+ label: "degrees"
381
+ },
382
+ grad: {
383
+ category: "angle",
384
+ factor: Math.PI / 200,
385
+ label: "gradians"
386
+ }
387
+ };
388
+ var TEMP_UNITS = new Set([
389
+ "C",
390
+ "F",
391
+ "K"
392
+ ]);
393
+ var TEMP_LABELS = {
394
+ C: "°C",
395
+ F: "°F",
396
+ K: "K"
397
+ };
398
+ function toKelvin(value, unit) {
399
+ if (unit === "C") return value + 273.15;
400
+ if (unit === "F") return (value - 32) * (5 / 9) + 273.15;
401
+ return value;
402
+ }
403
+ function fromKelvin(kelvin, unit) {
404
+ if (unit === "C") return kelvin - 273.15;
405
+ if (unit === "F") return (kelvin - 273.15) * (9 / 5) + 32;
406
+ return kelvin;
407
+ }
408
+ var ALL_UNIT_KEYS = [
409
+ ...Object.keys(UNITS),
410
+ "C",
411
+ "F",
412
+ "K"
413
+ ].join(", ");
414
+ /**
415
+ * Convert a numeric value between units of the same physical category.
416
+ *
417
+ * @remarks
418
+ * Supported categories: length, mass, volume, temperature, speed, area, data, time, energy,
419
+ * pressure, angle. Uses static conversion tables — no external data required. Temperature is
420
+ * handled specially via a Kelvin intermediate to preserve precision across `C`/`F`/`K`.
421
+ */
422
+ var convertUnitTool = new require_tool.Tool({
423
+ name: "convert_unit",
424
+ description: "Convert a numeric value between units of the same category (length, mass, volume, temperature, speed, area, data, time, energy, pressure, angle). Uses static lookup tables — no external data required.",
425
+ inputSchema: _nhtio_validation.validator.object({
426
+ value: _nhtio_validation.validator.number().required().description("Numeric value to convert"),
427
+ from: _nhtio_validation.validator.string().required().description(`Source unit key. Supported keys: ${ALL_UNIT_KEYS}`),
428
+ to: _nhtio_validation.validator.string().required().description("Target unit key (must be in the same category as source)")
429
+ }),
430
+ handler: async (args) => {
431
+ const { value, from, to } = args;
432
+ if (TEMP_UNITS.has(from) || TEMP_UNITS.has(to)) {
433
+ if (!TEMP_UNITS.has(from)) return `Error: "${from}" is not a temperature unit. Use C, F, or K.`;
434
+ if (!TEMP_UNITS.has(to)) return `Error: "${to}" is not a temperature unit. Use C, F, or K.`;
435
+ const result = fromKelvin(toKelvin(value, from), to);
436
+ const rounded = Number.parseFloat(result.toPrecision(10));
437
+ return `${value}${TEMP_LABELS[from]} = ${rounded}${TEMP_LABELS[to]}`;
438
+ }
439
+ const fromDef = UNITS[from];
440
+ const toDef = UNITS[to];
441
+ if (!fromDef) return `Error: Unknown unit "${from}". Supported: ${ALL_UNIT_KEYS}`;
442
+ if (!toDef) return `Error: Unknown unit "${to}". Supported: ${ALL_UNIT_KEYS}`;
443
+ if (fromDef.category !== toDef.category) return `Error: Cannot convert "${from}" (${fromDef.category}) to "${to}" (${toDef.category}) — different categories.`;
444
+ const result = value * fromDef.factor / toDef.factor;
445
+ const rounded = Number.parseFloat(result.toPrecision(10));
446
+ return `${value} ${fromDef.label} = ${rounded} ${toDef.label}`;
447
+ }
448
+ });
449
+ //#endregion
450
+ exports.convertUnitTool = convertUnitTool;
451
+
452
+ //# sourceMappingURL=unit_conversion.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit_conversion.cjs","names":[],"sources":["../../../src/batteries/tools/unit_conversion/index.ts"],"sourcesContent":["/**\n * Pre-constructed tools for converting values across common measurement units.\n *\n * @module @nhtio/adk/batteries/tools/unit_conversion\n *\n * @remarks\n * Pre-constructed bundled tools for the `unit_conversion` category. Import individually, the whole\n * category, or import every tool via `@nhtio/adk/batteries`.\n */\n\nimport { Tool } from '@nhtio/adk/common'\nimport { validator } from '@nhtio/validation'\n\ntype UnitDef = { category: string; factor: number; label: string }\n\nconst UNITS: Record<string, UnitDef> = {\n // Length (base: metre)\n m: { category: 'length', factor: 1, label: 'metres' },\n km: { category: 'length', factor: 1000, label: 'kilometres' },\n cm: { category: 'length', factor: 0.01, label: 'centimetres' },\n mm: { category: 'length', factor: 0.001, label: 'millimetres' },\n mi: { category: 'length', factor: 1609.344, label: 'miles' },\n ft: { category: 'length', factor: 0.3048, label: 'feet' },\n in: { category: 'length', factor: 0.0254, label: 'inches' },\n yd: { category: 'length', factor: 0.9144, label: 'yards' },\n nmi: { category: 'length', factor: 1852, label: 'nautical miles' },\n\n // Mass (base: gram)\n g: { category: 'mass', factor: 1, label: 'grams' },\n kg: { category: 'mass', factor: 1000, label: 'kilograms' },\n mg: { category: 'mass', factor: 0.001, label: 'milligrams' },\n t: { category: 'mass', factor: 1_000_000, label: 'metric tons' },\n lb: { category: 'mass', factor: 453.59237, label: 'pounds' },\n oz: { category: 'mass', factor: 28.349523125, label: 'ounces' },\n st: { category: 'mass', factor: 6350.29318, label: 'stone' },\n\n // Volume (base: litre)\n L: { category: 'volume', factor: 1, label: 'litres' },\n mL: { category: 'volume', factor: 0.001, label: 'millilitres' },\n m3: { category: 'volume', factor: 1000, label: 'cubic metres' },\n cm3: { category: 'volume', factor: 0.001, label: 'cubic centimetres' },\n gal: { category: 'volume', factor: 3.785411784, label: 'US gallons' },\n qt: { category: 'volume', factor: 0.946352946, label: 'US quarts' },\n pt: { category: 'volume', factor: 0.473176473, label: 'US pints' },\n cup: { category: 'volume', factor: 0.2365882365, label: 'US cups' },\n floz: { category: 'volume', factor: 0.029573529562, label: 'US fluid ounces' },\n tbsp: { category: 'volume', factor: 0.014786764781, label: 'tablespoons' },\n tsp: { category: 'volume', factor: 0.0049289215938, label: 'teaspoons' },\n\n // Speed (base: m/s)\n m_s: { category: 'speed', factor: 1, label: 'm/s' },\n km_h: { category: 'speed', factor: 1 / 3.6, label: 'km/h' },\n mph: { category: 'speed', factor: 0.44704, label: 'mph' },\n kn: { category: 'speed', factor: 0.514444, label: 'knots' },\n ft_s: { category: 'speed', factor: 0.3048, label: 'ft/s' },\n\n // Area (base: m²)\n m2: { category: 'area', factor: 1, label: 'm²' },\n km2: { category: 'area', factor: 1_000_000, label: 'km²' },\n cm2: { category: 'area', factor: 0.0001, label: 'cm²' },\n mm2: { category: 'area', factor: 0.000001, label: 'mm²' },\n ft2: { category: 'area', factor: 0.09290304, label: 'sq ft' },\n in2: { category: 'area', factor: 0.00064516, label: 'sq in' },\n yd2: { category: 'area', factor: 0.83612736, label: 'sq yd' },\n acre: { category: 'area', factor: 4046.8564224, label: 'acres' },\n ha: { category: 'area', factor: 10_000, label: 'hectares' },\n\n // Data storage (base: bit)\n bit: { category: 'data', factor: 1, label: 'bits' },\n B: { category: 'data', factor: 8, label: 'bytes' },\n KB: { category: 'data', factor: 8_000, label: 'kilobytes' },\n MB: { category: 'data', factor: 8_000_000, label: 'megabytes' },\n GB: { category: 'data', factor: 8_000_000_000, label: 'gigabytes' },\n TB: { category: 'data', factor: 8_000_000_000_000, label: 'terabytes' },\n KiB: { category: 'data', factor: 8 * 1024, label: 'kibibytes' },\n MiB: { category: 'data', factor: 8 * 1024 ** 2, label: 'mebibytes' },\n GiB: { category: 'data', factor: 8 * 1024 ** 3, label: 'gibibytes' },\n TiB: { category: 'data', factor: 8 * 1024 ** 4, label: 'tebibytes' },\n\n // Time (base: second)\n ms: { category: 'time', factor: 0.001, label: 'milliseconds' },\n s: { category: 'time', factor: 1, label: 'seconds' },\n min: { category: 'time', factor: 60, label: 'minutes' },\n h: { category: 'time', factor: 3600, label: 'hours' },\n d: { category: 'time', factor: 86400, label: 'days' },\n wk: { category: 'time', factor: 604800, label: 'weeks' },\n\n // Energy (base: joule)\n J: { category: 'energy', factor: 1, label: 'joules' },\n kJ: { category: 'energy', factor: 1000, label: 'kilojoules' },\n cal: { category: 'energy', factor: 4.184, label: 'calories' },\n kcal: { category: 'energy', factor: 4184, label: 'kilocalories' },\n Wh: { category: 'energy', factor: 3600, label: 'watt-hours' },\n kWh: { category: 'energy', factor: 3_600_000, label: 'kilowatt-hours' },\n BTU: { category: 'energy', factor: 1055.05585, label: 'BTU' },\n\n // Pressure (base: pascal)\n Pa: { category: 'pressure', factor: 1, label: 'pascals' },\n kPa: { category: 'pressure', factor: 1000, label: 'kilopascals' },\n MPa: { category: 'pressure', factor: 1_000_000, label: 'megapascals' },\n bar: { category: 'pressure', factor: 100_000, label: 'bar' },\n psi: { category: 'pressure', factor: 6894.757, label: 'psi' },\n atm: { category: 'pressure', factor: 101325, label: 'atm' },\n mmHg: { category: 'pressure', factor: 133.322, label: 'mmHg' },\n\n // Angle (base: radian)\n rad: { category: 'angle', factor: 1, label: 'radians' },\n deg: { category: 'angle', factor: Math.PI / 180, label: 'degrees' },\n grad: { category: 'angle', factor: Math.PI / 200, label: 'gradians' },\n}\n\nconst TEMP_UNITS = new Set(['C', 'F', 'K'])\ntype TempUnit = 'C' | 'F' | 'K'\nconst TEMP_LABELS: Record<TempUnit, string> = { C: '°C', F: '°F', K: 'K' }\n\nfunction toKelvin(value: number, unit: TempUnit): number {\n if (unit === 'C') return value + 273.15\n if (unit === 'F') return (value - 32) * (5 / 9) + 273.15\n return value\n}\n\nfunction fromKelvin(kelvin: number, unit: TempUnit): number {\n if (unit === 'C') return kelvin - 273.15\n if (unit === 'F') return (kelvin - 273.15) * (9 / 5) + 32\n return kelvin\n}\n\nconst ALL_UNIT_KEYS = [...Object.keys(UNITS), 'C', 'F', 'K'].join(', ')\n\n/**\n * Convert a numeric value between units of the same physical category.\n *\n * @remarks\n * Supported categories: length, mass, volume, temperature, speed, area, data, time, energy,\n * pressure, angle. Uses static conversion tables — no external data required. Temperature is\n * handled specially via a Kelvin intermediate to preserve precision across `C`/`F`/`K`.\n */\nexport const convertUnitTool = new Tool({\n name: 'convert_unit',\n description:\n 'Convert a numeric value between units of the same category (length, mass, volume, temperature, speed, area, data, time, energy, pressure, angle). Uses static lookup tables — no external data required.',\n inputSchema: validator.object({\n value: validator.number().required().description('Numeric value to convert'),\n from: validator\n .string()\n .required()\n .description(`Source unit key. Supported keys: ${ALL_UNIT_KEYS}`),\n to: validator\n .string()\n .required()\n .description('Target unit key (must be in the same category as source)'),\n }),\n handler: async (args) => {\n const { value, from, to } = args as { value: number; from: string; to: string }\n\n if (TEMP_UNITS.has(from) || TEMP_UNITS.has(to)) {\n if (!TEMP_UNITS.has(from))\n return `Error: \"${from}\" is not a temperature unit. Use C, F, or K.`\n if (!TEMP_UNITS.has(to)) return `Error: \"${to}\" is not a temperature unit. Use C, F, or K.`\n const result = fromKelvin(toKelvin(value, from as TempUnit), to as TempUnit)\n const rounded = Number.parseFloat(result.toPrecision(10))\n return `${value}${TEMP_LABELS[from as TempUnit]} = ${rounded}${TEMP_LABELS[to as TempUnit]}`\n }\n\n const fromDef = UNITS[from]\n const toDef = UNITS[to]\n if (!fromDef) return `Error: Unknown unit \"${from}\". Supported: ${ALL_UNIT_KEYS}`\n if (!toDef) return `Error: Unknown unit \"${to}\". Supported: ${ALL_UNIT_KEYS}`\n if (fromDef.category !== toDef.category) {\n return `Error: Cannot convert \"${from}\" (${fromDef.category}) to \"${to}\" (${toDef.category}) — different categories.`\n }\n\n const inBase = value * fromDef.factor\n const result = inBase / toDef.factor\n const rounded = Number.parseFloat(result.toPrecision(10))\n return `${value} ${fromDef.label} = ${rounded} ${toDef.label}`\n },\n})\n"],"mappings":"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"}