@skillsmith/core 0.5.0 → 0.5.2

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 (42) hide show
  1. package/CHANGELOG.md +17 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/api/client.cache.d.ts +34 -0
  4. package/dist/src/api/client.cache.d.ts.map +1 -0
  5. package/dist/src/api/client.cache.js +37 -0
  6. package/dist/src/api/client.cache.js.map +1 -0
  7. package/dist/src/api/client.d.ts +16 -86
  8. package/dist/src/api/client.d.ts.map +1 -1
  9. package/dist/src/api/client.js +27 -20
  10. package/dist/src/api/client.js.map +1 -1
  11. package/dist/src/api/client.types.d.ts +109 -0
  12. package/dist/src/api/client.types.d.ts.map +1 -0
  13. package/dist/src/api/client.types.js +22 -0
  14. package/dist/src/api/client.types.js.map +1 -0
  15. package/dist/src/api/schemas.d.ts +2 -2
  16. package/dist/src/api/types.d.ts +14 -1
  17. package/dist/src/api/types.d.ts.map +1 -1
  18. package/dist/src/audit/remote-audit.d.ts +28 -0
  19. package/dist/src/audit/remote-audit.d.ts.map +1 -0
  20. package/dist/src/audit/remote-audit.js +90 -0
  21. package/dist/src/audit/remote-audit.js.map +1 -0
  22. package/dist/src/audit/remote-audit.test.d.ts +2 -0
  23. package/dist/src/audit/remote-audit.test.d.ts.map +1 -0
  24. package/dist/src/audit/remote-audit.test.js +81 -0
  25. package/dist/src/audit/remote-audit.test.js.map +1 -0
  26. package/dist/src/data/generic-triggers.d.ts +24 -0
  27. package/dist/src/data/generic-triggers.d.ts.map +1 -0
  28. package/dist/src/data/generic-triggers.js +19 -0
  29. package/dist/src/data/generic-triggers.js.map +1 -0
  30. package/dist/src/data/generic-triggers.json +35 -0
  31. package/dist/src/exports/types.d.ts +1 -1
  32. package/dist/src/exports/types.d.ts.map +1 -1
  33. package/dist/src/exports/types.js.map +1 -1
  34. package/dist/src/index.d.ts +5 -1
  35. package/dist/src/index.d.ts.map +1 -1
  36. package/dist/src/index.js +5 -1
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/tests/api/client.cache.test.d.ts +8 -0
  39. package/dist/tests/api/client.cache.test.d.ts.map +1 -0
  40. package/dist/tests/api/client.cache.test.js +128 -0
  41. package/dist/tests/api/client.cache.test.js.map +1 -0
  42. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Client-side response cache wiring
