@cdot65/prisma-airs-cli 3.3.0 → 4.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.
package/dist/index.d.ts CHANGED
@@ -523,6 +523,14 @@ interface RedTeamService {
523
523
  jobType?: string;
524
524
  targetId?: string;
525
525
  limit?: number;
526
+ offset?: number;
527
+ }): Promise<RedTeamJob[]>;
528
+ listAllScans(opts?: {
529
+ status?: string;
530
+ jobType?: string;
531
+ targetId?: string;
532
+ limit?: number;
533
+ max?: number;
526
534
  }): Promise<RedTeamJob[]>;
527
535
  /** Abort a running scan. */
528
536
  abortScan(jobId: string): Promise<void>;
@@ -553,6 +561,9 @@ interface RedTeamService {
553
561
  channels: RedTeamChannel[];
554
562
  totalItems?: number;
555
563
  }>;
564
+ listAllChannels(opts?: RedTeamChannelListOptions & {
565
+ max?: number;
566
+ }): Promise<RedTeamChannel[]>;
556
567
  /** Get a network broker channel by ID. */
557
568
  getChannel(channelId: string): Promise<RedTeamChannel>;
558
569
  /** Create a network broker channel. */
@@ -576,6 +587,9 @@ interface RedTeamService {
576
587
  adapters: RedTeamAdapterListItem[];
577
588
  totalItems?: number;
578
589
  }>;
590
+ listAllAdapters(opts?: RedTeamAdapterListOptions & {
591
+ max?: number;
592
+ }): Promise<RedTeamAdapterListItem[]>;
579
593
  getAdapter(uuid: string): Promise<RedTeamAdapterDetail>;
580
594
  createAdapter(request: RedTeamAdapterCreateRequest, validate?: boolean): Promise<RedTeamAdapterDetail>;
581
595
  /** Read-modify-write: merges overrides onto the current record (upstream PUT is full-replacement). */
@@ -813,6 +827,9 @@ interface ModelSecurityService {
813
827
  totalItems: number;
814
828
  groups: ModelSecurityGroup[];
815
829
  }>;
830
+ listAllGroups(opts?: ModelSecurityGroupListOptions & {
831
+ max?: number;
832
+ }): Promise<ModelSecurityGroup[]>;
816
833
  getGroup(uuid: string): Promise<ModelSecurityGroup>;
817
834
  createGroup(request: ModelSecurityGroupCreateRequest): Promise<ModelSecurityGroup>;
818
835
  updateGroup(uuid: string, request: ModelSecurityGroupUpdateRequest): Promise<ModelSecurityGroup>;
@@ -827,12 +844,18 @@ interface ModelSecurityService {
827
844
  totalItems: number;
828
845
  rules: ModelSecurityRule[];
829
846
  }>;
847
+ listAllRules(opts?: ModelSecurityRuleListOptions & {
848
+ max?: number;
849
+ }): Promise<ModelSecurityRule[]>;
830
850
  getRule(uuid: string): Promise<ModelSecurityRule>;
831
851
  createScan(request: Record<string, unknown>): Promise<ModelSecurityScan>;
832
852
  listScans(opts?: ModelSecurityScanListOptions): Promise<{
833
853
  totalItems: number;
834
854
  scans: ModelSecurityScan[];
835
855
  }>;
856
+ listAllScans(opts?: ModelSecurityScanListOptions & {
857
+ max?: number;
858
+ }): Promise<ModelSecurityScan[]>;
836
859
  getScan(uuid: string): Promise<ModelSecurityScan>;
