@lexq/cli 0.1.37 → 0.1.38

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.js CHANGED
@@ -2226,8 +2226,9 @@ function registerProfileCommands(program) {
2226
2226
 
2227
2227
  Slow-rule judgment is relative only: flagged = p50 ≥ 10× the median of
2228
2228
  per-rule p50s within the group. Absolute ms thresholds are intentionally
2229
- not supported. Percentiles are withheld (–) when n < 100; TOTAL is
2230
- recorded for every call, rule detail from a deterministic 1% sample.
2229
+ not supported. Each percentile is withheld (–) unless n×(1−q) 3
2230
+ p50 from n ≥ 6, p95 from n ≥ 60, p99 from n 300. TOTAL is recorded
2231
+ on every call, rule detail from a deterministic 1% sample.
2231
2232
 
2232
2233
  Examples:
2233
2234
  $ lexq profile <groupId>
@@ -4171,7 +4172,7 @@ function registerProfileTools(server, callApi) {
4171
4172
  "lexq_profile_overview",
4172
4173
  {
4173
4174
  title: "Group Latency Profile",
4174
- description: "Per-rule latency profile of a policy group over a time window: group TOTAL distribution split by cache state (HIT = compiled ruleset cache hit, MISS = deep-load + compile), a per-rule CONDITION/ACTION percentile table, and slow-rule flags. " + RELATIVE_THRESHOLD + " Every percentile is accompanied by its sample count n; percentiles are withheld (null) when n < 100, and baselines report INSUFFICIENT_COHORT when fewer than 3 rules qualify. Rule detail comes from a deterministic 1% sample of calls; TOTAL is recorded for every call. Defaults: last 24h, live version, cacheState HIT.",
4175
+ description: "Per-rule latency profile of a policy group over a time window: group TOTAL distribution split by cache state (HIT = compiled ruleset cache hit, MISS = deep-load + compile), a per-rule CONDITION/ACTION percentile table, and slow-rule flags. " + RELATIVE_THRESHOLD + " Every percentile is accompanied by its sample count n; a percentile is withheld (null) unless n\xD7(1\u2212q) \u2265 3 (p50 needs n \u2265 6, p95 n \u2265 60, p99 n \u2265 300 \u2014 display gate, separate from the n \u2265 100 judgment gate). Baselines report INSUFFICIENT_COHORT when fewer than 3 rules qualify. Rule detail comes from a deterministic 1% sample of calls; TOTAL is recorded for every call. Defaults: last 24h, live version, cacheState HIT.",
4175
4176
  inputSchema: {
4176
4177
  groupId: z7.string().uuid().describe("Policy group ID"),
4177
4178
  versionId: z7.string().uuid().optional().describe("Version to inspect (default: live version)"),
@@ -4188,7 +4189,7 @@ function registerProfileTools(server, callApi) {
4188
4189
  "lexq_profile_rule",
4189
4190
  {
4190
4191
  title: "Rule Latency Detail",
4191
- description: "Single-rule latency detail: merged phase \xD7 cacheState distributions plus a per-window time series (60s windows). Missing windows are genuine gaps \u2014 never interpolated. Series points carry each window's own values; percentiles in merged distributions are withheld (null) when n < 100. " + RELATIVE_THRESHOLD,
4192
+ description: "Single-rule latency detail: merged phase \xD7 cacheState distributions plus a per-window time series (60s windows). Missing windows are genuine gaps \u2014 never interpolated. Series points carry each window's own values; percentiles in merged distributions are withheld (null) unless n\xD7(1\u2212q) \u2265 3 (p50 n \u2265 6, p95 n \u2265 60, p99 n \u2265 300). " + RELATIVE_THRESHOLD,
4192
4193
  inputSchema: {
4193
4194
  groupId: z7.string().uuid().describe("Policy group ID"),
4194
4195
  ruleId: z7.string().uuid().describe("Rule ID (from lexq_profile_overview)"),
@@ -887,7 +887,7 @@ function registerProfileTools(server, callApi) {
887
887
  "lexq_profile_overview",
888
888
  {
889
889
  title: "Group Latency Profile",
890
- description: "Per-rule latency profile of a policy group over a time window: group TOTAL distribution split by cache state (HIT = compiled ruleset cache hit, MISS = deep-load + compile), a per-rule CONDITION/ACTION percentile table, and slow-rule flags. " + RELATIVE_THRESHOLD + " Every percentile is accompanied by its sample count n; percentiles are withheld (null) when n < 100, and baselines report INSUFFICIENT_COHORT when fewer than 3 rules qualify. Rule detail comes from a deterministic 1% sample of calls; TOTAL is recorded for every call. Defaults: last 24h, live version, cacheState HIT.",
890
+ description: "Per-rule latency profile of a policy group over a time window: group TOTAL distribution split by cache state (HIT = compiled ruleset cache hit, MISS = deep-load + compile), a per-rule CONDITION/ACTION percentile table, and slow-rule flags. " + RELATIVE_THRESHOLD + " Every percentile is accompanied by its sample count n; a percentile is withheld (null) unless n\xD7(1\u2212q) \u2265 3 (p50 needs n \u2265 6, p95 n \u2265 60, p99 n \u2265 300 \u2014 display gate, separate from the n \u2265 100 judgment gate). Baselines report INSUFFICIENT_COHORT when fewer than 3 rules qualify. Rule detail comes from a deterministic 1% sample of calls; TOTAL is recorded for every call. Defaults: last 24h, live version, cacheState HIT.",
891
891
  inputSchema: {
892
892
  groupId: z7.string().uuid().describe("Policy group ID"),
893
893
  versionId: z7.string().uuid().optional().describe("Version to inspect (default: live version)"),
@@ -904,7 +904,7 @@ function registerProfileTools(server, callApi) {
904
904
  "lexq_profile_rule",
905
905
  {
906
906
  title: "Rule Latency Detail",
907
- description: "Single-rule latency detail: merged phase \xD7 cacheState distributions plus a per-window time series (60s windows). Missing windows are genuine gaps \u2014 never interpolated. Series points carry each window's own values; percentiles in merged distributions are withheld (null) when n < 100. " + RELATIVE_THRESHOLD,
907
+ description: "Single-rule latency detail: merged phase \xD7 cacheState distributions plus a per-window time series (60s windows). Missing windows are genuine gaps \u2014 never interpolated. Series points carry each window's own values; percentiles in merged distributions are withheld (null) unless n\xD7(1\u2212q) \u2265 3 (p50 n \u2265 6, p95 n \u2265 60, p99 n \u2265 300). " + RELATIVE_THRESHOLD,
908
908
  inputSchema: {
909
909
  groupId: z7.string().uuid().describe("Policy group ID"),
910
910
  ruleId: z7.string().uuid().describe("Rule ID (from lexq_profile_overview)"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lexq/cli",
3
- "version": "0.1.37",
3
+ "version": "0.1.38",
4
4
  "description": "LexQ CLI — manage policies, simulate rules, and deploy from the terminal. Built for humans and AI agents.",
5
5
  "type": "module",
6
6
  "bin": {