@theagenthealth/agenthealth 0.16.0 → 0.17.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/README.md CHANGED
@@ -6,10 +6,10 @@ not supported. All implemented adapters and graph configurations use the same
6
6
  AHS v1 configuration and result contracts as the CLI.
7
7
 
8
8
  ```sh
9
- npm install @theagenthealth/agenthealth@0.16.0
9
+ npm install @theagenthealth/agenthealth@0.17.0
10
10
  ```
11
11
 
12
- Install and verify CLI **v0.16.0** separately using the
12
+ Install and verify CLI **v0.17.0** separately using the
13
13
  [installation guide](../../docs/installation.md). The SDK never downloads or
14
14
  executes binaries at import/install time. A mismatched CLI raises
15
15
  `CompatibilityError` before running checks.
@@ -58,8 +58,11 @@ See the [SDK guide](../../docs/javascript-sdk.md),
58
58
  [example](../../examples/javascript-sdk/README.md), and
59
59
  [Phase 16 impact review](../../docs/phase-16-alignment.md).
60
60
 
61
- Published software: v0.16.0. Requires the matching CLI; model/LLM
61
+ This package version: v0.17.0. Requires the matching CLI; model/LLM
62
62
  configuration is supported through the canonical schema.
63
63
 
64
64
  Native database targets use the matching CLI; fixed SQL queries require explicit
65
65
  functional opt-in. Passwords use `database.password_env` references.
66
+
67
+ Qdrant/Pinecone vector-store checks are included in this version; use the
68
+ matching v0.17.0 CLI. Other vector providers remain planned.
package/index.js CHANGED
@@ -7,7 +7,7 @@ import { performance } from 'node:perf_hooks';
7
7
  import Ajv2020 from 'ajv/dist/2020.js';
8
8
  import { parseDocument } from 'yaml';
9
9
 
10
- export const version = '0.16.0';
10
+ export const version = '0.17.0';
11
11
  export const healthStates = Object.freeze(['HEALTHY', 'DEGRADED', 'UNHEALTHY', 'UNREACHABLE', 'MISCONFIGURED', 'UNKNOWN']);
12
12
  export class AgentHealthError extends Error {
13
13
  constructor(message) { super(message); this.name = new.target.name; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theagenthealth/agenthealth",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "Typed Node.js SDK for the AgentHealth reference CLI",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -186,6 +186,9 @@
186
186
  },
187
187
  "database": {
188
188
  "$ref": "#/$defs/DatabaseOptions"
189
+ },
190
+ "vector_store": {
191
+ "$ref": "#/$defs/VectorStoreOptions"
189
192
  }
190
193
  },
191
194
  "required": [
@@ -647,6 +650,90 @@
647
650
  ]
648
651
  }
649
652
  }
653
+ },
654
+ {
655
+ "if": {
656
+ "required": [
657
+ "vector_store"
658
+ ]
659
+ },
660
+ "then": {
661
+ "properties": {
662
+ "type": {
663
+ "const": "vector-store"
664
+ }
665
+ }
666
+ }
667
+ },
668
+ {
669
+ "if": {
670
+ "required": [
671
+ "vector_store"
672
+ ],
673
+ "properties": {
674
+ "vector_store": {
675
+ "required": [
676
+ "functional"
677
+ ]
678
+ }
679
+ }
680
+ },
681
+ "then": {
682
+ "required": [
683
+ "checks"
684
+ ],
685
+ "properties": {
686
+ "checks": {
687
+ "contains": {
688
+ "const": "functional"
689
+ }
690
+ }
691
+ }
692
+ }
693
+ },
694
+ {
695
+ "if": {
696
+ "required": [
697
+ "type",
698
+ "checks"
699
+ ],
700
+ "properties": {
701
+ "type": {
702
+ "const": "vector-store"
703
+ },
704
+ "checks": {
705
+ "contains": {
706
+ "const": "functional"
707
+ }
708
+ }
709
+ }
710
+ },
711
+ "then": {
712
+ "required": [
713
+ "vector_store"
714
+ ],
715
+ "properties": {
716
+ "vector_store": {
717
+ "required": [
718
+ "functional"
719
+ ]
720
+ }
721
+ }
722
+ }
723
+ },
724
+ {
725
+ "if": {
726
+ "required": [
727
+ "vector_store"
728
+ ]
729
+ },
730
+ "then": {
731
+ "properties": {
732
+ "endpoint": {
733
+ "pattern": "^https?://[^/@?#\\s]+(?:/[^?#]*)?$"
734
+ }
735
+ }
736
+ }
650
737
  }
651
738
  ]
652
739
  },
@@ -778,6 +865,9 @@
778
865
  },
779
866
  "database": {
780
867
  "$ref": "#/$defs/DatabaseOptions"
868
+ },
869
+ "vector_store": {
870
+ "$ref": "#/$defs/VectorStoreOptions"
781
871
  }
782
872
  },
783
873
  "required": [
@@ -1375,6 +1465,90 @@
1375
1465
  ]
1376
1466
  }
1377
1467
  }