3
+ * @module api/client.cache
4
+ *
5
+ * SMI-4120: Extracted from client.ts to keep the client under the 500-line
6
+ * audit:standards gate. Contains cache construction, the per-call option
7
+ * type, and the `withCache` helper used by search/getSkill/recommend.
8
+ */
9
+ import { ApiCache, type CacheConfig } from './cache.js';
10
+ import type { ApiResponse } from './client.js';
11
+ /**
12
+ * SMI-4120: Per-call cache directive, matching `fetch` RequestInit semantics.
13
+ * `no-store` skips both cache read and write for the call.
14
+ */
15
+ export interface CallCacheOptions {
16
+ cache?: 'default' | 'no-store';
17
+ }
18
+ /**
19
+ * Cache configuration accepted by `SkillsmithApiClient`. Pass `false` to
20
+ * disable; pass a pre-built `ApiCache` to share one across clients; pass a
21
+ * `CacheConfig` object to customize TTLs.
22
+ */
23
+ export type ClientCacheSetting = ApiCache | CacheConfig | false;
24
+ /**
25
+ * SMI-4120: Build the response cache honoring the env kill-switch. Returns
26
+ * `null` when disabled so callers can branch cheaply.
27
+ */
28
+ export declare function buildResponseCache(setting: ClientCacheSetting | undefined): ApiCache | null;
29
+ /**
30
+ * SMI-4120: Run a thunk through the response cache. Stored values are the
31
+ * same `ApiResponse` reference — callers must not mutate.
32
+ */
33
+ export declare function withResponseCache<T>(cache: ApiCache | null, endpointType: 'search' | 'getSkill' | 'recommend', key: string, noStore: boolean, fetcher: () => Promise<ApiResponse<T>>): Promise<ApiResponse<T>>;
34
+ //# sourceMappingURL=client.cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.cache.d.ts","sourceRoot":"","sources":["../../../src/api/client.cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAA;AAE/D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAK3F;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,YAAY,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,EACjD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAOzB"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Client-side response cache wiring
3
+ * @module api/client.cache
4
+ *
5
+ * SMI-4120: Extracted from client.ts to keep the client under the 500-line
6
+ * audit:standards gate. Contains cache construction, the per-call option
7
+ * type, and the `withCache` helper used by search/getSkill/recommend.
8
+ */
9
+ import { ApiCache } from './cache.js';
10
+ /**
11
+ * SMI-4120: Build the response cache honoring the env kill-switch. Returns
12
+ * `null` when disabled so callers can branch cheaply.
13
+ */
14
+ export function buildResponseCache(setting) {
15
+ if (process.env.SKILLSMITH_DISABLE_CLIENT_CACHE === '1')
16
+ return null;
17
+ if (setting === false)
18
+ return null;
19
+ if (setting instanceof ApiCache)
20
+ return setting;
21
+ return new ApiCache(setting ?? {});
22
+ }
23
+ /**
24
+ * SMI-4120: Run a thunk through the response cache. Stored values are the
25
+ * same `ApiResponse` reference — callers must not mutate.
26
+ */
27
+ export async function withResponseCache(cache, endpointType, key, noStore, fetcher) {
28
+ if (!cache || noStore)
29
+ return fetcher();
30
+ const hit = cache.get(key);
31
+ if (hit)
32
+ return hit;
33
+ const fresh = await fetcher();
34
+ cache.set(key, fresh, endpointType);
35
+ return fresh;
36
+ }
37
+ //# sourceMappingURL=client.cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.cache.js","sourceRoot":"","sources":["../../../src/api/client.cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAA;AAkBvD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAuC;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IACpE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,OAAO,YAAY,QAAQ;QAAE,OAAO,OAAO,CAAA;IAC/C,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAsB,EACtB,YAAiD,EACjD,GAAW,EACX,OAAgB,EAChB,OAAsC;IAEtC,IAAI,CAAC,KAAK,IAAI,OAAO;QAAE,OAAO,OAAO,EAAE,CAAA;IACvC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAiB,GAAG,CAAC,CAAA;IAC1C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAA;IACnB,MAAM,KAAK,GAAG,MAAM,OAAO,EAAE,CAAA;IAC7B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IACnC,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -5,92 +5,15 @@
5
5
  * SMI-1244: API client for Supabase endpoints. SMI-1258: Zod response validation.
6
6
  * SMI-4119: `recordEvent` batches via EventBatcher (see client.events.ts).
7
7
  */
8
- import type { Skill, TrustTier, SearchOptions } from '../types/skill.js';
8
+ import type { Skill, SearchOptions } from '../types/skill.js';
9
+ import { type ApiResponse, type ApiSearchResult, type ApiClientConfig, type RecommendationRequest, type TelemetryEvent } from './client.types.js';
10
+ export { ApiClientError, type ApiResponse, type ApiErrorResponse, type ApiSearchResult, type ApiClientConfig, type RecommendationRequest, type TelemetryEvent, } from './client.types.js';
11
+ import { ApiCache } from './cache.js';
12
+ import { type CallCacheOptions } from './client.cache.js';
13
+ export type { CallCacheOptions } from './client.cache.js';
9
14
  export { generateAnonymousId } from './utils.js';
10
15
  export { checkApiHealth } from './client.health.js';
11
16
  export { ApiSearchResultSchema, SearchResponseSchema, SingleSkillResponseSchema, TelemetryResponseSchema, TrustTierSchema, } from './schemas.js';
