@momentiq/dark-factory-cli 0.1.0-alpha.4 → 0.1.0-alpha.5

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.
@@ -51,30 +51,30 @@ export declare const CriticResultZodSchema: z.ZodObject<{
51
51
  routeId: z.ZodOptional<z.ZodString>;
52
52
  justification: z.ZodOptional<z.ZodString>;
53
53
  }, "strip", z.ZodTypeAny, {
54
+ evidence: string;
54
55
  severity: string;
55
56
  category: string;
56
- evidence: string;
57
57
  impact: string;
58
58
  requiredFix: string;
59
59
  symbol?: string | undefined;
60
+ routeId?: string | undefined;
60
61
  file?: string | undefined;
61
62
  line?: number | undefined;
62
63
  manifestoSection?: string | undefined;
63
64
  evidencePath?: string | undefined;
64
- routeId?: string | undefined;
65
65
  justification?: string | undefined;
66
66
  }, {
67
+ evidence: string;
67
68
  severity: string;
68
69
  category: string;
69
- evidence: string;
70
70
  impact: string;
71
71
  requiredFix: string;
72
72
  symbol?: string | undefined;
73
+ routeId?: string | undefined;
73
74
  file?: string | undefined;
74
75
  line?: number | undefined;
75
76
  manifestoSection?: string | undefined;
76
77
  evidencePath?: string | undefined;
77
- routeId?: string | undefined;
78
78
  justification?: string | undefined;
79
79
  }>, "many">;
