@wilnertech/halopsa-mcp-server 1.0.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 (76) hide show
  1. package/.env.example +19 -0
  2. package/LICENSE +21 -0
  3. package/README.md +270 -0
  4. package/dist/api/client.d.ts +85 -0
  5. package/dist/api/client.d.ts.map +1 -0
  6. package/dist/api/client.js +297 -0
  7. package/dist/api/client.js.map +1 -0
  8. package/dist/api/errors.d.ts +60 -0
  9. package/dist/api/errors.d.ts.map +1 -0
  10. package/dist/api/errors.js +188 -0
  11. package/dist/api/errors.js.map +1 -0
  12. package/dist/cache/memory-cache.d.ts +89 -0
  13. package/dist/cache/memory-cache.d.ts.map +1 -0
  14. package/dist/cache/memory-cache.js +175 -0
  15. package/dist/cache/memory-cache.js.map +1 -0
  16. package/dist/cache/prewarm.d.ts +12 -0
  17. package/dist/cache/prewarm.d.ts.map +1 -0
  18. package/dist/cache/prewarm.js +55 -0
  19. package/dist/cache/prewarm.js.map +1 -0
  20. package/dist/index.d.ts +12 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +141 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/schemas/common.d.ts +212 -0
  25. package/dist/schemas/common.d.ts.map +1 -0
  26. package/dist/schemas/common.js +127 -0
  27. package/dist/schemas/common.js.map +1 -0
  28. package/dist/tools/assets.d.ts +482 -0
  29. package/dist/tools/assets.d.ts.map +1 -0
  30. package/dist/tools/assets.js +732 -0
  31. package/dist/tools/assets.js.map +1 -0
  32. package/dist/tools/batch-operations.d.ts +125 -0
  33. package/dist/tools/batch-operations.d.ts.map +1 -0
  34. package/dist/tools/batch-operations.js +207 -0
  35. package/dist/tools/batch-operations.js.map +1 -0
  36. package/dist/tools/clients.d.ts +145 -0
  37. package/dist/tools/clients.d.ts.map +1 -0
  38. package/dist/tools/clients.js +148 -0
  39. package/dist/tools/clients.js.map +1 -0
  40. package/dist/tools/reference-data.d.ts +118 -0
  41. package/dist/tools/reference-data.d.ts.map +1 -0
  42. package/dist/tools/reference-data.js +103 -0
  43. package/dist/tools/reference-data.js.map +1 -0
  44. package/dist/tools/registrations.d.ts +7 -0
  45. package/dist/tools/registrations.d.ts.map +1 -0
  46. package/dist/tools/registrations.js +61 -0
  47. package/dist/tools/registrations.js.map +1 -0
  48. package/dist/tools/registry.d.ts +67 -0
  49. package/dist/tools/registry.d.ts.map +1 -0
  50. package/dist/tools/registry.js +71 -0
  51. package/dist/tools/registry.js.map +1 -0
  52. package/dist/tools/sites.d.ts +188 -0
  53. package/dist/tools/sites.d.ts.map +1 -0
  54. package/dist/tools/sites.js +258 -0
  55. package/dist/tools/sites.js.map +1 -0
  56. package/dist/tools/users.d.ts +317 -0
  57. package/dist/tools/users.d.ts.map +1 -0
  58. package/dist/tools/users.js +489 -0
  59. package/dist/tools/users.js.map +1 -0
  60. package/dist/types/halopsa.d.ts +212 -0
  61. package/dist/types/halopsa.d.ts.map +1 -0
  62. package/dist/types/halopsa.js +8 -0
  63. package/dist/types/halopsa.js.map +1 -0
  64. package/dist/utils/formatter.d.ts +18 -0
  65. package/dist/utils/formatter.d.ts.map +1 -0
  66. package/dist/utils/formatter.js +178 -0
  67. package/dist/utils/formatter.js.map +1 -0
  68. package/dist/utils/similarity.d.ts +25 -0
  69. package/dist/utils/similarity.d.ts.map +1 -0
  70. package/dist/utils/similarity.js +90 -0
  71. package/dist/utils/similarity.js.map +1 -0
  72. package/dist/utils/zod-to-schema.d.ts +29 -0
  73. package/dist/utils/zod-to-schema.d.ts.map +1 -0
  74. package/dist/utils/zod-to-schema.js +182 -0
  75. package/dist/utils/zod-to-schema.js.map +1 -0
  76. package/package.json +61 -0