12
- /**
13
- * API response wrapper
14
- */
15
- export interface ApiResponse<T> {
16
- data: T;
17
- meta?: Record<string, unknown>;
18
- }
19
- /**
20
- * API error response
21
- */
22
- export interface ApiErrorResponse {
23
- error: string;
24
- details?: Record<string, unknown>;
25
- }
26
- /**
27
- * Custom error class for API client errors with retry control
28
- * SMI-1257: Replace string-based retry skip with custom error class
29
- */
30
- export declare class ApiClientError extends Error {
31
- readonly retryable: boolean;
32
- readonly statusCode?: number | undefined;
33
- constructor(message: string, retryable?: boolean, statusCode?: number | undefined);
34
- }
35
- /**
36
- * Search result from API
37
- * SMI-1577: Made repo_url, created_at, updated_at optional to match schema
38
- */
39
- export interface ApiSearchResult {
40
- id: string;
41
- name: string;
42
- description: string | null;
43
- author: string | null;
44
- repo_url?: string | null;
45
- quality_score: number | null;
46
- trust_tier: TrustTier;
47
- tags: string[];
48
- stars?: number | null;
49
- installable?: boolean | null;
50
- quarantined?: boolean;
51
- /** SHA-256 hash of SKILL.md content at index time */
52
- content_hash?: string | null;
53
- /** SMI-3672: Raw SKILL.md content (only when include_content=true) */
54
- content?: string | null;
55
- created_at?: string;
56
- updated_at?: string;
57
- }
58
- /**
59
- * Recommendation request
60
- */
61
- export interface RecommendationRequest {
62
- stack: string[];
63
- project_type?: string;
64
- limit?: number;
65
- }
66
- /**
67
- * Telemetry event
68
- */
69
- export interface TelemetryEvent {
70
- event: 'skill_view' | 'skill_install' | 'skill_uninstall' | 'skill_rate' | 'search' | 'recommend' | 'compare' | 'validate';
71
- skill_id?: string;
72
- anonymous_id: string;
73
- metadata?: Record<string, unknown>;
74
- }
75
- /**
76
- * API client configuration
77
- */
78
- export interface ApiClientConfig {
79
- /** Base URL for the API (defaults to production Supabase) */
80
- baseUrl?: string;
81
- /** Supabase anon key for authentication */
82
- anonKey?: string;
83
- /** API key for authenticated requests (X-API-Key header) */
84
- apiKey?: string;
85
- /** Request timeout in ms (default 30000) */
86
- timeout?: number;
87
- /** Max retry attempts (default 3) */
88
- maxRetries?: number;
89
- /** Enable debug logging */
90
- debug?: boolean;
91
- /** Enable offline mode (disables API calls) */
92
- offlineMode?: boolean;
93
- }
94
17
  /**
95
18
  * Skillsmith API Client. See module docstring for SMI refs.
96
19
  */
@@ -104,7 +27,11 @@ export declare class SkillsmithApiClient {
104
27
  private offlineMode;
105
28
  /** SMI-4119: Lazily-initialized batcher for telemetry events. */
106
29
  private eventBatcher;
30
+ /** SMI-4120: Response cache (null when disabled). */
31
+ private responseCache;
107
32
  constructor(config?: ApiClientConfig);
33
+ /** SMI-4120: Expose the response cache (null when disabled). */
34
+ getResponseCache(): ApiCache | null;
108
35
  /**
109
36
  * Check if client is running in offline mode
110
37
  */
@@ -135,21 +62,24 @@ export declare class SkillsmithApiClient {
135
62
  /**
136
63
  * Search for skills
137
64
  * SMI-1258: Validates response against SearchResponseSchema
65
+ * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
138
66
  */
139
- search(options: SearchOptions): Promise<ApiResponse<ApiSearchResult[]>>;
67
+ search(options: SearchOptions, callOptions?: CallCacheOptions): Promise<ApiResponse<ApiSearchResult[]>>;
140
68
  /**
141
69
  * Get skill by ID
142
70
  * SMI-1258: Validates response against SingleSkillResponseSchema
143
71
  * SMI-3672: Added includeContent option to fetch SKILL.md content
72
+ * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
144
73
  */
145
74
  getSkill(id: string, options?: {
146
75
  includeContent?: boolean;
147
- }): Promise<ApiResponse<ApiSearchResult>>;
76
+ } & CallCacheOptions): Promise<ApiResponse<ApiSearchResult>>;
148
77
  /**
149
78
  * Get skill recommendations based on tech stack
150
79
  * SMI-1258: Validates response against SearchResponseSchema
80
+ * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
151
81
  */