1468
+ },
1469
+ {
1470
+ "if": {
1471
+ "required": [
1472
+ "vector_store"
1473
+ ]
1474
+ },
1475
+ "then": {
1476
+ "properties": {
1477
+ "type": {
1478
+ "const": "vector-store"
1479
+ }
1480
+ }
1481
+ }
1482
+ },
1483
+ {
1484
+ "if": {
1485
+ "required": [
1486
+ "vector_store"
1487
+ ],
1488
+ "properties": {
1489
+ "vector_store": {
1490
+ "required": [
1491
+ "functional"
1492
+ ]
1493
+ }
1494
+ }
1495
+ },
1496
+ "then": {
1497
+ "required": [
1498
+ "checks"
1499
+ ],
1500
+ "properties": {
1501
+ "checks": {
1502
+ "contains": {
1503
+ "const": "functional"
1504
+ }
1505
+ }
1506
+ }
1507
+ }
1508
+ },
1509
+ {
1510
+ "if": {
1511
+ "required": [
1512
+ "type",
1513
+ "checks"
1514
+ ],
1515
+ "properties": {
1516
+ "type": {
1517
+ "const": "vector-store"
1518
+ },
1519
+ "checks": {
1520
+ "contains": {
1521
+ "const": "functional"
1522
+ }
1523
+ }
1524
+ }
1525
+ },
1526
+ "then": {
1527
+ "required": [
1528
+ "vector_store"
1529
+ ],
1530
+ "properties": {
1531
+ "vector_store": {
1532
+ "required": [
1533
+ "functional"
1534
+ ]
1535
+ }
1536
+ }
1537
+ }
1538
+ },
1539
+ {
1540
+ "if": {
1541
+ "required": [
1542
+ "vector_store"
1543
+ ]
1544
+ },
1545
+ "then": {
1546
+ "properties": {
1547
+ "endpoint": {
1548
+ "pattern": "^https?://[^/@?#\\s]+(?:/[^?#]*)?$"
1549
+ }
1550
+ }
1551
+ }
1378
1552
  }
1379
1553
  ]
1380
1554
  },
@@ -1944,6 +2118,116 @@
1944
2118
  ]
1945
2119
  }
1946
2120
  }
2121
+ },
2122
+ "VectorStoreOptions": {
2123
+ "type": "object",
2124
+ "required": [
2125
+ "provider"
2126
+ ],
2127
+ "additionalProperties": false,
2128
+ "properties": {
2129
+ "provider": {
2130
+ "enum": [
2131
+ "qdrant",
2132
+ "pinecone"
2133
+ ]
2134
+ },
2135
+ "collection": {
2136
+ "anyOf": [
2137
+ {
2138
+ "type": "string",
2139
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,254}$",
2140
+ "maxLength": 255,
2141
+ "not": {
2142
+ "pattern": "[^A-Za-z0-9_-]"
2143
+ }
2144
+ },
2145
+ {
2146
+ "const": ""
2147
+ }
2148
+ ]
2149
+ },
2150
+ "namespace": {
2151
+ "type": "string",
2152
+ "maxLength": 512,
2153
+ "not": {
2154
+ "pattern": "[\u0000\r\n]"
2155
+ }
2156
+ },
2157
+ "functional": {
2158
+ "type": "object",
2159
+ "required": [
2160
+ "safe",
2161
+ "vector"
2162
+ ],
2163
+ "additionalProperties": false,
2164
+ "properties": {
2165
+ "safe": {
2166
+ "const": true
2167
+ },
2168
+ "vector": {
2169
+ "type": "array",
2170
+ "minItems": 1,
2171
+ "maxItems": 4096,
2172
+ "items": {
2173
+ "type": "number",
2174
+ "minimum": -1.7976931348623157e+308,
2175
+ "maximum": 1.7976931348623157e+308
2176
+ },
2177
+ "contains": {
2178
+ "not": {
2179
+ "const": 0
2180
+ }
2181
+ }
2182
+ }
2183
+ }
2184
+ }
2185
+ },
2186
+ "allOf": [
2187
+ {
2188
+ "if": {
2189
+ "properties": {
2190
+ "provider": {
2191
+ "const": "qdrant"
2192
+ }
2193
+ }
2194
+ },
2195
+ "then": {
2196
+ "required": [
2197
+ "collection"
2198
+ ],
2199
+ "properties": {
2200
+ "collection": {
2201
+ "type": "string",
2202
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,254}$",
2203
+ "maxLength": 255,
2204
+ "not": {
2205
+ "pattern": "[^A-Za-z0-9_-]"
2206
+ }
2207
+ },
2208
+ "namespace": {
2209
+ "const": ""
2210
+ }
2211
+ }
2212
+ }
2213
+ },
2214
+ {
2215
+ "if": {
2216
+ "properties": {
2217
+ "provider": {
2218
+ "const": "pinecone"
2219
+ }
2220
+ }
2221
+ },
2222
+ "then": {
2223
+ "properties": {
2224
+ "collection": {
2225
+ "const": ""
2226
+ }
2227
+ }
2228
+ }
2229
+ }
2230
+ ]
1947
2231
  }
1948
2232
  },
1949
2233
  "type": "object",