@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.
- package/LICENSE.md +9 -0
- package/README.md +3 -0
- package/batteries/index.d.ts +28 -0
- package/batteries/llm/index.d.ts +11 -0
- package/batteries/llm/openai_chat_completions/adapter.cjs +916 -0
- package/batteries/llm/openai_chat_completions/adapter.cjs.map +1 -0
- package/batteries/llm/openai_chat_completions/adapter.d.ts +101 -0
- package/batteries/llm/openai_chat_completions/adapter.mjs +914 -0
- package/batteries/llm/openai_chat_completions/adapter.mjs.map +1 -0
- package/batteries/llm/openai_chat_completions/exceptions.cjs +89 -0
- package/batteries/llm/openai_chat_completions/exceptions.cjs.map +1 -0
- package/batteries/llm/openai_chat_completions/exceptions.d.ts +97 -0
- package/batteries/llm/openai_chat_completions/exceptions.mjs +81 -0
- package/batteries/llm/openai_chat_completions/exceptions.mjs.map +1 -0
- package/batteries/llm/openai_chat_completions/helpers.cjs +819 -0
- package/batteries/llm/openai_chat_completions/helpers.cjs.map +1 -0
- package/batteries/llm/openai_chat_completions/helpers.d.ts +233 -0
- package/batteries/llm/openai_chat_completions/helpers.mjs +783 -0
- package/batteries/llm/openai_chat_completions/helpers.mjs.map +1 -0
- package/batteries/llm/openai_chat_completions/index.d.ts +27 -0
- package/batteries/llm/openai_chat_completions/types.cjs +1 -0
- package/batteries/llm/openai_chat_completions/types.d.ts +524 -0
- package/batteries/llm/openai_chat_completions/types.mjs +0 -0
- package/batteries/llm/openai_chat_completions/validation.cjs +190 -0
- package/batteries/llm/openai_chat_completions/validation.cjs.map +1 -0
- package/batteries/llm/openai_chat_completions/validation.d.ts +31 -0
- package/batteries/llm/openai_chat_completions/validation.mjs +187 -0
- package/batteries/llm/openai_chat_completions/validation.mjs.map +1 -0
- package/batteries/llm/openai_chat_completions.cjs +51 -0
- package/batteries/llm/openai_chat_completions.mjs +5 -0
- package/batteries/llm/webllm_chat_completions/adapter.cjs +658 -0
- package/batteries/llm/webllm_chat_completions/adapter.cjs.map +1 -0
- package/batteries/llm/webllm_chat_completions/adapter.d.ts +103 -0
- package/batteries/llm/webllm_chat_completions/adapter.mjs +656 -0
- package/batteries/llm/webllm_chat_completions/adapter.mjs.map +1 -0
- package/batteries/llm/webllm_chat_completions/exceptions.cjs +70 -0
- package/batteries/llm/webllm_chat_completions/exceptions.cjs.map +1 -0
- package/batteries/llm/webllm_chat_completions/exceptions.d.ts +74 -0
- package/batteries/llm/webllm_chat_completions/exceptions.mjs +65 -0
- package/batteries/llm/webllm_chat_completions/exceptions.mjs.map +1 -0
- package/batteries/llm/webllm_chat_completions/helpers.cjs +38 -0
- package/batteries/llm/webllm_chat_completions/helpers.d.ts +6 -0
- package/batteries/llm/webllm_chat_completions/helpers.mjs +2 -0
- package/batteries/llm/webllm_chat_completions/index.d.ts +25 -0
- package/batteries/llm/webllm_chat_completions/types.d.ts +31 -0
- package/batteries/llm/webllm_chat_completions/validation.cjs +115 -0
- package/batteries/llm/webllm_chat_completions/validation.cjs.map +1 -0
- package/batteries/llm/webllm_chat_completions/validation.d.ts +8 -0
- package/batteries/llm/webllm_chat_completions/validation.mjs +112 -0
- package/batteries/llm/webllm_chat_completions/validation.mjs.map +1 -0
- package/batteries/llm/webllm_chat_completions.cjs +50 -0
- package/batteries/llm/webllm_chat_completions.mjs +6 -0
- package/batteries/llm.cjs +63 -0
- package/batteries/llm.mjs +10 -0
- package/batteries/storage/flydrive/index.d.ts +167 -0
- package/batteries/storage/flydrive.cjs +249 -0
- package/batteries/storage/flydrive.cjs.map +1 -0
- package/batteries/storage/flydrive.mjs +249 -0
- package/batteries/storage/flydrive.mjs.map +1 -0
- package/batteries/storage/in_memory/index.d.ts +106 -0
- package/batteries/storage/in_memory.cjs +121 -0
- package/batteries/storage/in_memory.cjs.map +1 -0
- package/batteries/storage/in_memory.mjs +119 -0
- package/batteries/storage/in_memory.mjs.map +1 -0
- package/batteries/storage/index.d.ts +18 -0
- package/batteries/storage/opfs/index.d.ts +299 -0
- package/batteries/storage/opfs.cjs +368 -0
- package/batteries/storage/opfs.cjs.map +1 -0
- package/batteries/storage/opfs.mjs +366 -0
- package/batteries/storage/opfs.mjs.map +1 -0
- package/batteries/storage.cjs +4 -0
- package/batteries/storage.mjs +2 -0
- package/batteries/tools/color/index.d.ts +37 -0
- package/batteries/tools/color.cjs +659 -0
- package/batteries/tools/color.cjs.map +1 -0
- package/batteries/tools/color.mjs +655 -0
- package/batteries/tools/color.mjs.map +1 -0
- package/batteries/tools/comparison/index.d.ts +29 -0
- package/batteries/tools/comparison.cjs +171 -0
- package/batteries/tools/comparison.cjs.map +1 -0
- package/batteries/tools/comparison.mjs +168 -0
- package/batteries/tools/comparison.mjs.map +1 -0
- package/batteries/tools/data_structure/index.d.ts +30 -0
- package/batteries/tools/data_structure.cjs +270 -0
- package/batteries/tools/data_structure.cjs.map +1 -0
- package/batteries/tools/data_structure.mjs +267 -0
- package/batteries/tools/data_structure.mjs.map +1 -0
- package/batteries/tools/datetime_extended/index.d.ts +51 -0
- package/batteries/tools/datetime_extended.cjs +309 -0
- package/batteries/tools/datetime_extended.cjs.map +1 -0
- package/batteries/tools/datetime_extended.mjs +302 -0
- package/batteries/tools/datetime_extended.mjs.map +1 -0
- package/batteries/tools/datetime_math/index.d.ts +36 -0
- package/batteries/tools/datetime_math.cjs +175 -0
- package/batteries/tools/datetime_math.cjs.map +1 -0
- package/batteries/tools/datetime_math.mjs +171 -0
- package/batteries/tools/datetime_math.mjs.map +1 -0
- package/batteries/tools/encoding/index.d.ts +36 -0
- package/batteries/tools/encoding.cjs +156 -0
- package/batteries/tools/encoding.cjs.map +1 -0
- package/batteries/tools/encoding.mjs +152 -0
- package/batteries/tools/encoding.mjs.map +1 -0
- package/batteries/tools/formatting/index.d.ts +28 -0
- package/batteries/tools/formatting.cjs +120 -0
- package/batteries/tools/formatting.cjs.map +1 -0
- package/batteries/tools/formatting.mjs +117 -0
- package/batteries/tools/formatting.mjs.map +1 -0
- package/batteries/tools/geo_basics/index.d.ts +33 -0
- package/batteries/tools/geo_basics.cjs +136 -0
- package/batteries/tools/geo_basics.cjs.map +1 -0
- package/batteries/tools/geo_basics.mjs +132 -0
- package/batteries/tools/geo_basics.mjs.map +1 -0
- package/batteries/tools/index.d.ts +32 -0
- package/batteries/tools/math/index.d.ts +37 -0
- package/batteries/tools/math.cjs +136 -0
- package/batteries/tools/math.cjs.map +1 -0
- package/batteries/tools/math.mjs +133 -0
- package/batteries/tools/math.mjs.map +1 -0
- package/batteries/tools/memory/index.d.ts +73 -0
- package/batteries/tools/memory.cjs +193 -0
- package/batteries/tools/memory.cjs.map +1 -0
- package/batteries/tools/memory.mjs +187 -0
- package/batteries/tools/memory.mjs.map +1 -0
- package/batteries/tools/parsing/index.d.ts +47 -0
- package/batteries/tools/parsing.cjs +191 -0
- package/batteries/tools/parsing.cjs.map +1 -0
- package/batteries/tools/parsing.mjs +185 -0
- package/batteries/tools/parsing.mjs.map +1 -0
- package/batteries/tools/retrievables/index.d.ts +81 -0
- package/batteries/tools/retrievables.cjs +215 -0
- package/batteries/tools/retrievables.cjs.map +1 -0
- package/batteries/tools/retrievables.mjs +209 -0
- package/batteries/tools/retrievables.mjs.map +1 -0
- package/batteries/tools/standing_instructions/index.d.ts +64 -0
- package/batteries/tools/standing_instructions.cjs +126 -0
- package/batteries/tools/standing_instructions.cjs.map +1 -0
- package/batteries/tools/standing_instructions.mjs +121 -0
- package/batteries/tools/standing_instructions.mjs.map +1 -0
- package/batteries/tools/statistics/index.d.ts +46 -0
- package/batteries/tools/statistics.cjs +253 -0
- package/batteries/tools/statistics.cjs.map +1 -0
- package/batteries/tools/statistics.mjs +248 -0
- package/batteries/tools/statistics.mjs.map +1 -0
- package/batteries/tools/string_processing/index.d.ts +29 -0
- package/batteries/tools/string_processing.cjs +154 -0
- package/batteries/tools/string_processing.cjs.map +1 -0
- package/batteries/tools/string_processing.mjs +151 -0
- package/batteries/tools/string_processing.mjs.map +1 -0
- package/batteries/tools/structured_data/index.d.ts +34 -0
- package/batteries/tools/structured_data.cjs +189 -0
- package/batteries/tools/structured_data.cjs.map +1 -0
- package/batteries/tools/structured_data.mjs +185 -0
- package/batteries/tools/structured_data.mjs.map +1 -0
- package/batteries/tools/text_analysis/index.d.ts +31 -0
- package/batteries/tools/text_analysis.cjs +120 -0
- package/batteries/tools/text_analysis.cjs.map +1 -0
- package/batteries/tools/text_analysis.mjs +117 -0
- package/batteries/tools/text_analysis.mjs.map +1 -0
- package/batteries/tools/text_comparison/index.d.ts +28 -0
- package/batteries/tools/text_comparison.cjs +96 -0
- package/batteries/tools/text_comparison.cjs.map +1 -0
- package/batteries/tools/text_comparison.mjs +93 -0
- package/batteries/tools/text_comparison.mjs.map +1 -0
- package/batteries/tools/time/index.d.ts +27 -0
- package/batteries/tools/time.cjs +63 -0
- package/batteries/tools/time.cjs.map +1 -0
- package/batteries/tools/time.mjs +60 -0
- package/batteries/tools/time.mjs.map +1 -0
- package/batteries/tools/unit_conversion/index.d.ts +19 -0
- package/batteries/tools/unit_conversion.cjs +452 -0
- package/batteries/tools/unit_conversion.cjs.map +1 -0
- package/batteries/tools/unit_conversion.mjs +450 -0
- package/batteries/tools/unit_conversion.mjs.map +1 -0
- package/batteries/tools.cjs +80 -0
- package/batteries/tools.mjs +21 -0
- package/batteries.cjs +142 -0
- package/batteries.mjs +30 -0
- package/chunk-KmRHZBOW.js +35 -0
- package/common-DeZaonK1.mjs +208 -0
- package/common-DeZaonK1.mjs.map +1 -0
- package/common-Od8edUXU.js +232 -0
- package/common-Od8edUXU.js.map +1 -0
- package/common.cjs +31 -0
- package/common.d.ts +108 -0
- package/common.mjs +8 -0
- package/dispatch_runner-9j6bXHL3.mjs +1609 -0
- package/dispatch_runner-9j6bXHL3.mjs.map +1 -0
- package/dispatch_runner-CsoH0nld.js +1627 -0
- package/dispatch_runner-CsoH0nld.js.map +1 -0
- package/dispatch_runner.cjs +3 -0
- package/dispatch_runner.d.ts +17 -0
- package/dispatch_runner.mjs +2 -0
- package/exceptions-D5YrO9Vm.js +280 -0
- package/exceptions-D5YrO9Vm.js.map +1 -0
- package/exceptions-NrzIHw_R.mjs +244 -0
- package/exceptions-NrzIHw_R.mjs.map +1 -0
- package/exceptions.cjs +33 -0
- package/exceptions.d.ts +52 -0
- package/exceptions.mjs +3 -0
- package/factories.cjs +4 -0
- package/factories.d.ts +39 -0
- package/factories.mjs +2 -0
- package/forge.cjs +9 -0
- package/forge.d.ts +49 -0
- package/forge.mjs +5 -0
- package/guards.cjs +96 -0
- package/guards.cjs.map +1 -0
- package/guards.d.ts +83 -0
- package/guards.mjs +72 -0
- package/guards.mjs.map +1 -0
- package/index.cjs +107 -0
- package/index.cjs.map +1 -0
- package/index.d.ts +18 -0
- package/index.mjs +31 -0
- package/index.mjs.map +1 -0
- package/lib/classes/artifact_tool.d.ts +129 -0
- package/lib/classes/base_exception.d.ts +83 -0
- package/lib/classes/identity.d.ts +71 -0
- package/lib/classes/media.d.ts +326 -0
- package/lib/classes/memory.d.ts +72 -0
- package/lib/classes/message.d.ts +137 -0
- package/lib/classes/registry.d.ts +79 -0
- package/lib/classes/retrievable.d.ts +100 -0
- package/lib/classes/spooled_artifact.d.ts +296 -0
- package/lib/classes/spooled_json_artifact.d.ts +158 -0
- package/lib/classes/spooled_markdown_artifact.d.ts +202 -0
- package/lib/classes/thought.d.ts +142 -0
- package/lib/classes/tokenizable.d.ts +124 -0
- package/lib/classes/tool.d.ts +228 -0
- package/lib/classes/tool_call.d.ts +190 -0
- package/lib/classes/tool_registry.d.ts +159 -0
- package/lib/classes/turn_gate.d.ts +109 -0
- package/lib/contracts/dispatch_context.d.ts +345 -0
- package/lib/contracts/media_reader.d.ts +60 -0
- package/lib/contracts/spool_reader.d.ts +80 -0
- package/lib/contracts/spooled_artifact_constructor.d.ts +38 -0
- package/lib/contracts/turn_runner_config.d.ts +101 -0
- package/lib/contracts/turn_runner_context.d.ts +267 -0
- package/lib/dispatch_runner.d.ts +98 -0
- package/lib/exceptions/runtime.d.ts +370 -0
- package/lib/helpers/media_readers.d.ts +39 -0
- package/lib/turn_runner.d.ts +144 -0
- package/lib/types/dispatch_context.d.ts +233 -0
- package/lib/types/dispatch_runner.d.ts +387 -0
- package/lib/types/turn_runner.d.ts +322 -0
- package/lib/utils/canonical_json.d.ts +18 -0
- package/lib/utils/exceptions.d.ts +78 -0
- package/lib/utils/guards.d.ts +32 -0
- package/lib/utils/validation.d.ts +77 -0
- package/package.json +334 -0
- package/runtime-BJVkrGQe.js +519 -0
- package/runtime-BJVkrGQe.js.map +1 -0
- package/runtime-CrEPIFgr.mjs +346 -0
- package/runtime-CrEPIFgr.mjs.map +1 -0
- package/skills/adk-assembly/SKILL.md +109 -0
- package/skills/adk-assembly/references/assembly-contract.md +66 -0
- package/skills/adk-assembly/references/executors-tools-pipelines-events.md +113 -0
- package/skills/adk-assembly/references/first-integration.md +93 -0
- package/skills/adk-assembly/references/storage-and-context.md +102 -0
- package/spooled_artifact-C5ZtGxuJ.mjs +544 -0
- package/spooled_artifact-C5ZtGxuJ.mjs.map +1 -0
- package/spooled_artifact-Cm9Te22K.js +568 -0
- package/spooled_artifact-Cm9Te22K.js.map +1 -0
- package/spooled_artifact.cjs +7 -0
- package/spooled_artifact.d.ts +40 -0
- package/spooled_artifact.mjs +3 -0
- package/spooled_markdown_artifact-BpUJol0W.mjs +771 -0
- package/spooled_markdown_artifact-BpUJol0W.mjs.map +1 -0
- package/spooled_markdown_artifact-RRB113sy.js +786 -0
- package/spooled_markdown_artifact-RRB113sy.js.map +1 -0
- package/thought-CDb457b4.mjs +470 -0
- package/thought-CDb457b4.mjs.map +1 -0
- package/thought-DuN2PgdO.js +494 -0
- package/thought-DuN2PgdO.js.map +1 -0
- package/tool-COSeH8I6.js +302 -0
- package/tool-COSeH8I6.js.map +1 -0
- package/tool-D2WB1EA1.mjs +296 -0
- package/tool-D2WB1EA1.mjs.map +1 -0
- package/tool_call-BKyyxGaZ.mjs +578 -0
- package/tool_call-BKyyxGaZ.mjs.map +1 -0
- package/tool_call-DFgzcVcU.js +608 -0
- package/tool_call-DFgzcVcU.js.map +1 -0
- package/tool_registry-Dkfprsck.js +641 -0
- package/tool_registry-Dkfprsck.js.map +1 -0
- package/tool_registry-DqLOyGyG.mjs +592 -0
- package/tool_registry-DqLOyGyG.mjs.map +1 -0
- package/turn_runner-CMm2BHdX.js +615 -0
- package/turn_runner-CMm2BHdX.js.map +1 -0
- package/turn_runner-y7eyEcJH.mjs +603 -0
- package/turn_runner-y7eyEcJH.mjs.map +1 -0
- package/turn_runner.cjs +3 -0
- package/turn_runner.d.ts +21 -0
- package/turn_runner.mjs +2 -0
- package/types.cjs +1 -0
- package/types.d.ts +56 -0
- package/types.mjs +0 -0
- package/vite-env.d.ts +23 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.cjs","names":[],"sources":["../../../src/batteries/tools/color/index.ts"],"sourcesContent":["/**\n * Pre-constructed tools for color conversion and palette-oriented calculations.\n *\n * @module @nhtio/adk/batteries/tools/color\n *\n * @remarks\n * Pre-constructed bundled tools for the `color` 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 RGB = { r: number; g: number; b: number }\ntype HSL = { h: number; s: number; l: number }\n\nfunction hexToRgb(hex: string): RGB | null {\n const cleaned = hex.replace(/^#/, '')\n let r: number\n let g: number\n let b: number\n\n if (cleaned.length === 3) {\n r = Number.parseInt(cleaned[0] + cleaned[0], 16)\n g = Number.parseInt(cleaned[1] + cleaned[1], 16)\n b = Number.parseInt(cleaned[2] + cleaned[2], 16)\n } else if (cleaned.length === 6) {\n r = Number.parseInt(cleaned.slice(0, 2), 16)\n g = Number.parseInt(cleaned.slice(2, 4), 16)\n b = Number.parseInt(cleaned.slice(4, 6), 16)\n } else {\n return null\n }\n\n if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) return null\n return { r, g, b }\n}\n\nfunction parseRgbString(input: string): RGB | null {\n const match = input.match(/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/i)\n if (!match) return null\n const r = Number.parseInt(match[1], 10)\n const g = Number.parseInt(match[2], 10)\n const b = Number.parseInt(match[3], 10)\n if (r > 255 || g > 255 || b > 255) return null\n return { r, g, b }\n}\n\nfunction parseHslString(input: string): HSL | null {\n const match = input.match(/^hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+)%?\\s*,\\s*(\\d+)%?\\s*\\)$/i)\n if (!match) return null\n return {\n h: Number.parseInt(match[1], 10) % 360,\n s: Math.min(100, Number.parseInt(match[2], 10)),\n l: Math.min(100, Number.parseInt(match[3], 10)),\n }\n}\n\nconst NAMED_COLORS: Record<string, string> = {\n 'black': '#000000',\n 'white': '#FFFFFF',\n 'transparent': '#FFFFFF',\n 'aqua': '#00FFFF',\n 'magenta': '#FF00FF',\n 'fuchsia': '#FF00FF',\n 'silver': '#C0C0C0',\n 'maroon': '#800000',\n 'olive': '#808000',\n 'navy': '#000080',\n 'coral': '#FF7F50',\n 'crimson': '#DC143C',\n 'gold': '#FFD700',\n 'ivory': '#FFFFF0',\n 'khaki': '#F0E68C',\n 'lavender': '#E6E6FA',\n 'plum': '#DDA0DD',\n 'salmon': '#FA8072',\n 'sienna': '#A0522D',\n 'tan': '#D2B48C',\n 'tomato': '#FF6347',\n 'turquoise': '#40E0D0',\n 'violet': '#EE82EE',\n 'wheat': '#F5DEB3',\n 'red': '#F44336',\n 'red-lighten-5': '#FFEBEE',\n 'red-lighten-4': '#FFCDD2',\n 'red-lighten-3': '#EF9A9A',\n 'red-lighten-2': '#E57373',\n 'red-lighten-1': '#EF5350',\n 'red-darken-1': '#E53935',\n 'red-darken-2': '#D32F2F',\n 'red-darken-3': '#C62828',\n 'red-darken-4': '#B71C1C',\n 'red-accent-1': '#FF8A80',\n 'red-accent-2': '#FF5252',\n 'red-accent-3': '#FF1744',\n 'red-accent-4': '#D50000',\n 'pink': '#E91E63',\n 'pink-lighten-5': '#FCE4EC',\n 'pink-lighten-4': '#F8BBD0',\n 'pink-lighten-3': '#F48FB1',\n 'pink-lighten-2': '#F06292',\n 'pink-lighten-1': '#EC407A',\n 'pink-darken-1': '#D81B60',\n 'pink-darken-2': '#C2185B',\n 'pink-darken-3': '#AD1457',\n 'pink-darken-4': '#880E4F',\n 'pink-accent-1': '#FF80AB',\n 'pink-accent-2': '#FF4081',\n 'pink-accent-3': '#F50057',\n 'pink-accent-4': '#C51162',\n 'purple': '#9C27B0',\n 'purple-lighten-5': '#F3E5F5',\n 'purple-lighten-4': '#E1BEE7',\n 'purple-lighten-3': '#CE93D8',\n 'purple-lighten-2': '#BA68C8',\n 'purple-lighten-1': '#AB47BC',\n 'purple-darken-1': '#8E24AA',\n 'purple-darken-2': '#7B1FA2',\n 'purple-darken-3': '#6A1B9A',\n 'purple-darken-4': '#4A148C',\n 'purple-accent-1': '#EA80FC',\n 'purple-accent-2': '#E040FB',\n 'purple-accent-3': '#D500F9',\n 'purple-accent-4': '#AA00FF',\n 'deep-purple': '#673AB7',\n 'deep-purple-lighten-5': '#EDE7F6',\n 'deep-purple-lighten-4': '#D1C4E9',\n 'deep-purple-lighten-3': '#B39DDB',\n 'deep-purple-lighten-2': '#9575CD',\n 'deep-purple-lighten-1': '#7E57C2',\n 'deep-purple-darken-1': '#5E35B1',\n 'deep-purple-darken-2': '#512DA8',\n 'deep-purple-darken-3': '#4527A0',\n 'deep-purple-darken-4': '#311B92',\n 'deep-purple-accent-1': '#B388FF',\n 'deep-purple-accent-2': '#7C4DFF',\n 'deep-purple-accent-3': '#651FFF',\n 'deep-purple-accent-4': '#6200EA',\n 'indigo': '#3F51B5',\n 'indigo-lighten-5': '#E8EAF6',\n 'indigo-lighten-4': '#C5CAE9',\n 'indigo-lighten-3': '#9FA8DA',\n 'indigo-lighten-2': '#7986CB',\n 'indigo-lighten-1': '#5C6BC0',\n 'indigo-darken-1': '#3949AB',\n 'indigo-darken-2': '#303F9F',\n 'indigo-darken-3': '#283593',\n 'indigo-darken-4': '#1A237E',\n 'indigo-accent-1': '#8C9EFF',\n 'indigo-accent-2': '#536DFE',\n 'indigo-accent-3': '#3D5AFE',\n 'indigo-accent-4': '#304FFE',\n 'blue': '#2196F3',\n 'blue-lighten-5': '#E3F2FD',\n 'blue-lighten-4': '#BBDEFB',\n 'blue-lighten-3': '#90CAF9',\n 'blue-lighten-2': '#64B5F6',\n 'blue-lighten-1': '#42A5F5',\n 'blue-darken-1': '#1E88E5',\n 'blue-darken-2': '#1976D2',\n 'blue-darken-3': '#1565C0',\n 'blue-darken-4': '#0D47A1',\n 'blue-accent-1': '#82B1FF',\n 'blue-accent-2': '#448AFF',\n 'blue-accent-3': '#2979FF',\n 'blue-accent-4': '#2962FF',\n 'light-blue': '#03A9F4',\n 'light-blue-lighten-5': '#E1F5FE',\n 'light-blue-lighten-4': '#B3E5FC',\n 'light-blue-lighten-3': '#81D4FA',\n 'light-blue-lighten-2': '#4FC3F7',\n 'light-blue-lighten-1': '#29B6F6',\n 'light-blue-darken-1': '#039BE5',\n 'light-blue-darken-2': '#0288D1',\n 'light-blue-darken-3': '#0277BD',\n 'light-blue-darken-4': '#01579B',\n 'light-blue-accent-1': '#80D8FF',\n 'light-blue-accent-2': '#40C4FF',\n 'light-blue-accent-3': '#00B0FF',\n 'light-blue-accent-4': '#0091EA',\n 'cyan': '#00BCD4',\n 'cyan-lighten-5': '#E0F7FA',\n 'cyan-lighten-4': '#B2EBF2',\n 'cyan-lighten-3': '#80DEEA',\n 'cyan-lighten-2': '#4DD0E1',\n 'cyan-lighten-1': '#26C6DA',\n 'cyan-darken-1': '#00ACC1',\n 'cyan-darken-2': '#0097A7',\n 'cyan-darken-3': '#00838F',\n 'cyan-darken-4': '#006064',\n 'cyan-accent-1': '#84FFFF',\n 'cyan-accent-2': '#18FFFF',\n 'cyan-accent-3': '#00E5FF',\n 'cyan-accent-4': '#00B8D4',\n 'teal': '#009688',\n 'teal-lighten-5': '#E0F2F1',\n 'teal-lighten-4': '#B2DFDB',\n 'teal-lighten-3': '#80CBC4',\n 'teal-lighten-2': '#4DB6AC',\n 'teal-lighten-1': '#26A69A',\n 'teal-darken-1': '#00897B',\n 'teal-darken-2': '#00796B',\n 'teal-darken-3': '#00695C',\n 'teal-darken-4': '#004D40',\n 'teal-accent-1': '#A7FFEB',\n 'teal-accent-2': '#64FFDA',\n 'teal-accent-3': '#1DE9B6',\n 'teal-accent-4': '#00BFA5',\n 'green': '#4CAF50',\n 'green-lighten-5': '#E8F5E9',\n 'green-lighten-4': '#C8E6C9',\n 'green-lighten-3': '#A5D6A7',\n 'green-lighten-2': '#81C784',\n 'green-lighten-1': '#66BB6A',\n 'green-darken-1': '#43A047',\n 'green-darken-2': '#388E3C',\n 'green-darken-3': '#2E7D32',\n 'green-darken-4': '#1B5E20',\n 'green-accent-1': '#B9F6CA',\n 'green-accent-2': '#69F0AE',\n 'green-accent-3': '#00E676',\n 'green-accent-4': '#00C853',\n 'light-green': '#8BC34A',\n 'light-green-lighten-5': '#F1F8E9',\n 'light-green-lighten-4': '#DCEDC8',\n 'light-green-lighten-3': '#C5E1A5',\n 'light-green-lighten-2': '#AED581',\n 'light-green-lighten-1': '#9CCC65',\n 'light-green-darken-1': '#7CB342',\n 'light-green-darken-2': '#689F38',\n 'light-green-darken-3': '#558B2F',\n 'light-green-darken-4': '#33691E',\n 'light-green-accent-1': '#CCFF90',\n 'light-green-accent-2': '#B2FF59',\n 'light-green-accent-3': '#76FF03',\n 'light-green-accent-4': '#64DD17',\n 'lime': '#CDDC39',\n 'lime-lighten-5': '#F9FBE7',\n 'lime-lighten-4': '#F0F4C3',\n 'lime-lighten-3': '#E6EE9C',\n 'lime-lighten-2': '#DCE775',\n 'lime-lighten-1': '#D4E157',\n 'lime-darken-1': '#C0CA33',\n 'lime-darken-2': '#AFB42B',\n 'lime-darken-3': '#9E9D24',\n 'lime-darken-4': '#827717',\n 'lime-accent-1': '#F4FF81',\n 'lime-accent-2': '#EEFF41',\n 'lime-accent-3': '#C6FF00',\n 'lime-accent-4': '#AEEA00',\n 'yellow': '#FFEB3B',\n 'yellow-lighten-5': '#FFFDE7',\n 'yellow-lighten-4': '#FFF9C4',\n 'yellow-lighten-3': '#FFF59D',\n 'yellow-lighten-2': '#FFF176',\n 'yellow-lighten-1': '#FFEE58',\n 'yellow-darken-1': '#FDD835',\n 'yellow-darken-2': '#FBC02D',\n 'yellow-darken-3': '#F9A825',\n 'yellow-darken-4': '#F57F17',\n 'yellow-accent-1': '#FFFF8D',\n 'yellow-accent-2': '#FFFF00',\n 'yellow-accent-3': '#FFEA00',\n 'yellow-accent-4': '#FFD600',\n 'amber': '#FFC107',\n 'amber-lighten-5': '#FFF8E1',\n 'amber-lighten-4': '#FFECB3',\n 'amber-lighten-3': '#FFE082',\n 'amber-lighten-2': '#FFD54F',\n 'amber-lighten-1': '#FFCA28',\n 'amber-darken-1': '#FFB300',\n 'amber-darken-2': '#FFA000',\n 'amber-darken-3': '#FF8F00',\n 'amber-darken-4': '#FF6F00',\n 'amber-accent-1': '#FFE57F',\n 'amber-accent-2': '#FFD740',\n 'amber-accent-3': '#FFC400',\n 'amber-accent-4': '#FFAB00',\n 'orange': '#FF9800',\n 'orange-lighten-5': '#FFF3E0',\n 'orange-lighten-4': '#FFE0B2',\n 'orange-lighten-3': '#FFCC80',\n 'orange-lighten-2': '#FFB74D',\n 'orange-lighten-1': '#FFA726',\n 'orange-darken-1': '#FB8C00',\n 'orange-darken-2': '#F57C00',\n 'orange-darken-3': '#EF6C00',\n 'orange-darken-4': '#E65100',\n 'orange-accent-1': '#FFD180',\n 'orange-accent-2': '#FFAB40',\n 'orange-accent-3': '#FF9100',\n 'orange-accent-4': '#FF6D00',\n 'deep-orange': '#FF5722',\n 'deep-orange-lighten-5': '#FBE9E7',\n 'deep-orange-lighten-4': '#FFCCBC',\n 'deep-orange-lighten-3': '#FFAB91',\n 'deep-orange-lighten-2': '#FF8A65',\n 'deep-orange-lighten-1': '#FF7043',\n 'deep-orange-darken-1': '#F4511E',\n 'deep-orange-darken-2': '#E64A19',\n 'deep-orange-darken-3': '#D84315',\n 'deep-orange-darken-4': '#BF360C',\n 'deep-orange-accent-1': '#FF9E80',\n 'deep-orange-accent-2': '#FF6E40',\n 'deep-orange-accent-3': '#FF3D00',\n 'deep-orange-accent-4': '#DD2C00',\n 'brown': '#795548',\n 'brown-lighten-5': '#EFEBE9',\n 'brown-lighten-4': '#D7CCC8',\n 'brown-lighten-3': '#BCAAA4',\n 'brown-lighten-2': '#A1887F',\n 'brown-lighten-1': '#8D6E63',\n 'brown-darken-1': '#6D4C41',\n 'brown-darken-2': '#5D4037',\n 'brown-darken-3': '#4E342E',\n 'brown-darken-4': '#3E2723',\n 'blue-grey': '#607D8B',\n 'blue-grey-lighten-5': '#ECEFF1',\n 'blue-grey-lighten-4': '#CFD8DC',\n 'blue-grey-lighten-3': '#B0BEC5',\n 'blue-grey-lighten-2': '#90A4AE',\n 'blue-grey-lighten-1': '#78909C',\n 'blue-grey-darken-1': '#546E7A',\n 'blue-grey-darken-2': '#455A64',\n 'blue-grey-darken-3': '#37474F',\n 'blue-grey-darken-4': '#263238',\n 'grey': '#9E9E9E',\n 'gray': '#9E9E9E',\n 'grey-lighten-5': '#FAFAFA',\n 'grey-lighten-4': '#F5F5F5',\n 'grey-lighten-3': '#EEEEEE',\n 'grey-lighten-2': '#E0E0E0',\n 'grey-lighten-1': '#BDBDBD',\n 'grey-darken-1': '#757575',\n 'grey-darken-2': '#616161',\n 'grey-darken-3': '#424242',\n 'grey-darken-4': '#212121',\n}\n\nfunction parseColor(input: string): RGB | null {\n const trimmed = input.trim()\n const lower = trimmed.toLowerCase()\n\n if (NAMED_COLORS[lower]) {\n return hexToRgb(NAMED_COLORS[lower])\n }\n\n if (trimmed.startsWith('#')) return hexToRgb(trimmed)\n if (lower.startsWith('rgb(')) return parseRgbString(trimmed)\n if (lower.startsWith('hsl(')) {\n const hsl = parseHslString(trimmed)\n return hsl ? hslToRgb(hsl) : null\n }\n\n return hexToRgb(trimmed)\n}\n\nfunction rgbToHex(rgb: RGB): string {\n const toHex = (n: number) =>\n Math.round(Math.max(0, Math.min(255, n)))\n .toString(16)\n .padStart(2, '0')\n return `#${toHex(rgb.r)}${toHex(rgb.g)}${toHex(rgb.b)}`\n}\n\nfunction rgbToHsl(rgb: RGB): HSL {\n const r = rgb.r / 255\n const g = rgb.g / 255\n const b = rgb.b / 255\n\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n const l = (max + min) / 2\n\n if (max === min) return { h: 0, s: 0, l: Math.round(l * 100) }\n\n const d = max - min\n const s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\n let h = 0\n if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6\n else if (max === g) h = ((b - r) / d + 2) / 6\n else h = ((r - g) / d + 4) / 6\n\n return {\n h: Math.round(h * 360),\n s: Math.round(s * 100),\n l: Math.round(l * 100),\n }\n}\n\nfunction hslToRgb(hsl: HSL): RGB {\n const h = hsl.h / 360\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n if (s === 0) {\n const v = Math.round(l * 255)\n return { r: v, g: v, b: v }\n }\n\n const hue2rgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1\n if (t > 1) t -= 1\n if (t < 1 / 6) return p + (q - p) * 6 * t\n if (t < 1 / 2) return q\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\n return p\n }\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s\n const p = 2 * l - q\n\n return {\n r: Math.round(hue2rgb(p, q, h + 1 / 3) * 255),\n g: Math.round(hue2rgb(p, q, h) * 255),\n b: Math.round(hue2rgb(p, q, h - 1 / 3) * 255),\n }\n}\n\nfunction relativeLuminance(rgb: RGB): number {\n const srgb = [rgb.r, rgb.g, rgb.b].map((c) => {\n const s = c / 255\n return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4)\n })\n return 0.2126 * srgb[0] + 0.7152 * srgb[1] + 0.0722 * srgb[2]\n}\n\nfunction contrastRatio(c1: RGB, c2: RGB): number {\n const l1 = relativeLuminance(c1)\n const l2 = relativeLuminance(c2)\n const lighter = Math.max(l1, l2)\n const darker = Math.min(l1, l2)\n return (lighter + 0.05) / (darker + 0.05)\n}\n\nfunction rotateHue(hsl: HSL, degrees: number): HSL {\n return { h: (hsl.h + degrees + 360) % 360, s: hsl.s, l: hsl.l }\n}\n\nfunction formatColor(rgb: RGB): string {\n const hex = rgbToHex(rgb)\n const hsl = rgbToHsl(rgb)\n return `${hex} / rgb(${rgb.r}, ${rgb.g}, ${rgb.b}) / hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`\n}\n\n/**\n * Compute the WCAG 2.1 contrast ratio between two colours.\n *\n * @remarks\n * Accepts hex (`#rgb`, `#rrggbb`), `rgb()`, `hsl()`, or one of the CSS / Material Design named\n * colours. Reports the ratio and pass/fail against WCAG AA and AAA at both normal and large text\n * sizes. If the foreground/background combination fails AA Normal (4.5:1), the tool suggests\n * lightened or darkened variants that would pass.\n */\nexport const colorContrastTool = new Tool({\n name: 'color_contrast',\n description:\n 'Check the contrast ratio between two colors for WCAG accessibility compliance. Reports the contrast ratio and pass/fail for WCAG AA and AAA levels.',\n inputSchema: validator.object({\n foreground: validator\n .string()\n .required()\n .description('Foreground color (hex, rgb(), hsl(), or named color).'),\n background: validator\n .string()\n .required()\n .description('Background color (hex, rgb(), hsl(), or named color).'),\n }),\n handler: async (args) => {\n const { foreground, background } = args as { foreground: string; background: string }\n const fg = parseColor(foreground)\n const bg = parseColor(background)\n\n if (!fg) return `Error: could not parse foreground color \"${foreground}\".`\n if (!bg) return `Error: could not parse background color \"${background}\".`\n\n const ratio = contrastRatio(fg, bg)\n const rounded = Math.round(ratio * 100) / 100\n\n const aaLargeText = ratio >= 3\n const aaNormalText = ratio >= 4.5\n const aaaLargeText = ratio >= 4.5\n const aaaNormalText = ratio >= 7\n\n const lines = [\n `Foreground: ${formatColor(fg)}`,\n `Background: ${formatColor(bg)}`,\n `Contrast ratio: ${rounded}:1`,\n '',\n 'WCAG 2.1 compliance:',\n ` AA Normal text (4.5:1): ${aaNormalText ? 'PASS' : 'FAIL'}`,\n ` AA Large text (3.0:1): ${aaLargeText ? 'PASS' : 'FAIL'}`,\n ` AAA Normal text (7.0:1): ${aaaNormalText ? 'PASS' : 'FAIL'}`,\n ` AAA Large text (4.5:1): ${aaaLargeText ? 'PASS' : 'FAIL'}`,\n ]\n\n if (!aaNormalText) {\n const fgHsl = rgbToHsl(fg)\n const bgHsl = rgbToHsl(bg)\n const fgLighter = fgHsl.l > bgHsl.l\n\n const suggestions: string[] = []\n if (fgLighter) {\n const lighter = hslToRgb({ ...fgHsl, l: Math.min(100, fgHsl.l + 15) })\n const darkerBg = hslToRgb({ ...bgHsl, l: Math.max(0, bgHsl.l - 15) })\n if (contrastRatio(lighter, bg) >= 4.5) {\n suggestions.push(\n ` Lighten foreground to ${rgbToHex(lighter)} (ratio: ${Math.round(contrastRatio(lighter, bg) * 100) / 100}:1)`\n )\n }\n if (contrastRatio(fg, darkerBg) >= 4.5) {\n suggestions.push(\n ` Darken background to ${rgbToHex(darkerBg)} (ratio: ${Math.round(contrastRatio(fg, darkerBg) * 100) / 100}:1)`\n )\n }\n } else {\n const darker = hslToRgb({ ...fgHsl, l: Math.max(0, fgHsl.l - 15) })\n const lighterBg = hslToRgb({ ...bgHsl, l: Math.min(100, bgHsl.l + 15) })\n if (contrastRatio(darker, bg) >= 4.5) {\n suggestions.push(\n ` Darken foreground to ${rgbToHex(darker)} (ratio: ${Math.round(contrastRatio(darker, bg) * 100) / 100}:1)`\n )\n }\n if (contrastRatio(fg, lighterBg) >= 4.5) {\n suggestions.push(\n ` Lighten background to ${rgbToHex(lighterBg)} (ratio: ${Math.round(contrastRatio(fg, lighterBg) * 100) / 100}:1)`\n )\n }\n }\n\n if (suggestions.length > 0) {\n lines.push('', 'Suggestions to reach AA Normal (4.5:1):')\n lines.push(...suggestions)\n }\n }\n\n return lines.join('\\n')\n },\n})\n\n/**\n * Generate a colour palette from a base colour using a named harmony.\n *\n * @remarks\n * Supported schemes: `complementary`, `analogous`, `triadic`, `split-complementary`,\n * `monochromatic`. Each entry reports its hex, rgb, and hsl forms, plus the contrast ratio\n * relative to the base colour.\n */\nexport const colorSchemeTool = new Tool({\n name: 'color_scheme',\n description:\n 'Generate a color palette from a base color. Supports complementary, analogous, triadic, split-complementary, and monochromatic schemes.',\n inputSchema: validator.object({\n color: validator\n .string()\n .required()\n .description('Base color (hex, rgb(), hsl(), or named color).'),\n scheme: validator\n .string()\n .valid('complementary', 'analogous', 'triadic', 'split-complementary', 'monochromatic')\n .required()\n .description('Type of color scheme to generate.'),\n }),\n handler: async (args) => {\n const { color, scheme } = args as {\n color: string\n scheme: 'complementary' | 'analogous' | 'triadic' | 'split-complementary' | 'monochromatic'\n }\n const rgb = parseColor(color)\n if (!rgb) return `Error: could not parse color \"${color}\".`\n\n const hsl = rgbToHsl(rgb)\n const palette: { label: string; rgb: RGB }[] = [{ label: 'Base', rgb }]\n\n switch (scheme) {\n case 'complementary':\n palette.push({ label: 'Complement', rgb: hslToRgb(rotateHue(hsl, 180)) })\n break\n\n case 'analogous':\n palette.push({ label: 'Analogous -30', rgb: hslToRgb(rotateHue(hsl, -30)) })\n palette.push({ label: 'Analogous +30', rgb: hslToRgb(rotateHue(hsl, 30)) })\n break\n\n case 'triadic':\n palette.push({ label: 'Triadic +120', rgb: hslToRgb(rotateHue(hsl, 120)) })\n palette.push({ label: 'Triadic +240', rgb: hslToRgb(rotateHue(hsl, 240)) })\n break\n\n case 'split-complementary':\n palette.push({ label: 'Split +150', rgb: hslToRgb(rotateHue(hsl, 150)) })\n palette.push({ label: 'Split +210', rgb: hslToRgb(rotateHue(hsl, 210)) })\n break\n\n case 'monochromatic':\n palette.push({ label: 'Light', rgb: hslToRgb({ ...hsl, l: Math.min(100, hsl.l + 20) }) })\n palette.push({ label: 'Lighter', rgb: hslToRgb({ ...hsl, l: Math.min(100, hsl.l + 35) }) })\n palette.push({ label: 'Dark', rgb: hslToRgb({ ...hsl, l: Math.max(0, hsl.l - 20) }) })\n palette.push({ label: 'Darker', rgb: hslToRgb({ ...hsl, l: Math.max(0, hsl.l - 35) }) })\n break\n }\n\n const lines = [`Color scheme: ${scheme}`, '']\n for (const entry of palette) {\n lines.push(`${entry.label}: ${formatColor(entry.rgb)}`)\n }\n\n if (palette.length > 1) {\n lines.push('', 'Contrast ratios with base:')\n for (const entry of palette.slice(1)) {\n const ratio = Math.round(contrastRatio(rgb, entry.rgb) * 100) / 100\n lines.push(` ${entry.label}: ${ratio}:1`)\n }\n }\n\n return lines.join('\\n')\n },\n})\n\n/**\n * Lighten or darken a colour by a percentage of HSL lightness.\n *\n * @remarks\n * `amount` is clamped to `[1, 100]`; `steps` is clamped to `[1, 10]`. With `steps > 1` the tool\n * emits a ramp of progressively-adjusted colours, useful for generating tint/shade scales.\n */\nexport const colorAdjustTool = new Tool({\n name: 'color_adjust',\n description:\n 'Lighten or darken a color by a specified amount. Returns the adjusted color in hex, rgb, and hsl formats. Can generate multiple steps for a tint/shade scale.',\n inputSchema: validator.object({\n color: validator\n .string()\n .required()\n .description('Color to adjust (hex, rgb(), hsl(), or named color).'),\n action: validator\n .string()\n .valid('lighten', 'darken')\n .required()\n .description('Whether to lighten or darken the color.'),\n amount: validator\n .number()\n .default(15)\n .description('Amount to adjust per step (1-100, percentage of lightness). Default: 15.'),\n steps: validator\n .number()\n .default(1)\n .description('Generate multiple steps of adjustment (1-10). Default: 1.'),\n }),\n handler: async (args) => {\n const {\n color,\n action,\n amount: rawAmount,\n steps: rawSteps,\n } = args as {\n color: string\n action: 'lighten' | 'darken'\n amount: number\n steps: number\n }\n const rgb = parseColor(color)\n if (!rgb) return `Error: could not parse color \"${color}\".`\n\n const amount = Math.max(1, Math.min(100, rawAmount))\n const steps = Math.max(1, Math.min(10, rawSteps))\n const hsl = rgbToHsl(rgb)\n\n const lines = [`Original: ${formatColor(rgb)}`]\n\n for (let i = 1; i <= steps; i++) {\n const delta = amount * i\n const newL = action === 'lighten' ? Math.min(100, hsl.l + delta) : Math.max(0, hsl.l - delta)\n const adjusted = hslToRgb({ ...hsl, l: newL })\n const label =\n steps === 1\n ? `${action === 'lighten' ? 'Lightened' : 'Darkened'} (${delta}%)`\n : `Step ${i} (${action} ${delta}%)`\n lines.push(`${label}: ${formatColor(adjusted)}`)\n }\n\n return lines.join('\\n')\n },\n})\n"],"mappings":"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"}
|