@principles/pd-cli 1.101.0 → 1.102.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/commands/diagnose.js +27 -27
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/pain-retry.d.ts.map +1 -1
- package/dist/commands/pain-retry.js +22 -27
- package/dist/commands/pain-retry.js.map +1 -1
- package/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
- package/dist/commands/runtime-internalization-run-once.js +11 -9
- package/dist/commands/runtime-internalization-run-once.js.map +1 -1
- package/dist/commands/runtime.d.ts +1 -1
- package/dist/commands/runtime.d.ts.map +1 -1
- package/dist/commands/runtime.js +92 -25
- package/dist/commands/runtime.js.map +1 -1
- package/dist/services/resolve-runtime-from-pd-config.d.ts +59 -0
- package/dist/services/resolve-runtime-from-pd-config.d.ts.map +1 -0
- package/dist/services/resolve-runtime-from-pd-config.js +96 -0
- package/dist/services/resolve-runtime-from-pd-config.js.map +1 -0
- package/package.json +1 -1
- package/src/commands/diagnose.ts +26 -26
- package/src/commands/pain-retry.ts +21 -25
- package/src/commands/runtime-internalization-run-once.ts +10 -9
- package/src/commands/runtime.ts +96 -24
- package/src/services/resolve-runtime-from-pd-config.ts +142 -0
- package/tests/commands/console-launcher-edge-cases.test.ts +14 -47
- package/tests/commands/diagnose.test.ts +91 -39
- package/tests/commands/pain-retry.test.ts +130 -15
- package/tests/commands/pri-393-runtime-config-unification.test.ts +284 -0
- package/tests/commands/runtime-internalization-run-once.test.ts +59 -53
- package/tests/commands/runtime.test.ts +124 -1
package/dist/commands/runtime.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import * as path from 'path';
|
|
11
11
|
import { probeRuntime } from '@principles/core/runtime-v2';
|
|
12
|
-
import { PDRuntimeError } from '@principles/core/runtime-v2';
|
|
12
|
+
import { PDRuntimeError, isRuntimeConfigError } from '@principles/core/runtime-v2';
|
|
13
|
+
import { resolveRuntimeFromPdConfig, resolveRuntimeWithOverrides } from '../services/resolve-runtime-from-pd-config.js';
|
|
13
14
|
/**
|
|
14
15
|
* Format capabilities as a key-value table for console output.
|
|
15
16
|
*/
|
|
@@ -117,47 +118,54 @@ async function handlePiAiProbe(opts) {
|
|
|
117
118
|
let model = opts.model ?? '';
|
|
118
119
|
let apiKeyEnv = opts.apiKeyEnv ?? '';
|
|
119
120
|
let baseUrl = opts.baseUrl ?? '';
|
|
120
|
-
let { timeoutMs } = opts;
|
|
121
|
-
//
|
|
121
|
+
let { timeoutMs, maxRetries } = opts;
|
|
122
|
+
// PRI-393: always load workspace policy from .pd/config.yaml (not .state/workflows.yaml)
|
|
122
123
|
if (workspaceDir) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
124
|
+
const resolved = resolveRuntimeWithOverrides(workspaceDir, {
|
|
125
|
+
provider: opts.provider,
|
|
126
|
+
model: opts.model,
|
|
127
|
+
apiKeyEnv: opts.apiKeyEnv,
|
|
128
|
+
baseUrl: opts.baseUrl,
|
|
129
|
+
maxRetries: opts.maxRetries,
|
|
130
|
+
timeoutMs: opts.timeoutMs,
|
|
131
|
+
});
|
|
132
|
+
for (const w of resolved.legacyWarnings)
|
|
133
|
+
console.warn(`Warning: ${w}`);
|
|
134
|
+
if (resolved.mergedConfig) {
|
|
135
|
+
provider = provider || resolved.mergedConfig.provider || '';
|
|
136
|
+
model = model || resolved.mergedConfig.model || '';
|
|
137
|
+
apiKeyEnv = apiKeyEnv || resolved.mergedConfig.apiKeyEnv || '';
|
|
138
|
+
baseUrl = baseUrl || resolved.mergedConfig.baseUrl || '';
|
|
139
|
+
timeoutMs = timeoutMs ?? resolved.mergedConfig.timeoutMs;
|
|
140
|
+
maxRetries = maxRetries ?? resolved.mergedConfig.maxRetries;
|
|
137
141
|
}
|
|
138
|
-
|
|
139
|
-
console.warn(`Warning: could not
|
|
142
|
+
else if (isRuntimeConfigError(resolved.result)) {
|
|
143
|
+
console.warn(`Warning: could not resolve runtime from .pd/config.yaml — ${resolved.result.message}`);
|
|
140
144
|
}
|
|
141
145
|
}
|
|
142
146
|
if (!provider) {
|
|
143
|
-
console.error("error: --provider is required for --runtime pi-ai (or set in
|
|
147
|
+
console.error("error: --provider is required for --runtime pi-ai (or set in .pd/config.yaml)");
|
|
144
148
|
console.error(" e.g.: pd runtime probe --runtime pi-ai --provider openrouter --model anthropic/claude-sonnet-4 --apiKeyEnv OPENROUTER_API_KEY");
|
|
145
149
|
process.exit(1);
|
|
150
|
+
return;
|
|
146
151
|
}
|
|
147
152
|
if (!model) {
|
|
148
|
-
console.error("error: --model is required for --runtime pi-ai (or set in
|
|
153
|
+
console.error("error: --model is required for --runtime pi-ai (or set in .pd/config.yaml)");
|
|
149
154
|
console.error(" e.g.: pd runtime probe --runtime pi-ai --provider openrouter --model anthropic/claude-sonnet-4 --apiKeyEnv OPENROUTER_API_KEY");
|
|
150
155
|
process.exit(1);
|
|
156
|
+
return;
|
|
151
157
|
}
|
|
152
158
|
if (!apiKeyEnv) {
|
|
153
|
-
console.error("error: --apiKeyEnv is required for --runtime pi-ai (or set in
|
|
159
|
+
console.error("error: --apiKeyEnv is required for --runtime pi-ai (or set in .pd/config.yaml)");
|
|
154
160
|
console.error(" e.g.: pd runtime probe --runtime pi-ai --provider openrouter --model anthropic/claude-sonnet-4 --apiKeyEnv OPENROUTER_API_KEY");
|
|
155
161
|
process.exit(1);
|
|
162
|
+
return;
|
|
156
163
|
}
|
|
157
164
|
// D-09: check env var exists before calling probeRuntime
|
|
158
165
|
if (!process.env[apiKeyEnv]) {
|
|
159
166
|
console.error(`error: environment variable '${apiKeyEnv}' is not set`);
|
|
160
167
|
process.exit(1);
|
|
168
|
+
return;
|
|
161
169
|
}
|
|
162
170
|
try {
|
|
163
171
|
const result = await probeRuntime({
|
|
@@ -166,7 +174,7 @@ async function handlePiAiProbe(opts) {
|
|
|
166
174
|
model,
|
|
167
175
|
apiKeyEnv,
|
|
168
176
|
baseUrl,
|
|
169
|
-
maxRetries:
|
|
177
|
+
maxRetries: maxRetries,
|
|
170
178
|
timeoutMs: timeoutMs ?? 120_000, // D-04: probe timeout 120s (matches Runtime defaults)
|
|
171
179
|
});
|
|
172
180
|
// Narrow to pi-ai result (TypeScript can't infer from input args alone)
|
|
@@ -241,7 +249,62 @@ async function handlePiAiProbe(opts) {
|
|
|
241
249
|
}
|
|
242
250
|
}
|
|
243
251
|
/**
|
|
244
|
-
*
|
|
252
|
+
* --runtime config probe branch — PRI-393
|
|
253
|
+
* Resolves runtime from .pd/config.yaml, then dispatches to pi-ai or openclaw-cli probe.
|
|
254
|
+
*/
|
|
255
|
+
async function handleConfigProbe(opts) {
|
|
256
|
+
const workspaceDir = opts.workspace ? path.resolve(opts.workspace) : undefined;
|
|
257
|
+
if (!workspaceDir) {
|
|
258
|
+
console.error('error: --workspace is required for --runtime config');
|
|
259
|
+
process.exit(1);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const resolved = resolveRuntimeFromPdConfig(workspaceDir);
|
|
263
|
+
for (const w of resolved.legacyWarnings)
|
|
264
|
+
console.warn(`Warning: ${w}`);
|
|
265
|
+
if (isRuntimeConfigError(resolved.result)) {
|
|
266
|
+
if (opts.json) {
|
|
267
|
+
console.log(JSON.stringify({
|
|
268
|
+
status: 'failed',
|
|
269
|
+
errorCategory: 'config_error',
|
|
270
|
+
message: resolved.result.message,
|
|
271
|
+
reason: resolved.result.reason,
|
|
272
|
+
nextAction: resolved.result.nextAction,
|
|
273
|
+
configSource: resolved.configSource,
|
|
274
|
+
}, null, 2));
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
console.error(`error: ${resolved.result.message}`);
|
|
278
|
+
console.error(`nextAction: ${resolved.result.nextAction}`);
|
|
279
|
+
}
|
|
280
|
+
process.exit(1);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
const config = resolved.result;
|
|
284
|
+
// Dispatch to the appropriate runtime probe
|
|
285
|
+
if (config.runtimeKind === 'pi-ai') {
|
|
286
|
+
return handlePiAiProbe({
|
|
287
|
+
...opts,
|
|
288
|
+
provider: opts.provider ?? config.provider,
|
|
289
|
+
model: opts.model ?? config.model,
|
|
290
|
+
apiKeyEnv: opts.apiKeyEnv ?? config.apiKeyEnv,
|
|
291
|
+
baseUrl: opts.baseUrl ?? config.baseUrl,
|
|
292
|
+
timeoutMs: opts.timeoutMs ?? config.timeoutMs,
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
if (config.runtimeKind === 'openclaw-cli') {
|
|
296
|
+
return handleOpenClawProbe({
|
|
297
|
+
...opts,
|
|
298
|
+
openclawLocal: config.openclawMode === 'local' ? true : opts.openclawLocal,
|
|
299
|
+
openclawGateway: config.openclawMode === 'gateway' ? true : opts.openclawGateway,
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
console.error(`error: unsupported runtimeKind '${config.runtimeKind}' from .pd/config.yaml`);
|
|
303
|
+
process.exit(1);
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* pd runtime probe — dispatches to openclaw-cli, pi-ai, or config branch.
|
|
245
308
|
*/
|
|
246
309
|
export async function handleRuntimeProbe(opts) {
|
|
247
310
|
if (opts.runtime === 'openclaw-cli') {
|
|
@@ -250,7 +313,11 @@ export async function handleRuntimeProbe(opts) {
|
|
|
250
313
|
if (opts.runtime === 'pi-ai') {
|
|
251
314
|
return handlePiAiProbe(opts);
|
|
252
315
|
}
|
|
253
|
-
|
|
316
|
+
if (opts.runtime === 'config') {
|
|
317
|
+
return handleConfigProbe(opts);
|
|
318
|
+
}
|
|
319
|
+
console.error(`error: unsupported --runtime '${opts.runtime}' (supported: openclaw-cli, pi-ai, config)`);
|
|
254
320
|
process.exit(1);
|
|
321
|
+
return;
|
|
255
322
|
}
|
|
256
323
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified runtime config resolver from .pd/config.yaml — PRI-393
|
|
3
|
+
*
|
|
4
|
+
* All MVP mainline execution paths (probe, run-once, diagnose, pain-retry)
|
|
5
|
+
* MUST use this helper instead of the legacy resolveRuntimeConfig(stateDir)
|
|
6
|
+
* which reads .state/workflows.yaml.
|
|
7
|
+
*
|
|
8
|
+
* Canonical source: .pd/config.yaml via loadPdConfig → resolveRuntimeConfigFromPdConfig.
|
|
9
|
+
* .state/workflows.yaml is reported as a legacy warning only.
|
|
10
|
+
*
|
|
11
|
+
* ERR refs:
|
|
12
|
+
* - ERR-002: fail loud with reason + nextAction
|
|
13
|
+
* - EP-07: runtime state source alignment
|
|
14
|
+
*/
|
|
15
|
+
import type { RuntimeConfigResult, RuntimeConfig } from '@principles/core/runtime-v2';
|
|
16
|
+
import type { PdConfigLoadResult } from './pd-config-loader.js';
|
|
17
|
+
export interface ResolvedRuntimeFromPdConfig {
|
|
18
|
+
/** The resolved runtime config (or error). */
|
|
19
|
+
result: RuntimeConfigResult;
|
|
20
|
+
/** Legacy files detected (.state/workflows.yaml etc.) — informational only. */
|
|
21
|
+
legacyWarnings: string[];
|
|
22
|
+
/** The PD config load result for downstream use (feature flags, etc.). */
|
|
23
|
+
configLoadResult: PdConfigLoadResult;
|
|
24
|
+
/** Canonical config source label, e.g. ".pd/config.yaml". */
|
|
25
|
+
configSource: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolve runtime configuration exclusively from .pd/config.yaml.
|
|
29
|
+
*
|
|
30
|
+
* This is the ONLY production entry point for runtime config resolution
|
|
31
|
+
* in pd-cli commands. Legacy resolveRuntimeConfig(stateDir) must NOT be
|
|
32
|
+
* called by probe/run-once/diagnose/pain-retry.
|
|
33
|
+
*
|
|
34
|
+
* @param workspaceDir - The resolved workspace directory.
|
|
35
|
+
* @param getEnvVar - Env var accessor, defaults to process.env.
|
|
36
|
+
* @returns Resolved runtime config with legacy warnings.
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveRuntimeFromPdConfig(workspaceDir: string, getEnvVar?: (name: string) => string | undefined): ResolvedRuntimeFromPdConfig;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve runtime config from .pd/config.yaml, then merge with CLI flag overrides.
|
|
41
|
+
*
|
|
42
|
+
* CLI flags take priority over config values (same semantics as before PRI-393,
|
|
43
|
+
* but reading from .pd/config.yaml instead of .state/workflows.yaml).
|
|
44
|
+
*
|
|
45
|
+
* @param workspaceDir - The resolved workspace directory.
|
|
46
|
+
* @param overrides - CLI flag overrides (provider, model, apiKeyEnv, etc.).
|
|
47
|
+
* @param getEnvVar - Env var accessor.
|
|
48
|
+
*/
|
|
49
|
+
export declare function resolveRuntimeWithOverrides(workspaceDir: string, overrides: {
|
|
50
|
+
provider?: string;
|
|
51
|
+
model?: string;
|
|
52
|
+
apiKeyEnv?: string;
|
|
53
|
+
baseUrl?: string;
|
|
54
|
+
maxRetries?: number;
|
|
55
|
+
timeoutMs?: number;
|
|
56
|
+
}, getEnvVar?: (name: string) => string | undefined): ResolvedRuntimeFromPdConfig & {
|
|
57
|
+
mergedConfig: RuntimeConfig | null;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=resolve-runtime-from-pd-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-runtime-from-pd-config.d.ts","sourceRoot":"","sources":["../../src/services/resolve-runtime-from-pd-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAEd,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,2BAA2B;IAC1C,8CAA8C;IAC9C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,+EAA+E;IAC/E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,0EAA0E;IAC1E,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAuC,GAC5E,2BAA2B,CA6C7B;AAGD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,SAAS,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAuC,GAC5E,2BAA2B,GAAG;IAAE,YAAY,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,CAoBtE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified runtime config resolver from .pd/config.yaml — PRI-393
|
|
3
|
+
*
|
|
4
|
+
* All MVP mainline execution paths (probe, run-once, diagnose, pain-retry)
|
|
5
|
+
* MUST use this helper instead of the legacy resolveRuntimeConfig(stateDir)
|
|
6
|
+
* which reads .state/workflows.yaml.
|
|
7
|
+
*
|
|
8
|
+
* Canonical source: .pd/config.yaml via loadPdConfig → resolveRuntimeConfigFromPdConfig.
|
|
9
|
+
* .state/workflows.yaml is reported as a legacy warning only.
|
|
10
|
+
*
|
|
11
|
+
* ERR refs:
|
|
12
|
+
* - ERR-002: fail loud with reason + nextAction
|
|
13
|
+
* - EP-07: runtime state source alignment
|
|
14
|
+
*/
|
|
15
|
+
import { resolveRuntimeConfigFromPdConfig, isRuntimeConfigError, } from '@principles/core/runtime-v2';
|
|
16
|
+
import { loadPdConfig } from './pd-config-loader.js';
|
|
17
|
+
/**
|
|
18
|
+
* Resolve runtime configuration exclusively from .pd/config.yaml.
|
|
19
|
+
*
|
|
20
|
+
* This is the ONLY production entry point for runtime config resolution
|
|
21
|
+
* in pd-cli commands. Legacy resolveRuntimeConfig(stateDir) must NOT be
|
|
22
|
+
* called by probe/run-once/diagnose/pain-retry.
|
|
23
|
+
*
|
|
24
|
+
* @param workspaceDir - The resolved workspace directory.
|
|
25
|
+
* @param getEnvVar - Env var accessor, defaults to process.env.
|
|
26
|
+
* @returns Resolved runtime config with legacy warnings.
|
|
27
|
+
*/
|
|
28
|
+
export function resolveRuntimeFromPdConfig(workspaceDir, getEnvVar = (name) => process.env[name]) {
|
|
29
|
+
const configLoadResult = loadPdConfig(workspaceDir);
|
|
30
|
+
// Malformed config → fail loud. Do NOT fall back to defaults for execution.
|
|
31
|
+
// Missing config is ok (loadPdConfig returns ok:true with defaults), but
|
|
32
|
+
// ok:false always means the file exists and is broken.
|
|
33
|
+
if (!configLoadResult.ok) {
|
|
34
|
+
const [firstError] = configLoadResult.errors;
|
|
35
|
+
const result = {
|
|
36
|
+
ok: false,
|
|
37
|
+
reason: `config_malformed:${firstError?.reason ?? 'unknown'}`,
|
|
38
|
+
message: firstError?.reason ?? '.pd/config.yaml is malformed',
|
|
39
|
+
nextAction: firstError?.nextAction ?? 'Fix .pd/config.yaml syntax and retry',
|
|
40
|
+
};
|
|
41
|
+
const legacyWarnings = configLoadResult.legacyFilesDetected.length > 0
|
|
42
|
+
? [
|
|
43
|
+
`Legacy config files detected: ${configLoadResult.legacyFilesDetected.join(', ')}. ` +
|
|
44
|
+
`These are NOT used for runtime resolution. PD uses .pd/config.yaml exclusively.`,
|
|
45
|
+
]
|
|
46
|
+
: [];
|
|
47
|
+
return {
|
|
48
|
+
result,
|
|
49
|
+
legacyWarnings,
|
|
50
|
+
configLoadResult,
|
|
51
|
+
configSource: '.pd/config.yaml',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const result = resolveRuntimeConfigFromPdConfig(configLoadResult.effective, getEnvVar);
|
|
55
|
+
const legacyWarnings = configLoadResult.legacyFilesDetected.length > 0
|
|
56
|
+
? [
|
|
57
|
+
`Legacy config files detected: ${configLoadResult.legacyFilesDetected.join(', ')}. ` +
|
|
58
|
+
`These are NOT used for runtime resolution. PD uses .pd/config.yaml exclusively.`,
|
|
59
|
+
]
|
|
60
|
+
: [];
|
|
61
|
+
return {
|
|
62
|
+
result,
|
|
63
|
+
legacyWarnings,
|
|
64
|
+
configLoadResult,
|
|
65
|
+
configSource: '.pd/config.yaml',
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Resolve runtime config from .pd/config.yaml, then merge with CLI flag overrides.
|
|
70
|
+
*
|
|
71
|
+
* CLI flags take priority over config values (same semantics as before PRI-393,
|
|
72
|
+
* but reading from .pd/config.yaml instead of .state/workflows.yaml).
|
|
73
|
+
*
|
|
74
|
+
* @param workspaceDir - The resolved workspace directory.
|
|
75
|
+
* @param overrides - CLI flag overrides (provider, model, apiKeyEnv, etc.).
|
|
76
|
+
* @param getEnvVar - Env var accessor.
|
|
77
|
+
*/
|
|
78
|
+
export function resolveRuntimeWithOverrides(workspaceDir, overrides, getEnvVar = (name) => process.env[name]) {
|
|
79
|
+
const base = resolveRuntimeFromPdConfig(workspaceDir, getEnvVar);
|
|
80
|
+
if (isRuntimeConfigError(base.result)) {
|
|
81
|
+
return { ...base, mergedConfig: null };
|
|
82
|
+
}
|
|
83
|
+
const config = base.result;
|
|
84
|
+
// CLI flags override config values
|
|
85
|
+
const merged = {
|
|
86
|
+
...config,
|
|
87
|
+
provider: overrides.provider || config.provider,
|
|
88
|
+
model: overrides.model || config.model,
|
|
89
|
+
apiKeyEnv: overrides.apiKeyEnv || config.apiKeyEnv,
|
|
90
|
+
baseUrl: overrides.baseUrl || config.baseUrl,
|
|
91
|
+
maxRetries: overrides.maxRetries ?? config.maxRetries,
|
|
92
|
+
timeoutMs: overrides.timeoutMs ?? config.timeoutMs,
|
|
93
|
+
};
|
|
94
|
+
return { ...base, mergedConfig: merged };
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=resolve-runtime-from-pd-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-runtime-from-pd-config.js","sourceRoot":"","sources":["../../src/services/resolve-runtime-from-pd-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/commands/diagnose.ts
CHANGED
|
@@ -26,7 +26,6 @@ import {
|
|
|
26
26
|
OpenClawCliRuntimeAdapter,
|
|
27
27
|
PiAiRuntimeAdapter,
|
|
28
28
|
PDRuntimeError,
|
|
29
|
-
resolveRuntimeConfig,
|
|
30
29
|
isRuntimeConfigError,
|
|
31
30
|
CandidateIntakeService,
|
|
32
31
|
run as diagnoseRun,
|
|
@@ -37,6 +36,7 @@ import { PrincipleTreeLedgerAdapter } from '../principle-tree-ledger-adapter.js'
|
|
|
37
36
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
38
37
|
import { readOutputLanguageFromWorkspace } from '../config-reader.js';
|
|
39
38
|
import { loadPdConfig, computeFlagsFromLoadResult } from '../services/pd-config-loader.js';
|
|
39
|
+
import { resolveRuntimeFromPdConfig } from '../services/resolve-runtime-from-pd-config.js';
|
|
40
40
|
import { isFeatureEnabled, SPLIT_PIPELINE_TOTAL_TIMEOUT_MS } from '@principles/core/runtime-v2';
|
|
41
41
|
import * as path from 'path';
|
|
42
42
|
|
|
@@ -187,8 +187,8 @@ export async function handleDiagnoseRun(opts: DiagnoseRunOptions): Promise<void>
|
|
|
187
187
|
|
|
188
188
|
let runtimeAdapter: PDRuntimeAdapter;
|
|
189
189
|
if (runtimeKind === 'openclaw-cli') {
|
|
190
|
-
const
|
|
191
|
-
const configResult =
|
|
190
|
+
const resolved = resolveRuntimeFromPdConfig(workspaceDir);
|
|
191
|
+
const configResult = resolved.result;
|
|
192
192
|
if (isRuntimeConfigError(configResult)) {
|
|
193
193
|
if (opts.json) {
|
|
194
194
|
console.log(JSON.stringify({ ok: false, reason: configResult.reason, message: configResult.message, nextAction: configResult.nextAction }));
|
|
@@ -200,19 +200,22 @@ export async function handleDiagnoseRun(opts: DiagnoseRunOptions): Promise<void>
|
|
|
200
200
|
return;
|
|
201
201
|
}
|
|
202
202
|
const { openclawMode } = configResult;
|
|
203
|
-
|
|
203
|
+
// CLI flags override config (PRI-393)
|
|
204
|
+
const flagMode = opts.openclawLocal ? 'local' as const : opts.openclawGateway ? 'gateway' as const : undefined;
|
|
205
|
+
const effectiveMode = flagMode ?? openclawMode;
|
|
206
|
+
if (!effectiveMode) {
|
|
204
207
|
if (opts.json) {
|
|
205
|
-
console.log(JSON.stringify({ ok: false, reason: 'missing_openclaw_mode', message: 'runtimeKind is openclaw-cli but no mode resolved', nextAction: 'Provide --openclaw-local or --openclaw-gateway, or set openclawMode in
|
|
208
|
+
console.log(JSON.stringify({ ok: false, reason: 'missing_openclaw_mode', message: 'runtimeKind is openclaw-cli but no mode resolved', nextAction: 'Provide --openclaw-local or --openclaw-gateway, or set openclawMode in .pd/config.yaml' }));
|
|
206
209
|
} else {
|
|
207
210
|
console.error('error: runtimeKind is openclaw-cli but no mode resolved');
|
|
208
|
-
console.error('nextAction: Provide --openclaw-local or --openclaw-gateway, or set openclawMode in
|
|
211
|
+
console.error('nextAction: Provide --openclaw-local or --openclaw-gateway, or set openclawMode in .pd/config.yaml');
|
|
209
212
|
}
|
|
210
213
|
process.exit(1);
|
|
211
214
|
return;
|
|
212
215
|
}
|
|
213
216
|
|
|
214
217
|
runtimeAdapter = new OpenClawCliRuntimeAdapter({
|
|
215
|
-
runtimeMode:
|
|
218
|
+
runtimeMode: effectiveMode,
|
|
216
219
|
workspaceDir,
|
|
217
220
|
agentId: opts.agent ?? 'main',
|
|
218
221
|
});
|
|
@@ -226,7 +229,7 @@ export async function handleDiagnoseRun(opts: DiagnoseRunOptions): Promise<void>
|
|
|
226
229
|
agentId: 'openclaw-cli-adapter',
|
|
227
230
|
payload: {
|
|
228
231
|
runtimeKind: 'openclaw-cli',
|
|
229
|
-
runtimeMode:
|
|
232
|
+
runtimeMode: effectiveMode,
|
|
230
233
|
},
|
|
231
234
|
});
|
|
232
235
|
} else if (runtimeKind === 'test-double') {
|
|
@@ -256,18 +259,14 @@ export async function handleDiagnoseRun(opts: DiagnoseRunOptions): Promise<void>
|
|
|
256
259
|
}),
|
|
257
260
|
});
|
|
258
261
|
} else if (runtimeKind === 'pi-ai') {
|
|
259
|
-
const
|
|
262
|
+
const resolved = resolveRuntimeFromPdConfig(workspaceDir);
|
|
263
|
+
for (const w of resolved.legacyWarnings) console.warn(`[pd diagnose] ${w}`);
|
|
264
|
+
|
|
260
265
|
let policyConfig: RuntimeConfig | null = null;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
} else {
|
|
266
|
-
console.warn(`[pd diagnose] workflows.yaml policy load failed: ${configResult.message}. Using CLI flags if provided.`);
|
|
267
|
-
}
|
|
268
|
-
} catch (err: unknown) {
|
|
269
|
-
const detail = err instanceof Error ? err.message : String(err);
|
|
270
|
-
console.warn(`[pd diagnose] workflows.yaml policy load failed: ${detail}. Using CLI flags if provided.`);
|
|
266
|
+
if (!isRuntimeConfigError(resolved.result)) {
|
|
267
|
+
policyConfig = resolved.result;
|
|
268
|
+
} else {
|
|
269
|
+
console.warn(`[pd diagnose] .pd/config.yaml resolution failed: ${resolved.result.message}. Using CLI flags if provided.`);
|
|
271
270
|
}
|
|
272
271
|
|
|
273
272
|
const provider = opts.provider ?? policyConfig?.provider;
|
|
@@ -285,15 +284,16 @@ export async function handleDiagnoseRun(opts: DiagnoseRunOptions): Promise<void>
|
|
|
285
284
|
if (missing.length > 0) {
|
|
286
285
|
console.error(
|
|
287
286
|
`error: missing required pi-ai config: ${missing.join(', ')}.\n` +
|
|
288
|
-
`Pass via --flag or add to
|
|
287
|
+
`Pass via --flag or add to .pd/config.yaml runtime profile.\n` +
|
|
289
288
|
`Example:\n` +
|
|
290
289
|
` pd diagnose run --runtime pi-ai --provider openrouter --model anthropic/claude-sonnet-4 --apiKeyEnv OPENROUTER_API_KEY\n` +
|
|
291
|
-
` Or add to
|
|
292
|
-
`
|
|
293
|
-
`
|
|
294
|
-
`
|
|
295
|
-
`
|
|
296
|
-
`
|
|
290
|
+
` Or add to .pd/config.yaml:\n` +
|
|
291
|
+
` runtimeProfiles:\n` +
|
|
292
|
+
` - id: openrouter\n` +
|
|
293
|
+
` type: pi-ai\n` +
|
|
294
|
+
` provider: openrouter\n` +
|
|
295
|
+
` model: anthropic/claude-sonnet-4\n` +
|
|
296
|
+
` apiKeyEnv: OPENROUTER_API_KEY`,
|
|
297
297
|
);
|
|
298
298
|
process.exit(1);
|
|
299
299
|
}
|
|
@@ -30,7 +30,6 @@ import {
|
|
|
30
30
|
OpenClawCliRuntimeAdapter,
|
|
31
31
|
PiAiRuntimeAdapter,
|
|
32
32
|
PDRuntimeError,
|
|
33
|
-
resolveRuntimeConfig,
|
|
34
33
|
isRuntimeConfigError,
|
|
35
34
|
CandidateIntakeService,
|
|
36
35
|
run as diagnoseRun,
|
|
@@ -39,6 +38,7 @@ import {
|
|
|
39
38
|
} from '@principles/core/runtime-v2';
|
|
40
39
|
import type { PDRuntimeAdapter, RuntimeConfig, OutputLanguage } from '@principles/core/runtime-v2';
|
|
41
40
|
import { loadPdConfig, computeFlagsFromLoadResult } from '../services/pd-config-loader.js';
|
|
41
|
+
import { resolveRuntimeFromPdConfig } from '../services/resolve-runtime-from-pd-config.js';
|
|
42
42
|
import type { PDTaskStatus } from '@principles/core/runtime-v2';
|
|
43
43
|
import { PrincipleTreeLedgerAdapter } from '../principle-tree-ledger-adapter.js';
|
|
44
44
|
import { readOutputLanguageFromWorkspace } from '../config-reader.js';
|
|
@@ -114,7 +114,6 @@ function refuseExit(opts: PainRetryOptions, payload: { status?: string; painId:
|
|
|
114
114
|
|
|
115
115
|
export async function handlePainRetry(opts: PainRetryOptions): Promise<void> {
|
|
116
116
|
const workspaceDir = resolveWorkspaceDir(opts.workspace);
|
|
117
|
-
const stateDir = `${workspaceDir}/.state`;
|
|
118
117
|
|
|
119
118
|
// Step 1: Resolve painId → taskId
|
|
120
119
|
const resolution = resolveTaskIdFromPainId(opts.painId);
|
|
@@ -191,16 +190,12 @@ export async function handlePainRetry(opts: PainRetryOptions): Promise<void> {
|
|
|
191
190
|
// P1 fix: pd pain retry must NOT default to test-double.
|
|
192
191
|
// This command is for real workspace pain fixes — test-double would generate
|
|
193
192
|
// fake candidates/ledger in a real .pd/state.db. Require explicit --runtime
|
|
194
|
-
// or fall back to
|
|
193
|
+
// or fall back to .pd/config.yaml.
|
|
195
194
|
let runtimeKind = opts.runtime;
|
|
196
195
|
if (!runtimeKind) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
({ runtimeKind } = configResult);
|
|
201
|
-
}
|
|
202
|
-
} catch {
|
|
203
|
-
// Config load failed — fall through to refusal
|
|
196
|
+
const resolved = resolveRuntimeFromPdConfig(workspaceDir);
|
|
197
|
+
if (!isRuntimeConfigError(resolved.result) && resolved.result.runtimeKind) {
|
|
198
|
+
({ runtimeKind } = resolved.result);
|
|
204
199
|
}
|
|
205
200
|
}
|
|
206
201
|
|
|
@@ -209,7 +204,7 @@ export async function handlePainRetry(opts: PainRetryOptions): Promise<void> {
|
|
|
209
204
|
painId: opts.painId,
|
|
210
205
|
taskId,
|
|
211
206
|
reason: 'missing_runtime',
|
|
212
|
-
message: 'No --runtime specified and no
|
|
207
|
+
message: 'No --runtime specified and no .pd/config.yaml runtime binding found. pd pain retry must not default to test-double to prevent fake data in real workspaces.',
|
|
213
208
|
nextAction: `Specify --runtime explicitly: pd pain retry --pain-id ${opts.painId} --runtime pi-ai --provider <provider> --model <model> --apiKeyEnv <ENV>`,
|
|
214
209
|
});
|
|
215
210
|
}
|
|
@@ -218,12 +213,16 @@ export async function handlePainRetry(opts: PainRetryOptions): Promise<void> {
|
|
|
218
213
|
let runtimeAdapter: PDRuntimeAdapter;
|
|
219
214
|
|
|
220
215
|
if (runtimeKind === 'openclaw-cli') {
|
|
221
|
-
const
|
|
216
|
+
const resolved = resolveRuntimeFromPdConfig(workspaceDir);
|
|
217
|
+
const configResult = resolved.result;
|
|
222
218
|
if (isRuntimeConfigError(configResult)) {
|
|
223
219
|
refuseExit(opts, { painId: opts.painId, taskId, reason: configResult.reason, message: configResult.message, nextAction: configResult.nextAction });
|
|
224
220
|
}
|
|
225
221
|
const { openclawMode } = configResult;
|
|
226
|
-
|
|
222
|
+
// CLI flags override config (PRI-393)
|
|
223
|
+
const flagMode = opts.openclawLocal ? 'local' as const : opts.openclawGateway ? 'gateway' as const : undefined;
|
|
224
|
+
const effectiveMode = flagMode ?? openclawMode;
|
|
225
|
+
if (!effectiveMode) {
|
|
227
226
|
refuseExit(opts, {
|
|
228
227
|
painId: opts.painId,
|
|
229
228
|
taskId,
|
|
@@ -234,7 +233,7 @@ export async function handlePainRetry(opts: PainRetryOptions): Promise<void> {
|
|
|
234
233
|
}
|
|
235
234
|
|
|
236
235
|
runtimeAdapter = new OpenClawCliRuntimeAdapter({
|
|
237
|
-
runtimeMode:
|
|
236
|
+
runtimeMode: effectiveMode,
|
|
238
237
|
workspaceDir,
|
|
239
238
|
agentId: opts.agent ?? 'main',
|
|
240
239
|
});
|
|
@@ -265,17 +264,14 @@ export async function handlePainRetry(opts: PainRetryOptions): Promise<void> {
|
|
|
265
264
|
}),
|
|
266
265
|
});
|
|
267
266
|
} else if (runtimeKind === 'pi-ai') {
|
|
267
|
+
const resolved = resolveRuntimeFromPdConfig(workspaceDir);
|
|
268
|
+
for (const w of resolved.legacyWarnings) console.warn(`[pd pain retry] ${w}`);
|
|
269
|
+
|
|
268
270
|
let policyConfig: RuntimeConfig | null = null;
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
} else {
|
|
274
|
-
console.warn(`[pd pain retry] workflows.yaml policy load failed: ${configResult.message}. Using CLI flags if provided.`);
|
|
275
|
-
}
|
|
276
|
-
} catch (err: unknown) {
|
|
277
|
-
const detail = err instanceof Error ? err.message : String(err);
|
|
278
|
-
console.warn(`[pd pain retry] workflows.yaml policy load failed: ${detail}. Using CLI flags if provided.`);
|
|
271
|
+
if (!isRuntimeConfigError(resolved.result)) {
|
|
272
|
+
policyConfig = resolved.result;
|
|
273
|
+
} else {
|
|
274
|
+
console.warn(`[pd pain retry] .pd/config.yaml resolution failed: ${resolved.result.message}. Using CLI flags if provided.`);
|
|
279
275
|
}
|
|
280
276
|
|
|
281
277
|
const provider = opts.provider ?? policyConfig?.provider;
|
|
@@ -296,7 +292,7 @@ export async function handlePainRetry(opts: PainRetryOptions): Promise<void> {
|
|
|
296
292
|
taskId,
|
|
297
293
|
reason: `missing_required_config: ${missing.join(', ')}`,
|
|
298
294
|
message: `Missing or blank required pi-ai config: ${missing.join(', ')}`,
|
|
299
|
-
nextAction: `Pass via --flag or add to
|
|
295
|
+
nextAction: `Pass via --flag or add to .pd/config.yaml. Example: pd pain retry --pain-id ${opts.painId} --runtime pi-ai --provider openrouter --model anthropic/claude-sonnet-4 --apiKeyEnv OPENROUTER_API_KEY`,
|
|
300
296
|
});
|
|
301
297
|
}
|
|
302
298
|
|