@preply/ds-ai-core 11.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 (104) hide show
  1. package/AGENTS.md +7 -0
  2. package/README.md +34 -0
  3. package/dist/event-tracking.d.ts +21 -0
  4. package/dist/event-tracking.d.ts.map +1 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +38209 -0
  8. package/dist/tools/components/__tests__/get-component-docs.test.d.ts +2 -0
  9. package/dist/tools/components/__tests__/get-component-docs.test.d.ts.map +1 -0
  10. package/dist/tools/components/__tests__/list-components.test.d.ts +2 -0
  11. package/dist/tools/components/__tests__/list-components.test.d.ts.map +1 -0
  12. package/dist/tools/components/context/__test__/get-components-data.test.d.ts +2 -0
  13. package/dist/tools/components/context/__test__/get-components-data.test.d.ts.map +1 -0
  14. package/dist/tools/components/context/__test__/test-components/FixtureButton.d.ts +15 -0
  15. package/dist/tools/components/context/__test__/test-components/FixtureButton.d.ts.map +1 -0
  16. package/dist/tools/components/context/__test__/test-components/index.d.ts +2 -0
  17. package/dist/tools/components/context/__test__/test-components/index.d.ts.map +1 -0
  18. package/dist/tools/components/context/extract-component-docgen-info.d.ts +3 -0
  19. package/dist/tools/components/context/extract-component-docgen-info.d.ts.map +1 -0
  20. package/dist/tools/components/context/get-components-data.d.ts +24 -0
  21. package/dist/tools/components/context/get-components-data.d.ts.map +1 -0
  22. package/dist/tools/components/context/index.d.ts +6 -0
  23. package/dist/tools/components/context/index.d.ts.map +1 -0
  24. package/dist/tools/components/context/render-component-doc.d.ts +4 -0
  25. package/dist/tools/components/context/render-component-doc.d.ts.map +1 -0
  26. package/dist/tools/components/get-component-docs.d.ts +15 -0
  27. package/dist/tools/components/get-component-docs.d.ts.map +1 -0
  28. package/dist/tools/components/list-components.d.ts +9 -0
  29. package/dist/tools/components/list-components.d.ts.map +1 -0
  30. package/dist/tools/index.d.ts +6 -0
  31. package/dist/tools/index.d.ts.map +1 -0
  32. package/dist/tools/search-icon/__tests__/get-icons-data.test.d.ts +2 -0
  33. package/dist/tools/search-icon/__tests__/get-icons-data.test.d.ts.map +1 -0
  34. package/dist/tools/search-icon/__tests__/search-icon.test.d.ts +2 -0
  35. package/dist/tools/search-icon/__tests__/search-icon.test.d.ts.map +1 -0
  36. package/dist/tools/search-icon/get-icons-data.d.ts +6 -0
  37. package/dist/tools/search-icon/get-icons-data.d.ts.map +1 -0
  38. package/dist/tools/search-icon/search-icon.d.ts +18 -0
  39. package/dist/tools/search-icon/search-icon.d.ts.map +1 -0
  40. package/dist/tools/search-token/__tests__/search-token-by-name.test.d.ts +2 -0
  41. package/dist/tools/search-token/__tests__/search-token-by-name.test.d.ts.map +1 -0
  42. package/dist/tools/search-token/__tests__/search-token-by-value.test.d.ts +2 -0
  43. package/dist/tools/search-token/__tests__/search-token-by-value.test.d.ts.map +1 -0
  44. package/dist/tools/search-token/context/__tests__/get-tokens-data.test.d.ts +2 -0
  45. package/dist/tools/search-token/context/__tests__/get-tokens-data.test.d.ts.map +1 -0
  46. package/dist/tools/search-token/context/get-tokens-data.d.ts +13 -0
  47. package/dist/tools/search-token/context/get-tokens-data.d.ts.map +1 -0
  48. package/dist/tools/search-token/context/index.d.ts +6 -0
  49. package/dist/tools/search-token/context/index.d.ts.map +1 -0
  50. package/dist/tools/search-token/search-token-by-name.d.ts +26 -0
  51. package/dist/tools/search-token/search-token-by-name.d.ts.map +1 -0
  52. package/dist/tools/search-token/search-token-by-value.d.ts +24 -0
  53. package/dist/tools/search-token/search-token-by-value.d.ts.map +1 -0
  54. package/dist/tools/search-token/token-utils.d.ts +9 -0
  55. package/dist/tools/search-token/token-utils.d.ts.map +1 -0
  56. package/dist/types.d.ts +3 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/utils/create-search-index.d.ts +48 -0
  59. package/dist/utils/create-search-index.d.ts.map +1 -0
  60. package/dist/utils/define-tool.d.ts +49 -0
  61. package/dist/utils/define-tool.d.ts.map +1 -0
  62. package/dist/utils/format-list.d.ts +26 -0
  63. package/dist/utils/format-list.d.ts.map +1 -0
  64. package/dist/utils/md.d.ts +24 -0
  65. package/dist/utils/md.d.ts.map +1 -0
  66. package/package.json +48 -0
  67. package/src/event-tracking.ts +117 -0
  68. package/src/index.ts +4 -0
  69. package/src/tools/components/__tests__/get-component-docs.test.ts +58 -0
  70. package/src/tools/components/__tests__/list-components.test.ts +63 -0
  71. package/src/tools/components/context/__test__/get-components-data.test.ts +57 -0
  72. package/src/tools/components/context/__test__/test-components/FixtureButton.tsx +18 -0
  73. package/src/tools/components/context/__test__/test-components/index.ts +1 -0
  74. package/src/tools/components/context/__test__/test-components/tsconfig.json +11 -0
  75. package/src/tools/components/context/extract-component-docgen-info.ts +108 -0
  76. package/src/tools/components/context/get-components-data.ts +94 -0
  77. package/src/tools/components/context/index.ts +4 -0
  78. package/src/tools/components/context/render-component-doc.ts +89 -0
  79. package/src/tools/components/get-component-docs.ts +26 -0
  80. package/src/tools/components/list-components.ts +36 -0
  81. package/src/tools/index.ts +5 -0
  82. package/src/tools/search-icon/__tests__/get-icons-data.test.ts +22 -0
  83. package/src/tools/search-icon/__tests__/search-icon.test.ts +235 -0
  84. package/src/tools/search-icon/__tests__/test-icons/NotIcon.md +1 -0
  85. package/src/tools/search-icon/__tests__/test-icons/OtherIcon.svg +1 -0
  86. package/src/tools/search-icon/__tests__/test-icons/TokyoUIClose.svg +1 -0
  87. package/src/tools/search-icon/__tests__/test-icons/TokyoUIHelp.svg +1 -0
  88. package/src/tools/search-icon/get-icons-data.ts +19 -0
  89. package/src/tools/search-icon/search-icon.ts +100 -0
  90. package/src/tools/search-token/__tests__/search-token-by-name.test.ts +384 -0
  91. package/src/tools/search-token/__tests__/search-token-by-value.test.ts +250 -0
  92. package/src/tools/search-token/context/__tests__/get-tokens-data.test.ts +148 -0
  93. package/src/tools/search-token/context/get-tokens-data.ts +103 -0
  94. package/src/tools/search-token/context/index.ts +4 -0
  95. package/src/tools/search-token/search-token-by-name.ts +110 -0
  96. package/src/tools/search-token/search-token-by-value.ts +107 -0
  97. package/src/tools/search-token/token-utils.ts +60 -0
  98. package/src/types.ts +3 -0
  99. package/src/utils/create-search-index.ts +121 -0
  100. package/src/utils/define-tool.ts +67 -0
  101. package/src/utils/format-list.ts +38 -0
  102. package/src/utils/md.ts +12 -0
  103. package/tsconfig.json +11 -0
  104. package/vite.config.ts +23 -0
