@moda-ai/cli 1.55.24 → 1.55.26
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-b4tdzy9q.js → agent-nqmha8ck.js} +8 -8
- package/dist/{cli-9hc5bg2r.js → cli-1mbb0ct0.js} +1 -1
- package/dist/{cli-vg88mg20.js → cli-5g1tv80h.js} +5 -5
- package/dist/{cli-rt26sbz7.js → cli-8tfk8qeb.js} +10 -6
- package/dist/{cli-y2ty9vtv.js → cli-b4740tnv.js} +210 -23
- package/dist/{cli-qvg26twp.js → cli-cdrvjva5.js} +11 -8
- package/dist/{cli-7xc585hc.js → cli-d577kq6h.js} +5 -5
- package/dist/{cli-dn91fb56.js → cli-jgfm7w1r.js} +89 -47
- package/dist/{cli-9btx12wp.js → cli-jtyvbd8d.js} +1 -1
- package/dist/{cli-qycsmxev.js → cli-k6q8dbpk.js} +3 -3
- package/dist/{cli-0wr3483h.js → cli-q6f6vrrr.js} +1 -1
- package/dist/{cli-dve50x7p.js → cli-sqsjd08w.js} +784 -725
- package/dist/cli.js +713 -234
- package/dist/{doctor-3r19ry92.js → doctor-w913fj4g.js} +8 -8
- package/dist/{fix-exvxzvtz.js → fix-crkwdkt4.js} +6 -6
- package/dist/{harness-github-actions-atc5bbkj.js → harness-github-actions-fjhvhgpj.js} +5 -5
- package/dist/{harness-vzy7n7ea.js → harness-x3e7d68b.js} +5 -5
- package/dist/{index-e1pf1qz2.js → index-2kf3fnnb.js} +11 -11
- package/dist/{production-intelligence-c8e0xw3n.js → production-intelligence-7n83c701.js} +75 -15
- package/dist/{profile-commands-6e2dgv72.js → profile-commands-ct2t0bfr.js} +3 -3
- package/dist/prompt-source-mcp.js +5 -5
- package/dist/{prompts-cvzt994j.js → prompts-92aqqb2k.js} +6 -6
- package/dist/{provision-q86phh4a.js → provision-gn8raqpt.js} +5 -5
- package/dist/{registry-s2vdsfw8.js → registry-ex162j5y.js} +3 -3
- package/dist/{skills-tadh1jss.js → skills-2mbsj9bt.js} +5 -5
- package/dist/{sync-g8wtecz1.js → sync-kghmmmk5.js} +7 -7
- package/package.json +1 -1
- package/skills/integration/index.json +2 -2
- package/skills/moda-cli/SKILL.md +8 -2
- package/skills/moda-cli/references/dashboard-parity.md +1 -1
- package/skills/moda-cli/references/output-protocol.md +35 -10
- package/skills/moda-cli/references/production-intelligence.md +3 -2
- package/skills/moda-cli/references/prompts.md +6 -2
- package/skills/moda-cli/references/search-and-traces.md +20 -2
|
@@ -2,16 +2,17 @@ import {
|
|
|
2
2
|
ApiError,
|
|
3
3
|
callControlAPI,
|
|
4
4
|
callDataAPI
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-jtyvbd8d.js";
|
|
6
6
|
import {
|
|
7
7
|
CliAccessError,
|
|
8
8
|
CliInputError,
|
|
9
|
+
continuationCommand,
|
|
9
10
|
embeddedTenantIdFromApiKey,
|
|
10
11
|
isPlatformApiKey,
|
|
11
12
|
resolveApiKey,
|
|
12
13
|
resolveApiTenantId,
|
|
13
14
|
setPlatformTenantOverride
|
|
14
|
-
} from "./cli-
|
|
15
|
+
} from "./cli-sqsjd08w.js";
|
|
15
16
|
|
|
16
17
|
// src/schemas.ts
|
|
17
18
|
import { z } from "zod";
|
|
@@ -41,12 +42,12 @@ var ClustersSchema = z.object({
|
|
|
41
42
|
search: z.string().min(2).max(200).optional().describe("Find clusters by name or meaning"),
|
|
42
43
|
node_id: z.string().min(1).max(512).optional().describe("Resolve one cluster node by id (deep link)"),
|
|
43
44
|
mode: z.enum(["fuzzy", "semantic", "hybrid"]).optional().describe("Cluster search mode (server default hybrid)"),
|
|
44
|
-
limit: z.number().min(1).max(50).optional().describe("Maximum clusters to return (with --search/--node-id)")
|
|
45
|
+
limit: z.number().int().min(1).max(50).optional().describe("Maximum clusters to return (with --search/--node-id)")
|
|
45
46
|
});
|
|
46
47
|
var ClusterConversationsSchema = z.object({
|
|
47
48
|
node_id: z.string().describe("Cluster node id (from moda clusters)"),
|
|
48
|
-
limit: z.number().min(1).max(100).default(10).optional().describe("Maximum traces to return"),
|
|
49
|
-
offset: z.number().min(0).default(0).optional().describe("Number of traces to skip")
|
|
49
|
+
limit: z.number().int().min(1).max(100).default(10).optional().describe("Maximum traces to return"),
|
|
50
|
+
offset: z.number().int().min(0).default(0).optional().describe("Number of traces to skip")
|
|
50
51
|
});
|
|
51
52
|
var ConversationsSchema = z.object({
|
|
52
53
|
search: z.string().optional().describe("Ranked trace search (hybrid when embeddings exist, else keyword)"),
|
|
@@ -60,20 +61,20 @@ var ConversationsSchema = z.object({
|
|
|
60
61
|
outcome: z.enum(["any", "positive", "negative"]).default("any").optional().describe("Filter by trace outcome (trajectory + frustration)"),
|
|
61
62
|
include_world_state: boolFlag().describe("Attach each result's world-state summary"),
|
|
62
63
|
sort: z.enum(["recent", "longest", "slowest"]).optional().describe("recent = newest activity, longest = most messages, slowest = longest span"),
|
|
63
|
-
limit: z.number().min(1).max(100).default(20).optional().describe("Maximum traces to return"),
|
|
64
|
-
offset: z.number().min(0).default(0).optional().describe("Number of traces to skip")
|
|
64
|
+
limit: z.number().int().min(1).max(100).default(20).optional().describe("Maximum traces to return"),
|
|
65
|
+
offset: z.number().int().min(0).default(0).optional().describe("Number of traces to skip")
|
|
65
66
|
});
|
|
66
67
|
var WorldStateSchema = z.object({
|
|
67
68
|
conversation_id: z.string().describe("Trace ID"),
|
|
68
69
|
summary_only: boolFlag().describe("Segment summaries only (omit the event stream)"),
|
|
69
|
-
event_limit: z.number().min(1).max(5000).default(2000).optional().describe("Maximum world-state events to return"),
|
|
70
|
+
event_limit: z.number().int().min(1).max(5000).default(2000).optional().describe("Maximum world-state events to return"),
|
|
70
71
|
snapshot: boolFlag().describe("Folded slots at one tick (what the agent believed at that turn)"),
|
|
71
|
-
msg_index: z.number().min(0).max(1e5).optional().describe("Snapshot tick: message index (default 0)"),
|
|
72
|
-
block_index: z.number().min(0).max(1e5).optional().describe("Snapshot tick: content block index (default 0)"),
|
|
73
|
-
segment_index: z.number().min(0).max(65535).optional().describe("Scope the snapshot to one segment"),
|
|
72
|
+
msg_index: z.number().int().min(0).max(1e5).optional().describe("Snapshot tick: message index (default 0)"),
|
|
73
|
+
block_index: z.number().int().min(0).max(1e5).optional().describe("Snapshot tick: content block index (default 0)"),
|
|
74
|
+
segment_index: z.number().int().min(0).max(65535).optional().describe("Scope the snapshot to one segment"),
|
|
74
75
|
replay: boolFlag().describe("State-over-time replay (frames mode needs --message-count)"),
|
|
75
76
|
format: z.enum(["frames", "fold-inputs"]).optional().describe("Replay format (default frames)"),
|
|
76
|
-
message_count: z.number().min(1).max(1e6).optional().describe("Messages to fold in frames mode")
|
|
77
|
+
message_count: z.number().int().min(1).max(1e6).optional().describe("Messages to fold in frames mode")
|
|
77
78
|
});
|
|
78
79
|
var ContextSchema = z.object({
|
|
79
80
|
conversation_id: z.string().min(1).describe("Trace ID"),
|
|
@@ -87,10 +88,10 @@ var ContextSchema = z.object({
|
|
|
87
88
|
});
|
|
88
89
|
var FrustrationsSchema = z.object({
|
|
89
90
|
days_back: daysBackFlag(7),
|
|
90
|
-
limit: z.number().min(1).max(20).default(10).optional().describe("Maximum detections to return"),
|
|
91
|
-
offset: z.number().min(0).default(0).optional().describe("Number of detections to skip"),
|
|
91
|
+
limit: z.number().int().min(1).max(20).default(10).optional().describe("Maximum detections to return"),
|
|
92
|
+
offset: z.number().int().min(0).default(0).optional().describe("Number of detections to skip"),
|
|
92
93
|
include_window: boolFlag().describe("Attach the surrounding messages to each detection (agent output omits them by default)"),
|
|
93
|
-
window: z.number().min(1).max(5).default(1).optional().describe("Messages on each side with --include-window"),
|
|
94
|
+
window: z.number().int().min(1).max(5).default(1).optional().describe("Messages on each side with --include-window"),
|
|
94
95
|
user_id: z.string().min(1).max(256).optional().describe("Scope everything to one end user"),
|
|
95
96
|
conversation_id: z.string().min(1).max(256).optional().describe("Scope everything to one trace ID")
|
|
96
97
|
});
|
|
@@ -99,7 +100,7 @@ var ToolFailuresSchema = z.object({
|
|
|
99
100
|
});
|
|
100
101
|
var ProblemsSchema = z.object({
|
|
101
102
|
days_back: daysBackFlag(30),
|
|
102
|
-
limit: z.number().min(1).max(25).default(25).optional().describe("Maximum Problems to return")
|
|
103
|
+
limit: z.number().int().min(1).max(25).default(25).optional().describe("Maximum Problems to return")
|
|
103
104
|
});
|
|
104
105
|
var REMAINDER_FAMILIES = [
|
|
105
106
|
"tool_failure",
|
|
@@ -112,7 +113,7 @@ var REMAINDER_FAMILIES = [
|
|
|
112
113
|
];
|
|
113
114
|
var ProblemsRemainderSchema = z.object({
|
|
114
115
|
days_back: daysBackFlag(30),
|
|
115
|
-
limit: z.number().min(1).max(25).default(25).optional().describe("Maximum groups to return"),
|
|
116
|
+
limit: z.number().int().min(1).max(25).default(25).optional().describe("Maximum groups to return"),
|
|
116
117
|
family: z.enum(REMAINDER_FAMILIES).optional().describe("Only this signal family (frustration is under emotion)"),
|
|
117
118
|
cursor: z.string().min(1).max(4096).optional().describe("next_cursor from the previous page, verbatim")
|
|
118
119
|
});
|
|
@@ -150,7 +151,7 @@ var ProblemSchema = z.object({
|
|
|
150
151
|
conversations: boolFlag().describe("Legacy alias of --traces"),
|
|
151
152
|
feedback: boolFlag().describe("Feedback history page"),
|
|
152
153
|
full: boolFlag().describe("Complete dossier in agent output (default is a compact dossier)"),
|
|
153
|
-
limit: z.number().min(1).max(50).optional().describe("Page size for a sub-resource page"),
|
|
154
|
+
limit: z.number().int().min(1).max(50).optional().describe("Page size for a sub-resource page"),
|
|
154
155
|
cursor: z.string().optional().describe("next_cursor from the previous page, verbatim"),
|
|
155
156
|
family: z.enum(PROBLEM_FAMILIES).optional().describe("With --traces: only this signal family"),
|
|
156
157
|
door: z.enum(PROBLEM_DOORS).optional().describe("With --traces: only this attribution door")
|
|
@@ -180,8 +181,8 @@ var SignalSchema = z.object({
|
|
|
180
181
|
id: z.string().min(1).max(255).describe("Custom signal id"),
|
|
181
182
|
detections: boolFlag().describe("List recent hits instead of the summary"),
|
|
182
183
|
days_back: daysBackFlag(),
|
|
183
|
-
limit: z.number().min(1).max(20).optional().describe("Hits page size (server default 10)"),
|
|
184
|
-
offset: z.number().min(0).max(1e4).optional().describe("Number of hits to skip")
|
|
184
|
+
limit: z.number().int().min(1).max(20).optional().describe("Hits page size (server default 10)"),
|
|
185
|
+
offset: z.number().int().min(0).max(1e4).optional().describe("Number of hits to skip")
|
|
185
186
|
});
|
|
186
187
|
var SIGNAL_LABELS = ["fits", "does_not_fit"];
|
|
187
188
|
var SignalLabelSchema = z.object({
|
|
@@ -251,8 +252,8 @@ var EMOTION_FAMILIES = [
|
|
|
251
252
|
];
|
|
252
253
|
var EmotionsSchema = z.object({
|
|
253
254
|
days_back: daysBackFlag(7),
|
|
254
|
-
limit: z.number().min(1).max(20).default(10).optional().describe("Maximum detections to return"),
|
|
255
|
-
offset: z.number().min(0).max(1e4).optional().describe("Number of detections to skip"),
|
|
255
|
+
limit: z.number().int().min(1).max(20).default(10).optional().describe("Maximum detections to return"),
|
|
256
|
+
offset: z.number().int().min(0).max(1e4).optional().describe("Number of detections to skip"),
|
|
256
257
|
family: z.enum(EMOTION_FAMILIES).optional().describe("Only this family in the detections list (summary covers all)"),
|
|
257
258
|
user_id: z.string().min(1).max(256).optional().describe("Scope everything to one end user"),
|
|
258
259
|
conversation_id: z.string().min(1).max(256).optional().describe("Scope everything to one trace ID"),
|
|
@@ -260,8 +261,8 @@ var EmotionsSchema = z.object({
|
|
|
260
261
|
});
|
|
261
262
|
var HallucinationsSchema = z.object({
|
|
262
263
|
days_back: daysBackFlag(7),
|
|
263
|
-
limit: z.number().min(1).max(20).default(10).optional().describe("Maximum detections to return"),
|
|
264
|
-
offset: z.number().min(0).max(1e4).optional().describe("Number of detections to skip"),
|
|
264
|
+
limit: z.number().int().min(1).max(20).default(10).optional().describe("Maximum detections to return"),
|
|
265
|
+
offset: z.number().int().min(0).max(1e4).optional().describe("Number of detections to skip"),
|
|
265
266
|
conversation_id: z.string().max(200).optional().describe("Scope summary and list to one trace ID"),
|
|
266
267
|
kind: z.enum(["contradicted", "verified"]).optional().describe("Only this kind in the detections list")
|
|
267
268
|
});
|
|
@@ -288,8 +289,8 @@ var LAZINESS_FAMILIES = [
|
|
|
288
289
|
];
|
|
289
290
|
var LazinessSchema = z.object({
|
|
290
291
|
days_back: daysBackFlag(7),
|
|
291
|
-
limit: z.number().min(1).max(50).default(10).optional().describe("Maximum detections to return"),
|
|
292
|
-
offset: z.number().min(0).max(1e4).optional().describe("Number of detections to skip"),
|
|
292
|
+
limit: z.number().int().min(1).max(50).default(10).optional().describe("Maximum detections to return"),
|
|
293
|
+
offset: z.number().int().min(0).max(1e4).optional().describe("Number of detections to skip"),
|
|
293
294
|
conversation_id: z.string().max(200).optional().describe("One trace's detections"),
|
|
294
295
|
family: z.enum(LAZINESS_FAMILIES).optional().describe("Only this laziness family")
|
|
295
296
|
});
|
|
@@ -298,30 +299,32 @@ var StepScoresSchema = z.object({
|
|
|
298
299
|
});
|
|
299
300
|
var TAIL_SIGNALS = ["traces", "conversations", "emotions", "all"];
|
|
300
301
|
var TailSchema = z.object({
|
|
301
|
-
interval: z.number().min(5).max(3600).default(15).optional().describe("Seconds between polls"),
|
|
302
|
+
interval: z.number().int().min(5).max(3600).default(15).optional().describe("Seconds between polls"),
|
|
302
303
|
signal: z.enum(TAIL_SIGNALS).default("traces").optional().describe("What to tail (conversations = legacy alias of traces)"),
|
|
303
304
|
once: boolFlag().describe("Poll once, then exit (baseline page)"),
|
|
304
|
-
limit: z.number().min(1).max(50).default(20).optional().describe("Page size per poll"),
|
|
305
|
-
max_events: z.number().min(1).max(1e5).optional().describe("Stop after this many stdout records"),
|
|
305
|
+
limit: z.number().int().min(1).max(50).default(20).optional().describe("Page size per poll"),
|
|
306
|
+
max_events: z.number().int().min(1).max(1e5).optional().describe("Stop after this many stdout records"),
|
|
306
307
|
full_scan: boolFlag().describe("Emotions: scan the whole window, not the top-scoring prefix (many more requests)")
|
|
307
308
|
});
|
|
308
309
|
var ToolFailureDetailSchema = z.object({
|
|
309
310
|
tool_name: z.string().describe("Tool name (from moda detections tools)"),
|
|
310
311
|
subtype: z.string().optional().describe("Only this failure subtype"),
|
|
311
312
|
days_back: daysBackFlag(7),
|
|
312
|
-
limit: z.number().min(1).max(20).default(5).optional().describe("Maximum examples to return"),
|
|
313
|
-
offset: z.number().min(0).default(0).optional().describe("Number of examples to skip"),
|
|
313
|
+
limit: z.number().int().min(1).max(20).default(5).optional().describe("Maximum examples to return"),
|
|
314
|
+
offset: z.number().int().min(0).default(0).optional().describe("Number of examples to skip"),
|
|
314
315
|
include_window: boolFlag().describe("Embed each example's surrounding messages (on by default)"),
|
|
315
316
|
compact: boolFlag().describe("Drop each example's embedded messages (same as --include-window=false)"),
|
|
316
|
-
window: z.number().min(1).max(5).default(1).optional().describe("Messages on each side of the anchor")
|
|
317
|
+
window: z.number().int().min(1).max(5).default(1).optional().describe("Messages on each side of the anchor")
|
|
317
318
|
});
|
|
318
319
|
var AuditSchema = z.object({
|
|
319
320
|
id: z.string().min(1).describe("Trace ID or OTLP trace_id"),
|
|
320
321
|
kind: z.enum(["auto", "trace", "conversation"]).default("auto").optional().describe("How to read the id (auto tries trace, then conversation)"),
|
|
321
322
|
include_raw: boolFlag().describe("Include raw span rows"),
|
|
322
323
|
include_bodies: boolFlag().describe("Keep prompt/response bodies (omitted by default; long strings truncated)"),
|
|
323
|
-
limit: z.number().min(1).max(1000).default(200).optional().describe("Ingest rows to read; warns when capped"),
|
|
324
|
+
limit: z.number().int().min(1).max(1000).default(200).optional().describe("Ingest rows to read; warns when capped"),
|
|
324
325
|
cursor: z.string().min(1).max(512).optional().describe("next_cursor from the previous page"),
|
|
326
|
+
span_offset: z.number().int().min(0).max(1e5).optional().describe("Skip this many spans of the page (continues a page cut to the agent output limit)"),
|
|
327
|
+
page_bytes: z.number().int().min(1).max(1e7).optional().describe("Server page size in bytes (keeps a --span-offset continuation on the same page)"),
|
|
325
328
|
ids_from: z.string().min(1).optional().describe("Read several trace ids, one per line, from a file or - for stdin (batch mode, up to 25)")
|
|
326
329
|
});
|
|
327
330
|
var TIME_RANGES = ["all", "1h", "3d", "7d", "24h", "30d", "90d"];
|
|
@@ -334,9 +337,9 @@ var SearchSchema = z.object({
|
|
|
334
337
|
time_range: z.enum(TIME_RANGES).default("all").optional().describe("Time window"),
|
|
335
338
|
since: isoBoundFlag().describe("Absolute UTC start, inclusive (ISO date or datetime); intersected with --time-range"),
|
|
336
339
|
until: isoBoundFlag().describe("Absolute UTC end, inclusive (ISO date or datetime; a date covers that whole day)"),
|
|
337
|
-
limit: z.number().min(1).max(100).default(20).optional().describe("Maximum results to return"),
|
|
340
|
+
limit: z.number().int().min(1).max(100).default(20).optional().describe("Maximum results to return"),
|
|
338
341
|
include_tool_io: boolFlag().describe("Also search tool inputs and outputs"),
|
|
339
|
-
offset: z.number().min(0).max(1e4).optional().describe("Skip results (pages the trace-level fallback only)")
|
|
342
|
+
offset: z.number().int().min(0).max(1e4).optional().describe("Skip results (pages the trace-level fallback only)")
|
|
340
343
|
});
|
|
341
344
|
var InvestigateSchema = z.object({
|
|
342
345
|
days_back: daysBackFlag(7),
|
|
@@ -500,19 +503,58 @@ function dedicatedCommandHint(category, rawCategory) {
|
|
|
500
503
|
return "Feedback is read by the Moda team but does not change the problem. To act on it directly, use " + "`moda problems feedback <problem_id> --action=flag_attribution --attribution-id=<uuid> --reason=TEXT` (a trace wrongly " + "attributed to a problem), `moda review <kind> <target> --reason=TEXT` (a detection that should not " + "have fired), or `moda fix dismiss <fix_id> --reason=TEXT` (a fix aimed at the wrong problem).";
|
|
501
504
|
}
|
|
502
505
|
|
|
506
|
+
// src/dry-run.ts
|
|
507
|
+
function plannedEndpoint(plane, path) {
|
|
508
|
+
return plane === "data" ? `/api/v1/data${path}` : `/api${path}`;
|
|
509
|
+
}
|
|
510
|
+
function realRunCommand(context) {
|
|
511
|
+
const invocation = context.invocation ?? {
|
|
512
|
+
command: context.command,
|
|
513
|
+
positionals: context.positionals,
|
|
514
|
+
flags: context.rawFlags,
|
|
515
|
+
...context.bareFlags ? { bareFlags: context.bareFlags } : {}
|
|
516
|
+
};
|
|
517
|
+
const flags = Object.fromEntries(Object.entries(invocation.flags).filter(([key]) => key.replace(/_/g, "-") !== "dry-run"));
|
|
518
|
+
return continuationCommand({ ...invocation, flags }, {});
|
|
519
|
+
}
|
|
520
|
+
function writeDryRun(context, request) {
|
|
521
|
+
const endpoint = plannedEndpoint(request.plane, request.path);
|
|
522
|
+
const command = realRunCommand(context);
|
|
523
|
+
context.output.writeData({
|
|
524
|
+
dryRun: true,
|
|
525
|
+
planned: {
|
|
526
|
+
method: request.method,
|
|
527
|
+
endpoint,
|
|
528
|
+
...request.body !== undefined ? { body: request.body } : {},
|
|
529
|
+
...request.generatedFields?.length ? { generated_at_send: request.generatedFields } : {}
|
|
530
|
+
}
|
|
531
|
+
}, {
|
|
532
|
+
summary: { text: `Dry run: would ${request.method} ${endpoint}. Nothing was sent.`, confidence: "high" },
|
|
533
|
+
nextCommands: [{
|
|
534
|
+
command,
|
|
535
|
+
purpose: "Send this write for real (the same command without --dry-run).",
|
|
536
|
+
mutability: "write",
|
|
537
|
+
requires_approval: true
|
|
538
|
+
}]
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
|
|
503
542
|
// src/command-flags.ts
|
|
504
543
|
import { z as z3 } from "zod";
|
|
544
|
+
var DRY_RUN = z3.object({
|
|
545
|
+
dry_run: z3.boolean().optional().describe("Validate and print the exact request (method, path, body); send nothing")
|
|
546
|
+
});
|
|
505
547
|
var TRACE_ID = { name: "conversation_id", key: "conversation_id", required: true };
|
|
506
548
|
var PROBLEM_ID = { name: "problem_id", key: "id", required: true };
|
|
507
549
|
var COMMAND_FLAG_SPECS = {
|
|
508
550
|
overview: { schema: OverviewSchema, extra: z3.object({ raw: z3.boolean().optional().describe("Print the raw briefing data") }) },
|
|
509
551
|
investigate: { schema: InvestigateSchema, handParsed: true },
|
|
510
552
|
failures: { schema: FailuresSchema, handParsed: true },
|
|
511
|
-
ask: { schema: AskSchema, handParsed: true, positionals: [{ name: "question", key: "question", required: true }] },
|
|
553
|
+
ask: { schema: AskSchema, handParsed: true, positionals: [{ name: "question", key: "question", required: true, variadic: true }] },
|
|
512
554
|
clusters: { schema: ClustersSchema },
|
|
513
555
|
"cluster-traces": { schema: ClusterConversationsSchema, positionals: [{ name: "node_id", key: "node_id", required: true }] },
|
|
514
556
|
traces: { schema: ConversationsSchema },
|
|
515
|
-
search: { schema: SearchSchema, positionals: [{ name: "query", key: "q", required: true }] },
|
|
557
|
+
search: { schema: SearchSchema, positionals: [{ name: "query", key: "q", required: true, variadic: true }] },
|
|
516
558
|
"world-state": { schema: WorldStateSchema, positionals: [TRACE_ID] },
|
|
517
559
|
context: {
|
|
518
560
|
schema: ContextSchema,
|
|
@@ -529,14 +571,15 @@ var COMMAND_FLAG_SPECS = {
|
|
|
529
571
|
},
|
|
530
572
|
"problem-impact": { schema: ProblemImpactSchema, handParsed: true },
|
|
531
573
|
problem: { schema: ProblemSchema, positionals: [PROBLEM_ID] },
|
|
532
|
-
"problem-feedback": { schema: ProblemFeedbackSchema, handParsed: true, positionals: [PROBLEM_ID] },
|
|
574
|
+
"problem-feedback": { schema: ProblemFeedbackSchema, extra: DRY_RUN, handParsed: true, positionals: [PROBLEM_ID] },
|
|
533
575
|
"problem-reopen": { schema: ProblemReopenSchema, handParsed: true, positionals: [PROBLEM_ID] },
|
|
534
576
|
"problem-linear": { schema: ProblemLinearSchema, handParsed: true, positionals: [PROBLEM_ID] },
|
|
535
|
-
"problem-linear-file": { schema: ProblemLinearFileSchema, handParsed: true, positionals: [PROBLEM_ID] },
|
|
577
|
+
"problem-linear-file": { schema: ProblemLinearFileSchema, extra: DRY_RUN, handParsed: true, positionals: [PROBLEM_ID] },
|
|
536
578
|
"detection-reviews": { schema: DetectionReviewsSchema, handParsed: true, positionals: [TRACE_ID] },
|
|
537
|
-
"detection-review": { schema: DetectionReviewSchema, handParsed: true, positionals: [PROBLEM_ID] },
|
|
579
|
+
"detection-review": { schema: DetectionReviewSchema, extra: DRY_RUN, handParsed: true, positionals: [PROBLEM_ID] },
|
|
538
580
|
"false-positive": {
|
|
539
581
|
schema: FalsePositiveSchema,
|
|
582
|
+
extra: DRY_RUN,
|
|
540
583
|
handParsed: true,
|
|
541
584
|
positionals: [
|
|
542
585
|
{ name: "kind", key: "kind", required: true },
|
|
@@ -551,7 +594,7 @@ var COMMAND_FLAG_SPECS = {
|
|
|
551
594
|
signals: { schema: SignalsListSchema, handParsed: true },
|
|
552
595
|
signal: { schema: SignalSchema, positionals: [{ name: "signal_id", key: "id", required: true }] },
|
|
553
596
|
"trace-signals": { schema: TraceSignalsSchema, handParsed: true, positionals: [TRACE_ID] },
|
|
554
|
-
"signal-label": { schema: SignalLabelSchema, handParsed: true, positionals: [{ name: "signal_id", key: "id", required: true }] },
|
|
597
|
+
"signal-label": { schema: SignalLabelSchema, extra: DRY_RUN, handParsed: true, positionals: [{ name: "signal_id", key: "id", required: true }] },
|
|
555
598
|
emotions: { schema: EmotionsSchema },
|
|
556
599
|
laziness: { schema: LazinessSchema },
|
|
557
600
|
hallucinations: { schema: HallucinationsSchema },
|
|
@@ -559,6 +602,7 @@ var COMMAND_FLAG_SPECS = {
|
|
|
559
602
|
tail: { schema: TailSchema },
|
|
560
603
|
feedback: {
|
|
561
604
|
schema: FeedbackSchema,
|
|
605
|
+
extra: DRY_RUN,
|
|
562
606
|
handParsed: true,
|
|
563
607
|
idRefFlags: true,
|
|
564
608
|
positionals: [{ name: "note", key: "note", required: true, variadic: true, alsoFlag: true }]
|
|
@@ -878,7 +922,8 @@ function assertFlags(command, flags, allowed) {
|
|
|
878
922
|
"stream",
|
|
879
923
|
"no-stream",
|
|
880
924
|
"tui",
|
|
881
|
-
"no-tui"
|
|
925
|
+
"no-tui",
|
|
926
|
+
"pretty"
|
|
882
927
|
];
|
|
883
928
|
const known = new Set([...allowed, ...globals]);
|
|
884
929
|
const unknown = Object.keys(flags).filter((flag) => !known.has(flag));
|
|
@@ -939,10 +984,7 @@ var LLM_WRITE_TIMEOUT_MS = 180000;
|
|
|
939
984
|
async function send(context, plane, method, endpoint, body, options = {}) {
|
|
940
985
|
const init = { method, ...body !== undefined ? { body: JSON.stringify(body) } : {} };
|
|
941
986
|
if (method !== "GET" && context.dryRun) {
|
|
942
|
-
context
|
|
943
|
-
dryRun: true,
|
|
944
|
-
planned: { method, endpoint: plane === "data" ? `/api/v1/data${endpoint}` : `/api${endpoint}`, ...body !== undefined ? { body } : {} }
|
|
945
|
-
}, { summary: { text: `Dry run: would ${method} ${endpoint}. Nothing was sent.`, confidence: "high" } });
|
|
987
|
+
writeDryRun(context, { plane, method, path: endpoint, ...body !== undefined ? { body } : {} });
|
|
946
988
|
return;
|
|
947
989
|
}
|
|
948
990
|
const requestOptions = method === "GET" ? {} : { retries: 0, ...options.slow ? { timeoutMs: LLM_WRITE_TIMEOUT_MS } : {} };
|
|
@@ -1297,4 +1339,4 @@ function unknownSignalsSubcommandError(sub, args = []) {
|
|
|
1297
1339
|
${SIGNAL_USAGE}`);
|
|
1298
1340
|
}
|
|
1299
1341
|
|
|
1300
|
-
export { ProblemsRemainderSchema, UUID_RE, ProblemImpactSchema, PROBLEM_FEEDBACK_ACTIONS, ProblemFeedbackSchema, ProblemLinearFileSchema, SignalLabelSchema, DETECTION_VERDICTS, DetectionReviewSchema, FALSE_POSITIVE_KINDS, FalsePositiveSchema, EMOTION_FAMILIES, LAZINESS_FAMILIES, StepScoresSchema, AuditSchema, FEEDBACK_USAGE, isFeedbackRefFlag, buildFeedbackRequest, COMMAND_FLAG_SPECS, flagSpecFor, kebabFlag, schemaShape, specFlagKeys, specFlagNames, describeSpecFlags, closestMatches, renderFlagHelp, subcommandHelpFlags, manifestFlagFields, requireTenant, assertFlags, assertPositionals, runUsersCommand, runUserCommand, runProblemReopenCommand, runSignalsManagementCommand, SIGNALS_MANAGEMENT_SUBCOMMANDS, unknownSignalsSubcommandError };
|
|
1342
|
+
export { ProblemsRemainderSchema, UUID_RE, ProblemImpactSchema, PROBLEM_FEEDBACK_ACTIONS, ProblemFeedbackSchema, ProblemLinearFileSchema, SignalLabelSchema, DETECTION_VERDICTS, DetectionReviewSchema, FALSE_POSITIVE_KINDS, FalsePositiveSchema, EMOTION_FAMILIES, LAZINESS_FAMILIES, StepScoresSchema, AuditSchema, FEEDBACK_USAGE, isFeedbackRefFlag, buildFeedbackRequest, writeDryRun, COMMAND_FLAG_SPECS, flagSpecFor, kebabFlag, schemaShape, describeField, specFlagKeys, specFlagNames, describeSpecFlags, closestMatches, usageLine, renderFlagHelp, subcommandHelpFlags, manifestFlagFields, requireTenant, assertFlags, assertPositionals, runUsersCommand, runUserCommand, runProblemReopenCommand, runSignalsManagementCommand, SIGNALS_MANAGEMENT_SUBCOMMANDS, unknownSignalsSubcommandError };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchApiKeyProbe
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-1mbb0ct0.js";
|
|
4
4
|
import {
|
|
5
5
|
authFetch,
|
|
6
6
|
getCachedLoginContext
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-q6f6vrrr.js";
|
|
8
8
|
import {
|
|
9
9
|
CliAccessError,
|
|
10
10
|
CliInputError,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
resolveTenantIdFromActiveProfile,
|
|
19
19
|
saveCliConfig,
|
|
20
20
|
writeSecretJsonFile
|
|
21
|
-
} from "./cli-
|
|
21
|
+
} from "./cli-sqsjd08w.js";
|
|
22
22
|
|
|
23
23
|
// src/init/tenant.ts
|
|
24
24
|
import { randomUUID } from "node:crypto";
|