80
80
  validation: z.ZodObject<{
@@ -89,16 +89,16 @@ export declare const CriticResultZodSchema: z.ZodObject<{
89
89
  }, "strip", z.ZodTypeAny, {
90
90
  exitCode: number;
91
91
  command: string;
92
- durationMs: number;
93
92
  logExcerpt: string;
93
+ durationMs: number;
94
94
  startedAt: string;
95
95
  finishedAt: string;
96
96
  routeId?: string | undefined;
97
97
  }, {
98
98
  exitCode: number;
99
99
  command: string;
100
- durationMs: number;
101
100
  logExcerpt: string;
101
+ durationMs: number;
102
102
  startedAt: string;
103
103
  finishedAt: string;
104
104
  routeId?: string | undefined;
@@ -108,8 +108,8 @@ export declare const CriticResultZodSchema: z.ZodObject<{
108
108
  qualityGateResults: {
109
109
  exitCode: number;
110
110
  command: string;
111
- durationMs: number;
112
111
  logExcerpt: string;
112
+ durationMs: number;
113
113
  startedAt: string;
114
114
  finishedAt: string;
115
115
  routeId?: string | undefined;
@@ -119,8 +119,8 @@ export declare const CriticResultZodSchema: z.ZodObject<{
119
119
  qualityGateResults: {
120
120
  exitCode: number;
121
121
  command: string;
122
- durationMs: number;
123
122
  logExcerpt: string;
123
+ durationMs: number;
124
124
  startedAt: string;
125
125
  finishedAt: string;
126
126
  routeId?: string | undefined;
@@ -133,65 +133,65 @@ export declare const CriticResultZodSchema: z.ZodObject<{
133
133
  qualityGateResults: {
134
134
  exitCode: number;
135
135
  command: string;
136
- durationMs: number;
137
136
  logExcerpt: string;
137
+ durationMs: number;
138
138
  startedAt: string;
139
139
  finishedAt: string;
140
140
  routeId?: string | undefined;
141
141
  }[];
142
142
  qualityGatesMissing: string[];
143
143
  };
144
- verdict: string;
145
144
  status: string;
146
145
  requiresHumanJudgment: boolean;
147
146
  summary: string;
147
+ confidence: string;
148
+ verdict: string;
148
149
  findings: {
150
+ evidence: string;
149
151
  severity: string;
150
152
  category: string;
151
- evidence: string;
152
153
  impact: string;
153
154
  requiredFix: string;
154
155
  symbol?: string | undefined;
156
+ routeId?: string | undefined;
155
157
  file?: string | undefined;
156
158
  line?: number | undefined;
157
159
  manifestoSection?: string | undefined;
158
160
  evidencePath?: string | undefined;
159
- routeId?: string | undefined;
160
161
  justification?: string | undefined;
161
162
  }[];
162
- confidence: string;
163
163
  }, {
164
164
  validation: {
165
165
  qualityGateResults: {
166
166
  exitCode: number;
167
167
  command: string;
168
- durationMs: number;
169
168
  logExcerpt: string;
169
+ durationMs: number;
170
170
  startedAt: string;
171
171
  finishedAt: string;
172
172
  routeId?: string | undefined;
173
173
  }[];
174
174
  qualityGatesMissing: string[];
175
175
  };
176
- verdict: string;
177
176
  status: string;
178
177
  requiresHumanJudgment: boolean;
179
178
  summary: string;
179
+ confidence: string;
180
+ verdict: string;
180
181
  findings: {
182
+ evidence: string;
181
183
  severity: string;
182
184
  category: string;
183
- evidence: string;
184
185
  impact: string;
185
186
  requiredFix: string;
186
187
  symbol?: string | undefined;
188
+ routeId?: string | undefined;
187
189
  file?: string | undefined;
188
190
  line?: number | undefined;
189
191
  manifestoSection?: string | undefined;
190
192
  evidencePath?: string | undefined;
191
- routeId?: string | undefined;
192
193
  justification?: string | undefined;
193
194
  }[];
194
- confidence: string;
195
195
  }>;
196
196
  export type CriticResultModelEnvelope = z.infer<typeof CriticResultZodSchema>;
197
197
  /**
package/dist/cli.js CHANGED
@@ -42,10 +42,14 @@ import { runSyncCycleTrackers, runAttributePrCycleRef, } from "./cycle-tracker-s
42
42
  import { FileTelemetrySink, readTelemetryEvents, summarizeTelemetry, computeQuorumStats, computeCriticAgreement, } from "./evidence/audit-trail.js";
43
43
  import { classifyPrKindFromFiles } from "./policy/merge-queue.js";
44
44
  import { AdapterRegistry } from "./adapters/critic.js";
45
- import { CursorSdkAdapter } from "./adapters/cursor-sdk.js";
46
- import { CodexSdkAdapter } from "./adapters/codex-sdk.js";
47
- import { GeminiSdkAdapter } from "./adapters/gemini-sdk.js";
48
- import { GrokDirectSdkAdapter } from "./adapters/grok-direct-sdk.js";
45
+ // NOTE: vendor adapters (Cursor, Codex, Gemini, Grok) are dynamically
46
+ // imported inside `buildDefaultAdapterRegistry()` so the CLI loads under
47
+ // `--ignore-scripts` for every non-`df critic` subcommand. The Cursor
48
+ // SDK has a top-level static dependency on `sqlite3` which crashes at
49
+ // module load when its native binding hasn't been built (the case for
50
+ // consumers using the documented `npm install --ignore-scripts` install
51
+ // path). Phase B-PUBLISH-pkg (cycle 331.1, alpha.5): see
52
+ // https://github.com/momentiq-ai/dark-factory/pull/<this-pr>.
49
53
  import { loadAgentReviewConfig } from "./policy/config.js";
50
54
  import { runReview } from "./runner.js";
51
55
  import { resolveArtifactDir, telemetryPath } from "./paths.js";
@@ -117,11 +121,13 @@ function printHelp(meta) {
117
121
  " import { runReview, evaluateCommitGate, buildReviewPacket }",
118
122
  ` from \"${name}\";`,
119
123
  "",
120
- "Status: 0.1.0-alpha.4 — Phase F wires the real Critic Orchestrator",
121
- " and dogfoods dark-factory on its own PRs. Reusable workflows",
122
- " from Phase E now invoke real critic logic. The substrate",
123
- " validates itself end-to-end.",
124
- " Pure-TS port of #5/#7/#9 tracked as Phase C-PORT follow-up.",
124
+ "Status: 0.1.0-alpha.5 — Phase B-PUBLISH-pkg fixes CLI loadability",
125
+ " under `npm install --ignore-scripts` for all non-`df critic`",
126
+ " subcommands. Phase F wires the real Critic Orchestrator and",
127
+ " dogfoods dark-factory on its own PRs. Reusable workflows from",
128
+ " Phase E now invoke real critic logic. The substrate validates",
129
+ " itself end-to-end. Pure-TS port of #5/#7/#9 tracked as Phase",
130
+ " C-PORT follow-up.",
125
131
  "",
126
132
  "Docs: https://github.com/momentiq-ai/dark-factory",
127
133
  "",
@@ -216,18 +222,48 @@ function parseCriticArgs(rest) {
216
222
  }
217
223
  return out;
218
224
  }
219
- function buildDefaultAdapterRegistry() {
225
+ // Adapter loader identity → module path. Kept as a typed array so the
226
+ // per-vendor try/catch loop below is structurally uniform: each entry
227
+ // is one dynamic import + one registry.register. Adding a vendor is one
228
+ // row, not one branch.
229
+ const ADAPTER_LOADERS = [
230
+ { id: "cursor-sdk", modulePath: "./adapters/cursor-sdk.js", className: "CursorSdkAdapter" },
231
+ { id: "codex-sdk", modulePath: "./adapters/codex-sdk.js", className: "CodexSdkAdapter" },
232
+ { id: "gemini-sdk", modulePath: "./adapters/gemini-sdk.js", className: "GeminiSdkAdapter" },
233
+ { id: "grok-direct-sdk", modulePath: "./adapters/grok-direct-sdk.js", className: "GrokDirectSdkAdapter" },
234
+ ];
235
+ async function buildDefaultAdapterRegistry() {
220
236
  // Each adapter reads its API key from the corresponding env var by
221
237
  // default (CURSOR_API_KEY / CODEX_API_KEY / GEMINI_API_KEY /
222
238
  // XAI_API_KEY). Missing keys cause the adapter's `review()` to
223
239
  // return `status="error"` rather than throw at registry-init time —
224
240
  // exactly the behavior min-complete-quorum needs to degrade
225
241
  // gracefully.
242
+ //
243
+ // Cycle 331.1 Phase B-PUBLISH-pkg (alpha.5) — adapter modules are
244
+ // dynamically imported one-by-one so a single vendor's static-import
245
+ // failure (e.g. the Cursor SDK's transitive `sqlite3` native binding
246
+ // missing under `npm install --ignore-scripts`) does not abort the
247
+ // CLI. A failed adapter is logged with `[critic-degraded]` and the
248
+ // remaining vendors register normally; min-complete-quorum
249
+ // (`required: false` per critic, `quorum: 2` aggregate) handles the
250
+ // missing adapter without blocking.
226
251
  const registry = new AdapterRegistry();
227
- registry.register(new CursorSdkAdapter());
228
- registry.register(new CodexSdkAdapter());
229
- registry.register(new GeminiSdkAdapter());
230
- registry.register(new GrokDirectSdkAdapter());
252
+ for (const loader of ADAPTER_LOADERS) {
253
+ try {
254
+ const mod = (await import(loader.modulePath));
255
+ const Ctor = mod[loader.className];
256
+ if (typeof Ctor !== "function") {
257
+ process.stderr.write(`[critic-degraded] adapter ${loader.id}: module loaded but '${loader.className}' export is not a constructor; skipping registration.\n`);
258
+ continue;
259
+ }
260
+ registry.register(new Ctor());
261
+ }
262
+ catch (err) {
263
+ const message = err instanceof Error ? err.message : String(err);
264
+ process.stderr.write(`[critic-degraded] adapter ${loader.id}: failed to load (${message}); skipping registration. If this vendor is marked 'required: true' in .agent-review/config.json, the orchestrator will fail with a clear error.\n`);
265
+ }
266
+ }
231
267
  return registry;
232
268
  }
233
269
  async function cmdCritic(rest) {
@@ -263,7 +299,7 @@ async function cmdCritic(rest) {
263
299
  const loaded = await loadAgentReviewConfig({
264
300
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
265
301
  });
266
- const registry = buildDefaultAdapterRegistry();
302
+ const registry = await buildDefaultAdapterRegistry();
267
303
  // Wire a file telemetry sink so the run lands in
268
304
  // `.git/agent-reviews/_runs.ndjson` (the same path `df audit stats`
269
305
  // reads). This is dogfood proof: the substrate exercises its own
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AdapterRegistry } from "./adapters/critic.js";
2
+ import type { LoadedConfig } from "./policy/config.js";
3
+ import type { BootstrapResult } from "./doppler-bootstrap.js";
4
+ import type { DoctorCheck } from "@momentiq/dark-factory-schemas";
5
+ export interface DoctorOptions {
6
+ loaded: LoadedConfig;
7
+ registry: AdapterRegistry;
8
+ bootstrap?: BootstrapResult;
9
+ profileName?: string;
10
+ }
11
+ export declare function runDoctor(options: DoctorOptions): Promise<DoctorCheck[]>;
12
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAK1B,SAAS,CAAC,EAAE,eAAe,CAAC;IAO5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAwI9E"}
package/dist/doctor.js ADDED
@@ -0,0 +1,329 @@
1
+ // `df doctor` — environment verification for hook-facing critic invocation.
2
+ //
3
+ // Cycle 331.1 Phase F-LOCAL — ported from sage3c's
4
+ // tools/agent-review/src/install.ts (cycle 318.1 / 322.x). The OSS doctor
5
+ // is intentionally slimmer than sage3c's:
6
+ //
7
+ // Dropped (sage-specific):
8
+ // - K8s container-stack-status probe (kubectl against k3d-sage-local).
9
+ // - dist-staleness check (relies on `tools/agent-review/dist/cli.js`
10
+ // path, which doesn't exist in a consumer repo installing
11
+ // `@momentiq/dark-factory-cli` from npm).
12
+ // - CURSOR_API_KEY-specific Doppler probe (sage's first-vendor
13
+ // historical default). The OSS Doppler check is now a thin
14
+ // "is doppler CLI reachable?" probe + the per-adapter doctor()
15
+ // reports adapter-by-adapter.
16
+ //
17
+ // Kept (OSS-generic):
18
+ // - Node 20+ check
19
+ // - hooks directory + per-hook (post-commit / pre-push) presence +
20
+ // executability
21
+ // - `git config --local core.hooksPath` matches configured hookPath
22
+ // - artifact dir writable
23
+ // - Doppler bootstrap result (when provided by caller)
24
+ // - per-adapter `doctor()` invocation, where subscription-auth
25
+ // verification actually happens (cycle 322.7 issue #2103 +
26
+ // codex 322.7 work). The adapter knows whether `chatgpt` /
27
+ // `subscription` / `api` was pinned by the profile and reports
28
+ // pass/fail accordingly.
29
+ import { spawn } from "node:child_process";
30
+ import { accessSync, constants, existsSync, mkdirSync } from "node:fs";
31
+ import { resolve } from "node:path";
32
+ import { gitCommonDir, gitDir } from "./git.js";
33
+ import { applyProfileAuth, resolveProfileWithConfig, } from "./policy/profile.js";
34
+ const HOOK_FILES = ["post-commit", "pre-push"];
35
+ export async function runDoctor(options) {
36
+ const checks = [];
37
+ const { loaded, registry } = options;
38
+ // 1. Node 20+
39
+ checks.push({
40
+ name: "node_version",
41
+ passed: nodeVersionOk(),
42
+ detail: `node ${process.version}`,
43
+ ...(nodeVersionOk()
44
+ ? {}
45
+ : { remediation: "install Node.js 20 or newer (e.g., via nvm/asdf)" }),
46
+ });
47
+ // 2. hooks directory
48
+ const root = loaded.repoRoot;
49
+ const hookDir = resolve(root, loaded.config.git.hookPath);
50
+ const hookDirExists = existsSync(hookDir);
51
+ checks.push({
52
+ name: "hooks_directory_exists",
53
+ passed: hookDirExists,
54
+ detail: `${hookDir} ${hookDirExists ? "found" : "missing"}`,
55
+ ...(hookDirExists
56
+ ? {}
57
+ : {
58
+ remediation: `create ${loaded.config.git.hookPath}/ and add post-commit + pre-push (see README for samples)`,
59
+ }),
60
+ });
61
+ // 3. per-hook presence + executability
62
+ for (const name of HOOK_FILES) {
63
+ const path = resolve(hookDir, name);
64
+ const exists = existsSync(path);
65
+ let executable = false;
66
+ if (exists) {
67
+ try {
68
+ accessSync(path, constants.X_OK);
69
+ executable = true;
70
+ }
71
+ catch {
72
+ executable = false;
73
+ }
74
+ }
75
+ checks.push({
76
+ name: `hook_${name}`,
77
+ passed: exists && executable,
78
+ detail: exists
79
+ ? executable
80
+ ? `${path} present and executable`
81
+ : `${path} present but not executable`
82
+ : `${path} missing`,
83
+ ...(exists && executable
84
+ ? {}
85
+ : { remediation: `chmod +x ${loaded.config.git.hookPath}/${name}` }),
86
+ });
87
+ }
88
+ // 4. git config --local core.hooksPath matches configured hookPath
89
+ checks.push(await checkGitHooksPath(root, loaded.config.git.hookPath));
90
+ // 5. artifact dir writable
91
+ const scopeDir = loaded.config.git.artifactScope === "git-dir"
92
+ ? await gitDir(root)
93
+ : await gitCommonDir(root);
94
+ const artifactDir = resolve(scopeDir, loaded.config.git.artifactDir);
95
+ const artifactDirOk = canCreateDir(artifactDir);
96
+ checks.push({
97
+ name: "artifact_dir_writable",
98
+ passed: artifactDirOk,
99
+ detail: `${artifactDir} ${artifactDirOk ? "writable" : "not writable"}`,
100
+ ...(artifactDirOk
101
+ ? {}
102
+ : { remediation: `mkdir -p ${artifactDir} and ensure write permission` }),
103
+ });
104
+ // 6. Doppler bootstrap visibility (when caller supplied a BootstrapResult).
105
+ // For the OSS doctor, this is informational — a `no-bootstrap-file` status
106
+ // is perfectly fine when the user exports tokens directly in their shell.
107
+ if (options.bootstrap) {
108
+ const b = options.bootstrap;
109
+ checks.push({
110
+ name: "doppler_bootstrap",
111
+ passed: b.status === "ok" || b.status === "no-bootstrap-file",
112
+ detail: b.message,
113
+ ...(b.status === "ok" || b.status === "no-bootstrap-file"
114
+ ? {}
115
+ : { remediation: BOOTSTRAP_REMEDIATION }),
116
+ });
117
+ }
118
+ // 7. Doppler CLI reachable (informational — only emitted when the loaded
119
+ // config declares a `secrets.doppler` scope AND `DOPPLER_TOKEN` is
120
+ // missing AND no per-adapter API key is set directly. Otherwise this
121
+ // check is moot.). This is the generic version of sage3c's
122
+ // `checkDopplerScopeReachable`: we just verify the doppler binary is on
123
+ // PATH; we don't probe a specific env var name (sage hard-coded
124
+ // CURSOR_API_KEY which is non-portable).
125
+ if (loaded.config.secrets?.doppler) {
126
+ checks.push(await checkDopplerOnPath(loaded));
127
+ }
128
+ // 8. per-adapter doctor() — this is where subscription-auth verification
129
+ // actually lives. Each adapter's doctor() checks ITS own credentials
130
+ // (env var, ~/.cursor auth, ~/.codex auth, etc.). When a profile is
131
+ // active and pins `auth` for a critic, `applyProfileAuth` clones the
132
+ // critic config with `auth=<chatgpt|api|composer|subscription>` and the
133
+ // adapter validates ONLY that source.
134
+ const resolvedProfile = options.profileName
135
+ ? resolveProfileWithConfig(loaded.config, options.profileName)
136
+ : undefined;
137
+ for (const rawCritic of loaded.config.critics) {
138
+ const critic = applyProfileAuth(rawCritic, resolvedProfile?.profile);
139
+ if (!registry.has(critic.adapter)) {
140
+ checks.push({
141
+ name: `adapter_${critic.adapter}_registered`,
142
+ passed: false,
143
+ detail: `no adapter registered for "${critic.adapter}"`,
144
+ remediation: "register the adapter in your CLI wrapper or use the default registry",
145
+ });
146
+ continue;
147
+ }
148
+ const adapter = registry.resolve(critic.adapter);
149
+ const adapterChecks = await adapter.doctor(critic);
150
+ // Optional (shadow) critics are tagged `optional: true` so cmdDoctor
151
+ // prints them but does NOT exit non-zero when they fail.
152
+ for (const c of adapterChecks) {
153
+ checks.push({
154
+ ...c,
155
+ name: `${critic.id}.${c.name}`,
156
+ ...(critic.required ? {} : { optional: true }),
157
+ });
158
+ }
159
+ }
160
+ return checks;
161
+ }
162
+ // `git config --local core.hooksPath` check. Verifies that the local repo
163
+ // is configured to use the configured hookPath. Skipped in CI where
164
+ // hooks aren't expected to fire (env `DF_DOCTOR_SKIP_HOOKS=1` or
165
+ // `DF_DOCTOR_CI=1`).
166
+ async function checkGitHooksPath(rootDir, expectedHookPath) {
167
+ if (process.env["DF_DOCTOR_SKIP_HOOKS"] === "1") {
168
+ return {
169
+ name: "git_core_hookspath",
170
+ passed: true,
171
+ detail: "skipped via DF_DOCTOR_SKIP_HOOKS=1",
172
+ };
173
+ }
174
+ if (process.env["DF_DOCTOR_CI"] === "1") {
175
+ return {
176
+ name: "git_core_hookspath",
177
+ passed: true,
178
+ detail: "skipped via DF_DOCTOR_CI=1 (CI checkouts do not set core.hooksPath)",
179
+ };
180
+ }
181
+ const configuredHookPath = await getGitConfig(rootDir, "core.hooksPath");
182
+ const matches = configuredHookPath === expectedHookPath;
183
+ return {
184
+ name: "git_core_hookspath",
185
+ passed: matches,
186
+ detail: configuredHookPath
187
+ ? `core.hooksPath=${configuredHookPath} (expected ${expectedHookPath})`
188
+ : "core.hooksPath is not set",
189
+ ...(matches
190
+ ? {}
191
+ : {
192
+ remediation: `git config --local core.hooksPath ${expectedHookPath}`,
193
+ }),
194
+ };
195
+ }
196
+ // Generic Doppler-on-PATH probe. We don't run `doppler run --project
197
+ // ... --config ... -- printenv ANY_KEY` because:
198
+ // - The key name is consumer-specific (sage's CURSOR_API_KEY isn't
199
+ // portable to a generic OSS tool).
200
+ // - The adapters' own `doctor()` will probe their own keys (or
201
+ // subscription tokens) anyway.
202
+ // The OSS doctor's question is simpler: "is the doppler binary
203
+ // reachable so the Doppler re-exec gate can fire?"
204
+ async function checkDopplerOnPath(loaded) {
205
+ if (process.env["DF_DOCTOR_SKIP_DOPPLER"] === "1") {
206
+ return {
207
+ name: "doppler_cli_on_path",
208
+ passed: true,
209
+ detail: "skipped via DF_DOCTOR_SKIP_DOPPLER=1",
210
+ };
211
+ }
212
+ if (process.env["DF_DOCTOR_CI"] === "1") {
213
+ return {
214
+ name: "doppler_cli_on_path",
215
+ passed: true,
216
+ detail: "skipped via DF_DOCTOR_CI=1 (CI uses platform secrets, not Doppler runtime)",
217
+ };
218
+ }
219
+ const dop = loaded.config.secrets?.doppler;
220
+ if (!dop) {
221
+ return {
222
+ name: "doppler_cli_on_path",
223
+ passed: true,
224
+ detail: "no Doppler scope configured — nothing to check",
225
+ };
226
+ }
227
+ return new Promise((resolvePromise) => {
228
+ let settled = false;
229
+ const settle = (check) => {
230
+ if (settled)
231
+ return;
232
+ settled = true;
233
+ resolvePromise(check);
234
+ };
235
+ let child;
236
+ try {
237
+ child = spawn("doppler", ["--version"], {
238
+ stdio: ["ignore", "pipe", "pipe"],
239
+ });
240
+ }
241
+ catch (err) {
242
+ settle({
243
+ name: "doppler_cli_on_path",
244
+ passed: false,
245
+ detail: `failed to spawn doppler: ${err.message}`,
246
+ remediation: "install Doppler (https://docs.doppler.com/docs/install-cli) or set DF_DOCTOR_SKIP_DOPPLER=1",
247
+ });
248
+ return;
249
+ }
250
+ const timer = setTimeout(() => {
251
+ child.kill("SIGKILL");
252
+ settle({
253
+ name: "doppler_cli_on_path",
254
+ passed: false,
255
+ detail: "doppler --version timed out",
256
+ remediation: "verify Doppler installation and that the binary is responsive",
257
+ });
258
+ }, 3_000);
259
+ child.on("error", (err) => {
260
+ clearTimeout(timer);
261
+ const e = err;
262
+ if (e.code === "ENOENT") {
263
+ settle({
264
+ name: "doppler_cli_on_path",
265
+ passed: false,
266
+ detail: "doppler CLI not on PATH",
267
+ remediation: "install Doppler (https://docs.doppler.com/docs/install-cli) or set DF_DOCTOR_SKIP_DOPPLER=1",
268
+ });
269
+ return;
270
+ }
271
+ settle({
272
+ name: "doppler_cli_on_path",
273
+ passed: false,
274
+ detail: `doppler --version errored: ${err.message}`,
275
+ remediation: "verify Doppler installation",
276
+ });
277
+ });
278
+ child.on("close", (code) => {
279
+ clearTimeout(timer);
280
+ if (code === 0) {
281
+ settle({
282
+ name: "doppler_cli_on_path",
283
+ passed: true,
284
+ detail: `doppler CLI reachable (scope ${dop.project}/${dop.config})`,
285
+ });
286
+ }
287
+ else {
288
+ settle({
289
+ name: "doppler_cli_on_path",
290
+ passed: false,
291
+ detail: `doppler --version exited ${code}`,
292
+ remediation: "verify Doppler installation and PATH",
293
+ });
294
+ }
295
+ });
296
+ });
297
+ }
298
+ const BOOTSTRAP_REMEDIATION = "set DOPPLER_TOKEN in your shell, or for husky hooks add it (or your service-token alias) to <main-checkout>/.env (the bootstrap loader will hoist it from any worktree).";
299
+ function nodeVersionOk() {
300
+ const major = Number((process.versions.node ?? "0").split(".")[0]);
301
+ return major >= 20;
302
+ }
303
+ async function getGitConfig(cwd, key) {
304
+ return new Promise((resolvePromise) => {
305
+ const child = spawn("git", ["config", "--local", "--get", key], { cwd });
306
+ let stdout = "";
307
+ child.stdout.on("data", (c) => {
308
+ stdout += c.toString("utf8");
309
+ });
310
+ child.on("close", (code) => {
311
+ if (code === 0)
312
+ resolvePromise(stdout.trim());
313
+ else
314
+ resolvePromise(null);
315
+ });
316
+ child.on("error", () => resolvePromise(null));
317
+ });
318
+ }
319
+ function canCreateDir(path) {
320
+ try {
321
+ mkdirSync(path, { recursive: true });
322
+ accessSync(path, constants.W_OK);
323
+ return true;
324
+ }
325
+ catch {
326
+ return false;
327
+ }
328
+ }
329
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare const DEFAULT_BOOTSTRAP_ALLOWLIST: readonly ["DOPPLER_TOKEN"];
2
+ export type BootstrapStatus = "ok" | "no-bootstrap-file" | "no-allowlisted-keys" | "parse-error" | "not-in-git";
3
+ export interface BootstrapResult {
4
+ loadedKeys: string[];
5
+ mappedToDopplerToken: boolean;
6
+ status: BootstrapStatus;
7
+ message: string;
8
+ source?: string;
9
+ }
10
+ export interface BootstrapOptions {
11
+ cwd?: string;
12
+ env?: NodeJS.ProcessEnv;
13
+ mainCheckoutRoot?: string;
14
+ allowlist?: ReadonlyArray<string>;
15
+ serviceTokenAlias?: string;
16
+ }
17
+ export declare function loadDopplerBootstrapEnv(options?: BootstrapOptions): BootstrapResult;
18
+ //# sourceMappingURL=doppler-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doppler-bootstrap.d.ts","sourceRoot":"","sources":["../src/doppler-bootstrap.ts"],"names":[],"mappings":"AAgDA,eAAO,MAAM,2BAA2B,4BAA4C,CAAC;AAErF,MAAM,MAAM,eAAe,GACvB,IAAI,GACJ,mBAAmB,GACnB,qBAAqB,GACrB,aAAa,GACb,YAAY,CAAC;AAEjB,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAGxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAM1B,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAKlC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA0DD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CA+GjB"}
@@ -0,0 +1,206 @@
1
+ // Doppler bootstrap loader for the OSS CLI.
2
+ //
3
+ // Cycle 331.1 Phase F-LOCAL — ported from sage3c's
4
+ // tools/agent-review/src/doppler-bootstrap.ts (cycle 318.3 / #1312) with
5
+ // two genericizing changes:
6
+ //
7
+ // 1. The `DOPPLER_SERVICE_TOKEN_SAGE` key is a sage3c convention. The OSS
8
+ // default allowlist is just `["DOPPLER_TOKEN"]`. Consumers that use
9
+ // Doppler service tokens with project-scoped names pass their own
10
+ // allowlist via `loadDopplerBootstrapEnv({ allowlist: ... })`.
11
+ //
12
+ // 2. The "map service token → DOPPLER_TOKEN" auto-bridge (sage's
13
+ // `DOPPLER_SERVICE_TOKEN_SAGE` was bridged to `DOPPLER_TOKEN`) is now
14
+ // a generic option: `serviceTokenAlias`. When set, the loader copies
15
+ // the named key's value into `DOPPLER_TOKEN` if the latter is unset.
16
+ // Sage3c (and any other consumer with a project-scoped service token
17
+ // var) sets `serviceTokenAlias: "DOPPLER_SERVICE_TOKEN_SAGE"`.
18
+ //
19
+ // Why this loader exists (recap of the sage3c constraint):
20
+ //
21
+ // Husky hooks run inside a fresh-shell environment that does NOT inherit
22
+ // the user's interactive `.zshrc` / `.bashrc`. Doppler-issued tokens
23
+ // exported in an interactive shell are therefore unreachable from the
24
+ // hook. The sage3c solution (#1312): allowlist-narrowed parser of a
25
+ // single, top-of-repo `.env` file. The .env holds only the Doppler
26
+ // service token; the loader hoists it into the hook's process env.
27
+ //
28
+ // The same shape works for any consumer repo with the same constraint.
29
+ // The OSS implementation accepts the allowlist as a parameter so each
30
+ // repo's convention (`DOPPLER_SERVICE_TOKEN_ACME`, etc.) is opt-in.
31
+ //
32
+ // Defense-in-depth carried over from sage3c:
33
+ // - KEY must match `/^[A-Z_][A-Z0-9_]*$/`. Anything else is dropped
34
+ // before the allowlist check (typo / accidental punctuation).
35
+ // - VALUE must not contain `[`$;&|<>]` — a Doppler service token is
36
+ // base64url, so these characters cannot legitimately appear. If the
37
+ // .env has been tampered to inject a command substitution, drop the
38
+ // line.
39
+ // - Strips one layer of matched single/double quotes from the value.
40
+ // - The loader does NOT overwrite already-set env vars; an exported
41
+ // value in the user's shell wins.
42
+ import { execFileSync } from "node:child_process";
43
+ import { existsSync, readFileSync, statSync } from "node:fs";
44
+ import { resolve } from "node:path";
45
+ // Default allowlist for the OSS CLI. Just `DOPPLER_TOKEN`. Consumers
46
+ // that use project-scoped service token vars pass their own list.
47
+ export const DEFAULT_BOOTSTRAP_ALLOWLIST = Object.freeze(["DOPPLER_TOKEN"]);
48
+ // Strict KEY=value shape. The KEY must match this pattern; anything else
49
+ // gets dropped before the allowlist is even consulted.
50
+ const KEY_PATTERN = /^[A-Z_][A-Z0-9_]*$/;
51
+ // Defense-in-depth: a Doppler service token is `dp.st.<env>.<base64url>` —
52
+ // none of these characters can legitimately appear in a value. If the .env
53
+ // has been tampered to inject a command substitution, drop the line.
54
+ const FORBIDDEN_VALUE_CHARS = /[`$;&|<>]/;
55
+ function findMainCheckoutRoot(cwd) {
56
+ try {
57
+ const out = execFileSync("git", ["rev-parse", "--git-common-dir"], {
58
+ cwd,
59
+ encoding: "utf8",
60
+ stdio: ["ignore", "pipe", "ignore"],
61
+ }).trim();
62
+ if (!out)
63
+ return null;
64
+ const absolute = out.startsWith("/") ? out : resolve(cwd, out);
65
+ // The common dir is `<main-checkout>/.git`. Its parent is the main
66
+ // checkout root. (Bare repositories have no checkout and therefore no
67
+ // .env to bootstrap — treat them as "not in a git checkout" for the
68
+ // purposes of this loader.)
69
+ if (!absolute.endsWith("/.git") && absolute !== ".git")
70
+ return null;
71
+ return resolve(absolute, "..");
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ function parseLine(rawLine) {
78
+ // Trim leading whitespace only — trailing whitespace stays attached to the
79
+ // value, where we'll strip surrounding quotes (if any) and validate.
80
+ const line = rawLine.replace(/^\s+/, "");
81
+ if (line === "" || line.startsWith("#"))
82
+ return null;
83
+ const eqIdx = line.indexOf("=");
84
+ if (eqIdx <= 0)
85
+ return null;
86
+ const key = line.slice(0, eqIdx);
87
+ if (!KEY_PATTERN.test(key))
88
+ return null;
89
+ let value = line.slice(eqIdx + 1).replace(/\s+$/, "");
90
+ // Strip a single layer of matched single or double quotes.
91
+ if (value.length >= 2 &&
92
+ ((value.startsWith('"') && value.endsWith('"')) ||
93
+ (value.startsWith("'") && value.endsWith("'")))) {
94
+ value = value.slice(1, -1);
95
+ }
96
+ if (FORBIDDEN_VALUE_CHARS.test(value))
97
+ return null;
98
+ return { key, value };
99
+ }
100
+ export function loadDopplerBootstrapEnv(options = {}) {
101
+ const cwd = options.cwd ?? process.cwd();
102
+ const env = options.env ?? process.env;
103
+ const allowlist = options.allowlist ?? DEFAULT_BOOTSTRAP_ALLOWLIST;
104
+ const root = options.mainCheckoutRoot ?? findMainCheckoutRoot(cwd);
105
+ if (!root) {
106
+ return {
107
+ loadedKeys: [],
108
+ mappedToDopplerToken: false,
109
+ status: "not-in-git",
110
+ message: "df bootstrap: cwd is not inside a git checkout; skipping Doppler bootstrap loader.",
111
+ };
112
+ }
113
+ const envPath = resolve(root, ".env");
114
+ if (!existsSync(envPath)) {
115
+ return {
116
+ loadedKeys: [],
117
+ mappedToDopplerToken: false,
118
+ status: "no-bootstrap-file",
119
+ message: `df bootstrap: no .env at ${envPath} (relying on shell-exported Doppler tokens, if any).`,
120
+ source: envPath,
121
+ };
122
+ }
123
+ try {
124
+ const st = statSync(envPath);
125
+ if (!st.isFile() || st.size === 0) {
126
+ return {
127
+ loadedKeys: [],
128
+ mappedToDopplerToken: false,
129
+ status: "no-bootstrap-file",
130
+ message: `df bootstrap: ${envPath} exists but is empty.`,
131
+ source: envPath,
132
+ };
133
+ }
134
+ }
135
+ catch {
136
+ return {
137
+ loadedKeys: [],
138
+ mappedToDopplerToken: false,
139
+ status: "parse-error",
140
+ message: `df bootstrap: failed to stat ${envPath}.`,
141
+ source: envPath,
142
+ };
143
+ }
144
+ let raw;
145
+ try {
146
+ raw = readFileSync(envPath, "utf8");
147
+ }
148
+ catch {
149
+ return {
150
+ loadedKeys: [],
151
+ mappedToDopplerToken: false,
152
+ status: "parse-error",
153
+ message: `df bootstrap: failed to read ${envPath}.`,
154
+ source: envPath,
155
+ };
156
+ }
157
+ const allowSet = new Set(allowlist);
158
+ const loadedKeys = [];
159
+ let sawAllowlistedLine = false;
160
+ for (const rawLine of raw.split(/\r?\n/)) {
161
+ const parsed = parseLine(rawLine);
162
+ if (!parsed)
163
+ continue;
164
+ if (!allowSet.has(parsed.key))
165
+ continue;
166
+ sawAllowlistedLine = true;
167
+ const existing = env[parsed.key];
168
+ if (existing !== undefined && existing !== "")
169
+ continue;
170
+ env[parsed.key] = parsed.value;
171
+ loadedKeys.push(parsed.key);
172
+ }
173
+ let mappedToDopplerToken = false;
174
+ if (options.serviceTokenAlias) {
175
+ const alias = options.serviceTokenAlias;
176
+ // Only honor an alias that also appears in the allowlist — otherwise
177
+ // the loader would never have read it from .env anyway.
178
+ if (allowSet.has(alias)) {
179
+ const aliasValue = env[alias];
180
+ const token = env["DOPPLER_TOKEN"];
181
+ if (aliasValue && (token === undefined || token === "")) {
182
+ env["DOPPLER_TOKEN"] = aliasValue;
183
+ mappedToDopplerToken = true;
184
+ }
185
+ }
186
+ }
187
+ if (!sawAllowlistedLine) {
188
+ return {
189
+ loadedKeys: [],
190
+ mappedToDopplerToken,
191
+ status: "no-allowlisted-keys",
192
+ message: `df bootstrap: ${envPath} contained no allowlisted Doppler keys (allowlist=${Array.from(allowSet).join(",")}).`,
193
+ source: envPath,
194
+ };
195
+ }
196
+ return {
197
+ loadedKeys,
198
+ mappedToDopplerToken,
199
+ status: "ok",
200
+ message: loadedKeys.length > 0
201
+ ? `df bootstrap: loaded ${loadedKeys.length} allowlisted Doppler key(s) from ${envPath}.`
202
+ : `df bootstrap: ${envPath} processed; all allowlisted keys were already set in the environment.`,
203
+ source: envPath,
204
+ };
205
+ }
206
+ //# sourceMappingURL=doppler-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doppler-bootstrap.js","sourceRoot":"","sources":["../src/doppler-bootstrap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momentiq/dark-factory-cli",
3
- "version": "0.1.0-alpha.4",
3
+ "version": "0.1.0-alpha.5",
4
4
  "description": "Dark Factory OSS CLI — multi-vendor adversarial critic orchestration (Cursor, Codex, Gemini, Grok) with min-complete-quorum aggregation and trusted-surface rebind",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",