@@ -0,0 +1,482 @@
1
+ /**
2
+ * HaloPSA Asset tools with token optimization
3
+ * Provides CRUD operations for assets with caching, deduplication, and custom field inspection
4
+ *
5
+ * CRITICAL: Assets are the primary billing entity - accuracy is essential
6
+ * - Only ACTIVE assets (status_id=1) count toward billing
7
+ * - Duplicates cause billing errors = revenue loss
8
+ */
9
+ import { z } from 'zod';
10
+ import type { HaloPSAAPIClient } from '../api/client.js';
11
+ import type { ZodToolDefinition } from './registry.js';
12
+ /**
13
+ * List assets schema
14
+ */
15
+ export declare const ListAssetsArgsSchema: z.ZodObject<{
16
+ client_id: z.ZodOptional<z.ZodNumber>;
17
+ site_id: z.ZodOptional<z.ZodNumber>;
18
+ assettype_id: z.ZodOptional<z.ZodNumber>;
19
+ status_id: z.ZodOptional<z.ZodNumber>;
20
+ search: z.ZodOptional<z.ZodString>;
21
+ count: z.ZodOptional<z.ZodNumber>;
22
+ page_no: z.ZodOptional<z.ZodNumber>;
23
+ includeactive: z.ZodOptional<z.ZodBoolean>;
24
+ includeinactive: z.ZodOptional<z.ZodBoolean>;
25
+ format_options: z.ZodOptional<z.ZodObject<{
26
+ format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
27
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
28
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ format?: "compact" | "standard" | "detailed" | undefined;
31
+ fields?: string[] | undefined;
32
+ omit_empty?: boolean | undefined;
33
+ }, {
34
+ format?: "compact" | "standard" | "detailed" | undefined;
35
+ fields?: string[] | undefined;
36
+ omit_empty?: boolean | undefined;
37
+ }>>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ client_id?: number | undefined;
40
+ status_id?: number | undefined;
41
+ count?: number | undefined;
42
+ page_no?: number | undefined;
43
+ site_id?: number | undefined;
44
+ assettype_id?: number | undefined;
45
+ search?: string | undefined;
46
+ includeactive?: boolean | undefined;
47
+ includeinactive?: boolean | undefined;
48
+ format_options?: {
49
+ format?: "compact" | "standard" | "detailed" | undefined;
50
+ fields?: string[] | undefined;
51
+ omit_empty?: boolean | undefined;
52
+ } | undefined;
53
+ }, {
54
+ client_id?: number | undefined;
55
+ status_id?: number | undefined;
56
+ count?: number | undefined;
57
+ page_no?: number | undefined;
58
+ site_id?: number | undefined;
59
+ assettype_id?: number | undefined;
60
+ search?: string | undefined;
61
+ includeactive?: boolean | undefined;
62
+ includeinactive?: boolean | undefined;
63
+ format_options?: {
64
+ format?: "compact" | "standard" | "detailed" | undefined;
65
+ fields?: string[] | undefined;
66
+ omit_empty?: boolean | undefined;
67
+ } | undefined;
68
+ }>;
69
+ /**
70
+ * Get single asset schema
71
+ */
72
+ export declare const GetAssetArgsSchema: z.ZodObject<{
73
+ asset_id: z.ZodNumber;
74
+ format_options: z.ZodOptional<z.ZodObject<{
75
+ format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
76
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
77
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ format?: "compact" | "standard" | "detailed" | undefined;
80
+ fields?: string[] | undefined;
81
+ omit_empty?: boolean | undefined;
82
+ }, {
83
+ format?: "compact" | "standard" | "detailed" | undefined;
84
+ fields?: string[] | undefined;
85
+ omit_empty?: boolean | undefined;
86
+ }>>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ asset_id: number;
89
+ format_options?: {
90
+ format?: "compact" | "standard" | "detailed" | undefined;
91
+ fields?: string[] | undefined;
92
+ omit_empty?: boolean | undefined;
93
+ } | undefined;
94
+ }, {
95
+ asset_id: number;
96
+ format_options?: {
97
+ format?: "compact" | "standard" | "detailed" | undefined;
98
+ fields?: string[] | undefined;
99
+ omit_empty?: boolean | undefined;
100
+ } | undefined;
101
+ }>;
102
+ /**
103
+ * Search assets by serial number schema
104
+ */
105
+ export declare const SearchAssetsBySerialArgsSchema: z.ZodObject<{
106
+ serial_number: z.ZodString;
107
+ client_id: z.ZodOptional<z.ZodNumber>;
108
+ format_options: z.ZodOptional<z.ZodObject<{
109
+ format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
110
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
111
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ format?: "compact" | "standard" | "detailed" | undefined;
114
+ fields?: string[] | undefined;
115
+ omit_empty?: boolean | undefined;
116
+ }, {
117
+ format?: "compact" | "standard" | "detailed" | undefined;
118
+ fields?: string[] | undefined;
119
+ omit_empty?: boolean | undefined;
120
+ }>>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ serial_number: string;
123
+ client_id?: number | undefined;
124
+ format_options?: {
125
+ format?: "compact" | "standard" | "detailed" | undefined;
126
+ fields?: string[] | undefined;
127
+ omit_empty?: boolean | undefined;
128
+ } | undefined;
129
+ }, {
130
+ serial_number: string;
131
+ client_id?: number | undefined;
132
+ format_options?: {
133
+ format?: "compact" | "standard" | "detailed" | undefined;
134
+ fields?: string[] | undefined;
135
+ omit_empty?: boolean | undefined;
136
+ } | undefined;
137
+ }>;
138
+ /**
139
+ * Search assets by hostname schema
140
+ */
141
+ export declare const SearchAssetsByHostnameArgsSchema: z.ZodObject<{
142
+ hostname: z.ZodString;
143
+ client_id: z.ZodOptional<z.ZodNumber>;
144
+ format_options: z.ZodOptional<z.ZodObject<{
145
+ format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
146
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
147
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ format?: "compact" | "standard" | "detailed" | undefined;
150
+ fields?: string[] | undefined;
151
+ omit_empty?: boolean | undefined;
152
+ }, {
153
+ format?: "compact" | "standard" | "detailed" | undefined;
154
+ fields?: string[] | undefined;
155
+ omit_empty?: boolean | undefined;
156
+ }>>;
157
+ }, "strip", z.ZodTypeAny, {
158
+ hostname: string;
159
+ client_id?: number | undefined;
160
+ format_options?: {
161
+ format?: "compact" | "standard" | "detailed" | undefined;
162
+ fields?: string[] | undefined;
163
+ omit_empty?: boolean | undefined;
164
+ } | undefined;
165
+ }, {
166
+ hostname: string;
167
+ client_id?: number | undefined;
168
+ format_options?: {
169
+ format?: "compact" | "standard" | "detailed" | undefined;
170
+ fields?: string[] | undefined;
171
+ omit_empty?: boolean | undefined;
172
+ } | undefined;
173
+ }>;
174
+ /**
175
+ * Create asset schema
176
+ */
177
+ export declare const CreateAssetArgsSchema: z.ZodObject<{
178
+ client_id: z.ZodNumber;
179
+ site_id: z.ZodOptional<z.ZodNumber>;
180
+ assettype_id: z.ZodNumber;
181
+ inventory_number: z.ZodOptional<z.ZodString>;
182
+ key_field: z.ZodOptional<z.ZodString>;
183
+ key_field2: z.ZodOptional<z.ZodString>;
184
+ status_id: z.ZodOptional<z.ZodNumber>;
185
+ warranty_end: z.ZodOptional<z.ZodString>;
186
+ notes: z.ZodOptional<z.ZodString>;
187
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
188
+ id: z.ZodNumber;
189
+ value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
190
+ }, "strip", z.ZodTypeAny, {
191
+ value: string | number | boolean | null;
192
+ id: number;
193
+ }, {
194
+ value: string | number | boolean | null;
195
+ id: number;
196
+ }>, "many">>;
197
+ }, "strip", z.ZodTypeAny, {
198
+ client_id: number;
199
+ assettype_id: number;
200
+ fields?: {
201
+ value: string | number | boolean | null;
202
+ id: number;
203
+ }[] | undefined;
204
+ status_id?: number | undefined;
205
+ key_field?: string | undefined;
206
+ key_field2?: string | undefined;
207
+ inventory_number?: string | undefined;
208
+ site_id?: number | undefined;
209
+ warranty_end?: string | undefined;
210
+ notes?: string | undefined;
211
+ }, {
212
+ client_id: number;
213
+ assettype_id: number;
214
+ fields?: {
215
+ value: string | number | boolean | null;
216
+ id: number;
217
+ }[] | undefined;
218
+ status_id?: number | undefined;
219
+ key_field?: string | undefined;
220
+ key_field2?: string | undefined;
221
+ inventory_number?: string | undefined;
222
+ site_id?: number | undefined;
223
+ warranty_end?: string | undefined;
224
+ notes?: string | undefined;
225
+ }>;
226
+ /**
227
+ * Update asset schema
228
+ */
229
+ export declare const UpdateAssetArgsSchema: z.ZodObject<{
230
+ asset_id: z.ZodNumber;
231
+ site_id: z.ZodOptional<z.ZodNumber>;
232
+ assettype_id: z.ZodOptional<z.ZodNumber>;
233
+ inventory_number: z.ZodOptional<z.ZodString>;
234
+ key_field: z.ZodOptional<z.ZodString>;
235
+ key_field2: z.ZodOptional<z.ZodString>;
236
+ status_id: z.ZodOptional<z.ZodNumber>;
237
+ warranty_end: z.ZodOptional<z.ZodString>;
238
+ last_seen: z.ZodOptional<z.ZodString>;
239
+ notes: z.ZodOptional<z.ZodString>;
240
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
241
+ id: z.ZodNumber;
242
+ value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
243
+ }, "strip", z.ZodTypeAny, {
244
+ value: string | number | boolean | null;
245
+ id: number;
246
+ }, {
247
+ value: string | number | boolean | null;
248
+ id: number;
249
+ }>, "many">>;
250
+ }, "strip", z.ZodTypeAny, {
251
+ asset_id: number;
252
+ fields?: {
253
+ value: string | number | boolean | null;
254
+ id: number;
255
+ }[] | undefined;
256
+ status_id?: number | undefined;
257
+ key_field?: string | undefined;
258
+ key_field2?: string | undefined;
259
+ inventory_number?: string | undefined;
260
+ site_id?: number | undefined;
261
+ assettype_id?: number | undefined;
262
+ warranty_end?: string | undefined;
263
+ notes?: string | undefined;
264
+ last_seen?: string | undefined;
265
+ }, {
266
+ asset_id: number;
267
+ fields?: {
268
+ value: string | number | boolean | null;
269
+ id: number;
270
+ }[] | undefined;
271
+ status_id?: number | undefined;
272
+ key_field?: string | undefined;
273
+ key_field2?: string | undefined;
274
+ inventory_number?: string | undefined;
275
+ site_id?: number | undefined;
276
+ assettype_id?: number | undefined;
277
+ warranty_end?: string | undefined;
278
+ notes?: string | undefined;
279
+ last_seen?: string | undefined;
280
+ }>;
281
+ /**
282
+ * Delete asset schema
283
+ */
284
+ export declare const DeleteAssetArgsSchema: z.ZodObject<{
285
+ asset_id: z.ZodNumber;
286
+ }, "strip", z.ZodTypeAny, {
287
+ asset_id: number;
288
+ }, {
289
+ asset_id: number;
290
+ }>;
291
+ /**
292
+ * List asset custom fields schema (for inspection)
293
+ */
294
+ export declare const ListAssetCustomFieldsArgsSchema: z.ZodObject<{
295
+ asset_id: z.ZodNumber;
296
+ format_options: z.ZodOptional<z.ZodObject<{
297
+ format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
298
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
299
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ format?: "compact" | "standard" | "detailed" | undefined;
302
+ fields?: string[] | undefined;
303
+ omit_empty?: boolean | undefined;
304
+ }, {
305
+ format?: "compact" | "standard" | "detailed" | undefined;
306
+ fields?: string[] | undefined;
307
+ omit_empty?: boolean | undefined;
308
+ }>>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ asset_id: number;
311
+ format_options?: {
312
+ format?: "compact" | "standard" | "detailed" | undefined;
313
+ fields?: string[] | undefined;
314
+ omit_empty?: boolean | undefined;
315
+ } | undefined;
316
+ }, {
317
+ asset_id: number;
318
+ format_options?: {
319
+ format?: "compact" | "standard" | "detailed" | undefined;
320
+ fields?: string[] | undefined;
321
+ omit_empty?: boolean | undefined;
322
+ } | undefined;
323
+ }>;
324
+ /**
325
+ * Get asset field schema schema
326
+ */
327
+ export declare const GetAssetFieldSchemaArgsSchema: z.ZodObject<{
328
+ client_id: z.ZodOptional<z.ZodNumber>;
329
+ sample_size: z.ZodOptional<z.ZodNumber>;
330
+ format_options: z.ZodOptional<z.ZodObject<{
331
+ format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
332
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
333
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
334
+ }, "strip", z.ZodTypeAny, {
335
+ format?: "compact" | "standard" | "detailed" | undefined;
336
+ fields?: string[] | undefined;
337
+ omit_empty?: boolean | undefined;
338
+ }, {
339
+ format?: "compact" | "standard" | "detailed" | undefined;
340
+ fields?: string[] | undefined;
341
+ omit_empty?: boolean | undefined;
342
+ }>>;
343
+ }, "strip", z.ZodTypeAny, {
344
+ client_id?: number | undefined;
345
+ format_options?: {
346
+ format?: "compact" | "standard" | "detailed" | undefined;
347
+ fields?: string[] | undefined;
348
+ omit_empty?: boolean | undefined;
349
+ } | undefined;
350
+ sample_size?: number | undefined;
351
+ }, {
352
+ client_id?: number | undefined;
353
+ format_options?: {
354
+ format?: "compact" | "standard" | "detailed" | undefined;
355
+ fields?: string[] | undefined;
356
+ omit_empty?: boolean | undefined;
357
+ } | undefined;
358
+ sample_size?: number | undefined;
359
+ }>;
360
+ /**
361
+ * Find asset match schema (deduplication)
362
+ */
363
+ export declare const FindAssetMatchArgsSchema: z.ZodObject<{
364
+ serial_number: z.ZodOptional<z.ZodString>;
365
+ hostname: z.ZodOptional<z.ZodString>;
366
+ client_id: z.ZodNumber;
367
+ }, "strip", z.ZodTypeAny, {
368
+ client_id: number;
369
+ serial_number?: string | undefined;
370
+ hostname?: string | undefined;
371
+ }, {
372
+ client_id: number;
373
+ serial_number?: string | undefined;
374
+ hostname?: string | undefined;
375
+ }>;
376
+ /**
377
+ * Scan asset duplicates schema
378
+ */
379
+ export declare const ScanAssetDuplicatesArgsSchema: z.ZodObject<{
380
+ client_id: z.ZodOptional<z.ZodNumber>;
381
+ scan_field: z.ZodOptional<z.ZodEnum<["serial_number", "hostname", "both"]>>;
382
+ format_options: z.ZodOptional<z.ZodObject<{
383
+ format: z.ZodOptional<z.ZodEnum<["compact", "standard", "detailed"]>>;
384
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
385
+ omit_empty: z.ZodOptional<z.ZodBoolean>;
386
+ }, "strip", z.ZodTypeAny, {
387
+ format?: "compact" | "standard" | "detailed" | undefined;
388
+ fields?: string[] | undefined;
389
+ omit_empty?: boolean | undefined;
390
+ }, {
391
+ format?: "compact" | "standard" | "detailed" | undefined;
392
+ fields?: string[] | undefined;
393
+ omit_empty?: boolean | undefined;
394
+ }>>;
395
+ }, "strip", z.ZodTypeAny, {
396
+ client_id?: number | undefined;
397
+ format_options?: {
398
+ format?: "compact" | "standard" | "detailed" | undefined;
399
+ fields?: string[] | undefined;
400
+ omit_empty?: boolean | undefined;
401
+ } | undefined;
402
+ scan_field?: "serial_number" | "hostname" | "both" | undefined;
403
+ }, {
404
+ client_id?: number | undefined;
405
+ format_options?: {
406
+ format?: "compact" | "standard" | "detailed" | undefined;
407
+ fields?: string[] | undefined;
408
+ omit_empty?: boolean | undefined;
409
+ } | undefined;
410
+ scan_field?: "serial_number" | "hostname" | "both" | undefined;
411
+ }>;
412
+ /**
413
+ * List assets with optional filtering and token optimization
414
+ * Uses 1-minute cache TTL (billing-critical data)
415
+ */
416
+ export declare function listAssets(client: HaloPSAAPIClient, args: z.infer<typeof ListAssetsArgsSchema>): Promise<string>;
417
+ /**
418
+ * Get a single asset by ID with full details including custom fields
419
+ */
420
+ export declare function getAsset(client: HaloPSAAPIClient, args: z.infer<typeof GetAssetArgsSchema>): Promise<string>;
421
+ /**
422
+ * Search assets by serial number
423
+ * Returns warning if multiple found (potential duplicates)
424
+ */
425
+ export declare function searchAssetsBySerial(client: HaloPSAAPIClient, args: z.infer<typeof SearchAssetsBySerialArgsSchema>): Promise<string>;
426
+ /**
427
+ * Search assets by hostname
428
+ * Returns warning if multiple found (potential duplicates)
429
+ */
430
+ export declare function searchAssetsByHostname(client: HaloPSAAPIClient, args: z.infer<typeof SearchAssetsByHostnameArgsSchema>): Promise<string>;
431
+ /**
432
+ * Create a new asset
433
+ * Invalidates asset cache on success
434
+ */
435
+ export declare function createAsset(client: HaloPSAAPIClient, args: z.infer<typeof CreateAssetArgsSchema>): Promise<string>;
436
+ /**
437
+ * Update an existing asset
438
+ * Invalidates asset cache on success
439
+ */
440
+ export declare function updateAsset(client: HaloPSAAPIClient, args: z.infer<typeof UpdateAssetArgsSchema>): Promise<string>;
441
+ /**
442
+ * Delete an asset (soft delete - sets status to Deleted)
443
+ * Invalidates asset cache on success
444
+ */
445
+ export declare function deleteAsset(client: HaloPSAAPIClient, args: z.infer<typeof DeleteAssetArgsSchema>): Promise<string>;
446
+ /**
447
+ * List custom fields for a specific asset
448
+ * Useful for inspecting custom field structure before updates
449
+ */
450
+ export declare function listAssetCustomFields(client: HaloPSAAPIClient, args: z.infer<typeof ListAssetCustomFieldsArgsSchema>): Promise<string>;
451
+ /**
452
+ * Analyze custom field schema across multiple assets
453
+ * Returns field definitions with sample values and value types
454
+ */
455
+ export declare function getAssetFieldSchema(client: HaloPSAAPIClient, args: z.infer<typeof GetAssetFieldSchemaArgsSchema>): Promise<string>;
456
+ /**
457
+ * Find matching asset using deduplication algorithm
458
+ * Returns confidence scoring and action recommendation
459
+ *
460
+ * Confidence Thresholds:
461
+ * - 100%: Exact serial match -> Auto-update
462
+ * - 85%: Hostname match only -> Manual review
463
+ * - 0%: No match -> Create new
464
+ */
465
+ export declare function findAssetMatch(client: HaloPSAAPIClient, args: z.infer<typeof FindAssetMatchArgsSchema>): Promise<string>;
466
+ /**
467
+ * Scan for duplicate assets
468
+ * Returns groups of duplicate entities with confidence scores
469
+ */
470
+ export declare function scanAssetDuplicates(client: HaloPSAAPIClient, args: z.infer<typeof ScanAssetDuplicatesArgsSchema>): Promise<string>;
471
+ export declare const listAssetsTool: ZodToolDefinition;
472
+ export declare const getAssetTool: ZodToolDefinition;
473
+ export declare const searchAssetsBySerialTool: ZodToolDefinition;
474
+ export declare const searchAssetsByHostnameTool: ZodToolDefinition;
475
+ export declare const createAssetTool: ZodToolDefinition;
476
+ export declare const updateAssetTool: ZodToolDefinition;
477
+ export declare const deleteAssetTool: ZodToolDefinition;
478
+ export declare const listAssetCustomFieldsTool: ZodToolDefinition;
479
+ export declare const getAssetFieldSchemaTool: ZodToolDefinition;
480
+ export declare const findAssetMatchTool: ZodToolDefinition;
481
+ export declare const scanAssetDuplicatesTool: ZodToolDefinition;
482
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"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"}