jevctl 0.1.0 → 0.2.1

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.
Files changed (133) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/NOTICE +4 -0
  3. package/README.md +54 -388
  4. package/SECURITY.md +5 -3
  5. package/dist/cli.js +105 -16
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/ask.d.ts +5 -1
  8. package/dist/commands/ask.js +27 -10
  9. package/dist/commands/ask.js.map +1 -1
  10. package/dist/commands/auth.d.ts +14 -0
  11. package/dist/commands/auth.js +158 -0
  12. package/dist/commands/auth.js.map +1 -0
  13. package/dist/commands/batch.d.ts +28 -0
  14. package/dist/commands/batch.js +221 -0
  15. package/dist/commands/batch.js.map +1 -0
  16. package/dist/commands/classify.d.ts +34 -0
  17. package/dist/commands/classify.js +187 -0
  18. package/dist/commands/classify.js.map +1 -0
  19. package/dist/commands/compact.d.ts +29 -0
  20. package/dist/commands/compact.js +146 -0
  21. package/dist/commands/compact.js.map +1 -0
  22. package/dist/commands/config.d.ts +2 -1
  23. package/dist/commands/config.js +27 -10
  24. package/dist/commands/config.js.map +1 -1
  25. package/dist/commands/extract.d.ts +18 -0
  26. package/dist/commands/extract.js +108 -0
  27. package/dist/commands/extract.js.map +1 -0
  28. package/dist/commands/find.d.ts +5 -1
  29. package/dist/commands/find.js +30 -15
  30. package/dist/commands/find.js.map +1 -1
  31. package/dist/commands/match.d.ts +18 -0
  32. package/dist/commands/match.js +118 -0
  33. package/dist/commands/match.js.map +1 -0
  34. package/dist/commands/models.js +12 -10
  35. package/dist/commands/models.js.map +1 -1
  36. package/dist/commands/rerank.d.ts +15 -0
  37. package/dist/commands/rerank.js +82 -0
  38. package/dist/commands/rerank.js.map +1 -0
  39. package/dist/commands/route.d.ts +19 -0
  40. package/dist/commands/route.js +120 -0
  41. package/dist/commands/route.js.map +1 -0
  42. package/dist/commands/screen.d.ts +5 -1
  43. package/dist/commands/screen.js +27 -10
  44. package/dist/commands/screen.js.map +1 -1
  45. package/dist/commands/verify.d.ts +5 -1
  46. package/dist/commands/verify.js +23 -12
  47. package/dist/commands/verify.js.map +1 -1
  48. package/dist/config.d.ts +66 -6
  49. package/dist/config.js +53 -2
  50. package/dist/config.js.map +1 -1
  51. package/dist/context.d.ts +4 -0
  52. package/dist/context.js +11 -5
  53. package/dist/context.js.map +1 -1
  54. package/dist/core/ask.js +8 -3
  55. package/dist/core/ask.js.map +1 -1
  56. package/dist/core/batch.d.ts +42 -0
  57. package/dist/core/batch.js +93 -0
  58. package/dist/core/batch.js.map +1 -0
  59. package/dist/core/classify.d.ts +103 -0
  60. package/dist/core/classify.js +216 -0
  61. package/dist/core/classify.js.map +1 -0
  62. package/dist/core/compact.d.ts +32 -0
  63. package/dist/core/compact.js +47 -0
  64. package/dist/core/compact.js.map +1 -0
  65. package/dist/core/extract.d.ts +58 -0
  66. package/dist/core/extract.js +214 -0
  67. package/dist/core/extract.js.map +1 -0
  68. package/dist/core/find.js +3 -0
  69. package/dist/core/find.js.map +1 -1
  70. package/dist/core/match.d.ts +55 -0
  71. package/dist/core/match.js +114 -0
  72. package/dist/core/match.js.map +1 -0
  73. package/dist/core/rerank.d.ts +47 -0
  74. package/dist/core/rerank.js +60 -0
  75. package/dist/core/rerank.js.map +1 -0
  76. package/dist/core/route.d.ts +74 -0
  77. package/dist/core/route.js +153 -0
  78. package/dist/core/route.js.map +1 -0
  79. package/dist/core/transcript.d.ts +15 -0
  80. package/dist/core/transcript.js +118 -0
  81. package/dist/core/transcript.js.map +1 -0
  82. package/dist/credentials.d.ts +30 -0
  83. package/dist/credentials.js +161 -0
  84. package/dist/credentials.js.map +1 -0
  85. package/dist/errors.js.map +1 -1
  86. package/dist/index.d.ts +10 -0
  87. package/dist/index.js +10 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/input.js +1 -1
  90. package/dist/input.js.map +1 -1
  91. package/dist/lib.d.ts +2 -0
  92. package/dist/lib.js +9 -0
  93. package/dist/lib.js.map +1 -1
  94. package/dist/output.d.ts +41 -3
  95. package/dist/output.js +131 -6
  96. package/dist/output.js.map +1 -1
  97. package/dist/provider.d.ts +8 -0
  98. package/dist/provider.js +44 -4
  99. package/dist/provider.js.map +1 -1
  100. package/dist/vendor/compaction/compact.d.ts +29 -0
  101. package/dist/vendor/compaction/compact.js +236 -0
  102. package/dist/vendor/compaction/compact.js.map +1 -0
  103. package/dist/vendor/compaction/index.d.ts +4 -0
  104. package/dist/vendor/compaction/index.js +8 -0
  105. package/dist/vendor/compaction/index.js.map +1 -0
  106. package/dist/vendor/compaction/request.d.ts +19 -0
  107. package/dist/vendor/compaction/request.js +53 -0
  108. package/dist/vendor/compaction/request.js.map +1 -0
  109. package/dist/vendor/compaction/state.d.ts +28 -0
  110. package/dist/vendor/compaction/state.js +258 -0
  111. package/dist/vendor/compaction/state.js.map +1 -0
  112. package/dist/vendor/compaction/types.d.ts +177 -0
  113. package/dist/vendor/compaction/types.js +4 -0
  114. package/dist/vendor/compaction/types.js.map +1 -0
  115. package/docs/ask.md +52 -0
  116. package/docs/auth.md +53 -0
  117. package/docs/batch.md +48 -0
  118. package/docs/classify.md +55 -0
  119. package/docs/compact.md +58 -0
  120. package/docs/config.md +81 -0
  121. package/docs/extract.md +59 -0
  122. package/docs/find.md +49 -0
  123. package/docs/guidelines.md +19 -0
  124. package/docs/library.md +41 -0
  125. package/docs/match.md +52 -0
  126. package/docs/output.md +65 -0
  127. package/docs/recipes.md +78 -0
  128. package/docs/rerank.md +44 -0
  129. package/docs/route.md +57 -0
  130. package/docs/screen.md +53 -0
  131. package/docs/troubleshooting.md +17 -0
  132. package/docs/verify.md +58 -0
  133. package/package.json +9 -6