152
- getRecommendations(request: RecommendationRequest): Promise<ApiResponse<ApiSearchResult[]>>;
82
+ getRecommendations(request: RecommendationRequest, callOptions?: CallCacheOptions): Promise<ApiResponse<ApiSearchResult[]>>;
153
83
  /**
154
84
  * Record telemetry event
155
85
  * SMI-4119: Enqueue to in-memory batcher instead of POSTing immediately.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -6,29 +6,19 @@
6
6
  * SMI-4119: `recordEvent` batches via EventBatcher (see client.events.ts).
7
7
  */
8
8
  import { SkillsmithError, ErrorCodes } from '../errors.js';
9
+ import { ApiClientError, } from './client.types.js';
10
+ export { ApiClientError, } from './client.types.js';
9
11
  // Import from extracted modules
10
12
  import { SearchResponseSchema, SingleSkillResponseSchema } from './schemas.js';
11
13
  import { calculateBackoff, buildRequestHeaders, DEFAULT_BASE_URL, PRODUCTION_ANON_KEY, } from './utils.js';
12
14
  import { checkApiHealth } from './client.health.js';
13
15
  import { buildClientEventBatcher } from './client.events.js';
16
+ import { ApiCache } from './cache.js';
17
+ import { buildResponseCache, withResponseCache } from './client.cache.js';
14
18
  // Re-export for backwards compatibility
15
19
  export { generateAnonymousId } from './utils.js';
16
20
  export { checkApiHealth } from './client.health.js';
17
21
  export { ApiSearchResultSchema, SearchResponseSchema, SingleSkillResponseSchema, TelemetryResponseSchema, TrustTierSchema, } from './schemas.js';
18
- /**
19
- * Custom error class for API client errors with retry control
20
- * SMI-1257: Replace string-based retry skip with custom error class
21
- */
22
- export class ApiClientError extends Error {
23
- retryable;
24
- statusCode;
25
- constructor(message, retryable = false, statusCode) {
26
- super(message);
27
- this.retryable = retryable;
28
- this.statusCode = statusCode;
29
- this.name = 'ApiClientError';
30
- }
31
- }
32
22
  // ============================================================================
33
23
  // API Client Class
34
24
  // ============================================================================