package/AGENTS.md ADDED
@@ -0,0 +1,7 @@
1
+ # Agents: ai-core
2
+
3
+ This package contains the tool definitions (names, descriptions, arguments, options, callbacks) that power both `@preply/ds-ai-cli` and `@preply/ds-ai-mcp`.
4
+
5
+ ## Keep in sync
6
+
7
+ When adding, removing, or changing tools (arguments, options, descriptions) in `src/tools/`, update the consumer-facing agent skill at `skills/design-system/SKILL.md` to reflect the new tool capabilities and CLI syntax.
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # `@preply/ds-ai-core`
2
+
3
+ > Shared library of AI-facing tools for the Preply Design System.
4
+
5
+ Provides tool definitions consumed by [`@preply/ds-ai-mcp`](../ai-mcp/README.md) (MCP server) and [`@preply/ds-ai-cli`](../ai-cli/README.md) (CLI).
6
+
7
+ ## Tools
8
+
9
+ | Tool | Description |
10
+ | -------------------- | ------------------------------------------------------- |
11
+ | `searchIcon` | Fuzzy-search icons from `@preply/ds-media-icons` |
12
+ | `searchTokenByName` | Search design tokens by name (scss / less / typescript) |
13
+ | `searchTokenByValue` | Reverse-lookup tokens by their resolved value |
14
+ | `listComponents` | List all available DS components with metadata |
15
+ | `getComponentDocs` | Get full documentation for a specific component |
16
+
17
+ Each tool is defined via `defineTool` with Zod schemas for arguments/options, making them automatically consumable by both CLI (via `zod-commander`) and MCP (via `inputSchema`).
18
+
19
+ ## Architecture
20
+
21
+ - **Build-time macros** — `unplugin-macros` inlines data (icon lists, token maps, component docs) at build time via `with { type: 'macro' }` imports, so consumers don't need filesystem access at runtime.
22
+ - **Search** — [Lunr](https://lunrjs.com/) powers fuzzy search for icons and tokens, with custom pipeline functions for camelCase/kebab-case splitting.
23
+ - **Event tracking** — PostHog client for anonymous usage analytics (`identify`, `trackToolCall`).
24
+
25
+ ## Development
26
+
27
+ ```bash
28
+ yarn build # Build the package
29
+ yarn dev # Build in watch mode
30
+ yarn test # Run tests
31
+ yarn test:watch # Run tests in watch mode
32
+ yarn check:types # Type-check
33
+ yarn lint # Lint
34
+ ```
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Identifies the current user.
3
+ * Should be called once at the start of the program.
4
+ */
5
+ export declare function identify(): void;
6
+ /**
7
+ * Tracks a generic event.
8
+ */
9
+ export declare function trackEvent(eventName: string, properties?: Record<string, unknown>): void;
10
+ /**
11
+ * Tracks a tool call.
12
+ * Should be called for each tool call.
13
+ */
14
+ export declare function trackToolCall(toolName: string, args: Record<string, unknown>, meta?: Record<string, unknown>): void;
15
+ /**
16
+ * Flushes all pending events and shuts down the PostHog client.
17
+ * Must be called before process exit in short-lived processes (e.g. CLI)
18
+ * to ensure events are actually sent over the network.
19
+ */
20
+ export declare function shutdownEventTracking(): Promise<void>;
21
+ //# sourceMappingURL=event-tracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-tracking.d.ts","sourceRoot":"","sources":["../src/event-tracking.ts"],"names":[],"mappings":"AAiDA;;;GAGG;AACH,wBAAgB,QAAQ,SAcvB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAejF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAOjC;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,kBAM1C"}
@@ -0,0 +1,5 @@
1
+ export * as tools from './tools';
2
+ export * from './event-tracking';
3
+ export * from './types';
4
+ export type { Tool } from './utils/define-tool';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC"}