anpord 0.1.16 → 0.1.17
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/README.md +1 -1
- package/dist/api-context.cjs +1 -1
- package/dist/api-context.d.cts +1 -1
- package/dist/api-context.d.mts +1 -1
- package/dist/api-context.mjs +1 -1
- package/dist/{api-mocks-Bz3G00ve.d.cts → api-mocks-BXZmPUwV.d.cts} +11 -11
- package/dist/{api-mocks-Bz3G00ve.d.mts → api-mocks-BXZmPUwV.d.mts} +11 -11
- package/dist/{api-mocks-B3qngoqS.cjs → api-mocks-CuVw86Qw.cjs} +1 -1
- package/dist/{api-mocks-BfKw_hXc.mjs → api-mocks-wNUnpzJf.mjs} +1 -1
- package/dist/api-runtime.cjs +1 -1
- package/dist/api-runtime.d.cts +1 -1
- package/dist/api-runtime.d.mts +1 -1
- package/dist/api-runtime.mjs +1 -1
- package/dist/api.cjs +1 -1
- package/dist/api.d.cts +1 -1
- package/dist/api.d.mts +1 -1
- package/dist/api.mjs +1 -1
- package/dist/bin.cjs +4 -4
- package/dist/bin.mjs +4 -4
- package/dist/cli-runtime.cjs +9 -26
- package/dist/cli-runtime.mjs +5 -22
- package/dist/{client-CMkx-LKC.d.cts → client-BVoIRPot.d.cts} +1066 -1066
- package/dist/{client-YWKJd3f-.mjs → client-DE3YNtWc.mjs} +1 -1
- package/dist/{client-CfYNoI3L.cjs → client-DziJjMFh.cjs} +1 -1
- package/dist/{client-C8tBcLYs.d.mts → client-_OgJhHpJ.d.mts} +1066 -1066
- package/dist/{compiler-Dsltkkj5.mjs → compiler-C62ss3a4.mjs} +133 -89
- package/dist/{compiler-4FKsNxZ-.cjs → compiler-CYwJNlT4.cjs} +162 -88
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/config.mjs +1 -1
- package/dist/{eval-judges-JiC8cUCE.d.cts → eval-judges-0FkhUOIB.d.cts} +3 -3
- package/dist/{eval-judges-JiC8cUCE.d.mts → eval-judges-0FkhUOIB.d.mts} +3 -3
- package/dist/{eval-judges-BkmiVLLq.cjs → eval-judges-1zF4PVqV.cjs} +1 -1
- package/dist/{eval-judges-CwTvTq7N.mjs → eval-judges-Bee_ABJt.mjs} +1 -1
- package/dist/{eval-validations-CqMUt5ra.cjs → eval-validations-BdlPhudg.cjs} +1 -1
- package/dist/{eval-validations-Bmagd2y7.mjs → eval-validations-BvX9dkYh.mjs} +1 -1
- package/dist/eval.cjs +4 -1
- package/dist/eval.d.cts +244 -15
- package/dist/eval.d.mts +244 -15
- package/dist/eval.mjs +2 -2
- package/dist/{evals-B2UuSop0.d.cts → evals-CFxc4IrF.d.cts} +116 -116
- package/dist/{evals-B2UuSop0.d.mts → evals-CFxc4IrF.d.mts} +116 -116
- package/dist/{evals-api-kOuyIqvB.cjs → evals-api-CqhPZCr5.cjs} +2 -2
- package/dist/{evals-api-DDv4gXU1.mjs → evals-api-CsdU741J.mjs} +2 -2
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +11 -7
- package/dist/index.d.mts +11 -7
- package/dist/index.mjs +6 -6
- package/dist/mcp-runtime.cjs +9 -18
- package/dist/mcp-runtime.mjs +5 -14
- package/dist/mock-journal-Bnaozlx4.cjs +39 -0
- package/dist/mock-journal-rbsXfDRs.mjs +22 -0
- package/dist/{runtime-YVJP5P2r.cjs → runtime-CXcsGvwP.cjs} +2 -2
- package/dist/{runtime-C0_JPkef.mjs → runtime-DDUrsAI-.mjs} +2 -2
- package/dist/source.d.cts +1 -1
- package/dist/source.d.mts +1 -1
- package/dist/{evals-api-CfAA3cew.d.mts → types-BjQf9IIi.d.mts} +126 -16
- package/dist/{evals-api-Clbj_nEN.d.cts → types-C2nRDJ95.d.cts} +126 -16
- package/dist/validator-runtime.cjs +1 -1
- package/dist/validator-runtime.d.cts +1 -1
- package/dist/validator-runtime.d.mts +1 -1
- package/dist/validator-runtime.mjs +1 -1
- package/dist/validators.cjs +1 -1
- package/dist/validators.d.cts +1 -1
- package/dist/validators.d.mts +1 -1
- package/dist/validators.mjs +1 -1
- package/package.json +1 -1
- package/dist/types-BHokRQpg.d.mts +0 -112
- package/dist/types-UKEi5CCa.d.cts +0 -112
package/README.md
CHANGED
|
@@ -93,7 +93,7 @@ const correctness = judge({
|
|
|
93
93
|
name: "correctness",
|
|
94
94
|
harness: "codex",
|
|
95
95
|
model: "gpt-5.6-sol",
|
|
96
|
-
|
|
96
|
+
prompt: "The answer matches the reference without inventing facts.",
|
|
97
97
|
expected: "Ada",
|
|
98
98
|
choices: { correct: 1, incorrect: 0 },
|
|
99
99
|
});
|
package/dist/api-context.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_api_mocks = require("./api-mocks-
|
|
2
|
+
const require_api_mocks = require("./api-mocks-CuVw86Qw.cjs");
|
|
3
3
|
let effect = require("effect");
|
|
4
4
|
let node_fs_promises = require("node:fs/promises");
|
|
5
5
|
//#region src/mock-api/context.ts
|
package/dist/api-context.d.cts
CHANGED
package/dist/api-context.d.mts
CHANGED
package/dist/api-context.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ApiCall, n as API_MANIFEST, o as ApiManifest, t as API_JOURNAL } from "./api-mocks-
|
|
1
|
+
import { a as ApiCall, n as API_MANIFEST, o as ApiManifest, t as API_JOURNAL } from "./api-mocks-wNUnpzJf.mjs";
|
|
2
2
|
import { Schema } from "effect";
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
//#region src/mock-api/context.ts
|
|
@@ -57,10 +57,6 @@ declare const ApiCall_base: Schema.Class<ApiCall, {
|
|
|
57
57
|
truncated: typeof Schema.Boolean;
|
|
58
58
|
}>>>;
|
|
59
59
|
}>, never, {
|
|
60
|
-
readonly startedAt: number;
|
|
61
|
-
} & {
|
|
62
|
-
readonly status: number;
|
|
63
|
-
} & {
|
|
64
60
|
readonly api: string;
|
|
65
61
|
} & {
|
|
66
62
|
readonly path: string;
|
|
@@ -69,28 +65,32 @@ declare const ApiCall_base: Schema.Class<ApiCall, {
|
|
|
69
65
|
} & {
|
|
70
66
|
readonly error: string | null;
|
|
71
67
|
} & {
|
|
72
|
-
readonly
|
|
73
|
-
|
|
74
|
-
readonly input: {
|
|
68
|
+
readonly output: {
|
|
69
|
+
readonly format: "text" | "json";
|
|
75
70
|
readonly truncated: boolean;
|
|
76
71
|
readonly text: string;
|
|
77
|
-
readonly format: "text" | "json";
|
|
78
72
|
readonly state: "captured" | "disabled" | "unavailable";
|
|
79
73
|
};
|
|
80
74
|
} & {
|
|
81
|
-
readonly
|
|
75
|
+
readonly input: {
|
|
76
|
+
readonly format: "text" | "json";
|
|
82
77
|
readonly truncated: boolean;
|
|
83
78
|
readonly text: string;
|
|
84
|
-
readonly format: "text" | "json";
|
|
85
79
|
readonly state: "captured" | "disabled" | "unavailable";
|
|
86
80
|
};
|
|
81
|
+
} & {
|
|
82
|
+
readonly startedAt: number;
|
|
83
|
+
} & {
|
|
84
|
+
readonly status: number;
|
|
85
|
+
} & {
|
|
86
|
+
readonly durationMs: number;
|
|
87
87
|
} & {
|
|
88
88
|
readonly method: string;
|
|
89
89
|
} & {
|
|
90
90
|
readonly logs: readonly {
|
|
91
|
+
readonly format: "text" | "json";
|
|
91
92
|
readonly truncated: boolean;
|
|
92
93
|
readonly text: string;
|
|
93
|
-
readonly format: "text" | "json";
|
|
94
94
|
readonly state: "captured" | "disabled" | "unavailable";
|
|
95
95
|
}[];
|
|
96
96
|
} & {
|
|
@@ -57,10 +57,6 @@ declare const ApiCall_base: Schema.Class<ApiCall, {
|
|
|
57
57
|
truncated: typeof Schema.Boolean;
|
|
58
58
|
}>>>;
|
|
59
59
|
}>, never, {
|
|
60
|
-
readonly startedAt: number;
|
|
61
|
-
} & {
|
|
62
|
-
readonly status: number;
|
|
63
|
-
} & {
|
|
64
60
|
readonly api: string;
|
|
65
61
|
} & {
|
|
66
62
|
readonly path: string;
|
|
@@ -69,28 +65,32 @@ declare const ApiCall_base: Schema.Class<ApiCall, {
|
|
|
69
65
|
} & {
|
|
70
66
|
readonly error: string | null;
|
|
71
67
|
} & {
|
|
72
|
-
readonly
|
|
73
|
-
|
|
74
|
-
readonly input: {
|
|
68
|
+
readonly output: {
|
|
69
|
+
readonly format: "text" | "json";
|
|
75
70
|
readonly truncated: boolean;
|
|
76
71
|
readonly text: string;
|
|
77
|
-
readonly format: "text" | "json";
|
|
78
72
|
readonly state: "captured" | "disabled" | "unavailable";
|
|
79
73
|
};
|
|
80
74
|
} & {
|
|
81
|
-
readonly
|
|
75
|
+
readonly input: {
|
|
76
|
+
readonly format: "text" | "json";
|
|
82
77
|
readonly truncated: boolean;
|
|
83
78
|
readonly text: string;
|
|
84
|
-
readonly format: "text" | "json";
|
|
85
79
|
readonly state: "captured" | "disabled" | "unavailable";
|
|
86
80
|
};
|
|
81
|
+
} & {
|
|
82
|
+
readonly startedAt: number;
|
|
83
|
+
} & {
|
|
84
|
+
readonly status: number;
|
|
85
|
+
} & {
|
|
86
|
+
readonly durationMs: number;
|
|
87
87
|
} & {
|
|
88
88
|
readonly method: string;
|
|
89
89
|
} & {
|
|
90
90
|
readonly logs: readonly {
|
|
91
|
+
readonly format: "text" | "json";
|
|
91
92
|
readonly truncated: boolean;
|
|
92
93
|
readonly text: string;
|
|
93
|
-
readonly format: "text" | "json";
|
|
94
94
|
readonly state: "captured" | "disabled" | "unavailable";
|
|
95
95
|
}[];
|
|
96
96
|
} & {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_eval_validations = require("./eval-validations-
|
|
1
|
+
const require_eval_validations = require("./eval-validations-BdlPhudg.cjs");
|
|
2
2
|
let effect = require("effect");
|
|
3
3
|
//#region ../schema/src/domain/api-mocks.ts
|
|
4
4
|
const API_PROGRAM = "workspace/.anpord/api/program.json";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as ValidationValue } from "./eval-validations-
|
|
1
|
+
import { r as ValidationValue } from "./eval-validations-BvX9dkYh.mjs";
|
|
2
2
|
import { Schema } from "effect";
|
|
3
3
|
//#region ../schema/src/domain/api-mocks.ts
|
|
4
4
|
const API_PROGRAM = "workspace/.anpord/api/program.json";
|
package/dist/api-runtime.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_runtime = require("./runtime-
|
|
2
|
+
const require_runtime = require("./runtime-CXcsGvwP.cjs");
|
|
3
3
|
exports.runApiServers = require_runtime.runApiServers;
|
|
4
4
|
exports.withApi = require_runtime.withApi;
|
package/dist/api-runtime.d.cts
CHANGED
package/dist/api-runtime.d.mts
CHANGED
package/dist/api-runtime.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as withApi, t as runApiServers } from "./runtime-
|
|
1
|
+
import { n as withApi, t as runApiServers } from "./runtime-DDUrsAI-.mjs";
|
|
2
2
|
export { runApiServers, withApi };
|
package/dist/api.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_runtime = require("./runtime-
|
|
2
|
+
const require_runtime = require("./runtime-CXcsGvwP.cjs");
|
|
3
3
|
exports.api = require_runtime.api;
|
|
4
4
|
exports.endpoint = require_runtime.endpoint;
|
|
5
5
|
exports.withApi = require_runtime.withApi;
|
package/dist/api.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ApiCall } from "./api-mocks-
|
|
1
|
+
import { t as ApiCall } from "./api-mocks-BXZmPUwV.cjs";
|
|
2
2
|
import { a as endpoint, i as api, n as ApiHandlerContext, r as EndpointDefinition, t as ApiDefinition } from "./define-NZvmQuIv.cjs";
|
|
3
3
|
import { withApi } from "./api-runtime.cjs";
|
|
4
4
|
export { type ApiCall, type ApiDefinition, type ApiHandlerContext, type EndpointDefinition, api, endpoint, withApi };
|
package/dist/api.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ApiCall } from "./api-mocks-
|
|
1
|
+
import { t as ApiCall } from "./api-mocks-BXZmPUwV.mjs";
|
|
2
2
|
import { a as endpoint, i as api, n as ApiHandlerContext, r as EndpointDefinition, t as ApiDefinition } from "./define-NZvmQuIv.mjs";
|
|
3
3
|
import { withApi } from "./api-runtime.mjs";
|
|
4
4
|
export { type ApiCall, type ApiDefinition, type ApiHandlerContext, type EndpointDefinition, api, endpoint, withApi };
|
package/dist/api.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as endpoint, n as withApi, r as api } from "./runtime-
|
|
1
|
+
import { i as endpoint, n as withApi, r as api } from "./runtime-DDUrsAI-.mjs";
|
|
2
2
|
export { api, endpoint, withApi };
|
package/dist/bin.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const require_client = require("./client-
|
|
3
|
-
const require_evals_api = require("./evals-api-
|
|
2
|
+
const require_client = require("./client-DziJjMFh.cjs");
|
|
3
|
+
const require_evals_api = require("./evals-api-CqhPZCr5.cjs");
|
|
4
4
|
const require_errors = require("./errors-BX1wry8K.cjs");
|
|
5
5
|
const require_config = require("./config.cjs");
|
|
6
|
-
const require_compiler = require("./compiler-
|
|
6
|
+
const require_compiler = require("./compiler-CYwJNlT4.cjs");
|
|
7
7
|
let effect = require("effect");
|
|
8
8
|
let _effect_platform = require("@effect/platform");
|
|
9
9
|
let _effect_cli = require("@effect/cli");
|
|
10
10
|
let _effect_platform_node = require("@effect/platform-node");
|
|
11
11
|
let yaml = require("yaml");
|
|
12
12
|
//#region package.json
|
|
13
|
-
var version$1 = "0.1.
|
|
13
|
+
var version$1 = "0.1.17";
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region ../template/src/extract.ts
|
|
16
16
|
/** Reads escapes too, so text the renderer leaves literal is never reported as
|
package/dist/bin.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as ChannelName, o as PromptId, s as VersionNumber, t as AnpordApi } from "./client-
|
|
3
|
-
import { f as EvalTrigger, i as EvalRun } from "./evals-api-
|
|
2
|
+
import { a as ChannelName, o as PromptId, s as VersionNumber, t as AnpordApi } from "./client-DE3YNtWc.mjs";
|
|
3
|
+
import { f as EvalTrigger, i as EvalRun } from "./evals-api-CsdU741J.mjs";
|
|
4
4
|
import { i as tokenMatcher, r as asAnpordError } from "./errors-B0YknR5V.mjs";
|
|
5
5
|
import { ClientLayer, webUrlConfig } from "./config.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { i as compileEvalEffect } from "./compiler-C62ss3a4.mjs";
|
|
7
7
|
import { Cause, Clock, Config, Console, Data, Duration, Effect, Layer, Option, ParseResult, Redacted, Ref, Schema } from "effect";
|
|
8
8
|
import { FetchHttpClient, FileSystem, HttpClient, HttpClientError, HttpClientRequest } from "@effect/platform";
|
|
9
9
|
import { Args, Command, Options } from "@effect/cli";
|
|
10
10
|
import { NodeContext, NodeRuntime } from "@effect/platform-node";
|
|
11
11
|
import { parseDocument } from "yaml";
|
|
12
12
|
//#region package.json
|
|
13
|
-
var version$1 = "0.1.
|
|
13
|
+
var version$1 = "0.1.17";
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region ../template/src/extract.ts
|
|
16
16
|
/** Reads escapes too, so text the renderer leaves literal is never reported as
|
package/dist/cli-runtime.cjs
CHANGED
|
@@ -1,26 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_define = require("./define-CHx2lRp5.cjs");
|
|
3
|
+
const require_mock_journal = require("./mock-journal-Bnaozlx4.cjs");
|
|
3
4
|
let effect = require("effect");
|
|
4
|
-
let node_fs_promises = require("node:fs/promises");
|
|
5
|
-
let node_path = require("node:path");
|
|
6
5
|
//#region src/mock-cli/runtime.ts
|
|
7
6
|
const JOURNAL = ".anpord/cli-calls.jsonl";
|
|
8
|
-
const errorOf = (cause) => cause instanceof Error ? cause : new Error(String(cause));
|
|
9
|
-
const decode = (schema, value) => effect.Effect.tryPromise({
|
|
10
|
-
catch: errorOf,
|
|
11
|
-
try: async () => {
|
|
12
|
-
const result = await schema["~standard"].validate(value);
|
|
13
|
-
if (result.issues !== void 0) throw new Error(result.issues.map(({ message }) => message).join("; "));
|
|
14
|
-
return result.value;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
const append = (path, call) => effect.Effect.tryPromise({
|
|
18
|
-
catch: errorOf,
|
|
19
|
-
try: async () => {
|
|
20
|
-
await (0, node_fs_promises.mkdir)((0, node_path.dirname)(path), { recursive: true });
|
|
21
|
-
await (0, node_fs_promises.appendFile)(path, `${JSON.stringify(call)}\n`);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
7
|
const commandHelp = (definition, item) => {
|
|
25
8
|
const options = Object.entries(item.options).map(([key, option]) => ` ${require_define.optionName(key, option)}${option.type === "string" ? " <value>" : ""}${option.description ? ` ${option.description}` : ""}`);
|
|
26
9
|
return [
|
|
@@ -88,15 +71,15 @@ const executeCli = (definition, args, journal = JOURNAL) => effect.Effect.gen(fu
|
|
|
88
71
|
let input = {};
|
|
89
72
|
return yield* effect.Effect.gen(function* () {
|
|
90
73
|
input = yield* effect.Effect.try({
|
|
91
|
-
catch: errorOf,
|
|
74
|
+
catch: require_mock_journal.errorOf,
|
|
92
75
|
try: () => parseOptions(item, rest)
|
|
93
76
|
});
|
|
94
|
-
const decoded = yield*
|
|
77
|
+
const decoded = yield* require_mock_journal.decodeStandard(item.inputSchema, input);
|
|
95
78
|
const output = yield* effect.Effect.tryPromise({
|
|
96
|
-
catch: errorOf,
|
|
79
|
+
catch: require_mock_journal.errorOf,
|
|
97
80
|
try: () => Promise.resolve(item.handler(decoded, { signal: new AbortController().signal }))
|
|
98
|
-
}).pipe(effect.Effect.flatMap((value) =>
|
|
99
|
-
yield*
|
|
81
|
+
}).pipe(effect.Effect.flatMap((value) => require_mock_journal.decodeStandard(item.outputSchema, value)));
|
|
82
|
+
yield* require_mock_journal.appendCall(journal, {
|
|
100
83
|
cli: definition.path,
|
|
101
84
|
command: item.path.join(" "),
|
|
102
85
|
input: decoded,
|
|
@@ -107,14 +90,14 @@ const executeCli = (definition, args, journal = JOURNAL) => effect.Effect.gen(fu
|
|
|
107
90
|
stderr: "",
|
|
108
91
|
stdout: `${JSON.stringify(output, null, 2) ?? String(output)}\n`
|
|
109
92
|
};
|
|
110
|
-
}).pipe(effect.Effect.catchAll((cause) =>
|
|
93
|
+
}).pipe(effect.Effect.catchAll((cause) => require_mock_journal.appendCall(journal, {
|
|
111
94
|
cli: definition.path,
|
|
112
95
|
command: item.path.join(" "),
|
|
113
|
-
error: errorOf(cause).message,
|
|
96
|
+
error: require_mock_journal.errorOf(cause).message,
|
|
114
97
|
input
|
|
115
98
|
}).pipe(effect.Effect.as({
|
|
116
99
|
exitCode: 1,
|
|
117
|
-
stderr: `${errorOf(cause).message}\n`,
|
|
100
|
+
stderr: `${require_mock_journal.errorOf(cause).message}\n`,
|
|
118
101
|
stdout: ""
|
|
119
102
|
}))));
|
|
120
103
|
}).pipe(effect.Effect.withSpan("CliMock.execute"), effect.Effect.runPromise);
|
package/dist/cli-runtime.mjs
CHANGED
|
@@ -1,25 +1,8 @@
|
|
|
1
1
|
import { r as optionName } from "./define-CLhfETBd.mjs";
|
|
2
|
+
import { n as decodeStandard, r as errorOf, t as appendCall } from "./mock-journal-rbsXfDRs.mjs";
|
|
2
3
|
import { Effect } from "effect";
|
|
3
|
-
import { appendFile, mkdir } from "node:fs/promises";
|
|
4
|
-
import { dirname } from "node:path";
|
|
5
4
|
//#region src/mock-cli/runtime.ts
|
|
6
5
|
const JOURNAL = ".anpord/cli-calls.jsonl";
|
|
7
|
-
const errorOf = (cause) => cause instanceof Error ? cause : new Error(String(cause));
|
|
8
|
-
const decode = (schema, value) => Effect.tryPromise({
|
|
9
|
-
catch: errorOf,
|
|
10
|
-
try: async () => {
|
|
11
|
-
const result = await schema["~standard"].validate(value);
|
|
12
|
-
if (result.issues !== void 0) throw new Error(result.issues.map(({ message }) => message).join("; "));
|
|
13
|
-
return result.value;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
const append = (path, call) => Effect.tryPromise({
|
|
17
|
-
catch: errorOf,
|
|
18
|
-
try: async () => {
|
|
19
|
-
await mkdir(dirname(path), { recursive: true });
|
|
20
|
-
await appendFile(path, `${JSON.stringify(call)}\n`);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
6
|
const commandHelp = (definition, item) => {
|
|
24
7
|
const options = Object.entries(item.options).map(([key, option]) => ` ${optionName(key, option)}${option.type === "string" ? " <value>" : ""}${option.description ? ` ${option.description}` : ""}`);
|
|
25
8
|
return [
|
|
@@ -90,12 +73,12 @@ const executeCli = (definition, args, journal = JOURNAL) => Effect.gen(function*
|
|
|
90
73
|
catch: errorOf,
|
|
91
74
|
try: () => parseOptions(item, rest)
|
|
92
75
|
});
|
|
93
|
-
const decoded = yield*
|
|
76
|
+
const decoded = yield* decodeStandard(item.inputSchema, input);
|
|
94
77
|
const output = yield* Effect.tryPromise({
|
|
95
78
|
catch: errorOf,
|
|
96
79
|
try: () => Promise.resolve(item.handler(decoded, { signal: new AbortController().signal }))
|
|
97
|
-
}).pipe(Effect.flatMap((value) =>
|
|
98
|
-
yield*
|
|
80
|
+
}).pipe(Effect.flatMap((value) => decodeStandard(item.outputSchema, value)));
|
|
81
|
+
yield* appendCall(journal, {
|
|
99
82
|
cli: definition.path,
|
|
100
83
|
command: item.path.join(" "),
|
|
101
84
|
input: decoded,
|
|
@@ -106,7 +89,7 @@ const executeCli = (definition, args, journal = JOURNAL) => Effect.gen(function*
|
|
|
106
89
|
stderr: "",
|
|
107
90
|
stdout: `${JSON.stringify(output, null, 2) ?? String(output)}\n`
|
|
108
91
|
};
|
|
109
|
-
}).pipe(Effect.catchAll((cause) =>
|
|
92
|
+
}).pipe(Effect.catchAll((cause) => appendCall(journal, {
|
|
110
93
|
cli: definition.path,
|
|
111
94
|
command: item.path.join(" "),
|
|
112
95
|
error: errorOf(cause).message,
|