@moda-ai/cli 1.34.1 → 1.35.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.
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  selectTenantAndCreateKey
3
- } from "./cli-4ycvzfdg.js";
3
+ } from "./cli-scjxgaba.js";
4
4
  import {
5
5
  loadAuthSession
6
- } from "./cli-eggpzt87.js";
6
+ } from "./cli-yz99t7n8.js";
7
7
  import {
8
8
  CliAuthError,
9
9
  resolveIngestUrl,
10
10
  resolveModaBaseUrl,
11
11
  stringOption
12
- } from "./cli-0h32yvwq.js";
12
+ } from "./cli-drabjmaj.js";
13
13
 
14
14
  // src/provision.ts
15
15
  async function runProvision(context, options = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moda-ai/cli",
3
- "version": "1.34.1",
3
+ "version": "1.35.0",
4
4
  "description": "CLI for Moda - AI agent analytics and observability",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": "moda.skill_index.v1",
3
- "bundled_at": "2026-09-22T23:28:01.590Z",
4
- "cli_version": "1.34.1",
3
+ "bundled_at": "2026-09-26T21:50:32.589Z",
4
+ "cli_version": "1.35.0",
5
5
  "skills": [
6
6
  {
7
7
  "id": "integration-cloudflare-think",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: moda-cli
3
- version: 2.5.0
4
- description: Query Moda's AI agent trace analytics and manage code-first prompt versions from the terminal — semantic/keyword/hybrid message search, overview KPIs, topic clusters, message context, user frustration detections, tool failures, and moda prompts status/sync/promote. Use when the user asks about moda, modaflows, trace or conversation analytics, prompt management, user frustrations, agent observability, tool failure debugging, wants to find traces or tool calls about a topic, or wants to investigate how their AI agent is performing.
3
+ version: 2.6.0
4
+ description: Query Moda's AI agent trace analytics and manage code-first prompt versions from the terminal — semantic/keyword/hybrid message search, overview KPIs, topic clusters, message context, user frustration detections, tool failures, custom signals, false-positive review of detections, and moda prompts status/sync/promote. Use when the user asks about moda, modaflows, trace or conversation analytics, prompt management, user frustrations, agent observability, tool failure debugging, custom signals, marking a detection as a false positive, wants to find traces or tool calls about a topic, or wants to investigate how their AI agent is performing.
5
5
  ---
6
6
 
7
7
  # Moda CLI
@@ -58,9 +58,9 @@ Optional:
58
58
 
59
59
  - `MODA_BASE_URL` defaults to `https://moda.dev`; override only for
60
60
  self-hosted or staging.
61
- - `MODA_SKILL_VERSION` — export to `2.5.0` so search-adoption telemetry can
61
+ - `MODA_SKILL_VERSION` — export to `2.6.0` so search-adoption telemetry can
62
62
  attribute usage to this skill version. Set it once per session:
63
- `export MODA_SKILL_VERSION=2.5.0`.
63
+ `export MODA_SKILL_VERSION=2.6.0`.
64
64
 
65
65
  ## Setup
66
66
 
@@ -748,6 +748,43 @@ Rules that keep the proof honest:
748
748
  `moda fix <fix_id> --wait`) drives it; a fix left `GATING` will not finish
749
749
  on its own.
750
750
 
751
+ ### 9. Custom signals and false positives
752
+
753
+ **Custom signals** are tenant-defined behaviors (pass/fail criteria) judged on
754
+ every trace. Read them, then label hits so the signal learns:
755
+
756
+ ```bash
757
+ moda signals # every signal: criteria, status, 7-day judged/matched
758
+ moda signal <signal_id> # one signal's summary
759
+ moda signal <signal_id> --detections --days-back=30 # recent hits (limit 1–20, --offset to page)
760
+ moda trace-signals <conversation_id> # signal hits on one trace
761
+ moda signal-label <signal_id> --conversation-id=<id> --label=does_not_fit \
762
+ --note="refund was approved" --msg-index=<anchor_msg_index>
763
+ ```
764
+
765
+ `--label=does_not_fit` marks a hit a **false positive** and retracts the live
766
+ match; `--label=fits` confirms it. Pass the hit's `anchor_msg_index` (or
767
+ `--msg-dedup-token=<anchor_dedup_token>`) so the example points at the right
768
+ message, and always give a `--note` when rejecting. Labels are throttled to 10
769
+ per minute per API key and are never retried automatically.
770
+
771
+ **Problem detections** (the dashboard's thumbs on a trace) are reviewed with
772
+ `detection-review`. A `false_positive` drops the detection out of
773
+ `moda problem <id> --evidence` and is fed back to the problem reader; `clear`
774
+ undoes an earlier review.
775
+
776
+ ```bash
777
+ moda detection-reviews <conversation_id> # problem detections on a trace + review state
778
+ moda detection-review <problem_id> --conversation-id=<id> \
779
+ --attribution-id=<uuid> --verdict=false_positive --note="retry was expected"
780
+ moda detection-review <problem_id> --conversation-id=<id> \
781
+ --attribution-id=<uuid> --verdict=clear # undo
782
+ ```
783
+
784
+ `attribution_id` comes from `moda detection-reviews <conversation_id>` or
785
+ `moda problem <problem_id> --evidence`. Prefer `detection-review` over
786
+ `problem-feedback --action=flag_attribution` for a single wrong detection.
787
+
751
788
  ## Common workflow recipes
752
789
 
753
790
  ### Find where something happened (search → context)
@@ -918,6 +955,12 @@ npx: `npx -p @moda-ai/cli moda <command>`.
918
955
  | `moda problems` | Rank cross-signal Problems by root cause (what to fix first) |
919
956
  | `moda problem <problem_id>` | One Problem: dossier, or `--evidence`/`--reports`/`--traces`/`--feedback` pages (`--conversations` is a legacy alias of `--traces`) (`--limit` 1–50, `--cursor` verbatim keyset token) |
920
957
  | `moda problem-feedback <problem_id>` | Write: `--action=mark_fixed\|dismiss\|flag_attribution\|rename`. `--reason` required for dismiss/flag_attribution; `--new-name` for rename; `--attribution-id` (UUID) required for flag_attribution |
958
+ | `moda detection-reviews <conversation_id>` | Problem detections on a trace with review state (`--attribution-id=UUID` narrows to one) |
959
+ | `moda detection-review <problem_id>` | Write: `--conversation-id`, `--attribution-id` (UUID), `--verdict=correct\|false_positive\|clear`, optional `--note` |
960
+ | `moda signals` | Custom signals: criteria, status, 7-day judged/matched stats |
961
+ | `moda signal <signal_id>` | One custom signal; `--detections` pages recent hits (`--days-back` 1–90, `--limit` 1–20, `--offset`) |
962
+ | `moda trace-signals <conversation_id>` | Custom signal hits on one trace |
963
+ | `moda signal-label <signal_id>` | Write: `--conversation-id`, `--label=fits\|does_not_fit` (false positive), optional `--note`, `--msg-index`/`--msg-dedup-token` |
921
964
  | `moda step-scores <conversation_id>` | Graph-PRM step scores: per-segment curves, first bad step, rollup |
922
965
  | `moda world-state <conversation_id>` | Agent memory: slots/threads/events; `--summary-only`; `--snapshot --msg-index=N` (state at a turn); `--replay --message-count=N` (state over time) |
923
966
  | `moda failures` | Production failures worth fixing first |