837
860
  getEvaluations(scanUuid: string, opts?: {
838
861
  skip?: number;
@@ -876,6 +899,9 @@ interface ModelSecurityService {
876
899
  totalItems: number;
877
900
  models: ModelSecurityModel[];
878
901
  }>;
902
+ listAllModels(opts?: ModelSecurityModelListOptions & {
903
+ max?: number;
904
+ }): Promise<ModelSecurityModel[]>;
879
905
  getModel(uuid: string): Promise<ModelSecurityModel>;
880
906
  listModelVersions(modelUuid: string, opts?: ModelSecurityModelVersionListOptions): Promise<{
881
907
  totalItems: number;
@@ -914,6 +940,7 @@ interface DeleteResponse {
914
940
  interface PaginationOptions {
915
941
  offset?: number;
916
942
  limit?: number;
943
+ latest?: boolean;
917
944
  }
918
945
  /** Normalized API key. */
919
946
  interface ApiKeyInfo {
@@ -1033,6 +1060,8 @@ interface ManagementService {
1033
1060
  forceDeleteTopic(topicId: string, updatedBy?: string): Promise<DeleteResponse>;
1034
1061
  /** List all custom topics. */
1035
1062
  listTopics(): Promise<CustomTopic$1[]>;
1063
+ /** List latest topic revisions with client-side grouping in the SDK. */
1064
+ listLatestTopics(opts?: PaginationOptions): Promise<CustomTopic$1[]>;
1036
1065
  /** Get a single custom topic by ID. */
1037
1066
  getTopic(topicId: string): Promise<CustomTopic$1>;
1038
1067
  /** Get a single custom topic by name. */
@@ -1053,6 +1082,10 @@ interface ManagementService {
1053
1082
  getProfileByName(profileName: string): Promise<SecurityProfileInfo>;
1054
1083
  /** List security profiles. */
1055
1084
  listProfiles(opts?: PaginationOptions): Promise<SecurityProfileListResult>;
1085
+ /** Walk all security-profile pages. */
1086
+ listAllProfiles(opts?: Omit<PaginationOptions, 'offset'> & {
1087
+ max?: number;
1088
+ }): Promise<SecurityProfileInfo[]>;
1056
1089
  /** Create a security profile. */
1057
1090
  createProfile(request: CreateSecurityProfileRequest): Promise<SecurityProfileInfo>;
1058
1091
  /** Update a security profile. */
@@ -1062,10 +1095,18 @@ interface ManagementService {
1062
1095
  /** Force-delete a security profile (removes from referencing policies). */
1063
1096
  forceDeleteProfile(profileId: string, updatedBy: string): Promise<DeleteResponse>;
1064
1097
  listApiKeys(opts?: PaginationOptions): Promise<ApiKeyListResult>;
1098
+ listAllApiKeys(opts?: {
1099
+ limit?: number;
1100
+ max?: number;
1101
+ }): Promise<ApiKeyInfo[]>;
1065
1102
  createApiKey(request: Record<string, unknown>): Promise<ApiKeyInfo>;
1066
1103
  regenerateApiKey(apiKeyId: string, request: Record<string, unknown>): Promise<ApiKeyInfo>;
1067
1104
  deleteApiKey(apiKeyName: string, updatedBy: string): Promise<DeleteResponse>;
1068
1105
  listCustomerApps(opts?: PaginationOptions): Promise<CustomerAppListResult>;
1106
+ listAllCustomerApps(opts?: {
1107
+ limit?: number;
1108
+ max?: number;
1109
+ }): Promise<CustomerAppInfo[]>;
1069
1110
  getCustomerApp(appName: string): Promise<CustomerAppInfo>;
1070
1111
  updateCustomerApp(appId: string, request: Record<string, unknown>): Promise<CustomerAppInfo>;
1071
1112
  deleteCustomerApp(appName: string, updatedBy: string): Promise<CustomerAppInfo>;
@@ -1178,6 +1219,7 @@ declare class SdkManagementService implements ManagementService {
1178
1219
  deleteTopic(topicId: string): Promise<void>;
1179
1220
  forceDeleteTopic(topicId: string, updatedBy?: string): Promise<DeleteResponse>;
1180
1221
  listTopics(): Promise<CustomTopic$1[]>;
1222
+ listLatestTopics(opts?: PaginationOptions): Promise<CustomTopic$1[]>;
1181
1223
  getTopic(topicId: string): Promise<CustomTopic$1>;
1182
1224
  getTopicByName(topicName: string): Promise<CustomTopic$1>;
1183
1225
  /**
@@ -1204,17 +1246,28 @@ declare class SdkManagementService implements ManagementService {
1204
1246
  getProfile(profileId: string): Promise<SecurityProfileInfo>;
1205
1247
  getProfileByName(profileName: string): Promise<SecurityProfileInfo>;
1206
1248
  listProfiles(opts?: PaginationOptions): Promise<SecurityProfileListResult>;
1249
+ listAllProfiles(opts?: Omit<PaginationOptions, 'offset'> & {
1250
+ max?: number;
1251
+ }): Promise<SecurityProfileInfo[]>;
1207
1252
  createProfile(request: CreateSecurityProfileRequest): Promise<SecurityProfileInfo>;
1208
1253
  updateProfile(profileId: string, request: CreateSecurityProfileRequest): Promise<SecurityProfileInfo>;
1209
1254
  deleteProfile(profileId: string): Promise<DeleteResponse>;
1210
1255
  forceDeleteProfile(profileId: string, updatedBy: string): Promise<DeleteResponse>;
1211
1256
  private normalizeApiKey;
1212
1257
  listApiKeys(opts?: PaginationOptions): Promise<ApiKeyListResult>;
1258
+ listAllApiKeys(opts?: {
1259
+ limit?: number;
1260
+ max?: number;
1261
+ }): Promise<ApiKeyInfo[]>;
1213
1262
  createApiKey(request: Record<string, unknown>): Promise<ApiKeyInfo>;
1214
1263
  regenerateApiKey(apiKeyId: string, request: Record<string, unknown>): Promise<ApiKeyInfo>;
1215
1264
  deleteApiKey(apiKeyName: string, updatedBy: string): Promise<DeleteResponse>;
1216
1265
  private normalizeCustomerApp;
1217
1266
  listCustomerApps(opts?: PaginationOptions): Promise<CustomerAppListResult>;
1267
+ listAllCustomerApps(opts?: {
1268
+ limit?: number;
1269
+ max?: number;
1270
+ }): Promise<CustomerAppInfo[]>;
1218
1271
  getCustomerApp(appName: string): Promise<CustomerAppInfo>;
1219
1272
  updateCustomerApp(appId: string, request: Record<string, unknown>): Promise<CustomerAppInfo>;
1220
1273
  deleteCustomerApp(appName: string, updatedBy: string): Promise<CustomerAppInfo>;
@@ -1240,6 +1293,9 @@ declare class SdkModelSecurityService implements ModelSecurityService {
1240
1293
  totalItems: number;
1241
1294
  groups: ModelSecurityGroup[];
1242
1295
  }>;
1296
+ listAllGroups(opts?: ModelSecurityGroupListOptions & {
1297
+ max?: number;
1298
+ }): Promise<ModelSecurityGroup[]>;
1243
1299
  getGroup(uuid: string): Promise<ModelSecurityGroup>;
1244
1300
  createGroup(request: ModelSecurityGroupCreateRequest): Promise<ModelSecurityGroup>;
1245
1301
  updateGroup(uuid: string, request: ModelSecurityGroupUpdateRequest): Promise<ModelSecurityGroup>;
@@ -1266,12 +1322,18 @@ declare class SdkModelSecurityService implements ModelSecurityService {
1266
1322
  totalItems: number;
1267
1323
  rules: ModelSecurityRule[];
1268
1324
  }>;
1325
+ listAllRules(opts?: ModelSecurityRuleListOptions & {
1326
+ max?: number;
1327
+ }): Promise<ModelSecurityRule[]>;
1269
1328
  getRule(uuid: string): Promise<ModelSecurityRule>;
1270
1329
  createScan(request: Record<string, unknown>): Promise<ModelSecurityScan>;
1271
1330
  listScans(opts?: ModelSecurityScanListOptions): Promise<{
1272
1331
  totalItems: number;
1273
1332
  scans: ModelSecurityScan[];
1274
1333
  }>;
1334
+ listAllScans(opts?: ModelSecurityScanListOptions & {
1335
+ max?: number;
1336
+ }): Promise<ModelSecurityScan[]>;
1275
1337
  getScan(uuid: string): Promise<ModelSecurityScan>;
1276
1338
  getEvaluations(scanUuid: string, opts?: {
1277
1339
  skip?: number;
@@ -1315,6 +1377,9 @@ declare class SdkModelSecurityService implements ModelSecurityService {
1315
1377
  totalItems: number;
1316
1378
  models: ModelSecurityModel[];
1317
1379
  }>;
1380
+ listAllModels(opts?: ModelSecurityModelListOptions & {
1381
+ max?: number;
1382
+ }): Promise<ModelSecurityModel[]>;
1318
1383
  getModel(uuid: string): Promise<ModelSecurityModel>;
1319
1384
  listModelVersions(modelUuid: string, opts?: ModelSecurityModelVersionListOptions): Promise<{
1320
1385
  totalItems: number;
@@ -1430,6 +1495,14 @@ declare class SdkRedTeamService implements RedTeamService {
1430
1495
  jobType?: string;
1431
1496
  targetId?: string;
1432
1497
  limit?: number;
1498
+ offset?: number;
1499
+ }): Promise<RedTeamJob[]>;
1500
+ listAllScans(opts?: {
1501
+ status?: string;
1502
+ jobType?: string;
1503
+ targetId?: string;
1504
+ limit?: number;
1505
+ max?: number;
1433
1506
  }): Promise<RedTeamJob[]>;
1434
1507
  abortScan(jobId: string): Promise<void>;
1435
1508
  getStaticReport(jobId: string): Promise<RedTeamStaticReport>;
@@ -1451,6 +1524,9 @@ declare class SdkRedTeamService implements RedTeamService {
1451
1524
  channels: RedTeamChannel[];
1452
1525
  totalItems?: number;
1453
1526
  }>;
1527
+ listAllChannels(opts?: RedTeamChannelListOptions & {
1528
+ max?: number;
1529
+ }): Promise<RedTeamChannel[]>;
1454
1530
  getChannel(channelId: string): Promise<RedTeamChannel>;
1455
1531
  createChannel(request: RedTeamChannelCreateRequest): Promise<RedTeamChannel>;
1456
1532
  updateChannel(channelId: string, request: RedTeamChannelUpdateRequest): Promise<RedTeamChannel>;
@@ -1468,6 +1544,9 @@ declare class SdkRedTeamService implements RedTeamService {
1468
1544
  adapters: RedTeamAdapterListItem[];
1469
1545
  totalItems?: number;
1470
1546
  }>;
1547
+ listAllAdapters(opts?: RedTeamAdapterListOptions & {
1548
+ max?: number;
1549
+ }): Promise<RedTeamAdapterListItem[]>;
1471
1550
  getAdapter(uuid: string): Promise<RedTeamAdapterDetail>;
1472
1551
  createAdapter(request: RedTeamAdapterCreateRequest, validate?: boolean): Promise<RedTeamAdapterDetail>;
1473
1552
  updateAdapter(uuid: string, overrides: RedTeamAdapterUpdateOverrides, validate?: boolean): Promise<RedTeamAdapterDetail>;
@@ -1579,6 +1658,7 @@ declare const ConfigSchema: z.ZodObject<{
1579
1658
  aiGwAdminEndpoint: z.ZodOptional<z.ZodString>;
1580
1659
  aiGwTokenEndpoint: z.ZodOptional<z.ZodString>;
1581
1660
  scanConcurrency: z.ZodDefault<z.ZodNumber>;
1661
+ defaultOutput: z.ZodOptional<z.ZodEnum<["pretty", "table", "markdown", "csv", "json", "yaml"]>>;
1582
1662
  dataDir: z.ZodDefault<z.ZodString>;
1583
1663
  }, "strip", z.ZodTypeAny, {
1584
1664
  scanConcurrency: number;
@@ -1603,6 +1683,7 @@ declare const ConfigSchema: z.ZodObject<{
1603
1683
  aiGwDataEndpoint?: string | undefined;
1604
1684
  aiGwAdminEndpoint?: string | undefined;
1605
1685
  aiGwTokenEndpoint?: string | undefined;
1686
+ defaultOutput?: "json" | "yaml" | "pretty" | "table" | "markdown" | "csv" | undefined;
1606
1687
  }, {
1607
1688
  airsApiKey?: string | undefined;
1608
1689
  airsApiToken?: string | undefined;
@@ -1625,6 +1706,7 @@ declare const ConfigSchema: z.ZodObject<{
1625
1706
  aiGwAdminEndpoint?: string | undefined;
1626
1707
  aiGwTokenEndpoint?: string | undefined;
1627
1708
  scanConcurrency?: number | undefined;
1709
+ defaultOutput?: "json" | "yaml" | "pretty" | "table" | "markdown" | "csv" | undefined;
1628
1710
  dataDir?: string | undefined;
1629
1711
  }>;
1630
1712
  type Config = z.infer<typeof ConfigSchema>;
@@ -1748,4 +1830,4 @@ declare function computeMetrics(results: TestResult[]): EfficacyMetrics;
1748
1830
  /** Compute per-category error breakdown from test results. Sorted by error rate descending. */
1749
1831
  declare function computeCategoryBreakdown(results: TestResult[]): CategoryBreakdown[];
1750
1832
 
1751
- export { AirsScanService, type AnalysisReport, type BackupEnvelope, type BackupFormat, type BackupResult, type BatchEntry, type BulkScanAction, type BulkScanResult, type CategoryBreakdown, type CustomTopic, type EfficacyMetrics, type IndexedPrompt, type IterationResult, type ModelSecurityEvaluation, type ModelSecurityFile, type ModelSecurityFileListOptions, type ModelSecurityGroup, type ModelSecurityGroupCreateRequest, type ModelSecurityGroupListOptions, type ModelSecurityGroupUpdateRequest, type ModelSecurityLabel, type ModelSecurityPyPIAuth, type ModelSecurityRule, type ModelSecurityRuleEditableField, type ModelSecurityRuleInstance, type ModelSecurityRuleInstanceListOptions, type ModelSecurityRuleInstanceUpdateRequest, type ModelSecurityRuleListOptions, type ModelSecurityScan, type ModelSecurityScanListOptions, type ModelSecurityService, type ModelSecurityViolation, type MutationResponse, type PollRetryOptions, type ProfileTopic, type PromptDetail, type PromptSetDetail, type PromptSetService, type PromptSetVersionInfo, type PropertyValueList, type RedTeamAttack, type RedTeamCategory, type RedTeamCustomAttack, type RedTeamCustomReport, type RedTeamJob, type RedTeamService, type RedTeamStaticReport, type RedTeamTarget, type RedTeamTargetCreateRequest, type RedTeamTargetDetail, type RedTeamTargetUpdateRequest, type ReliableRuntimeService, type ResourceType, type RestoreResult, type RunState, type RuntimeScanResult, type RuntimeService, SDK_ASYNC_BATCH_SIZE, SdkManagementService, SdkModelSecurityService, SdkPromptSetService, SdkRedTeamService, SdkRuntimeService, type SubmittedBatch, type TargetOperationOptions, type TestCase, type TestResult, type UserInput, type ValidationError, computeCategoryBreakdown, computeMetrics, loadConfig, readBackupDir, readBackupFile, resolveOutputDir, sanitizeFilename, validateDescription, validateExamples, validateName, validateTopic, writeBackupFile };
1833
+ export { AirsScanService, type AnalysisReport, type ApiKeyInfo, type ApiKeyListResult, type BackupEnvelope, type BackupFormat, type BackupResult, type BatchEntry, type BulkScanAction, type BulkScanResult, type CategoryBreakdown, type ConsumptionAppListEntry, type ConsumptionQueryOptions, type ConsumptionTimeInterval, type CustomTopic, type CustomerAppConsumption, type CustomerAppInfo, type CustomerAppListResult, type DeleteResponse, type DeploymentProfileInfo, type EfficacyMetrics, type EulaContent, type EulaStatus, type IndexedPrompt, type InstanceDetail, type InstanceRequest, type InstanceResponse, type IterationResult, type ManagementService, type ModelSecurityEvaluation, type ModelSecurityFile, type ModelSecurityFileListOptions, type ModelSecurityGroup, type ModelSecurityGroupCreateRequest, type ModelSecurityGroupListOptions, type ModelSecurityGroupUpdateRequest, type ModelSecurityLabel, type ModelSecurityModel, type ModelSecurityModelListOptions, type ModelSecurityModelVersion, type ModelSecurityModelVersionListOptions, type ModelSecurityPyPIAuth, type ModelSecurityRule, type ModelSecurityRuleEditableField, type ModelSecurityRuleInstance, type ModelSecurityRuleInstanceListOptions, type ModelSecurityRuleInstanceUpdateRequest, type ModelSecurityRuleListOptions, type ModelSecurityScan, type ModelSecurityScanListOptions, type ModelSecurityService, type ModelSecurityViolation, type MutationResponse, type PaginationOptions, type PollRetryOptions, type ProfileTopic, type PromptDetail, type PromptSetDetail, type PromptSetService, type PromptSetVersionInfo, type PropertyValueList, type RedTeamAdapterCreateRequest, type RedTeamAdapterDetail, type RedTeamAdapterListItem, type RedTeamAdapterListOptions, type RedTeamAdapterUpdateOverrides, type RedTeamAdapterValidateRequest, type RedTeamAdapterValidationResult, type RedTeamAdapterVar, type RedTeamAttack, type RedTeamCategory, type RedTeamChannel, type RedTeamChannelCreateRequest, type RedTeamChannelListOptions, type RedTeamChannelStats, type RedTeamChannelUpdateRequest, type RedTeamCustomAttack, type RedTeamCustomReport, type RedTeamDynamicReport, type RedTeamErrorLog, type RedTeamJob, type RedTeamLanguages, type RedTeamService, type RedTeamStaticReport, type RedTeamTarget, type RedTeamTargetCreateRequest, type RedTeamTargetDetail, type RedTeamTargetUpdateRequest, type RegistryCredentials, type ReliableRuntimeService, type ResourceType, type RestoreResult, type RunState, type RuntimeScanResult, type RuntimeService, SDK_ASYNC_BATCH_SIZE, type ScanLogQueryOptions, type ScanLogQueryResult, type ScanResult, type ScanService, SdkManagementService, SdkModelSecurityService, SdkPromptSetService, SdkRedTeamService, SdkRuntimeService, type SecurityProfileInfo, type SecurityProfileListResult, type SubmittedBatch, type TargetAuthValidationRequest, type TargetAuthValidationResult, type TargetOperationOptions, type TestCase, type TestResult, type UserInput, type ValidationError, computeCategoryBreakdown, computeMetrics, loadConfig, readBackupDir, readBackupFile, resolveOutputDir, sanitizeFilename, validateDescription, validateExamples, validateName, validateTopic, writeBackupFile };
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import {
18
18
  validateName,
19
19
  validateTopic,
20
20
  writeBackupFile
21
- } from "./chunk-2VIUZRPB.js";
21
+ } from "./chunk-W5YDJS7H.js";
22
22
  export {
23
23
  AirsScanService,
24
24
  SDK_ASYNC_BATCH_SIZE,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cdot65/prisma-airs-cli",
3
3
  "packageManager": "pnpm@10.6.5",
4
- "version": "3.3.0",
4
+ "version": "4.0.0",
5
5
  "description": "CLI and library for Palo Alto Prisma AIRS — guardrail refinement, AI red teaming, model security scanning, profile audits",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
@@ -29,11 +29,23 @@
29
29
  "docker:build:arm64": "docker buildx build -f docker/Dockerfile --platform linux/arm64 --load -t prisma-airs-cli:local-arm64 .",
30
30
  "docker:run": "docker run --rm -v ~/.prisma-airs:/root/.prisma-airs prisma-airs-cli:local",
31
31
  "docker:push:arm64": "./docker/docker-push-arm64.sh",
32
+ "container:dev": "container run --rm -it -v \"$PWD\":/work -w /work node:20-alpine sh",
32
33
  "docs:api": "typedoc",
33
34
  "docs:install": "pnpm -C docs-site install",
34
35
  "docs:build": "pnpm docs:api && pnpm -C docs-site build",
35
36
  "docs:serve": "pnpm docs:api && pnpm -C docs-site start",
36
- "build:tsc": "tsc"
37
+ "build:tsc": "tsc",
38
+ "local:setup": "pnpm install && pnpm run build",
39
+ "local:built:version": "node dist/cli/index.js --version",
40
+ "local:built:help": "node dist/cli/index.js --help",
41
+ "local:smoke": "pnpm run build && pnpm local:built:version && pnpm local:built:help",
42
+ "local:dev:help": "tsx src/cli/index.ts --help",
43
+ "local:dev:profiles": "tsx src/cli/index.ts runtime profiles list --output json",
44
+ "local:dev:topics": "tsx src/cli/index.ts runtime topics list --all --output yaml",
45
+ "local:dev:doctor": "tsx src/cli/index.ts doctor --output markdown",
46
+ "local:link": "pnpm run build && pnpm link --global",
47
+ "local:link:check": "airs --version",
48
+ "local:unlink": "pnpm uninstall --global @cdot65/prisma-airs-cli"
37
49
  },
38
50
  "engines": {
39
51
  "node": ">=20.0.0"
@@ -44,7 +56,7 @@
44
56
  },
45
57
  "license": "MIT",
46
58
  "dependencies": {
47
- "@cdot65/prisma-airs-sdk": "^0.17.0",
59
+ "@cdot65/prisma-airs-sdk": "^0.18.0",
48
60
  "@inquirer/prompts": "^8.3.0",
49
61
  "chalk": "^5.6.2",
50
62
  "commander": "^14.0.3",