@@ -45,6 +35,8 @@ export class SkillsmithApiClient {
45
35
  offlineMode;
46
36
  /** SMI-4119: Lazily-initialized batcher for telemetry events. */
47
37
  eventBatcher = null;
38
+ /** SMI-4120: Response cache (null when disabled). */
39
+ responseCache = null;
48
40
  constructor(config = {}) {
49
41
  // SMI-1948: DEFAULT_BASE_URL now always has a value (production URL fallback)
50
42
  // Priority: config.baseUrl > DEFAULT_BASE_URL (which checks env vars internally)
@@ -60,6 +52,11 @@ export class SkillsmithApiClient {
60
52
  this.timeout = config.timeout ?? 30000;
61
53
  this.maxRetries = config.maxRetries ?? 3;
62
54
  this.debug = config.debug ?? false;
55
+ this.responseCache = buildResponseCache(config.cache);
56
+ }
57
+ /** SMI-4120: Expose the response cache (null when disabled). */
58
+ getResponseCache() {
59
+ return this.responseCache;
63
60
  }
64
61
  /**
65
62
  * Check if client is running in offline mode
@@ -198,8 +195,9 @@ export class SkillsmithApiClient {
198
195
  /**
199
196
  * Search for skills
200
197
  * SMI-1258: Validates response against SearchResponseSchema
198
+ * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
201
199
  */
202
- async search(options) {
200
+ async search(options, callOptions) {
203
201
  const params = new URLSearchParams();
204
202
  params.set('query', options.query);
205
203
  if (options.limit)
@@ -212,27 +210,36 @@ export class SkillsmithApiClient {
212
210
  params.set('min_score', String(options.minQualityScore));
213
211
  if (options.category)
214
212
  params.set('category', options.category);
215
- return this.request(`/skills-search?${params.toString()}`, {}, SearchResponseSchema);
213
+ const endpoint = `/skills-search?${params.toString()}`;
214
+ return withResponseCache(this.responseCache, 'search', endpoint, callOptions?.cache === 'no-store', () => this.request(endpoint, {}, SearchResponseSchema));
216
215
  }
217
216
  /**
218
217
  * Get skill by ID
219
218
  * SMI-1258: Validates response against SingleSkillResponseSchema
220
219
  * SMI-3672: Added includeContent option to fetch SKILL.md content
220
+ * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
221
221
  */
222
222
  async getSkill(id, options) {
223
223
  const encodedId = encodeURIComponent(id);
224
224
  const contentParam = options?.includeContent ? '&include_content=true' : '';
225
- return this.request(`/skills-get?id=${encodedId}${contentParam}`, {}, SingleSkillResponseSchema);
225
+ const endpoint = `/skills-get?id=${encodedId}${contentParam}`;
226
+ return withResponseCache(this.responseCache, 'getSkill', endpoint, options?.cache === 'no-store', () => this.request(endpoint, {}, SingleSkillResponseSchema));
226
227
  }
227
228
  /**
228
229
  * Get skill recommendations based on tech stack
229
230
  * SMI-1258: Validates response against SearchResponseSchema
231
+ * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
230
232
  */
231
- async getRecommendations(request) {
232
- return this.request('/skills-recommend', {
233
+ async getRecommendations(request, callOptions) {
234
+ const cacheKey = ApiCache.createKey('/skills-recommend', {
235
+ stack: [...request.stack].sort(),
236
+ project_type: request.project_type ?? null,
237
+ limit: request.limit ?? null,
238
+ });
239
+ return withResponseCache(this.responseCache, 'recommend', cacheKey, callOptions?.cache === 'no-store', () => this.request('/skills-recommend', {
233
240
  method: 'POST',
234
241
  body: JSON.stringify(request),
235
- }, SearchResponseSchema);
242
+ }, SearchResponseSchema));
236
243
  }
237
244
  /**
238
245
  * Record telemetry event
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE1D,gCAAgC;AAChC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,wCAAwC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,GAChB,MAAM,cAAc,CAAA;AAsBrB;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGrB;IACA;IAHlB,YACE,OAAe,EACC,YAAqB,KAAK,EAC1B,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,cAAS,GAAT,SAAS,CAAiB;QAC1B,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AAyED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAQ;IACf,OAAO,CAAoB;IAC3B,MAAM,CAAoB;IAC1B,OAAO,CAAQ;IACf,UAAU,CAAQ;IAClB,KAAK,CAAS;IACd,WAAW,CAAS;IAC5B,iEAAiE;IACzD,YAAY,GAAwB,IAAI,CAAA;IAEhD,YAAY,SAA0B,EAAE;QACtC,8EAA8E;QAC9E,iFAAiF;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAA;QAElD,oEAAoE;QACpE,0EAA0E;QAC1E,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAA;QAChG,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAA;QAEtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,wFAAwF;QACxF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,mBAAmB,CAAA;QACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;QAC7D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAA;QACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;;;;OAKG;IACH,iBAAiB;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;IAED;;;;;OAKG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,UAAU,CAAA;QAClC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,WAAW,CAAA;QACpC,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,OAAe,EAAE,IAAc;QACzC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,OAAO,CACnB,QAAgB,EAChB,UAAuB,EAAE;IACzB,oDAAoD;IACpD,MAEC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAA;QACxC,IAAI,SAA4B,CAAA;QAEhC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,mBAAmB,OAAO,GAAG,CAAC,GAAG,EAAE;oBAC1C,GAAG;oBACH,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;oBAC/B,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;iBAC7B,CAAC,CAAA;gBAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;gBACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAEpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,GAAG,OAAO;oBACV,OAAO,EAAE;wBACP,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;wBACpC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChD,GAAG,OAAO,CAAC,OAAO;qBACnB;oBACD,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAA;gBAEF,YAAY,CAAC,SAAS,CAAC,CAAA;gBAEvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ;yBAC9B,IAAI,EAAE;yBACN,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAqB,CAAA;oBAEjE,qDAAqD;oBACrD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;wBACpD,MAAM,IAAI,cAAc,CACtB,SAAS,CAAC,KAAK,IAAI,cAAc,QAAQ,CAAC,MAAM,EAAE,EAClD,KAAK,EAAE,gBAAgB;wBACvB,QAAQ,CAAC,MAAM,CAChB,CAAA;oBACH,CAAC;oBAED,iEAAiE;oBACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;wBACtD,MAAM,IAAI,cAAc,CAAC,iBAAiB,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;oBACrF,CAAC;oBAED,yBAAyB;oBACzB,MAAM,IAAI,cAAc,CACtB,SAAS,CAAC,KAAK,IAAI,cAAc,QAAQ,CAAC,MAAM,EAAE,EAClD,KAAK,EACL,QAAQ,CAAC,MAAM,CAChB,CAAA;gBACH,CAAC;gBAED,MAAM,OAAO,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAE9C,yDAAyD;gBACzD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;oBAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;wBAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAA;wBACrC,MAAM,YAAY,GAAG,MAAM;6BACxB,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;6BACvE,IAAI,CAAC,IAAI,CAAC,CAAA;wBACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;wBAC/C,MAAM,IAAI,eAAe,CACvB,UAAU,CAAC,wBAAwB,EACnC,yBAAyB,YAAY,EAAE,EACvC;4BACE,OAAO,EAAE;gCACP,QAAQ;gCACR,gBAAgB,EAAE,MAAM;6BACzB;yBACF,CACF,CAAA;oBACH,CAAC;oBACD,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;wBACzE,OAAO,SAAS,CAAC,IAAI,CAAA;oBACvB,CAAC;oBACD,8EAA8E;oBAC9E,MAAM,IAAI,eAAe,CACvB,UAAU,CAAC,wBAAwB,EACnC,wCAAwC,EACxC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAC1B,CAAA;gBACH,CAAC;gBAED,kEAAkE;gBAClE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC3D,OAAO,OAAyB,CAAA;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBACrE,IAAI,CAAC,GAAG,CAAC,WAAW,OAAO,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;gBAE7D,8BAA8B;gBAC9B,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACpC,MAAM,SAAS,CAAA;gBACjB,CAAC;gBAED,8EAA8E;gBAC9E,IACE,SAAS,YAAY,eAAe;oBACpC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,wBAAwB,EACtD,CAAC;oBACD,MAAM,SAAS,CAAA;gBACjB,CAAC;gBAED,8DAA8D;gBAC9D,0CAA0C;gBAC1C,IAAI,SAAS,YAAY,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;oBAChE,MAAM,SAAS,CAAA;gBACjB,CAAC;gBAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;oBACvC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,CAAC,CAAA;oBACrC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAElC,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7D,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QAChE,IAAI,OAAO,CAAC,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAClE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YACvC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;QAC1D,IAAI,OAAO,CAAC,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE9D,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,MAAM,CAAC,QAAQ,EAAE,EAAE,EACrC,EAAE,EACF,oBAAoB,CACrB,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CACZ,EAAU,EACV,OAAsC;QAEtC,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,YAAY,GAAG,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3E,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,SAAS,GAAG,YAAY,EAAE,EAC5C,EAAE,EACF,yBAAyB,CAC1B,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,OAA8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CACjB,mBAAmB,EACnB;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,EACD,oBAAoB,CACrB,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAqB;QACrC,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,WAAW;QACf,IAAI,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IACxD,CAAC;IAED,uEAAuE;IACvE,mBAAmB;QACjB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAC1B,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC,CAAA;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QAKf,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACrE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAuB;QACpC,yEAAyE;QACzE,MAAM,YAAY,GAAG,0BAA0B,CAAA;QAC/C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;YAChC,YAAY,EAAE,MAAM,CAAC,aAAa;YAClC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;YACxC,yEAAyE;YACzE,SAAS,EAAE,IAAI;YACf,qBAAqB,EAAE,CAAC;YACxB,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,YAAY;YAC5C,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,YAAY;SAC7C,CAAA;IACH,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * API client types & error class
3
+ * @module api/client.types
4
+ *
5
+ * SMI-4120: Extracted from client.ts to keep the client under the 500-line
6
+ * pre-commit gate (scripts/check-file-length.mjs).
7
+ */
8
+ import type { TrustTier } from '../types/skill.js';
9
+ import type { ClientCacheSetting } from './client.cache.js';
10
+ /**
11
+ * API response wrapper
12
+ */
13
+ export interface ApiResponse<T> {
14
+ data: T;
15
+ meta?: Record<string, unknown>;
16
+ }
17
+ /**
18
+ * API error response
19
+ */
20
+ export interface ApiErrorResponse {
21
+ error: string;
22
+ details?: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Custom error class for API client errors with retry control
26
+ * SMI-1257: Replace string-based retry skip with custom error class
27
+ */
28
+ export declare class ApiClientError extends Error {
29
+ readonly retryable: boolean;
30
+ readonly statusCode?: number | undefined;
31
+ constructor(message: string, retryable?: boolean, statusCode?: number | undefined);
32
+ }
33
+ /**
34
+ * Search result from API
35
+ * SMI-1577: Made repo_url, created_at, updated_at optional to match schema
36
+ * SMI-4240: Added categories, security_score, last_scanned_at, security_findings
37
+ * to match the full `...skill` spread returned by skills-get (present on
38
+ * get-skill responses, omitted on skills-search responses).
39
+ */
40
+ export interface ApiSearchResult {
41
+ id: string;
42
+ name: string;
43
+ description: string | null;
44
+ author: string | null;
45
+ repo_url?: string | null;
46
+ quality_score: number | null;
47
+ trust_tier: TrustTier;
48
+ tags: string[];
49
+ stars?: number | null;
50
+ installable?: boolean | null;
51
+ quarantined?: boolean;
52
+ /** SHA-256 hash of SKILL.md content at index time */
53
+ content_hash?: string | null;
54
+ /** SMI-3672: Raw SKILL.md content (only when include_content=true) */
55
+ content?: string | null;
56
+ created_at?: string;
57
+ updated_at?: string;
58
+ /** SMI-4240: Category display names joined from skill_categories */
59
+ categories?: string[];
60
+ /** SMI-4240: Security score 0-100 (lower is safer); null until first scan */
61
+ security_score?: number | null;
62
+ /** SMI-4240: ISO 8601 timestamp of last security scan; null until first scan */
63
+ last_scanned_at?: string | null;
64
+ /** SMI-4240: Security findings array (jsonb); length drives findingsCount */
65
+ security_findings?: unknown[] | null;
66
+ }
67
+ /**
68
+ * Recommendation request
69
+ */
70
+ export interface RecommendationRequest {
71
+ stack: string[];
72
+ project_type?: string;
73
+ limit?: number;
74
+ }
75
+ /**
76
+ * Telemetry event
77
+ */
78
+ export interface TelemetryEvent {
79
+ event: 'skill_view' | 'skill_install' | 'skill_uninstall' | 'skill_rate' | 'search' | 'recommend' | 'compare' | 'validate';
80
+ skill_id?: string;
81
+ anonymous_id: string;
82
+ metadata?: Record<string, unknown>;
83
+ }
84
+ /**
85
+ * API client configuration
86
+ */
87
+ export interface ApiClientConfig {
88
+ /** Base URL for the API (defaults to production Supabase) */
89
+ baseUrl?: string;
90
+ /** Supabase anon key for authentication */
91
+ anonKey?: string;
92
+ /** API key for authenticated requests (X-API-Key header) */
93
+ apiKey?: string;
94
+ /** Request timeout in ms (default 30000) */
95
+ timeout?: number;
96
+ /** Max retry attempts (default 3) */
97
+ maxRetries?: number;
98
+ /** Enable debug logging */
99
+ debug?: boolean;
100
+ /** Enable offline mode (disables API calls) */
101
+ offlineMode?: boolean;
102
+ /**
103
+ * SMI-4120: Response cache config. Provide a pre-built ApiCache, a config
104
+ * object, or `false` to disable. `SKILLSMITH_DISABLE_CLIENT_CACHE=1` also
105
+ * disables (takes precedence).
106
+ */
107
+ cache?: ClientCacheSetting;
108
+ }
109
+ //# sourceMappingURL=client.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../../src/api/client.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * API client types & error class
3
+ * @module api/client.types
4
+ *
5
+ * SMI-4120: Extracted from client.ts to keep the client under the 500-line
6
+ * pre-commit gate (scripts/check-file-length.mjs).
7
+ */
8
+ /**
9
+ * Custom error class for API client errors with retry control
10
+ * SMI-1257: Replace string-based retry skip with custom error class
11
+ */
12
+ export class ApiClientError extends Error {
13
+ retryable;
14
+ statusCode;
15
+ constructor(message, retryable = false, statusCode) {
16
+ super(message);
17
+ this.retryable = retryable;
18
+ this.statusCode = statusCode;
19
+ this.name = 'ApiClientError';
20
+ }
21
+ }
22
+ //# sourceMappingURL=client.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.types.js","sourceRoot":"","sources":["../../../src/api/client.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGrB;IACA;IAHlB,YACE,OAAe,EACC,YAAqB,KAAK,EAC1B,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,cAAS,GAAT,SAAS,CAAiB;QAC1B,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF"}
@@ -66,9 +66,9 @@ export declare const TelemetryEventSchema: z.ZodObject<{
66
66
  skill_install: "skill_install";
67
67
  skill_uninstall: "skill_uninstall";
68
68
  search: "search";
69
+ recommend: "recommend";
69
70
  skill_view: "skill_view";
70
71
  skill_rate: "skill_rate";
71
- recommend: "recommend";
72
72
  compare: "compare";
73
73
  validate: "validate";
74
74
  }>;
@@ -85,9 +85,9 @@ export declare const TelemetryEventBatchSchema: z.ZodObject<{
85
85
  skill_install: "skill_install";
86
86
  skill_uninstall: "skill_uninstall";
87
87
  search: "search";
88
+ recommend: "recommend";
88
89
  skill_view: "skill_view";
89
90
  skill_rate: "skill_rate";
90
- recommend: "recommend";
91
91
  compare: "compare";
92
92
  validate: "validate";
93
93
  }>;
@@ -46,8 +46,21 @@ export interface ApiSkill {
46
46
  created_at: string;
47
47
  /** Last update timestamp (ISO 8601) */
48
48
  updated_at: string;
49
- /** Associated category names */
49
+ /** Associated category names (joined from skill_categories by skills-get) */
50
50
  categories?: string[];
51
+ /**
52
+ * SMI-4240: Security scan fields returned by skills-get via `...skill` spread.
53
+ * All optional/nullable to preserve compatibility with pre-4240 responses and
54
+ * with endpoints like skills-search that don't select these columns.
55
+ */
56
+ /** Security score 0-100 (lower is safer); null until first scan */
57
+ security_score?: number | null;
58
+ /** ISO 8601 timestamp of last security scan; null until first scan */
59
+ last_scanned_at?: string | null;
60
+ /** Security findings array (jsonb); length drives findingsCount derivation */
61
+ security_findings?: unknown[] | null;
62
+ /** True when the skill is quarantined due to security score threshold */
63
+ quarantined?: boolean;
51
64
  }
52
65
  /**
53
66
  * Search result from API (Skill with rank)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface InstallEventPayload {
2
+ skillId: string;
3
+ source: 'mcp' | 'cli' | 'vscode';
4
+ success: boolean;
5
+ durationMs?: number;
6
+ trustTier?: string;
7
+ errorCode?: string;
8
+ }
9
+ /**
10
+ * Emit a skill-install event to Skillsmith's remote telemetry endpoint.
11
+ *
12
+ * Best-effort: never throws, never blocks the caller. Silently skips in these cases:
13
+ * - No API key available (CLI offline / unauthenticated)
14
+ * - SKILLSMITH_TELEMETRY=0 (opt-out)
15
+ * - Network / endpoint failure
16
+ *
17
+ * The API key is mapped to a namespaced, non-reversible telemetry actor ID
18
+ * (HMAC-SHA-256 keyed by `skillsmith-telemetry-actor:v1`) before transmission.
19
+ * The server stores that digest as `actor` — never the raw key, never an
20
+ * email, never a user ID.
21
+ *
22
+ * Event shape when emitted:
23
+ * event_type: "telemetry:skill_install"
24
+ * actor: hmac_sha256("skillsmith-telemetry-actor:v1", apiKey) hex
25
+ * metadata: { skill_id, source, success, duration_ms?, trust_tier?, error_code? }
26
+ */
27
+ export declare function emitInstallEvent(payload: InstallEventPayload): Promise<void>;
28
+ //# sourceMappingURL=remote-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-audit.d.ts","sourceRoot":"","sources":["../../../src/audit/remote-audit.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAyCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgClF"}