@@ -2,7 +2,7 @@ import { buildVerifyRequest, runVerify, VERIFY_FAIL_CONDITIONS, verifyFailed, }
2
2
  import { CliError, EXIT } from "../errors.js";
3
3
  import { parseItems, parseList, readInput, referenceId } from "../input.js";
4
4
  import { parseFailOn, parseProbability } from "../lib.js";
5
- import { clip, emit, formatProbability, paint, table, usageLine } from "../output.js";
5
+ import { clip, emit, formatProbability, paint } from "../output.js";
6
6
  export function collectEvidence(flags) {
7
7
  const items = [];
8
8
  for (const ref of flags.evidence ?? []) {
@@ -21,6 +21,8 @@ export function collectClaims(positional, flags) {
21
21
  claims.push(...parseList(readInput(flags.claims, "claims"), "claims"));
22
22
  if (claims.length === 0)
23
23
  throw new CliError("Provide at least one claim as an argument or with --claims <@file|->.");
24
+ if (claims.some((c) => c.trim().length === 0))
25
+ throw new CliError("A claim must not be empty.");
24
26
  return claims;
25
27
  }
26
28
  export async function verifyAction(positional, flags, ctx) {
@@ -30,7 +32,7 @@ export async function verifyAction(positional, flags, ctx) {
30
32
  const failOn = parseFailOn(flags.failOn, VERIFY_FAIL_CONDITIONS, ["contradicted"]);
31
33
  if (ctx.dryRun) {
32
34
  const { state, questions } = buildVerifyRequest({ claims, evidence });
33
- emit({ ...ctx.output, format: "json" }, { model: ctx.config.model, state, questions }, () => "");
35
+ emit({ ...ctx.output, format: "json" }, { model: ctx.config.model, state, questions }, () => ({}));
34
36
  return EXIT.OK;
35
37
  }
36
38
  const output = await runVerify(ctx.ask(), { claims, evidence, autoAccept });
@@ -47,9 +49,9 @@ export function renderVerify(out, ctx) {
47
49
  ? paint(c, "yellow", v)
48
50
  : paint(c, "dim", v);
49
51
  const multiSource = out.results.some((r) => r.supporting_evidence !== null);
50
- const header = ["#", "Verdict", "Conf", "Action", "Claim"];
52
+ const columns = ["#", "Verdict", "Conf", "Action", "Claim"];
51
53
  if (multiSource)
52
- header.push("Source");
54
+ columns.push("Source");
53
55
  const rows = out.results.map((r, i) => {
54
56
  const row = [
55
57
  String(i + 1),
@@ -63,14 +65,13 @@ export function renderVerify(out, ctx) {
63
65
  return row;
64
66
  });
65
67
  const s = out.summary;
66
- const lines = [
67
- table([header, ...rows], { color: c }),
68
- "",
69
- `${s.verified} verified · ${s.contradicted} contradicted · ${s.unsupported} unsupported · ${s.needs_review} need review (auto-accept ≥ ${out.auto_accept})`,
70
- ];
71
- if (!ctx.output.quiet)
72
- lines.push(paint(c, "dim", usageLine(out.usage, out.model, out.provider)));
73
- return lines.join("\n");
68
+ return {
69
+ table: { columns, rows },
70
+ tail: [
71
+ `${s.verified} verified · ${s.contradicted} contradicted · ${s.unsupported} unsupported · ${s.needs_review} need review (auto-accept ≥ ${out.auto_accept})`,
72
+ ],
73
+ usage: { usage: out.usage, model: out.model, provider: out.provider },
74
+ };
74
75
  }
75
76
  export function registerVerify(program, run) {
76
77
  program
@@ -94,4 +95,14 @@ Examples:
94
95
  function collect(value, previous) {
95
96
  return [...previous, value];
96
97
  }
98
+ /** Batch: each row is one claim checked against the shared evidence. */
99
+ export function prepareVerifyBatch(flags, ctx) {
100
+ const evidence = collectEvidence(flags);
101
+ const autoAccept = parseProbability("--auto-accept", flags.autoAccept, ctx.config.verify.autoAccept);
102
+ const failOn = parseFailOn(flags.failOn, VERIFY_FAIL_CONDITIONS, ["contradicted"]);
103
+ return async (row) => {
104
+ const output = await runVerify(ctx.ask(), { claims: [row.text], evidence, autoAccept });
105
+ return { output, failed: verifyFailed(output, failOn) };
106
+ };
107
+ }
97
108
  //# sourceMappingURL=verify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -5,15 +5,19 @@ export type ProviderName = (typeof PROVIDERS)[number];
5
5
  export declare const partialConfigSchema: z.ZodObject<{
6
6
  provider: z.ZodOptional<z.ZodEnum<{
7
7
  auto: "auto";
8
- typesafe: "typesafe";
9
- openrouter: "openrouter";
10
8
  cloudflare: "cloudflare";
9
+ openrouter: "openrouter";
10
+ typesafe: "typesafe";
11
11
  }>>;
12
12
  model: z.ZodOptional<z.ZodString>;
13
13
  timeoutMs: z.ZodOptional<z.ZodNumber>;
14
14
  format: z.ZodOptional<z.ZodEnum<{
15
- text: "text";
15
+ csv: "csv";
16
16
  json: "json";
17
+ jsonl: "jsonl";
18
+ md: "md";
19
+ text: "text";
20
+ tsv: "tsv";
17
21
  }>>;
18
22
  verify: z.ZodOptional<z.ZodObject<{
19
23
  autoAccept: z.ZodOptional<z.ZodNumber>;
@@ -27,20 +31,49 @@ export declare const partialConfigSchema: z.ZodObject<{
27
31
  found: z.ZodOptional<z.ZodNumber>;
28
32
  absent: z.ZodOptional<z.ZodNumber>;
29
33
  }, z.core.$strip>>;
34
+ classify: z.ZodOptional<z.ZodObject<{
35
+ minConfidence: z.ZodOptional<z.ZodNumber>;
36
+ threshold: z.ZodOptional<z.ZodNumber>;
37
+ }, z.core.$strip>>;
38
+ extract: z.ZodOptional<z.ZodObject<{
39
+ minConfidence: z.ZodOptional<z.ZodNumber>;
40
+ }, z.core.$strip>>;
41
+ batch: z.ZodOptional<z.ZodObject<{
42
+ concurrency: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>>;
44
+ rerank: z.ZodOptional<z.ZodObject<{
45
+ topK: z.ZodOptional<z.ZodNumber>;
46
+ min: z.ZodOptional<z.ZodNumber>;
47
+ }, z.core.$strip>>;
48
+ route: z.ZodOptional<z.ZodObject<{
49
+ minConfidence: z.ZodOptional<z.ZodNumber>;
50
+ }, z.core.$strip>>;
51
+ compact: z.ZodOptional<z.ZodObject<{
52
+ keepThreshold: z.ZodOptional<z.ZodNumber>;
53
+ preserveRecent: z.ZodOptional<z.ZodNumber>;
54
+ maxStateTokens: z.ZodOptional<z.ZodNumber>;
55
+ maxRequestTokens: z.ZodOptional<z.ZodNumber>;
56
+ truncateHead: z.ZodOptional<z.ZodNumber>;
57
+ minReduction: z.ZodOptional<z.ZodNumber>;
58
+ }, z.core.$strip>>;
30
59
  }, z.core.$strip>;
31
60
  /** Fully resolved config with defaults. */
32
61
  export declare const configSchema: z.ZodObject<{
33
62
  provider: z.ZodDefault<z.ZodEnum<{
34
63
  auto: "auto";
35
- typesafe: "typesafe";
36
- openrouter: "openrouter";
37
64
  cloudflare: "cloudflare";
65
+ openrouter: "openrouter";
66
+ typesafe: "typesafe";
38
67
  }>>;
39
68
  model: z.ZodDefault<z.ZodString>;
40
69
  timeoutMs: z.ZodDefault<z.ZodNumber>;
41
70
  format: z.ZodDefault<z.ZodEnum<{
42
- text: "text";
71
+ csv: "csv";
43
72
  json: "json";
73
+ jsonl: "jsonl";
74
+ md: "md";
75
+ text: "text";
76
+ tsv: "tsv";
44
77
  }>>;
45
78
  verify: z.ZodPrefault<z.ZodObject<{
46
79
  autoAccept: z.ZodDefault<z.ZodNumber>;
@@ -54,6 +87,31 @@ export declare const configSchema: z.ZodObject<{
54
87
  found: z.ZodDefault<z.ZodNumber>;
55
88
  absent: z.ZodDefault<z.ZodNumber>;
56
89
  }, z.core.$strip>>;
90
+ classify: z.ZodPrefault<z.ZodObject<{
91
+ minConfidence: z.ZodDefault<z.ZodNumber>;
92
+ threshold: z.ZodDefault<z.ZodNumber>;
93
+ }, z.core.$strip>>;
94
+ extract: z.ZodPrefault<z.ZodObject<{
95
+ minConfidence: z.ZodDefault<z.ZodNumber>;
96
+ }, z.core.$strip>>;
97
+ batch: z.ZodPrefault<z.ZodObject<{
98
+ concurrency: z.ZodDefault<z.ZodNumber>;
99
+ }, z.core.$strip>>;
100
+ rerank: z.ZodPrefault<z.ZodObject<{
101
+ topK: z.ZodDefault<z.ZodNumber>;
102
+ min: z.ZodDefault<z.ZodNumber>;
103
+ }, z.core.$strip>>;
104
+ route: z.ZodPrefault<z.ZodObject<{
105
+ minConfidence: z.ZodDefault<z.ZodNumber>;
106
+ }, z.core.$strip>>;
107
+ compact: z.ZodPrefault<z.ZodObject<{
108
+ keepThreshold: z.ZodDefault<z.ZodNumber>;
109
+ preserveRecent: z.ZodDefault<z.ZodNumber>;
110
+ maxStateTokens: z.ZodDefault<z.ZodNumber>;
111
+ maxRequestTokens: z.ZodDefault<z.ZodNumber>;
112
+ truncateHead: z.ZodDefault<z.ZodNumber>;
113
+ minReduction: z.ZodDefault<z.ZodNumber>;
114
+ }, z.core.$strip>>;
57
115
  }, z.core.$strip>;
58
116
  export type JevConfig = z.infer<typeof configSchema>;
59
117
  export type PartialConfig = z.infer<typeof partialConfigSchema>;
@@ -79,3 +137,5 @@ export declare function resolveConfig(opts?: ResolveOptions): JevConfig;
79
137
  export declare function formatZodError(err: z.ZodError): string;
80
138
  /** Set a dotted key on a partial config with type coercion, validating the result. */
81
139
  export declare function setConfigValue(current: PartialConfig, dottedKey: string, rawValue: string): PartialConfig;
140
+ /** Every settable dotted key, derived from the schema so the list cannot drift. */
141
+ export declare function knownConfigKeys(): Set<string>;
package/dist/config.js CHANGED
@@ -10,7 +10,7 @@ export const partialConfigSchema = z.object({
10
10
  provider: z.enum(PROVIDERS).optional(),
11
11
  model: z.string().min(1).optional(),
12
12
  timeoutMs: z.number().int().positive().optional(),
13
- format: z.enum(["text", "json"]).optional(),
13
+ format: z.enum(["text", "json", "jsonl", "csv", "tsv", "md"]).optional(),
14
14
  verify: z.object({ autoAccept: prob.optional() }).optional(),
15
15
  screen: z.object({ blockAt: prob.optional(), reviewAt: prob.optional() }).optional(),
16
16
  find: z
@@ -20,13 +20,28 @@ export const partialConfigSchema = z.object({
20
20
  absent: prob.optional(),
21
21
  })
22
22
  .optional(),
23
+ classify: z.object({ minConfidence: prob.optional(), threshold: prob.optional() }).optional(),
24
+ extract: z.object({ minConfidence: prob.optional() }).optional(),
25
+ batch: z.object({ concurrency: z.number().int().min(1).max(64).optional() }).optional(),
26
+ rerank: z.object({ topK: z.number().int().min(1).max(250).optional(), min: prob.optional() }).optional(),
27
+ route: z.object({ minConfidence: prob.optional() }).optional(),
28
+ compact: z
29
+ .object({
30
+ keepThreshold: prob.optional(),
31
+ preserveRecent: z.number().int().min(0).optional(),
32
+ maxStateTokens: z.number().int().positive().optional(),
33
+ maxRequestTokens: z.number().int().positive().optional(),
34
+ truncateHead: z.number().int().min(0).optional(),
35
+ minReduction: prob.optional(),
36
+ })
37
+ .optional(),
23
38
  });
24
39
  /** Fully resolved config with defaults. */
25
40
  export const configSchema = z.object({
26
41
  provider: z.enum(PROVIDERS).default("auto"),
27
42
  model: z.string().min(1).default("jev-latest"),
28
43
  timeoutMs: z.number().int().positive().default(30_000),
29
- format: z.enum(["text", "json"]).default("text"),
44
+ format: z.enum(["text", "json", "jsonl", "csv", "tsv", "md"]).default("text"),
30
45
  verify: z.object({ autoAccept: prob.default(0.8) }).prefault({}),
31
46
  screen: z.object({ blockAt: prob.default(0.75), reviewAt: prob.default(0.25) }).prefault({}),
32
47
  find: z
@@ -36,6 +51,23 @@ export const configSchema = z.object({
36
51
  absent: prob.default(0.35),
37
52
  })
38
53
  .prefault({}),
54
+ classify: z.object({ minConfidence: prob.default(0.6), threshold: prob.default(0.5) }).prefault({}),
55
+ extract: z.object({ minConfidence: prob.default(0.6) }).prefault({}),
56
+ batch: z.object({ concurrency: z.number().int().min(1).max(64).default(4) }).prefault({}),
57
+ rerank: z
58
+ .object({ topK: z.number().int().min(1).max(250).default(10), min: prob.default(0.5) })
59
+ .prefault({}),
60
+ route: z.object({ minConfidence: prob.default(0.6) }).prefault({}),
61
+ compact: z
62
+ .object({
63
+ keepThreshold: prob.default(0.5),
64
+ preserveRecent: z.number().int().min(0).default(6),
65
+ maxStateTokens: z.number().int().positive().default(25_000),
66
+ maxRequestTokens: z.number().int().positive().default(30_000),
67
+ truncateHead: z.number().int().min(0).default(300),
68
+ minReduction: prob.default(0.25),
69
+ })
70
+ .prefault({}),
39
71
  });
40
72
  export const DEFAULT_CONFIG = configSchema.parse({});
41
73
  /** Location of the user config file. `JEV_CONFIG` overrides; otherwise XDG or ~/.config. */
@@ -130,11 +162,30 @@ export function setConfigValue(current, dottedKey, rawValue) {
130
162
  cursor = cursor[segment];
131
163
  }
132
164
  cursor[path[path.length - 1]] = coerce(rawValue);
165
+ const known = knownConfigKeys();
166
+ if (!known.has(dottedKey)) {
167
+ throw new CliError(`Unknown config key "${dottedKey}". Known keys: ${[...known].join(", ")}.`);
168
+ }
133
169
  const result = partialConfigSchema.safeParse(next);
134
170
  if (!result.success)
135
171
  throw new CliError(`Cannot set ${dottedKey}: ${formatZodError(result.error)}`);
136
172
  return result.data;
137
173
  }
174
+ /** Every settable dotted key, derived from the schema so the list cannot drift. */
175
+ export function knownConfigKeys() {
176
+ const keys = new Set();
177
+ const walk = (shape, prefix) => {
178
+ for (const [k, v] of Object.entries(shape)) {
179
+ const inner = v instanceof z.ZodOptional ? v.unwrap() : v;
180
+ if (inner instanceof z.ZodObject)
181
+ walk(inner.shape, `${prefix}${k}.`);
182
+ else
183
+ keys.add(`${prefix}${k}`);
184
+ }
185
+ };
186
+ walk(partialConfigSchema.shape, "");
187
+ return keys;
188
+ }
138
189
  function coerce(raw) {
139
190
  if (raw === "true")
140
191
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -4,6 +4,7 @@ import { type AskFn } from "./provider.js";
4
4
  /** Global flags shared by every command (declared on the root program). */
5
5
  export interface GlobalFlags {
6
6
  json?: boolean;
7
+ md?: boolean;
7
8
  format?: string;
8
9
  model?: string;
9
10
  provider?: string;
@@ -11,9 +12,12 @@ export interface GlobalFlags {
11
12
  color?: boolean;
12
13
  quiet?: boolean;
13
14
  dryRun?: boolean;
15
+ pluck?: string;
14
16
  }
15
17
  export interface CommandContext {
16
18
  config: JevConfig;
19
+ /** Environment with stored credentials filled in where the shell had none. */
20
+ env: NodeJS.ProcessEnv;
17
21
  output: OutputOptions;
18
22
  dryRun: boolean;
19
23
  /** Lazily build the provider; commands that never call Jev (dry-run, config) avoid needing credentials. */
package/dist/context.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { PROVIDERS, resolveConfig } from "./config.js";
2
+ import { withStoredCredentials } from "./credentials.js";
2
3
  import { CliError } from "./errors.js";
3
- import { shouldColor } from "./output.js";
4
+ import { FORMATS, shouldColor } from "./output.js";
4
5
  import { createAsk } from "./provider.js";
5
6
  export function flagsToConfig(flags) {
6
7
  const out = {};
@@ -21,21 +22,25 @@ export function flagsToConfig(flags) {
21
22
  }
22
23
  if (flags.json)
23
24
  out.format = "json";
25
+ else if (flags.md)
26
+ out.format = "md";
24
27
  else if (flags.format) {
25
- if (flags.format !== "json" && flags.format !== "text") {
26
- throw new CliError(`Unknown format "${flags.format}". Allowed: text, json.`);
28
+ const f = flags.format.toLowerCase();
29
+ if (!FORMATS.includes(f)) {
30
+ throw new CliError(`Unknown format "${flags.format}". Allowed: ${FORMATS.join(", ")}.`);
27
31
  }
28
- out.format = flags.format;
32
+ out.format = f;
29
33
  }
30
34
  return out;
31
35
  }
32
36
  export function buildContext(flags, opts = {}) {
33
- const env = opts.env ?? process.env;
37
+ const env = withStoredCredentials(opts.env ?? process.env);
34
38
  const config = resolveConfig({ env, flags: flagsToConfig(flags), useFile: opts.useFile });
35
39
  const output = {
36
40
  format: config.format,
37
41
  color: flags.color === false ? false : shouldColor(env),
38
42
  quiet: Boolean(flags.quiet),
43
+ pluck: flags.pluck?.trim() || undefined,
39
44
  stream: opts.stream,
40
45
  };
41
46
  let cached;
@@ -43,6 +48,7 @@ export function buildContext(flags, opts = {}) {
43
48
  ((cfg, e) => createAsk({ provider: cfg.provider, model: cfg.model, timeoutMs: cfg.timeoutMs, env: e }));
44
49
  return {
45
50
  config,
51
+ env,
46
52
  output,
47
53
  dryRun: Boolean(flags.dryRun),
48
54
  ask: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,SAAS,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAmC,WAAW,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AAiCtD,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC9C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACzC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAE,SAA+B,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,QAAQ,CAAC,qBAAqB,KAAK,CAAC,QAAQ,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChG,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,CAAiB,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,MAAM,IAAI,QAAQ,CAAC,sDAAsD,CAAC,CAAC;QAC7E,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;SAC/B,IAAI,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;SAChC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAE,OAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,QAAQ,CAAC,mBAAmB,KAAK,CAAC,MAAM,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,CAAW,CAAC;IAC3B,CAAC;IACD,OAAO,GAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAkB,EAAE,IAAI,GAAmB,EAAE;IACxE,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAkB;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;QACvD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAC3B,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;IACF,IAAI,MAAyB,CAAC;IAC9B,MAAM,OAAO,GACX,IAAI,CAAC,UAAU;QACf,CAAC,CAAC,GAAc,EAAE,CAAoB,EAAE,EAAE,CACxC,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,OAAO;QACL,MAAM;QACN,GAAG;QACH,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/core/ask.js CHANGED
@@ -75,16 +75,21 @@ export function questionsFromFlags(flags) {
75
75
  const questions = {};
76
76
  let n = 0;
77
77
  const nextId = (prefix) => `${prefix}${++n}`;
78
+ const add = (id, q) => {
79
+ if (id in questions)
80
+ throw new Error(`Question id "${id}" is used twice.`);
81
+ questions[id] = q;
82
+ };
78
83
  for (const raw of flags.noul ?? []) {
79
84
  const { id, instructions } = splitShorthand(raw, nextId("q"));
80
- questions[id] = noul(instructions);
85
+ add(id, noul(instructions));
81
86
  }
82
87
  for (const raw of flags.choice ?? []) {
83
88
  const { id, instructions: rest } = splitShorthand(raw, nextId("q"));
84
89
  const { instructions, options } = splitOptions(rest);
85
90
  if (options.length < 2)
86
91
  throw new Error(`Choice "${id}" needs at least two options.`);
87
- questions[id] = choice(instructions, Object.fromEntries(options.map((o) => [o.label, o.description])));
92
+ add(id, choice(instructions, Object.fromEntries(options.map((o) => [o.label, o.description]))));
88
93
  }
89
94
  for (const raw of flags.score ?? []) {
90
95
  const { id, instructions: rest } = splitShorthand(raw, nextId("q"));
@@ -92,7 +97,7 @@ export function questionsFromFlags(flags) {
92
97
  if (options.length < 2)
93
98
  throw new Error(`Score "${id}" needs at least two levels.`);
94
99
  const levels = options.map((o) => (o.description ? `${o.label}: ${o.description}` : o.label));
95
- questions[id] = score(instructions, levels);
100
+ add(id, score(instructions, levels));
96
101
  }
97
102
  return parseQuestions(questions);
98
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/core/ask.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,iFAAiF;AAEjF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAEvG,MAAM,cAAc,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAClD,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC9F,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC;KACtC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAChC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;KACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IACxC,OAAO,EAAE,oCAAoC;CAC9C,CAAC,CAAC;AAIL,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,UAAkB;IAC5D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;IACnE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,gEAAgE,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IAItC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,IAAI,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,UAAU;SACvB,KAAK,CAAC,UAAU,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC3D,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IACjG,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC;AAQD,iFAAiF;AACjF,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IACtD,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;IAErD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;QACtF,SAAS,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,MAAuC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAeD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAU,EAAE,KAAe;IACtD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACpF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/core/ask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface BatchRow {
2
+ index: number;
3
+ id: string;
4
+ /** Primary text input, or structured state for `ask --state-json`. */
5
+ text: string;
6
+ state?: unknown;
7
+ /** Extra per-row fields from JSONL, passed through to the output. */
8
+ meta?: Record<string, unknown>;
9
+ }
10
+ export interface BatchItemResult {
11
+ output: unknown;
12
+ failed: boolean;
13
+ }
14
+ export type BatchItemRunner = (row: BatchRow) => Promise<BatchItemResult>;
15
+ export interface BatchRecord {
16
+ index: number;
17
+ id: string;
18
+ ok: boolean;
19
+ failed: boolean;
20
+ result?: unknown;
21
+ error?: string;
22
+ meta?: Record<string, unknown>;
23
+ }
24
+ export interface BatchSummary {
25
+ total: number;
26
+ ok: number;
27
+ errors: number;
28
+ failed: number;
29
+ input_tokens: number;
30
+ output_tokens: number;
31
+ }
32
+ /** Parse rows from JSONL (objects with text/state and optional id) or plain lines. */
33
+ export declare function parseRows(raw: string): BatchRow[];
34
+ export interface RunBatchOptions {
35
+ concurrency: number;
36
+ onRecord?: (record: BatchRecord) => void;
37
+ }
38
+ /** Run all rows through `item` with a fixed-size worker pool. Records (and `onRecord` calls) follow input order. */
39
+ export declare function runBatch(rows: BatchRow[], item: BatchItemRunner, opts: RunBatchOptions): Promise<{
40
+ records: BatchRecord[];
41
+ summary: BatchSummary;
42
+ }>;
@@ -0,0 +1,93 @@
1
+ // Run one judgment per input row with bounded concurrency. Command modules
2
+ // supply a `BatchItemRunner`; this file only knows about rows and pooling.
3
+ /** Parse rows from JSONL (objects with text/state and optional id) or plain lines. */
4
+ export function parseRows(raw) {
5
+ const lines = raw.split(/\r?\n/).filter((l) => l.trim().length > 0);
6
+ const rows = [];
7
+ lines.forEach((line, i) => {
8
+ const trimmed = line.trim();
9
+ if (trimmed.startsWith("{")) {
10
+ let obj;
11
+ try {
12
+ obj = JSON.parse(trimmed);
13
+ }
14
+ catch (err) {
15
+ throw new Error(`Row ${i + 1} is not valid JSON: ${err.message}`);
16
+ }
17
+ const { id, text, state, ...meta } = obj;
18
+ if (typeof text !== "string" && state === undefined) {
19
+ throw new Error(`Row ${i + 1} needs a "text" string or a "state" value.`);
20
+ }
21
+ rows.push({
22
+ index: i,
23
+ id: id === undefined ? String(i + 1) : String(id),
24
+ text: typeof text === "string" ? text : JSON.stringify(state),
25
+ state: state === undefined ? text : state,
26
+ meta: Object.keys(meta).length ? meta : undefined,
27
+ });
28
+ }
29
+ else if (trimmed.startsWith("[")) {
30
+ throw new Error("Batch input must be JSONL (one object per line) or plain lines, not a JSON array.");
31
+ }
32
+ else {
33
+ rows.push({ index: i, id: String(i + 1), text: trimmed, state: trimmed });
34
+ }
35
+ });
36
+ if (rows.length === 0)
37
+ throw new Error("Batch input is empty.");
38
+ return rows;
39
+ }
40
+ /** Run all rows through `item` with a fixed-size worker pool. Records (and `onRecord` calls) follow input order. */
41
+ export async function runBatch(rows, item, opts) {
42
+ const records = new Array(rows.length);
43
+ const summary = {
44
+ total: rows.length,
45
+ ok: 0,
46
+ errors: 0,
47
+ failed: 0,
48
+ input_tokens: 0,
49
+ output_tokens: 0,
50
+ };
51
+ let next = 0;
52
+ // Emit records in input order even though rows finish out of order.
53
+ let flushed = 0;
54
+ const flush = () => {
55
+ while (flushed < rows.length && records[flushed] !== undefined) {
56
+ opts.onRecord?.(records[flushed]);
57
+ flushed++;
58
+ }
59
+ };
60
+ const worker = async () => {
61
+ while (next < rows.length) {
62
+ const row = rows[next++];
63
+ let record;
64
+ try {
65
+ const { output, failed } = await item(row);
66
+ record = { index: row.index, id: row.id, ok: true, failed, result: output, meta: row.meta };
67
+ summary.ok++;
68
+ if (failed)
69
+ summary.failed++;
70
+ const usage = output?.usage;
71
+ summary.input_tokens += usage?.input_tokens ?? 0;
72
+ summary.output_tokens += usage?.output_tokens ?? 0;
73
+ }
74
+ catch (err) {
75
+ record = {
76
+ index: row.index,
77
+ id: row.id,
78
+ ok: false,
79
+ failed: false,
80
+ error: err.message,
81
+ meta: row.meta,
82
+ };
83
+ summary.errors++;
84
+ }
85
+ records[row.index] = record;
86
+ flush();
87
+ }
88
+ };
89
+ const n = Math.max(1, Math.min(opts.concurrency, rows.length));
90
+ await Promise.all(Array.from({ length: n }, worker));
91
+ return { records, summary };
92
+ }
93
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/core/batch.ts"],"names":[],"mappings":"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"}