@moda-ai/cli 1.55.22 → 1.55.24
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/{agent-mj622k8s.js → agent-b4tdzy9q.js} +8 -9
- package/dist/{cli-9x9adrtj.js → cli-0wr3483h.js} +1 -1
- package/dist/{cli-a5c9te95.js → cli-7xc585hc.js} +5 -5
- package/dist/{cli-rqk6f6n6.js → cli-9btx12wp.js} +24 -5
- package/dist/cli-9hc5bg2r.js +61 -0
- package/dist/{cli-cehskjde.js → cli-dn91fb56.js} +13 -15
- package/dist/{cli-5ke3xe6y.js → cli-dve50x7p.js} +258 -28
- package/dist/{cli-569hj0bj.js → cli-qvg26twp.js} +5 -4
- package/dist/{cli-033n2mpb.js → cli-qycsmxev.js} +6 -9
- package/dist/{cli-0ef72tqx.js → cli-rt26sbz7.js} +14 -14
- package/dist/{cli-pc5cw7mx.js → cli-vg88mg20.js} +5 -5
- package/dist/{cli-wf7gfa1e.js → cli-y2ty9vtv.js} +8 -10
- package/dist/cli.js +1310 -346
- package/dist/{doctor-mx6jf435.js → doctor-3r19ry92.js} +8 -9
- package/dist/{fix-9fmy6p2x.js → fix-exvxzvtz.js} +6 -7
- package/dist/{harness-github-actions-c826bfxs.js → harness-github-actions-atc5bbkj.js} +5 -6
- package/dist/{harness-xvg6ws6x.js → harness-vzy7n7ea.js} +5 -6
- package/dist/{index-1wbjz3jc.js → index-e1pf1qz2.js} +17 -17
- package/dist/{production-intelligence-dbe9dmc5.js → production-intelligence-c8e0xw3n.js} +17 -16
- package/dist/{profile-commands-kmmd9y86.js → profile-commands-6e2dgv72.js} +7 -48
- package/dist/prompt-source-mcp.js +5 -6
- package/dist/{prompts-1tkhrxkq.js → prompts-cvzt994j.js} +6 -7
- package/dist/{provision-wzttap58.js → provision-q86phh4a.js} +5 -4
- package/dist/{registry-atqyb5fa.js → registry-s2vdsfw8.js} +3 -4
- package/dist/{skills-gejdvjak.js → skills-tadh1jss.js} +5 -6
- package/dist/{sync-57ercmh9.js → sync-g8wtecz1.js} +7 -8
- package/package.json +1 -1
- package/skills/integration/index.json +2 -2
- package/skills/moda-cli/SKILL.md +31 -29
- package/skills/moda-cli/references/commands.md +22 -22
- package/skills/moda-cli/references/dashboard-parity.md +4 -4
- package/skills/moda-cli/references/detections.md +10 -10
- package/skills/moda-cli/references/feedback.md +2 -2
- package/skills/moda-cli/references/output-protocol.md +2 -2
- package/skills/moda-cli/references/production-intelligence.md +10 -10
- package/skills/moda-cli/references/recipes.md +14 -14
- package/skills/moda-cli/references/search-and-traces.md +32 -32
- package/skills/moda-cli/references/signals-and-false-positives.md +29 -29
- package/skills/moda-cli/references/troubleshooting.md +4 -4
- package/dist/cli-7ea02wca.js +0 -30
|
@@ -7,23 +7,23 @@ Loaded on demand from the moda-cli skill.
|
|
|
7
7
|
**Mark anything as a false positive with one command.** `--reason` (why the
|
|
8
8
|
detection is wrong) is optional but recommended; marks are logged for Moda's review.
|
|
9
9
|
A marked item disappears from every list and count (`moda problems`,
|
|
10
|
-
`
|
|
11
|
-
`--
|
|
10
|
+
`detections list`, `detections tools`, problem evidence, the dashboard);
|
|
11
|
+
`--verdict=clear` brings it back.
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
moda
|
|
15
|
-
moda
|
|
14
|
+
moda review problem <problem_id> --reason="two unrelated tools" # dismiss: hidden at once
|
|
15
|
+
moda review problem-detection <problem_id> --conversation-id=<id> \
|
|
16
16
|
--attribution-id=<uuid> --reason="refund was approved" # one piece of evidence
|
|
17
|
-
moda
|
|
17
|
+
moda review quote <conversation_id> --family=frustration --turn=3 \
|
|
18
18
|
--quote="this is useless lol" --reason="user was joking" # one user quote
|
|
19
|
-
moda
|
|
19
|
+
moda review tool <conversation_id> --tool=send_invoice \
|
|
20
20
|
--tool-use-id=<tool_use_id> --reason="retried upstream" # one failing tool call
|
|
21
|
-
moda
|
|
22
|
-
moda
|
|
23
|
-
moda
|
|
24
|
-
moda
|
|
25
|
-
moda
|
|
26
|
-
moda
|
|
21
|
+
moda review laziness <conversation_id> --reason="reload is expected"
|
|
22
|
+
moda review hallucination <conversation_id> --reason="price came from the tool result"
|
|
23
|
+
moda review custom-signal <signal_id> --conversation-id=<id> --reason="refund was approved"
|
|
24
|
+
moda review laziness <conversation_id> --verdict=clear # remove a mark (any kind but problem)
|
|
25
|
+
moda reviews list # every current mark (--kind=tool, --all, --limit)
|
|
26
|
+
moda reviews list <conversation_id> # marks + problem reviews on a trace
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
What each flag does downstream:
|
|
@@ -36,12 +36,12 @@ What each flag does downstream:
|
|
|
36
36
|
| `quote`, `tool`, `laziness`, `hallucination` | Audit only: recorded for review, never fed back to the detectors |
|
|
37
37
|
|
|
38
38
|
Find targets with the read commands: `--family`, `--turn` and `--quote` verbatim
|
|
39
|
-
from a `user_quotes` entry in `moda
|
|
40
|
-
`moda
|
|
41
|
-
laziness traces from `moda laziness`; hallucination traces from
|
|
42
|
-
`moda
|
|
43
|
-
`moda
|
|
44
|
-
`moda
|
|
39
|
+
from a `user_quotes` entry in `moda detections list --family=emotion`; a failing call's `tool_use_id` (or `msg_index` when it has none) from
|
|
40
|
+
`moda detections tools <tool_name>`;
|
|
41
|
+
laziness traces from `moda detections list --family=laziness`; hallucination traces from
|
|
42
|
+
`moda detections list --family=hallucination`; custom-signal hits from `moda detections list --family=custom_signal` or
|
|
43
|
+
`moda detections list --family=custom_signal --signal-id=<id>`; problem evidence ids from
|
|
44
|
+
`moda problems get <id> --evidence`.
|
|
45
45
|
|
|
46
46
|
**Custom signals** are tenant-defined behaviors (pass/fail criteria) judged on
|
|
47
47
|
every trace. Read them, then label hits so each signal has labelled examples:
|
|
@@ -49,9 +49,9 @@ every trace. Read them, then label hits so each signal has labelled examples:
|
|
|
49
49
|
```bash
|
|
50
50
|
moda signals # every signal: criteria, status, 7-day judged/matched
|
|
51
51
|
moda signal <signal_id> # one signal's summary
|
|
52
|
-
moda signal
|
|
53
|
-
moda
|
|
54
|
-
moda signal
|
|
52
|
+
moda detections list --family=custom_signal --signal-id=<signal_id> --days-back=30 # recent hits (limit 1–20, --offset to page)
|
|
53
|
+
moda detections list --family=custom_signal --conversation-id=<conversation_id> # signal hits on one trace
|
|
54
|
+
moda review custom-signal <signal_id> --conversation-id=<id> --verdict=false_positive \
|
|
55
55
|
--note="refund was approved" --msg-index=<anchor_msg_index>
|
|
56
56
|
```
|
|
57
57
|
|
|
@@ -62,18 +62,18 @@ message, and always give a `--note` when rejecting. Labels are throttled to 10
|
|
|
62
62
|
per minute per API key and are never retried automatically.
|
|
63
63
|
|
|
64
64
|
**Problem detections** (the dashboard's flag on problem evidence) are reviewed with
|
|
65
|
-
`detection
|
|
66
|
-
`moda
|
|
65
|
+
`moda review problem-detection`. A `false_positive` drops the detection out of
|
|
66
|
+
`moda problems get <id> --evidence` and is fed back to the problem reader; `clear`
|
|
67
67
|
undoes an earlier review.
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
moda
|
|
71
|
-
moda
|
|
70
|
+
moda reviews list <conversation_id> --kind=problem-detection # problem detections on a trace + review state
|
|
71
|
+
moda review problem-detection <problem_id> --conversation-id=<id> \
|
|
72
72
|
--attribution-id=<uuid> --verdict=false_positive --note="retry was expected"
|
|
73
|
-
moda
|
|
73
|
+
moda review problem-detection <problem_id> --conversation-id=<id> \
|
|
74
74
|
--attribution-id=<uuid> --verdict=clear # undo
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
`attribution_id` comes from `moda
|
|
78
|
-
`moda
|
|
79
|
-
`
|
|
77
|
+
`attribution_id` comes from `moda reviews list <conversation_id> --kind=problem-detection` or
|
|
78
|
+
`moda problems get <problem_id> --evidence`. Prefer `review problem-detection` over
|
|
79
|
+
`problems feedback --action=flag_attribution` for a single wrong detection.
|
|
@@ -14,9 +14,9 @@ Loaded on demand from the moda-cli skill.
|
|
|
14
14
|
mode prints prose to stderr. Check the exit code before claiming success.
|
|
15
15
|
- An unknown trace, problem, or cluster id exits 1 with
|
|
16
16
|
`errors[0].code: "not_found"`; it is not an empty success.
|
|
17
|
-
- `moda
|
|
17
|
+
- `moda traces state` returns success with a warning when state is missing.
|
|
18
18
|
This can mean an unknown trace or a real trace without generated state.
|
|
19
|
-
Use `moda
|
|
19
|
+
Use `moda traces get <id> --metadata-only` to check whether the trace exists.
|
|
20
20
|
- If the JSON has `"conversations": []` or `"frustrations": []`, the call
|
|
21
21
|
worked but the time window is empty. Widen the window once
|
|
22
22
|
(`--days-back` on detection commands, `--time-range` on `traces`,
|
|
@@ -36,7 +36,7 @@ save it with `moda auth login --api-key`.
|
|
|
36
36
|
**`not_found` (exit 1)**
|
|
37
37
|
The trace, problem, or cluster id does not exist in this tenant (a trace with
|
|
38
38
|
no generated world state returns a warning, not `not_found`).
|
|
39
|
-
`errors[0].cause` names the listing command: `moda search`/`moda traces`,
|
|
39
|
+
`errors[0].cause` names the listing command: `moda traces search`/`moda traces`,
|
|
40
40
|
`moda problems`, `moda clusters`. A tool name with no failures in the window
|
|
41
41
|
returns an empty result with a warning instead.
|
|
42
42
|
|
|
@@ -52,7 +52,7 @@ warning that gives the `--all` command for a wider slice.
|
|
|
52
52
|
Widen the window: try `--days-back=30` or `--time-range=30d`. Confirm with
|
|
53
53
|
`moda overview` that data exists in the tenant at all.
|
|
54
54
|
|
|
55
|
-
**`moda search` returns nothing, or semantic feels like keyword**
|
|
55
|
+
**`moda traces search` returns nothing, or semantic feels like keyword**
|
|
56
56
|
The default `--time-range` is `all`, so an empty result usually means the
|
|
57
57
|
phrasing, not the window: try a shorter phrase or the exact identifier with
|
|
58
58
|
`--mode=keyword`, and add `--include-tool-io` for strings that only appear in
|
package/dist/cli-7ea02wca.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveTenantId
|
|
3
|
-
} from "./cli-5ke3xe6y.js";
|
|
4
|
-
|
|
5
|
-
// src/api-key-headers.ts
|
|
6
|
-
var PLATFORM_API_KEY_PREFIX = "moda_pk_";
|
|
7
|
-
var TENANT_HEADER = "x-moda-tenant-id";
|
|
8
|
-
function isPlatformApiKey(key) {
|
|
9
|
-
return Boolean(key?.startsWith(PLATFORM_API_KEY_PREFIX));
|
|
10
|
-
}
|
|
11
|
-
var platformTenantOverride;
|
|
12
|
-
function setPlatformTenantOverride(tenantId) {
|
|
13
|
-
platformTenantOverride = tenantId;
|
|
14
|
-
}
|
|
15
|
-
var TENANT_PATH = /\/tenants\/([^/?#]+)/;
|
|
16
|
-
function tenantFromUrl(url) {
|
|
17
|
-
const match = url ? TENANT_PATH.exec(url) : null;
|
|
18
|
-
return match ? decodeURIComponent(match[1]) : undefined;
|
|
19
|
-
}
|
|
20
|
-
function apiKeyHeaders(key, options = {}, url) {
|
|
21
|
-
const headers = { "x-api-key": key };
|
|
22
|
-
if (isPlatformApiKey(key)) {
|
|
23
|
-
const tenantId = tenantFromUrl(url) || platformTenantOverride || resolveTenantId(options);
|
|
24
|
-
if (tenantId)
|
|
25
|
-
headers[TENANT_HEADER] = tenantId;
|
|
26
|
-
}
|
|
27
|
-
return headers;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export { isPlatformApiKey, setPlatformTenantOverride, apiKeyHeaders };
|