@aexhq/cli 0.22.0 → 0.23.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/cli.mjs CHANGED
@@ -162,6 +162,7 @@ var MODEL_PROVIDER_IDS = {
162
162
  "claude-haiku-4-5": { anthropic: "claude-haiku-4-5" },
163
163
  "claude-3-5-haiku-latest": { anthropic: "claude-3-5-haiku-latest" },
164
164
  "claude-3-5-sonnet-latest": { anthropic: "claude-3-5-sonnet-latest" },
165
+ "claude-sonnet-4-6": { anthropic: "claude-sonnet-4-6" },
165
166
  "deepseek-v4-flash": { deepseek: "deepseek-v4-flash" },
166
167
  "deepseek-v4-pro": { deepseek: "deepseek-v4-pro" },
167
168
  "deepseek-chat": { deepseek: "deepseek-chat" },
@@ -901,7 +902,16 @@ var forbiddenStringPatterns = Object.freeze([
901
902
  { reason: "vault_id", regex: /\b(?:vault|vlt|secret)[_:-][A-Za-z0-9][A-Za-z0-9_-]{7,}\b/i },
902
903
  {
903
904
  reason: "private_resource_handle",
904
- regex: /\b(?:machine|session|agent|file|skill|env|resource|handle|token_hash|bearer_hash)[_:-][A-Za-z0-9][A-Za-z0-9_-]{7,}\b/i
905
+ // `<keyword><sep><id>` opaque handles (`session_a1B2c3D4e5`, `file_9f8e7d…`).
906
+ // The keyword set overlaps ordinary English (agent/file/skill/resource/…), so
907
+ // the bare shape also matched documentation prose that simply chains those
908
+ // words with `_`/`-` (`agent_decision_failure`, `file_grounded`,
909
+ // `session_handoff_contract`, `agent-judgment` — read straight out of a
910
+ // skill-pack doc in tool-result text). The `accept` predicate keeps the shape
911
+ // but requires the id segment to look minted rather than spelled — i.e. carry
912
+ // a digit — so genuine handles stay flagged while dictionary-word prose does not.
913
+ regex: /\b(?:machine|session|agent|file|skill|env|resource|handle|token_hash|bearer_hash)[_:-][A-Za-z0-9][A-Za-z0-9_-]{7,}\b/i,
914
+ accept: isMintedResourceHandle
905
915
  },
906
916
  {
907
917
  reason: "high_entropy_token",
@@ -931,6 +941,11 @@ function isHighEntropySecretRun(run) {
931
941
  }
932
942
  return highEntropyShannonBits(run) >= 3;
933
943
  }
944
+ function isMintedResourceHandle(match) {
945
+ const separatorIndex = match.search(/[_:-]/);
946
+ const id = match.slice(separatorIndex + 1);
947
+ return /\d/.test(id);
948
+ }
934
949
  function highEntropyCharClassCount(value) {
935
950
  let count = 0;
936
951
  if (/[a-z]/.test(value))
@@ -1 +1 @@
1
- bfd0fb573fa113fe08d69fc50f246c821bfc9e0acd9bddd6e92775d38120e201 cli.mjs
1
+ 37cb8db75fb0852134f1feae2b14bcea847d968f9fe13862c508f916366d1f85 cli.mjs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexhq/cli",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/aexhq/aex.git"
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "fflate": "^0.8.2",
30
- "@aexhq/contracts": "0.22.0"
30
+ "@aexhq/contracts": "0.23.0"
31
31
  },
32
32
  "devDependencies": {
33
33
  "esbuild": "^0.28.0"