@jevitate/cli 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-cli.d.ts +3 -1
- package/dist/ai-cli.js +60 -16
- package/dist/ai-cli.js.map +1 -1
- package/dist/approval-provenance.d.ts +136 -0
- package/dist/approval-provenance.js +317 -0
- package/dist/approval-provenance.js.map +1 -0
- package/dist/author-journey-cli.js +4 -2
- package/dist/author-journey-cli.js.map +1 -1
- package/dist/bin.js +30544 -20851
- package/dist/browser-cli.d.ts +10 -0
- package/dist/browser-cli.js +50 -0
- package/dist/browser-cli.js.map +1 -0
- package/dist/build-info.generated.js +2 -2
- package/dist/builtin-analyzers.d.ts +7 -0
- package/dist/builtin-analyzers.js +19 -0
- package/dist/builtin-analyzers.js.map +1 -0
- package/dist/campaign-cli.d.ts +6 -0
- package/dist/campaign-cli.js +9 -4
- package/dist/campaign-cli.js.map +1 -1
- package/dist/catalog-analysis.d.ts +70 -0
- package/dist/catalog-analysis.js +507 -0
- package/dist/catalog-analysis.js.map +1 -0
- package/dist/catalog-api.d.ts +73 -0
- package/dist/catalog-api.js +97 -0
- package/dist/catalog-api.js.map +1 -0
- package/dist/catalog-cli.d.ts +12 -0
- package/dist/catalog-cli.js +224 -0
- package/dist/catalog-cli.js.map +1 -0
- package/dist/catalog-review.d.ts +29 -0
- package/dist/catalog-review.js +290 -0
- package/dist/catalog-review.js.map +1 -0
- package/dist/catalog.d.ts +133 -0
- package/dist/catalog.js +352 -0
- package/dist/catalog.js.map +1 -0
- package/dist/change-context.d.ts +44 -0
- package/dist/change-context.js +203 -0
- package/dist/change-context.js.map +1 -0
- package/dist/check-api.d.ts +1 -1
- package/dist/check-api.js +68 -9
- package/dist/check-api.js.map +1 -1
- package/dist/check-cli.d.ts +5 -1
- package/dist/check-cli.js +64 -10
- package/dist/check-cli.js.map +1 -1
- package/dist/check-execute.d.ts +16 -1
- package/dist/check-execute.js +78 -31
- package/dist/check-execute.js.map +1 -1
- package/dist/check-plan.d.ts +14 -0
- package/dist/check-plan.js +28 -2
- package/dist/check-plan.js.map +1 -1
- package/dist/check-suite.js +6 -3
- package/dist/check-suite.js.map +1 -1
- package/dist/check-types.d.ts +51 -6
- package/dist/check-types.js +8 -0
- package/dist/check-types.js.map +1 -1
- package/dist/cli-output.js +85 -5
- package/dist/cli-output.js.map +1 -1
- package/dist/cli-shared.d.ts +22 -2
- package/dist/cli-shared.js +34 -5
- package/dist/cli-shared.js.map +1 -1
- package/dist/demo-aspect-api.d.ts +15 -0
- package/dist/demo-aspect-api.js +26 -1
- package/dist/demo-aspect-api.js.map +1 -1
- package/dist/demo-aspect-cli.js +64 -5
- package/dist/demo-aspect-cli.js.map +1 -1
- package/dist/exit-codes.d.ts +6 -3
- package/dist/exit-codes.js +13 -3
- package/dist/exit-codes.js.map +1 -1
- package/dist/explore-adversarial.d.ts +3 -1
- package/dist/explore-adversarial.js +4 -4
- package/dist/explore-adversarial.js.map +1 -1
- package/dist/explore-author.js +5 -2
- package/dist/explore-author.js.map +1 -1
- package/dist/explore-cli.js +145 -9
- package/dist/explore-cli.js.map +1 -1
- package/dist/explore-coverage.d.ts +6 -2
- package/dist/explore-coverage.js +7 -6
- package/dist/explore-coverage.js.map +1 -1
- package/dist/explore-feature.d.ts +3 -1
- package/dist/explore-feature.js +5 -5
- package/dist/explore-feature.js.map +1 -1
- package/dist/explore-goal.d.ts +37 -6
- package/dist/explore-goal.js +69 -50
- package/dist/explore-goal.js.map +1 -1
- package/dist/explore-shared.d.ts +12 -7
- package/dist/explore-shared.js +9 -1
- package/dist/explore-shared.js.map +1 -1
- package/dist/findings-filing.d.ts +6 -0
- package/dist/findings-filing.js +15 -1
- package/dist/findings-filing.js.map +1 -1
- package/dist/goal-run-flags.d.ts +2 -0
- package/dist/goal-run-flags.js +8 -1
- package/dist/goal-run-flags.js.map +1 -1
- package/dist/heal-probe-guard.d.ts +9 -0
- package/dist/heal-probe-guard.js +113 -0
- package/dist/heal-probe-guard.js.map +1 -0
- package/dist/host-health-run.d.ts +32 -1
- package/dist/host-health-run.js +38 -1
- package/dist/host-health-run.js.map +1 -1
- package/dist/http-5xx-outcome.d.ts +8 -3
- package/dist/http-5xx-outcome.js +5 -15
- package/dist/http-5xx-outcome.js.map +1 -1
- package/dist/init-cli.d.ts +7 -0
- package/dist/init-cli.js +79 -9
- package/dist/init-cli.js.map +1 -1
- package/dist/init-codeowners.d.ts +39 -0
- package/dist/init-codeowners.js +91 -0
- package/dist/init-codeowners.js.map +1 -0
- package/dist/init-keys.d.ts +3 -1
- package/dist/init-keys.js +20 -8
- package/dist/init-keys.js.map +1 -1
- package/dist/init-skills.d.ts +85 -7
- package/dist/init-skills.js +303 -36
- package/dist/init-skills.js.map +1 -1
- package/dist/jev-advisor.d.ts +72 -0
- package/dist/jev-advisor.js +172 -0
- package/dist/jev-advisor.js.map +1 -0
- package/dist/journey-api.d.ts +76 -5
- package/dist/journey-api.js +238 -29
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.js +257 -23
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-heal.d.ts +74 -0
- package/dist/journey-heal.js +180 -0
- package/dist/journey-heal.js.map +1 -0
- package/dist/journey-network-checks.d.ts +5 -1
- package/dist/journey-network-checks.js +15 -4
- package/dist/journey-network-checks.js.map +1 -1
- package/dist/journey-prefix.js +2 -2
- package/dist/journey-prefix.js.map +1 -1
- package/dist/journey-proposal-store.d.ts +100 -0
- package/dist/journey-proposal-store.js +342 -0
- package/dist/journey-proposal-store.js.map +1 -0
- package/dist/journey-result-record.d.ts +40 -0
- package/dist/journey-result-record.js +28 -0
- package/dist/journey-result-record.js.map +1 -0
- package/dist/journey-review-api.d.ts +19 -0
- package/dist/journey-review-api.js +53 -0
- package/dist/journey-review-api.js.map +1 -0
- package/dist/journey-review-store.d.ts +16 -0
- package/dist/journey-review-store.js +95 -0
- package/dist/journey-review-store.js.map +1 -0
- package/dist/journey-review.d.ts +54 -0
- package/dist/journey-review.js +538 -0
- package/dist/journey-review.js.map +1 -0
- package/dist/journey-verify.js +14 -1
- package/dist/journey-verify.js.map +1 -1
- package/dist/key-report.d.ts +20 -5
- package/dist/key-report.js +32 -9
- package/dist/key-report.js.map +1 -1
- package/dist/kill-signal.js +10 -2
- package/dist/kill-signal.js.map +1 -1
- package/dist/launch-armed.js +5 -1
- package/dist/launch-armed.js.map +1 -1
- package/dist/load-cli.js +4 -2
- package/dist/load-cli.js.map +1 -1
- package/dist/log-classes.d.ts +73 -0
- package/dist/log-classes.js +167 -0
- package/dist/log-classes.js.map +1 -0
- package/dist/log-correlation.d.ts +29 -10
- package/dist/log-correlation.js +44 -21
- package/dist/log-correlation.js.map +1 -1
- package/dist/login-cli.d.ts +17 -0
- package/dist/login-cli.js +161 -0
- package/dist/login-cli.js.map +1 -0
- package/dist/logs-cli.js +3 -1
- package/dist/logs-cli.js.map +1 -1
- package/dist/mcp-api.d.ts +6 -1
- package/dist/mcp-api.js +110 -16
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-cli-runner.d.ts +2 -0
- package/dist/mcp-cli-runner.js +3 -1
- package/dist/mcp-cli-runner.js.map +1 -1
- package/dist/mcp-cli-tools.d.ts +5 -0
- package/dist/mcp-cli-tools.js +178 -23
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/mission-cli.js +8 -4
- package/dist/mission-cli.js.map +1 -1
- package/dist/mission-journal.d.ts +4 -1
- package/dist/mission-journal.js +9 -3
- package/dist/mission-journal.js.map +1 -1
- package/dist/mission-queue-cli.js +21 -2
- package/dist/mission-queue-cli.js.map +1 -1
- package/dist/mission-queue-runner.d.ts +6 -0
- package/dist/mission-queue-runner.js +33 -3
- package/dist/mission-queue-runner.js.map +1 -1
- package/dist/multi-run-cli.d.ts +7 -1
- package/dist/multi-run-cli.js +10 -3
- package/dist/multi-run-cli.js.map +1 -1
- package/dist/multi-run.d.ts +44 -8
- package/dist/multi-run.js +118 -25
- package/dist/multi-run.js.map +1 -1
- package/dist/persona-login.d.ts +256 -0
- package/dist/persona-login.js +884 -0
- package/dist/persona-login.js.map +1 -0
- package/dist/pre-approval.d.ts +98 -0
- package/dist/pre-approval.js +175 -0
- package/dist/pre-approval.js.map +1 -0
- package/dist/program.js +12 -0
- package/dist/program.js.map +1 -1
- package/dist/project-dir.d.ts +2 -1
- package/dist/project-dir.js +3 -1
- package/dist/project-dir.js.map +1 -1
- package/dist/readiness.d.ts +29 -0
- package/dist/readiness.js +291 -0
- package/dist/readiness.js.map +1 -0
- package/dist/regression-cli.js +4 -2
- package/dist/regression-cli.js.map +1 -1
- package/dist/report-api.d.ts +25 -2
- package/dist/report-api.js +34 -5
- package/dist/report-api.js.map +1 -1
- package/dist/report-cli.js +8 -1
- package/dist/report-cli.js.map +1 -1
- package/dist/resource-preflight.js +5 -3
- package/dist/resource-preflight.js.map +1 -1
- package/dist/result-schema.d.ts +12 -0
- package/dist/result-schema.js +8 -0
- package/dist/result-schema.js.map +1 -1
- package/dist/run-index.d.ts +4 -2
- package/dist/run-index.js +3 -1
- package/dist/run-index.js.map +1 -1
- package/dist/run-key-preflight.d.ts +2 -1
- package/dist/run-key-preflight.js +3 -2
- package/dist/run-key-preflight.js.map +1 -1
- package/dist/run-metadata.d.ts +29 -0
- package/dist/run-metadata.js +48 -0
- package/dist/run-metadata.js.map +1 -0
- package/dist/run-tags-cli.d.ts +14 -0
- package/dist/run-tags-cli.js +41 -0
- package/dist/run-tags-cli.js.map +1 -0
- package/dist/self-heal-adapter.d.ts +43 -27
- package/dist/self-heal-adapter.js +196 -62
- package/dist/self-heal-adapter.js.map +1 -1
- package/dist/site-cli.d.ts +1 -1
- package/dist/site-cli.js +24 -1
- package/dist/site-cli.js.map +1 -1
- package/dist/source-cli.js +9 -5
- package/dist/source-cli.js.map +1 -1
- package/dist/suite-explore-options.d.ts +14 -0
- package/dist/suite-explore-options.js +8 -0
- package/dist/suite-explore-options.js.map +1 -1
- package/dist/sweep-api.d.ts +289 -0
- package/dist/sweep-api.js +859 -0
- package/dist/sweep-api.js.map +1 -0
- package/dist/sweep-cli.d.ts +9 -0
- package/dist/sweep-cli.js +117 -0
- package/dist/sweep-cli.js.map +1 -0
- package/dist/target-config.d.ts +5 -2
- package/dist/target-config.js +15 -0
- package/dist/target-config.js.map +1 -1
- package/dist/ux-cli.js +3 -1
- package/dist/ux-cli.js.map +1 -1
- package/dist/ux-usability.d.ts +9 -3
- package/dist/ux-usability.js +8 -5
- package/dist/ux-usability.js.map +1 -1
- package/dist/verify-fix-cli.js +4 -2
- package/dist/verify-fix-cli.js.map +1 -1
- package/package.json +9 -9
- package/skills/jevitate-ci-check/SKILL.md +9 -1
- package/skills/jevitate-demo/SKILL.md +5 -2
- package/skills/jevitate-getting-started/SKILL.md +14 -1
- package/skills/jevitate-mission-scope/SKILL.md +2 -2
- package/skills/jevitate-run-journey/SKILL.md +42 -9
- package/skills/jevitate-test-campaign/SKILL.md +26 -5
package/dist/ai-cli.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
import { type CredentialKey, type SecureKeyIO, type GenerationPort, type CatalogModel, type ModelConstraints, type KeyVerdict, type VerifyFetch } from "@jevitate/ai-core";
|
|
3
3
|
import type { CliDeps } from "./program.js";
|
|
4
|
-
import { type KeySourceReport, type KeyVerificationReport } from "./key-report.js";
|
|
4
|
+
import { type JevRouteReport, type KeySourceReport, type KeyVerificationReport } from "./key-report.js";
|
|
5
5
|
/**
|
|
6
6
|
* Additive, optional wiring for `@jevitate/ai-core` threaded through `CliDeps`.
|
|
7
7
|
* Every field is injectable so `ai-cli.test.ts` never touches real env,
|
|
@@ -47,5 +47,7 @@ export interface FeatureKeyStatus {
|
|
|
47
47
|
sources: KeySourceReport[];
|
|
48
48
|
/** #291: the live check per key (absent with --no-verify). */
|
|
49
49
|
verification?: KeyVerificationReport[];
|
|
50
|
+
/** #429 (judgment only): the Jev route judgment will use — provider, key, model, why; null when no key resolves one. */
|
|
51
|
+
route?: JevRouteReport | null;
|
|
50
52
|
}
|
|
51
53
|
export declare function registerAiCommands(program: Command, deps: CliDeps): void;
|
package/dist/ai-cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { envCredentialStore, ALL_CREDENTIAL_KEYS,
|
|
1
|
+
import { envCredentialStore, ALL_CREDENTIAL_KEYS, requireKeys, MissingCredentialError, FakeGenerationGateway, OpenRouterGenerationGateway, GEN_TASKS, UsageTracker, collectKeys, verifyKey, KEY_PROVIDERS, featureKeys, jevProviderOverride, } from "@jevitate/ai-core";
|
|
2
|
+
import { jevProviderArg } from "./cli-shared.js";
|
|
2
3
|
import { ok, fail } from "./envelope.js";
|
|
3
4
|
import { resolveDataDir } from "./data-dir.js";
|
|
4
5
|
import { loadLocalCredentials } from "./credentials-file.js";
|
|
@@ -6,7 +7,7 @@ import { realOpenRouterCall } from "./openrouter-call.js";
|
|
|
6
7
|
import { resolveUsagePricing } from "./usage-config.js";
|
|
7
8
|
import { emitJsonOrRefusal } from "./cli-refusal.js";
|
|
8
9
|
import { readMaskedLine } from "./masked-input.js";
|
|
9
|
-
import { describeFeatureKeys, keySources, realVerifyFetch, shadowWarnings, verificationProblems, verifyFeatureKeys, } from "./key-report.js";
|
|
10
|
+
import { describeFeatureKeys, jevRouteReport, keySources, realVerifyFetch, shadowWarnings, verificationProblems, verifyFeatureKeys, } from "./key-report.js";
|
|
10
11
|
const DEFAULT_CATALOG = [
|
|
11
12
|
{ id: "openai/gpt-4o-mini", promptUsdPer1k: 0.15, completionUsdPer1k: 0.6, regions: [], latencyClass: "fast", capabilities: [] },
|
|
12
13
|
];
|
|
@@ -95,18 +96,34 @@ export function registerAiCommands(program, deps) {
|
|
|
95
96
|
ai.command("status")
|
|
96
97
|
.description("which keys each AI feature uses, where each comes from (env or ~/.jevitate/credentials.json), and whether the provider accepts it (a live auth check; never prints a key)")
|
|
97
98
|
.option("--no-verify", "skip the live auth check (offline / CI): report presence and source only")
|
|
99
|
+
.option("--jev-provider <provider>", "report judgment as it would run with this Jev provider: typesafe or openrouter (default: JEVITATE_JEV_PROVIDER, else the TypeSafe key when both are set)", jevProviderArg)
|
|
98
100
|
.option("--json", "emit a JSON envelope")
|
|
99
101
|
.action(async function () {
|
|
100
|
-
const { json, verify } = this.opts();
|
|
102
|
+
const { json, verify, jevProvider: flag } = this.opts();
|
|
101
103
|
const store = buildStore(deps.ai);
|
|
102
104
|
const { env, localConfig } = credentialInputs(deps.ai);
|
|
103
105
|
const fetchFn = deps.ai?.verifyFetch ?? realVerifyFetch;
|
|
106
|
+
let jevProvider;
|
|
107
|
+
try {
|
|
108
|
+
jevProvider = jevProviderOverride(env, flag);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
emitJsonOrRefusal(program, fail("E_INVALID_ARGS", err instanceof Error ? err.message : String(err)), 2);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
104
114
|
const data = {};
|
|
105
115
|
for (const feature of FEATURES) {
|
|
106
|
-
|
|
116
|
+
// #429: judgment needs EITHER Jev key — `required` names the key its route uses (both when none is set).
|
|
117
|
+
const required = featureKeys(feature, store, jevProvider);
|
|
107
118
|
const missing = required.filter((k) => !store.detect(k));
|
|
108
|
-
const sources = keySources(feature, env, localConfig);
|
|
109
|
-
data[feature] = {
|
|
119
|
+
const sources = keySources(feature, env, localConfig, jevProvider);
|
|
120
|
+
data[feature] = {
|
|
121
|
+
required,
|
|
122
|
+
missing,
|
|
123
|
+
sources,
|
|
124
|
+
...(verify ? { verification: await verifyFeatureKeys(feature, store, fetchFn, undefined, jevProvider) } : {}),
|
|
125
|
+
...(feature === "judgment" ? { route: jevRouteReport(store, env, jevProvider) } : {}),
|
|
126
|
+
};
|
|
110
127
|
}
|
|
111
128
|
// A key the provider refuses (or that could not be checked) is not "ready": exit 2, never 0.
|
|
112
129
|
const all = FEATURES.flatMap((f) => data[f].verification ?? []);
|
|
@@ -119,7 +136,7 @@ export function registerAiCommands(program, deps) {
|
|
|
119
136
|
else {
|
|
120
137
|
const out = program.configureOutput().writeOut;
|
|
121
138
|
for (const feature of FEATURES)
|
|
122
|
-
out?.(`${describeFeatureKeys(feature, data[feature].sources, data[feature].verification)}\n`);
|
|
139
|
+
out?.(`${describeFeatureKeys(feature, data[feature].sources, data[feature].verification, data[feature].route)}\n`);
|
|
123
140
|
if (problems.unreachable.length > 0)
|
|
124
141
|
out?.("could not reach a provider to verify a key — retry when online, or pass --no-verify to skip the check\n");
|
|
125
142
|
process.exitCode = exitCode;
|
|
@@ -129,49 +146,76 @@ export function registerAiCommands(program, deps) {
|
|
|
129
146
|
.description("enter (masked) and store the keys a feature needs in ~/.jevitate/credentials.json (0600); each key is verified with its provider before it is stored")
|
|
130
147
|
.option("--replace", "prompt for a new value even when a key is already stored (rotate / replace it)")
|
|
131
148
|
.option("--no-verify", "store the entered key without the live auth check (offline / CI)")
|
|
149
|
+
.option("--jev-provider <provider>", "judgment only: which Jev key to set up — typesafe (TYPESAFE_API_KEY, the default) or openrouter (OPENROUTER_API_KEY: Jev through OpenRouter)", jevProviderArg)
|
|
132
150
|
.option("--json", "emit a JSON envelope")
|
|
133
151
|
.action(async function (feature) {
|
|
134
|
-
const { json, replace, verify } = this.opts();
|
|
152
|
+
const { json, replace, verify, jevProvider: flag } = this.opts();
|
|
135
153
|
if (feature !== "generation" && feature !== "judgment") {
|
|
136
154
|
emitJsonLine(program, fail("E_INVALID_FEATURE", `unknown feature '${feature}' — expected 'generation' or 'judgment'`));
|
|
137
155
|
return;
|
|
138
156
|
}
|
|
157
|
+
if (flag !== undefined && feature !== "judgment") {
|
|
158
|
+
emitJsonLine(program, fail("E_INVALID_ARGS", "--jev-provider applies to `ai setup judgment` only"));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
139
161
|
try {
|
|
140
162
|
const store = buildStore(deps.ai);
|
|
141
163
|
const { env, localConfig } = credentialInputs(deps.ai);
|
|
164
|
+
// #429: judgment is satisfied by EITHER Jev key; the flag (else JEVITATE_JEV_PROVIDER) picks which one to set up.
|
|
165
|
+
const jevProvider = feature === "judgment" ? jevProviderOverride(env, flag) : undefined;
|
|
142
166
|
const injected = deps.ai?.secureIO;
|
|
143
|
-
const
|
|
167
|
+
const usesNow = featureKeys(feature, store, jevProvider);
|
|
168
|
+
const needsPrompt = replace === true || usesNow.some((k) => !store.detect(k));
|
|
144
169
|
if (injected === undefined && needsPrompt && !(deps.ai?.isInteractive?.() ?? process.stdin.isTTY === true)) {
|
|
145
|
-
|
|
170
|
+
const flagHint = flag === undefined ? "" : ` --jev-provider ${flag}`;
|
|
171
|
+
emitJsonLine(program, fail("E_AI_SETUP", `key entry needs an interactive terminal (stdin is not a TTY) — run \`jevitate ai setup ${feature}${flagHint}${replace === true ? " --replace" : ""}\` in a terminal, or set ${usesNow.join(feature === "judgment" ? " or " : ", ")} in the environment`));
|
|
146
172
|
return;
|
|
147
173
|
}
|
|
148
174
|
const io = injected ?? realSecureIO();
|
|
149
175
|
const fetchFn = deps.ai?.verifyFetch ?? realVerifyFetch;
|
|
150
176
|
const gate = enteredKeyCheck(fetchFn);
|
|
151
|
-
const collected = await collectKeys(feature, store, io, {
|
|
177
|
+
const collected = await collectKeys(feature, store, io, {
|
|
178
|
+
replace: replace === true,
|
|
179
|
+
...(verify ? { check: gate.check } : {}),
|
|
180
|
+
...(jevProvider === undefined ? {} : { jevProvider }),
|
|
181
|
+
});
|
|
152
182
|
// What resolves NOW: the stored file plus what was just entered (env still wins).
|
|
153
183
|
const nowLocal = { ...localConfig, ...Object.fromEntries(gate.entered) };
|
|
154
184
|
const nowStore = envCredentialStore(env, nowLocal);
|
|
155
|
-
const
|
|
185
|
+
const reportLocal = verify ? nowLocal : { ...localConfig, ...Object.fromEntries(collected.map((k) => [k, "set"])) };
|
|
186
|
+
const sources = keySources(feature, env, reportLocal, jevProvider);
|
|
156
187
|
const warnings = shadowWarnings(collected, sources);
|
|
157
188
|
// Every key the feature uses is verified, including ones already present ("nothing missing").
|
|
158
|
-
const verification = verify ? await verifyFeatureKeys(feature, nowStore, fetchFn, gate.verdicts) : undefined;
|
|
189
|
+
const verification = verify ? await verifyFeatureKeys(feature, nowStore, fetchFn, gate.verdicts, jevProvider) : undefined;
|
|
190
|
+
const route = feature === "judgment" ? jevRouteReport(envCredentialStore(env, reportLocal), env, jevProvider) : undefined;
|
|
159
191
|
const problems = verificationProblems(verification ?? []);
|
|
160
192
|
if (problems.invalid.length > 0 || problems.unreachable.length > 0) {
|
|
161
|
-
const line = describeFeatureKeys(feature, sources, verification);
|
|
193
|
+
const line = describeFeatureKeys(feature, sources, verification, route);
|
|
162
194
|
emitJsonLine(program, fail(problems.invalid.length > 0 ? "E_AI_KEY_INVALID" : "E_AI_KEY_UNVERIFIED", problems.invalid.length > 0
|
|
163
195
|
? `${line}`
|
|
164
196
|
: `${line} — retry when online, or pass --no-verify to skip the check`));
|
|
165
197
|
return;
|
|
166
198
|
}
|
|
167
|
-
const envelope = ok({
|
|
199
|
+
const envelope = ok({
|
|
200
|
+
feature,
|
|
201
|
+
collected,
|
|
202
|
+
sources,
|
|
203
|
+
...(verification === undefined ? {} : { verification }),
|
|
204
|
+
...(route === undefined ? {} : { route }),
|
|
205
|
+
...(warnings.length === 0 ? {} : { warnings }),
|
|
206
|
+
});
|
|
168
207
|
if (json) {
|
|
169
208
|
emitJsonLine(program, envelope);
|
|
170
209
|
}
|
|
171
210
|
else {
|
|
172
211
|
const out = program.configureOutput().writeOut;
|
|
173
212
|
out?.(`collected: ${collected.join(", ") || "(nothing missing)"}\n`);
|
|
174
|
-
out?.(`${describeFeatureKeys(feature, sources, verification)}\n`);
|
|
213
|
+
out?.(`${describeFeatureKeys(feature, sources, verification, route)}\n`);
|
|
214
|
+
// #429: say how to set up the other Jev key, so both routes are discoverable from setup.
|
|
215
|
+
if (feature === "judgment" && route !== undefined && route !== null && flag === undefined) {
|
|
216
|
+
const other = route.provider === "typesafe" ? "openrouter" : "typesafe";
|
|
217
|
+
out?.(`judgment can also use ${other === "openrouter" ? "an OpenRouter key (Jev through OpenRouter)" : "a TypeSafe key"}: \`jevitate ai setup judgment --jev-provider ${other}\`\n`);
|
|
218
|
+
}
|
|
175
219
|
for (const w of warnings)
|
|
176
220
|
out?.(`warning: ${w}\n`);
|
|
177
221
|
process.exitCode = 0;
|
package/dist/ai-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-cli.js","sourceRoot":"","sources":["../src/ai-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-cli.js","sourceRoot":"","sources":["../src/ai-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { type ApprovalChannel, type ApprovalProvenance, type ApprovalsReport } from "@jevitate/journey";
|
|
2
|
+
import type { Catalog } from "./catalog.js";
|
|
3
|
+
/**
|
|
4
|
+
* #437 — approval provenance and the human confirmation on every approval path (`journey promote`,
|
|
5
|
+
* `demo approve`, `persona approve`, `job approve`, and the `--accept-*` waivers given with them).
|
|
6
|
+
*
|
|
7
|
+
* Three layers, each guaranteeing exactly what it says (docs/catalog.md "What 'human approval'
|
|
8
|
+
* guarantees"):
|
|
9
|
+
* 1. provenance (DETECTION): every approval records how it was made — `tty` | `non-interactive` |
|
|
10
|
+
* `mcp` | `ci`, the NAMES of agent/CI markers found in the environment, the OS user. A determined
|
|
11
|
+
* process can fake all of it.
|
|
12
|
+
* 2. the typed confirmation (FRICTION): a CLI approval needs a real TTY and the item's id (or the
|
|
13
|
+
* first 8 characters of its content hash) typed back; without one it is refused
|
|
14
|
+
* (`E_APPROVAL_NEEDS_HUMAN`, exit 64). `--non-interactive-approval "<reason>"` is the scripted
|
|
15
|
+
* escape hatch: allowed, and recorded as `non-interactive` (or `ci`) — never as a person's.
|
|
16
|
+
* 3. git review (ENFORCEMENT): CODEOWNERS on `.jevitate/` + branch protection, and
|
|
17
|
+
* `jevitate check --require-approvals` in CI (`approvalsReport` below).
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Agent-harness markers: environment variables a coding agent's shell sets. Only the NAME of a
|
|
21
|
+
* marker is ever recorded (never its value). Kept conservative and documented in docs/catalog.md:
|
|
22
|
+
* - `CLAUDECODE`, `CLAUDE_CODE_*` — Claude Code (`CLAUDECODE=1`, `CLAUDE_CODE_ENTRYPOINT`, …)
|
|
23
|
+
* - `CODEX_*` — OpenAI Codex CLI (`CODEX_SANDBOX`, `CODEX_SANDBOX_NETWORK_DISABLED`, …)
|
|
24
|
+
* - `CURSOR_*` — Cursor (`CURSOR_AGENT` in its agent's terminal; `CURSOR_TRACE_ID` in its editor)
|
|
25
|
+
* - `AIDER_*` — aider
|
|
26
|
+
* - `GEMINI_CLI` — Gemini CLI
|
|
27
|
+
* A marker is a hint, not a verdict: a person may run a terminal inside an editor that sets one.
|
|
28
|
+
*/
|
|
29
|
+
export declare const AGENT_ENV_MARKERS: readonly {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly prefix: boolean;
|
|
32
|
+
}[];
|
|
33
|
+
/** CI markers: an escape-hatch approval under one of these is recorded as channel `ci`. */
|
|
34
|
+
export declare const CI_ENV_MARKERS: readonly string[];
|
|
35
|
+
/** The agent/CI marker NAMES set in `env`, then `stdin-not-tty` / `stdout-not-tty`. Never a value. */
|
|
36
|
+
export declare function detectAgentSignals(env: Readonly<Record<string, string | undefined>>, tty: {
|
|
37
|
+
readonly stdin: boolean;
|
|
38
|
+
readonly stdout: boolean;
|
|
39
|
+
}): string[];
|
|
40
|
+
/** The OS user name — never an email (a `user@domain` login keeps only its user part). */
|
|
41
|
+
export declare function osUserName(): string | undefined;
|
|
42
|
+
/** Runs `fn` as an MCP tool call: every approval it makes is recorded as channel `mcp` (mcp-cli-runner.ts). */
|
|
43
|
+
export declare function runAsMcpInvocation<T>(fn: () => Promise<T>): Promise<T>;
|
|
44
|
+
/** True inside `runAsMcpInvocation`. */
|
|
45
|
+
export declare function inMcpInvocation(): boolean;
|
|
46
|
+
/** The seam a test injects (`CliDeps.approval`); production reads the real process. */
|
|
47
|
+
export interface ApprovalDeps {
|
|
48
|
+
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
49
|
+
readonly stdinIsTTY?: () => boolean;
|
|
50
|
+
readonly stdoutIsTTY?: () => boolean;
|
|
51
|
+
/** Asks one question on the terminal and returns the typed line. */
|
|
52
|
+
readonly prompt?: (question: string) => Promise<string>;
|
|
53
|
+
readonly user?: () => string | undefined;
|
|
54
|
+
}
|
|
55
|
+
/** What a person confirms: the item, the content hash its sheet shows, and the waivers given with it. */
|
|
56
|
+
export interface ApprovalRequest {
|
|
57
|
+
readonly kind: "journey" | "demo" | "persona" | "job";
|
|
58
|
+
readonly id: string;
|
|
59
|
+
readonly contentHash: string;
|
|
60
|
+
readonly waivers: readonly {
|
|
61
|
+
readonly flag: string;
|
|
62
|
+
readonly reason: string;
|
|
63
|
+
readonly detail?: string;
|
|
64
|
+
}[];
|
|
65
|
+
/** #453: a self-heal proposal being accepted — shown to the person before they confirm. */
|
|
66
|
+
readonly proposal?: {
|
|
67
|
+
readonly id: string;
|
|
68
|
+
readonly baseHash: string;
|
|
69
|
+
readonly steps: readonly {
|
|
70
|
+
readonly number: number;
|
|
71
|
+
readonly before: string;
|
|
72
|
+
readonly after: string;
|
|
73
|
+
}[];
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/** Confirms an approval (or refuses it) and returns how it was made. */
|
|
77
|
+
export type ApprovalConfirm = (request: ApprovalRequest) => Promise<ApprovalProvenance>;
|
|
78
|
+
/** A CLI approval with no TTY to confirm on, and no `--non-interactive-approval`. Exit 64. */
|
|
79
|
+
export declare class ApprovalNeedsHumanError extends Error {
|
|
80
|
+
readonly code = "E_APPROVAL_NEEDS_HUMAN";
|
|
81
|
+
}
|
|
82
|
+
/** The typed confirmation did not match: nothing was approved. Exit 64. */
|
|
83
|
+
export declare class ApprovalNotConfirmedError extends Error {
|
|
84
|
+
readonly code = "E_APPROVAL_NOT_CONFIRMED";
|
|
85
|
+
}
|
|
86
|
+
/** A bad `--non-interactive-approval` / `--allow-channels` argument. Exit 64. */
|
|
87
|
+
export declare class ApprovalArgsError extends Error {
|
|
88
|
+
readonly code = "E_APPROVAL_ARGS";
|
|
89
|
+
}
|
|
90
|
+
/** The refusal (code, message) of an approval error, or null for any other error. */
|
|
91
|
+
export declare function approvalRefusal(err: unknown): {
|
|
92
|
+
code: string;
|
|
93
|
+
message: string;
|
|
94
|
+
} | null;
|
|
95
|
+
/** The refusal text: why, and how a person approves. */
|
|
96
|
+
export declare function needsHumanMessage(r: ApprovalRequest): string;
|
|
97
|
+
export interface ApprovalConfirmOptions {
|
|
98
|
+
/** `--non-interactive-approval "<reason>"`: approve without a TTY, recorded as `non-interactive` (or `ci`). */
|
|
99
|
+
readonly nonInteractiveReason?: string;
|
|
100
|
+
}
|
|
101
|
+
/** Validates `--non-interactive-approval`: a reason is required (it is recorded). */
|
|
102
|
+
export declare function checkNonInteractiveReason(reason: string | undefined): void;
|
|
103
|
+
/**
|
|
104
|
+
* The confirmation every CLI approval path runs just before it writes:
|
|
105
|
+
* - inside an MCP tool call: no prompt, recorded as `mcp` (an agent's approval);
|
|
106
|
+
* - `--non-interactive-approval "<reason>"`: no prompt, recorded as `non-interactive` (or `ci` under a CI marker) with the reason;
|
|
107
|
+
* - otherwise a real TTY is required (else `E_APPROVAL_NEEDS_HUMAN`), and the person types the id or
|
|
108
|
+
* the first 8 characters of the content hash — once for the approval, once per waiver
|
|
109
|
+
* (else `E_APPROVAL_NOT_CONFIRMED`); recorded as `tty`.
|
|
110
|
+
*/
|
|
111
|
+
export declare function makeApprovalConfirm(deps: ApprovalDeps | undefined, opts?: ApprovalConfirmOptions): ApprovalConfirm;
|
|
112
|
+
/**
|
|
113
|
+
* #453: how a REJECTION was made (`journey promote --reject-proposal`). Rejecting is fail-closed, so
|
|
114
|
+
* it needs no typed confirmation: inside an MCP call it is `mcp`, at a terminal `tty`, otherwise
|
|
115
|
+
* `non-interactive` (or `ci`) with the reason recorded.
|
|
116
|
+
*/
|
|
117
|
+
export declare function rejectionProvenance(deps: ApprovalDeps | undefined, rejectionReason: string): ApprovalProvenance;
|
|
118
|
+
/**
|
|
119
|
+
* The provenance of an approval made through the programmatic API with no confirmation step
|
|
120
|
+
* (a caller of `promoteJourney` / `approveCatalogItem` that passes no `confirm`): recorded as
|
|
121
|
+
* `non-interactive`, so it never passes for a person's approval.
|
|
122
|
+
*/
|
|
123
|
+
export declare function programmaticProvenance(): ApprovalProvenance;
|
|
124
|
+
/** One phrase: "approved at a terminal by mc (typed confirmation)", "approved non-interactively (likely an agent: CLAUDECODE)", … */
|
|
125
|
+
export declare function describeProvenance(p: ApprovalProvenance | undefined): string;
|
|
126
|
+
/** `--allow-channels tty,ci` → the channels; default `tty`. An unknown channel is refused. */
|
|
127
|
+
export declare function parseAllowedChannels(list: string | undefined): ApprovalChannel[];
|
|
128
|
+
/**
|
|
129
|
+
* #437: every recorded approval in the catalogs (promoted Journeys, approved personas and jobs) and
|
|
130
|
+
* how it was made; with `allowed`, the violations — a promoted Journey with no approval, an approval
|
|
131
|
+
* that is stale (the item changed since), one recorded before provenance existed, or one made over
|
|
132
|
+
* a channel not allowed.
|
|
133
|
+
*/
|
|
134
|
+
export declare function approvalsReport(catalogs: readonly Catalog[], allowed?: readonly ApprovalChannel[]): ApprovalsReport;
|
|
135
|
+
/** The approvals section of `catalog status` (text). */
|
|
136
|
+
export declare function renderApprovals(report: ApprovalsReport): string;
|