@knowttl/artium-axi 0.0.17 → 0.0.19

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/README.md CHANGED
@@ -155,6 +155,7 @@ Use `--host codex`, `--host opencode` or `--host pi` without `--hook` for those
155
155
  Only Claude Code supports the optional `SessionStart` hook, which injects the `tools` discovery output.
156
156
  Setup preserves unrelated settings and refuses edited/unmanaged skills unless `--force` is explicit.
157
157
  Re-run setup after moving the executable or changing grants; skills for removed grants are retained and reported.
158
+ On Windows, installed skills include labelled PowerShell and Git Bash invocations; use the command for your shell.
158
159
  See [installation paths and manual removal](docs/client-reference.md#agent-installation) before uninstalling.
159
160
  Artium's authenticated setup fetches managed skills; a standalone skill installer does not configure this server account.
160
161
 
@@ -20748,7 +20748,7 @@ import { resolve } from "node:path";
20748
20748
  // package.json
20749
20749
  var package_default = {
20750
20750
  name: "artium-axi",
20751
- version: "0.0.17",
20751
+ version: "0.0.19",
20752
20752
  private: true,
20753
20753
  license: "MIT",
20754
20754
  type: "module",
@@ -21236,13 +21236,13 @@ var falcon_axi_default = {
21236
21236
  generatedBy: "scripts/falcon-inventory.mjs",
21237
21237
  tool: "falcon-axi",
21238
21238
  repository: "https://github.com/knowttl/falcon-axi.git",
21239
- tag: "v0.7.2",
21240
- commit: "96392a6b2afeb86d5422e3ff55e5a3d5e8af769f",
21241
- version: "0.7.2",
21239
+ tag: "v0.7.4",
21240
+ commit: "bca4a08c71beb415e3fabb37443aea8ad61bc08c",
21241
+ version: "0.7.4",
21242
21242
  distribution: {
21243
- filename: "falcon_axi-0.7.2-py3-none-any.whl",
21244
- sha256: "8b87c8047f782a6d390324a26179def0f77e6c7c5bf4212012d5802a249132b6",
21245
- provenance: "https://pypi.org/integrity/falcon-axi/0.7.2/falcon_axi-0.7.2-py3-none-any.whl/provenance"
21243
+ filename: "falcon_axi-0.7.4-py3-none-any.whl",
21244
+ sha256: "bce4cfb033fd6537eb8a518fe3286799884f6b7a5ef95faffc347ac6c336d28e",
21245
+ provenance: "https://pypi.org/integrity/falcon-axi/0.7.4/falcon_axi-0.7.4-py3-none-any.whl/provenance"
21246
21246
  },
21247
21247
  parser: {
21248
21248
  path: "falcon_axi/cli.py",
@@ -21521,7 +21521,9 @@ var falcon_axi_default = {
21521
21521
  profile: "value",
21522
21522
  filter: "value",
21523
21523
  limit: "value",
21524
- cursor: "value"
21524
+ cursor: "value",
21525
+ fields: "value",
21526
+ full: "boolean"
21525
21527
  },
21526
21528
  input: "No file or raw URL input; cursors and queries remain native values"
21527
21529
  },
@@ -25025,10 +25027,10 @@ var vectra_axi_default = {
25025
25027
  var az_axi_default = {
25026
25028
  generatedBy: "scripts/upstream-inventory.mjs",
25027
25029
  tool: "az-axi",
25028
- version: "0.1.11",
25029
- integrity: "sha512-XiCwLaSh6A6xb9sk7RQ7T3FvkYpkWFIoGUCi7HxYlHF4kssVpF5gun4V7Taw9eKcm0HEWftnLci9l4EBSaFj0w==",
25030
+ version: "0.1.12",
25031
+ integrity: "sha512-xPhoFLQ8XWjWqLR2e80apWA1pkCqQcFZ5r5V7XW+uj0zXKaO9RHfjG7gsxkrMa44jWqWLiU8ssZxWZPl6uj8KQ==",
25030
25032
  parserEvidence: "Installed pinned catalogue exports, provisional until adapter acceptance",
25031
- packageManifestSha256: "8bdf756d4f0b3d006543471320eb14d83f258122752bd1e07c76a2a74868691c",
25033
+ packageManifestSha256: "2d829dc31fd552a154b439ad40c39ff8fd53b35527d8134a0dd18f4ffab09334",
25032
25034
  environment: [
25033
25035
  {
25034
25036
  name: "AZ_AXI_CONFIG",
@@ -25287,7 +25289,7 @@ var az_axi_default = {
25287
25289
  tokenResourceSources: [
25288
25290
  {
25289
25291
  path: "dist/lib/registry.js",
25290
- sha256: "1b0354317f721989465190b4a276fce811d559bcbbd9871129b02dd366a5beb5"
25292
+ sha256: "67a29a57b906ee0a17dc0bf917123308ee2d160ef43106f5d15bf73f8cb874d3"
25291
25293
  },
25292
25294
  {
25293
25295
  path: "dist/lib/client.js",
@@ -25315,11 +25317,11 @@ var az_axi_default = {
25315
25317
  },
25316
25318
  {
25317
25319
  path: "dist/commands/logs.js",
25318
- sha256: "07fc272e2947f12f8c03b9f818ec98fe2fb35beee43f544dcd0d0db15f37574b"
25320
+ sha256: "f3c0112c4be7a8996163d323bd9945950ab1a212eae2cc42af044388adc77199"
25319
25321
  },
25320
25322
  {
25321
25323
  path: "dist/commands/doctor.js",
25322
- sha256: "3c5e9c56bf0371a3654c04c296291c8d8a95dc05f9c5679b5544e0b2c3a5c475"
25324
+ sha256: "02f26a4af30ed142b4187394c356e2204ad80f03fee52f65c2daf5c312150b06"
25323
25325
  },
25324
25326
  {
25325
25327
  path: "dist/commands/api.js",
@@ -40052,13 +40054,13 @@ var awx_axi_default = {
40052
40054
  var tenable_axi_default = {
40053
40055
  generatedBy: "scripts/tenable-inventory.mjs",
40054
40056
  tool: "tenable-axi",
40055
- version: "0.1.2",
40056
- integrity: "sha512-csjV0urIUbZZlkA9VQpEGbsOWOnLgZTFMi0yRQD3uGlmlyPIxA6gKyvMzifSqcRvfyOaBEv7U5OjcWL1rs5NAw==",
40057
+ version: "0.1.3",
40058
+ integrity: "sha512-1Ji117XJv7tssAgqq0vQyQP6m3llQdqOoM6TG7tmMrma9iH9tqq+eESkXGnmHqUuJFjlS8TyyctViWk+zpTTjA==",
40057
40059
  parserEvidence: "Published command catalogue, mutation registry and reviewed native parsers and transport gates",
40058
40060
  sources: [
40059
40061
  {
40060
40062
  path: "dist/src/attack-catalogue.js",
40061
- sha256: "022f9d46c0e0a76b62ed528b17552fccae9634208698e541146f8af2f6107316"
40063
+ sha256: "8e691131c15c0a25703a2f3c53f9e6f081b13d83e41b132df47f0196b9f3a192"
40062
40064
  },
40063
40065
  {
40064
40066
  path: "dist/src/attack-export-catalogue.js",
@@ -40070,11 +40072,11 @@ var tenable_axi_default = {
40070
40072
  },
40071
40073
  {
40072
40074
  path: "dist/src/attack.js",
40073
- sha256: "76905fe54d1038ffbaa6b4a82b4cb4fadb6473462d28679319a98ab7cdd08650"
40075
+ sha256: "9e37ff7bb1371f3b16b36fe18ecc0286f6f89956d96d3b243c7c37538a9504be"
40074
40076
  },
40075
40077
  {
40076
40078
  path: "dist/src/catalogue.js",
40077
- sha256: "d99e739f4a9d61cf13c91fd18e69a248f639c33d3e2e5b37efb320f0f50cef16"
40079
+ sha256: "44e7f1adc29b56741b71af0fb1b95239f4fa7c0293f137b8fb9e5e03befcbd72"
40078
40080
  },
40079
40081
  {
40080
40082
  path: "dist/src/cli.js",
@@ -40090,7 +40092,7 @@ var tenable_axi_default = {
40090
40092
  },
40091
40093
  {
40092
40094
  path: "dist/src/exposure.js",
40093
- sha256: "ef5fbe0d3525b741cc14a51b2ab9cc0cbd5289a1ec97fe01312b4d351beaf0b0"
40095
+ sha256: "db005db00fbf1dba311bad8e78a872836994909a9ce46b9bd8d498d72cfc7d2d"
40094
40096
  },
40095
40097
  {
40096
40098
  path: "dist/src/hook-install.js",
@@ -40098,7 +40100,7 @@ var tenable_axi_default = {
40098
40100
  },
40099
40101
  {
40100
40102
  path: "dist/src/inventory-catalogue.js",
40101
- sha256: "a0cc6abc55f11815fbacf4e7f869ce0e70e06f678ebbb012afe7500a26fb4de8"
40103
+ sha256: "9000156bdbc7e9e8a461f89a602f6fa1e9d7217eabe30a67195be79442f8afe6"
40102
40104
  },
40103
40105
  {
40104
40106
  path: "dist/src/inventory-export-catalogue.js",
@@ -40110,7 +40112,7 @@ var tenable_axi_default = {
40110
40112
  },
40111
40113
  {
40112
40114
  path: "dist/src/inventory.js",
40113
- sha256: "bc712463ee14db76ff511c4b3ec8d6cadd43b3895e08f1baee785fe3a415916f"
40115
+ sha256: "700efba15d086ba88be5444d66f131c9d7482e198dfd050eefc7ecd4f1b96bfe"
40114
40116
  },
40115
40117
  {
40116
40118
  path: "dist/src/inventory/schema.js",
@@ -40252,7 +40254,7 @@ var tenable_axi_default = {
40252
40254
  }
40253
40255
  }
40254
40256
  },
40255
- skillSha256: "ea35fe90d39fee3982f731ccc3c717c92aabd0799ff2371f6f3cc5e12d7aea9a",
40257
+ skillSha256: "788b612b4b89f6e390e42ca1619da3a7c146599284ff8ebd69c9e5e42aae5ae0",
40256
40258
  nativeWriteSettings: {
40257
40259
  supportedOperations: [
40258
40260
  "apa-export-attack-path",
@@ -40342,7 +40344,7 @@ var tenable_axi_default = {
40342
40344
  config: "Config path; default credential precedence",
40343
40345
  profile: "Profile name; default credential precedence",
40344
40346
  fields: "Comma-separated display or wire properties; display names: id, name, class, exposureScore; default compact view",
40345
- full: "Show full text; default false",
40347
+ full: "Show untruncated text; does not add fields or rows; default false",
40346
40348
  help: "Show help",
40347
40349
  limit: "Maximum emitted rows, 1-10000; default 100",
40348
40350
  all: "Read up to 10000 rows within invocation budgets; excludes --limit",
@@ -40350,7 +40352,7 @@ var tenable_axi_default = {
40350
40352
  query: "Simple query text",
40351
40353
  filter: 'Repeatable: <property> <operator> <JSON string array>, e.g. asset_class = ["DEVICE"]',
40352
40354
  "filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
40353
- sort: "Wire property:asc|desc",
40355
+ sort: "Sortable display or wire property:asc|desc; unknown names report valid choices",
40354
40356
  "extra-properties": "Comma-separated extra wire properties",
40355
40357
  offset: "Starting record; default 0; excludes --cursor",
40356
40358
  class: "Server-side asset class filter"
@@ -40363,7 +40365,7 @@ var tenable_axi_default = {
40363
40365
  config: "Config path; default credential precedence",
40364
40366
  profile: "Profile name; default credential precedence",
40365
40367
  fields: "Comma-separated output fields; accepted: key, readable_name, operators, sortable, filterable, control, description; default compact view",
40366
- full: "Show full text; default false",
40368
+ full: "Show untruncated text; does not add fields or rows; default false",
40367
40369
  help: "Show help",
40368
40370
  limit: "Maximum emitted rows, 1-10000; default 100",
40369
40371
  all: "Read up to 10000 rows within invocation budgets; excludes --limit",
@@ -40377,8 +40379,8 @@ var tenable_axi_default = {
40377
40379
  flags: {
40378
40380
  config: "Config path; default credential precedence",
40379
40381
  profile: "Profile name; default credential precedence",
40380
- fields: "Comma-separated display or wire properties; display names: id, name, class, exposureScore; default compact view",
40381
- full: "Show full text; default false",
40382
+ fields: "Comma-separated display or wire properties; display names: id, name, class, exposureScore, fqdns, last_observed_at; default compact view",
40383
+ full: "Show untruncated text; does not add fields or rows; default false",
40382
40384
  help: "Show help",
40383
40385
  id: "Required exact inventory ID",
40384
40386
  "extra-properties": "Comma-separated extra wire properties"
@@ -40770,8 +40772,8 @@ var tenable_axi_default = {
40770
40772
  flags: {
40771
40773
  config: "Config path; default credential precedence",
40772
40774
  profile: "Profile name; default credential precedence",
40773
- fields: "Comma-separated display or wire properties; display names: id, name, severity, state; default compact view",
40774
- full: "Show full text; default false",
40775
+ fields: "Comma-separated display or wire properties; display names: id, name, severity, state, sensor_type; default compact view",
40776
+ full: "Show untruncated text; does not add fields or rows; default false",
40775
40777
  help: "Show help",
40776
40778
  limit: "Maximum emitted rows, 1-10000; default 100",
40777
40779
  all: "Read up to 10000 rows within invocation budgets; excludes --limit",
@@ -40779,7 +40781,7 @@ var tenable_axi_default = {
40779
40781
  query: "Simple query text",
40780
40782
  filter: 'Repeatable: <property> <operator> <JSON string array>, e.g. severity = ["HIGH"]',
40781
40783
  "filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
40782
- sort: "Wire property:asc|desc",
40784
+ sort: "Sortable display or wire property:asc|desc; unknown names report valid choices",
40783
40785
  "extra-properties": "Comma-separated extra wire properties",
40784
40786
  offset: "Starting record; default 0; excludes --cursor"
40785
40787
  }
@@ -40791,7 +40793,7 @@ var tenable_axi_default = {
40791
40793
  config: "Config path; default credential precedence",
40792
40794
  profile: "Profile name; default credential precedence",
40793
40795
  fields: "Comma-separated output fields; accepted: key, readable_name, operators, sortable, filterable, control, description; default compact view",
40794
- full: "Show full text; default false",
40796
+ full: "Show untruncated text; does not add fields or rows; default false",
40795
40797
  help: "Show help",
40796
40798
  limit: "Maximum emitted rows, 1-10000; default 100",
40797
40799
  all: "Read up to 10000 rows within invocation budgets; excludes --limit",
@@ -40804,13 +40806,22 @@ var tenable_axi_default = {
40804
40806
  flags: {
40805
40807
  config: "Config path; default credential precedence",
40806
40808
  profile: "Profile name; default credential precedence",
40807
- fields: "Comma-separated display or wire properties; display names: id, name, severity, state; default compact view",
40808
- full: "Show full text; default false",
40809
+ fields: "Comma-separated display or wire properties; display names: id, name, severity, state, sensor_type, asset_id, cves; default compact view",
40810
+ full: "Show untruncated text; does not add fields or rows; default false",
40809
40811
  help: "Show help",
40810
40812
  id: "Required exact inventory ID",
40811
40813
  "extra-properties": "Comma-separated extra wire properties"
40812
40814
  }
40813
40815
  },
40816
+ {
40817
+ command: "finding summary",
40818
+ effect: "read",
40819
+ flags: {
40820
+ config: "Config path; default credential precedence",
40821
+ profile: "Profile name; default credential precedence",
40822
+ help: "Show help"
40823
+ }
40824
+ },
40814
40825
  {
40815
40826
  command: "home",
40816
40827
  effect: "read",
@@ -40931,7 +40942,7 @@ var tenable_axi_default = {
40931
40942
  config: "Config path; default credential precedence",
40932
40943
  profile: "Profile name; default credential precedence",
40933
40944
  fields: "Comma-separated display or wire properties; display names: name, version, publisher; default compact view",
40934
- full: "Show full text; default false",
40945
+ full: "Show untruncated text; does not add fields or rows; default false",
40935
40946
  help: "Show help",
40936
40947
  limit: "Maximum emitted rows, 1-10000; default 100",
40937
40948
  all: "Read up to 10000 rows within invocation budgets; excludes --limit",
@@ -40939,7 +40950,7 @@ var tenable_axi_default = {
40939
40950
  query: "Simple query text",
40940
40951
  filter: 'Repeatable: <property> <operator> <JSON string array>, e.g. application = ["example-app"]',
40941
40952
  "filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
40942
- sort: "Wire property:asc|desc",
40953
+ sort: "Sortable display or wire property:asc|desc; unknown names report valid choices",
40943
40954
  "extra-properties": "Comma-separated extra wire properties",
40944
40955
  offset: "Starting record; default 0; excludes --cursor"
40945
40956
  }
@@ -40951,7 +40962,7 @@ var tenable_axi_default = {
40951
40962
  config: "Config path; default credential precedence",
40952
40963
  profile: "Profile name; default credential precedence",
40953
40964
  fields: "Comma-separated output fields; accepted: key, readable_name, operators, sortable, filterable, control, description; default compact view",
40954
- full: "Show full text; default false",
40965
+ full: "Show untruncated text; does not add fields or rows; default false",
40955
40966
  help: "Show help",
40956
40967
  limit: "Maximum emitted rows, 1-10000; default 100",
40957
40968
  all: "Read up to 10000 rows within invocation budgets; excludes --limit",
@@ -41254,13 +41265,13 @@ var tenable_axi_default = {
41254
41265
  var hybrid_axi_default = {
41255
41266
  generatedBy: "scripts/hybrid-inventory.mjs",
41256
41267
  tool: "hybrid-axi",
41257
- version: "0.1.1",
41258
- integrity: "sha512-8K39EZadEq302GcuCKrWmdKJ6NvtFegpGWiStTF8T8gn+lbzbYNiBnRMt5lI0o+hCm7glUdOFahZqw62ylpi7w==",
41268
+ version: "0.1.2",
41269
+ integrity: "sha512-rveeeytckjW+8lFwKQppSEAncC3yk8KpGqI7Qh3ziJvQtf4ycUrOw+6Tzp9a69gcTamGiYf805OC0+rhIhh6ag==",
41259
41270
  parserEvidence: "Published command catalogue, mutation registry and reviewed native parsers and transport gates",
41260
41271
  sources: [
41261
41272
  {
41262
41273
  path: "dist/src/catalogue.js",
41263
- sha256: "0244f912f05d7a491651b70015a80bfa15d39ed57b691174d8d4f15d89e8a907"
41274
+ sha256: "cf353500382a0c33a6fa2c1735543ae43ecc10eb53c68e727a8940f7f881b380"
41264
41275
  },
41265
41276
  {
41266
41277
  path: "dist/src/cli.js",
@@ -41300,7 +41311,7 @@ var hybrid_axi_default = {
41300
41311
  },
41301
41312
  {
41302
41313
  path: "dist/src/report-catalogue.js",
41303
- sha256: "387cbfd2c687cb0ec4a4813132057fdd3cf1145cb8a9760ccdaad99ed9732169"
41314
+ sha256: "3c3346176cf5aabaf177c40a03efd1c67683640a95c8899f71cab1ec4bd95195"
41304
41315
  },
41305
41316
  {
41306
41317
  path: "dist/src/report-file.js",
@@ -41308,11 +41319,11 @@ var hybrid_axi_default = {
41308
41319
  },
41309
41320
  {
41310
41321
  path: "dist/src/reports.js",
41311
- sha256: "be256f71a04c2f19371b6eb862b88caff9f2e481b95551749bca172058d70396"
41322
+ sha256: "167fa9b8a542b149b8056dbb5f27bbe70c0ed4385662fc6ae9698c40e421a8d7"
41312
41323
  },
41313
41324
  {
41314
41325
  path: "dist/src/search-catalogue.js",
41315
- sha256: "e5cba3e769308123a560f7e9bcbb0f0ab36e428ce3631a173298953f063b8f7e"
41326
+ sha256: "42fa4e7e979914c67f99fd9b083f18030ed58c01dc6cbaddea3a03553ac2a353"
41316
41327
  },
41317
41328
  {
41318
41329
  path: "dist/src/search-contracts.js",
@@ -41320,11 +41331,11 @@ var hybrid_axi_default = {
41320
41331
  },
41321
41332
  {
41322
41333
  path: "dist/src/search.js",
41323
- sha256: "bd9362c96f6ff2a90c3297308cb7e1ef91469a4b233228abfa3d7a8849d28204"
41334
+ sha256: "cf6192817869625e1d70030c2df748535c39d48632d8e5604cd020003807ef37"
41324
41335
  },
41325
41336
  {
41326
41337
  path: "dist/src/session.js",
41327
- sha256: "e75476c1db36aa635d6f3f675e95dfcde6bdda5c66abd0f8f905db881c7d9cf5"
41338
+ sha256: "c55dce9aea70c4f213a040968783bb81296127395367136593985bfe99b4788c"
41328
41339
  },
41329
41340
  {
41330
41341
  path: "dist/src/setup.js",
@@ -41435,7 +41446,7 @@ var hybrid_axi_default = {
41435
41446
  }
41436
41447
  }
41437
41448
  },
41438
- skillSha256: "1d0266cf0237630d063531b567a6b960dca48a731e7917e72b50fb59f757d384",
41449
+ skillSha256: "0dc43810bcc0774457a33dba2454849e2c8588f0607bd770b30fefe09cd0d26c",
41439
41450
  nativeWriteSettings: {
41440
41451
  supportedOperations: [
41441
41452
  "convertQuickScan",
@@ -44214,7 +44225,7 @@ import { homedir as homedir2 } from "node:os";
44214
44225
  import { dirname as dirname2, join as join2, resolve as resolve2 } from "node:path";
44215
44226
 
44216
44227
  // skill/artium-axi/SKILL.md
44217
- var SKILL_default = "---\nname: artium-axi\ndescription: Discover and run managed commands through Artium, using the signed-in account and its granted tools.\n---\n\nUse artium-axi tools first for requests involving data from Artium-managed tools.\nRun `artium-axi tools` to discover the tools available to this account before choosing a tool.\nRun `artium-axi tools show <tool>` for its commands and a vetted example, then run `artium-axi <tool> <args>`.\nFollow the returned next commands; they already include the Artium prefix.\nKeep upstream arguments intact and use the managed credentials rather than configuring an upstream CLI directly.\n\nIf artium-axi is absent from PATH, use the installed command below in place of `artium-axi` in every example:\n\n<!-- artium-axi executable -->\nThe setup command records the standalone bundle's Node invocation here.\n<!-- /artium-axi executable -->\n\nIf sign-in is required, ask the user to follow `artium-axi login --help` for their SSO or local account.\nNever request or print tokens or put passwords in arguments.\nAn empty tool list means no enabled runtime tool is available through the account's roles; ask an administrator to check grants and enabled tools.\nUse `artium-axi doctor` for connection or cached health diagnostics.\nDo not retry an uncertain command outcome, especially a write.\n";
44228
+ var SKILL_default = "---\nname: artium-axi\ndescription: Discover and run managed commands through Artium, using the signed-in account and its granted tools.\n---\n\nUse artium-axi tools first for requests involving data from Artium-managed tools.\nRun `artium-axi tools` to discover the tools available to this account before choosing a tool.\nRun `artium-axi tools show <tool>` for its commands and a vetted example, then run `artium-axi <tool> <args>`.\nFollow the returned next commands; they already include the Artium prefix.\nKeep upstream arguments intact and use the managed credentials rather than configuring an upstream CLI directly.\nSee [client input handling](https://github.com/knowttl/artium-axi/blob/main/docs/client-reference.md#command-surface-and-subcommands) for Azure stdin selection and Tenable local uploads or explicit stdin.\n\nIf artium-axi is absent from PATH, use the installed command below in place of `artium-axi` in every example:\nOn Windows, choose the labelled PowerShell or Git Bash command for your shell.\n\n<!-- artium-axi executable -->\nThe setup command records the standalone bundle's Node invocation here.\n<!-- /artium-axi executable -->\n\nIf sign-in is required, ask the user to follow `artium-axi login --help` for their SSO or local account.\nNever request or print tokens or put passwords in arguments.\nAn empty tool list means no enabled runtime tool is available through the account's roles; ask an administrator to check grants and enabled tools.\nUse `artium-axi doctor` for connection or cached health diagnostics.\nDo not retry an uncertain command outcome, especially a write.\n";
44218
44229
 
44219
44230
  // src/cli/setup.ts
44220
44231
  var hosts = {
@@ -44311,12 +44322,23 @@ async function setup(args) {
44311
44322
  throw new ArtiumError("INVALID_INPUT", `Hook installation is unsupported for ${host}: this installer has no verified ${host} hook implementation. No files were written.`, `Install the skill with artium-axi setup --host ${host} without --hook; Claude Code supports --hook.`);
44312
44323
  }
44313
44324
  const executable = resolve2(process.argv[1]);
44314
- const invocation = process.platform === "win32" ? `& '${process.execPath.replaceAll("'", "''")}' '${executable.replaceAll("'", "''")}'` : `${quote(process.execPath)} ${quote(executable)}`;
44315
- const executableBlock = `<!-- artium-axi executable -->
44325
+ const gitBashQuote = (path) => `"${path.replaceAll("\\", "/").replaceAll(/["$`]/g, "\\$&")}"`;
44326
+ const invocation = process.platform === "win32" ? `PowerShell:
44327
+
44328
+ \`\`\`powershell
44329
+ & '${process.execPath.replaceAll("'", "''")}' '${executable.replaceAll("'", "''")}'
44330
+ \`\`\`
44331
+
44332
+ Git Bash:
44316
44333
 
44317
44334
  \`\`\`sh
44335
+ ${gitBashQuote(process.execPath)} ${gitBashQuote(executable)}
44336
+ \`\`\`` : `\`\`\`sh
44337
+ ${quote(process.execPath)} ${quote(executable)}
44338
+ \`\`\``;
44339
+ const executableBlock = `<!-- artium-axi executable -->
44340
+
44318
44341
  ${invocation}
44319
- \`\`\`
44320
44342
 
44321
44343
  <!-- /artium-axi executable -->`;
44322
44344
  const content = SKILL_default.replace(/<!-- artium-axi executable -->[\s\S]*?<!-- \/artium-axi executable -->/, () => executableBlock);
@@ -44380,15 +44402,15 @@ async function toolInput(tool, original) {
44380
44402
  const input2 = {};
44381
44403
  let totalFileBytes = 0;
44382
44404
  const hunting = tool === "mg-axi" && args.slice(0, 3).join(" ") === "security hunting query";
44383
- if ((tool === "az-axi" || tool === "hybrid-axi" || hunting) && !args.some((arg) => ["--help", "-h", "--version", "-v", "-V"].includes(arg))) {
44384
- const fileFlags = hunting ? ["file"] : tool === "hybrid-axi" ? hybrid_axi_default.adapterBoundary.inputFileFlags : az_axi_default.adapterBoundary.inputFileFlags;
44405
+ if ((tool === "az-axi" || tool === "hybrid-axi" || tool === "tenable-axi" || hunting) && !args.some((arg) => ["--help", "-h", "--version", "-v", "-V"].includes(arg))) {
44406
+ const fileFlags = hunting ? ["file"] : tool === "tenable-axi" ? tenable_axi_default.adapterBoundary.inputFileFlags : tool === "hybrid-axi" ? hybrid_axi_default.adapterBoundary.inputFileFlags : az_axi_default.adapterBoundary.inputFileFlags;
44385
44407
  for (let index = 0; index < args.length; index++) {
44386
44408
  if (args[index] === "--") break;
44387
44409
  const [flag] = args[index].split("=");
44388
44410
  if (!fileFlags.some((name2) => flag === `--${name2}`)) continue;
44389
44411
  const equals = args[index].indexOf("=");
44390
44412
  const path = equals < 0 ? args[++index] : args[index].slice(equals + 1);
44391
- if (path === "-" && tool === "hybrid-axi" && flag === "--body-file") {
44413
+ if (path === "-" && (tool === "tenable-axi" || tool === "hybrid-axi" && flag === "--body-file")) {
44392
44414
  input2.stdin = (await readBounded(process.stdin, inputLimits.stdinBytes)).toString("utf8");
44393
44415
  continue;
44394
44416
  }
@@ -44412,8 +44434,35 @@ async function toolInput(tool, original) {
44412
44434
  leading++;
44413
44435
  if (!token.includes("=") && (name !== "full" || ["true", "false"].includes(args[leading]))) leading++;
44414
44436
  }
44415
- const consumesStdin = az_axi_default.commands.some((route) => ["rg query", "logs query", "api"].includes(route.handlerCommand) && route.command.split(" ").every((word, index) => args[leading + index] === word));
44416
- if (tool === "az-axi" && consumesStdin && !process.stdin.isTTY) {
44437
+ const route = az_axi_default.commands.find((route2) => ["rg query", "logs query", "api"].includes(route2.handlerCommand) && route2.command.split(" ").every((word, index) => args[leading + index] === word));
44438
+ let positional = false;
44439
+ if (route) {
44440
+ for (let index = leading + route.command.split(" ").length; index < args.length; index++) {
44441
+ const token = args[index];
44442
+ if (token === "--") {
44443
+ positional = index + 1 < args.length;
44444
+ break;
44445
+ }
44446
+ if (!token.startsWith("-") || token === "-") {
44447
+ positional = true;
44448
+ break;
44449
+ }
44450
+ const raw = token.slice(token.startsWith("--") ? 2 : 1).split("=")[0];
44451
+ const expanded = token.startsWith("--") ? raw : route.shortFlags[raw] ?? raw;
44452
+ const name = route.flagAliases[expanded] ?? expanded;
44453
+ const kind = route.flags[name];
44454
+ if (token.includes("=") || !kind) continue;
44455
+ if (kind === "boolean") {
44456
+ if (["true", "false"].includes(args[index + 1])) index++;
44457
+ } else {
44458
+ while (args[index + 1] !== void 0 && (!args[index + 1].startsWith("-") || /^-\d/.test(args[index + 1]) || az_axi_default.adapterBoundary.inputFileFlags.includes(name) && input2.files?.some((file2) => file2.name === args[index + 1]))) {
44459
+ index++;
44460
+ if (!["list", "literal-list"].includes(kind) || route.positionalInput) break;
44461
+ }
44462
+ }
44463
+ }
44464
+ }
44465
+ if (tool === "az-axi" && route && !input2.files?.length && !positional && !process.stdin.isTTY) {
44417
44466
  const stdin = await readBounded(process.stdin, inputLimits.stdinBytes);
44418
44467
  if (stdin.length) input2.stdin = stdin.toString("utf8");
44419
44468
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowttl/artium-axi",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "Client CLI and embedded skill for the Artium managed tools server.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -8,8 +8,10 @@ Run `artium-axi tools` to discover the tools available to this account before ch
8
8
  Run `artium-axi tools show <tool>` for its commands and a vetted example, then run `artium-axi <tool> <args>`.
9
9
  Follow the returned next commands; they already include the Artium prefix.
10
10
  Keep upstream arguments intact and use the managed credentials rather than configuring an upstream CLI directly.
11
+ See [client input handling](https://github.com/knowttl/artium-axi/blob/main/docs/client-reference.md#command-surface-and-subcommands) for Azure stdin selection and Tenable local uploads or explicit stdin.
11
12
 
12
13
  If artium-axi is absent from PATH, use the installed command below in place of `artium-axi` in every example:
14
+ On Windows, choose the labelled PowerShell or Git Bash command for your shell.
13
15
 
14
16
  <!-- artium-axi executable -->
15
17
  The setup command records the standalone bundle's Node invocation here.