pm-orchestrator-runner 1.0.10 → 1.0.12

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.
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ /**
3
+ * Key Input - Interactive hidden input for API keys
4
+ *
5
+ * Provides secure input collection for API keys:
6
+ * - Hidden input (characters not echoed)
7
+ * - Double-entry confirmation
8
+ * - SECURITY: Keys are NEVER logged
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.readHiddenInput = readHiddenInput;
45
+ exports.promptForApiKey = promptForApiKey;
46
+ const readline = __importStar(require("readline"));
47
+ const stream_1 = require("stream");
48
+ /**
49
+ * Muted output stream that suppresses all writes
50
+ * Used for hidden password input
51
+ */
52
+ class MutedStream extends stream_1.Writable {
53
+ isMuted = false;
54
+ mute() {
55
+ this.isMuted = true;
56
+ }
57
+ unmute() {
58
+ this.isMuted = false;
59
+ }
60
+ _write(chunk, _encoding, callback) {
61
+ if (!this.isMuted) {
62
+ process.stdout.write(chunk);
63
+ }
64
+ callback();
65
+ }
66
+ }
67
+ /**
68
+ * Read a single line with hidden input (password-style)
69
+ * Characters are not echoed to the terminal
70
+ */
71
+ async function readHiddenInput(prompt) {
72
+ return new Promise((resolve) => {
73
+ const mutedOutput = new MutedStream();
74
+ const rl = readline.createInterface({
75
+ input: process.stdin,
76
+ output: mutedOutput,
77
+ terminal: true,
78
+ });
79
+ // Write the prompt, then mute for input
80
+ process.stdout.write(prompt);
81
+ mutedOutput.mute();
82
+ rl.question('', (answer) => {
83
+ mutedOutput.unmute();
84
+ process.stdout.write('\n'); // Add newline after hidden input
85
+ rl.close();
86
+ resolve(answer);
87
+ });
88
+ });
89
+ }
90
+ /**
91
+ * Interactively prompt for an API key with double-entry confirmation
92
+ *
93
+ * Flow:
94
+ * 1. Prompt for API key (hidden input)
95
+ * 2. Prompt to confirm (hidden input)
96
+ * 3. Check if entries match
97
+ * 4. Return key if matched, error if not
98
+ *
99
+ * SECURITY: The key is returned only in the result object, never logged
100
+ */
101
+ async function promptForApiKey(provider) {
102
+ console.log('');
103
+ console.log(`Setting up ${provider} API key...`);
104
+ console.log('(Input will be hidden for security)');
105
+ console.log('');
106
+ try {
107
+ // First entry
108
+ const key1 = await readHiddenInput(`Enter ${provider} API key: `);
109
+ // Check for empty input
110
+ if (!key1 || key1.trim().length === 0) {
111
+ return {
112
+ success: false,
113
+ error: 'Empty input. API key setup cancelled.',
114
+ cancelled: true,
115
+ };
116
+ }
117
+ // Check for minimum length
118
+ if (key1.length < 10) {
119
+ return {
120
+ success: false,
121
+ error: 'API key too short (minimum 10 characters).',
122
+ };
123
+ }
124
+ // Second entry (confirmation)
125
+ const key2 = await readHiddenInput(`Confirm ${provider} API key: `);
126
+ // Check if entries match
127
+ if (key1 !== key2) {
128
+ console.log('');
129
+ console.log('Error: API keys do not match.');
130
+ console.log('Please try again with /keys set ' + provider);
131
+ return {
132
+ success: false,
133
+ error: 'API keys do not match.',
134
+ };
135
+ }
136
+ console.log('');
137
+ console.log('Keys match. Validating with ' + provider + ' API...');
138
+ return {
139
+ success: true,
140
+ key: key1,
141
+ };
142
+ }
143
+ catch (error) {
144
+ const message = error instanceof Error ? error.message : 'Unknown error';
145
+ return {
146
+ success: false,
147
+ error: 'Failed to read input: ' + message,
148
+ };
149
+ }
150
+ }
151
+ //# sourceMappingURL=key-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-input.js","sourceRoot":"","sources":["../../src/keys/key-input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * API Key Validator
3
+ *
4
+ * Validates API keys for OpenAI and Anthropic providers
5
+ * by making lightweight API calls to verify authentication.
6
+ *
7
+ * SECURITY: Keys are NEVER logged. Validation results contain
8
+ * only boolean status and error messages, never the key itself.
9
+ */
10
+ export interface KeyValidationResult {
11
+ valid: boolean;
12
+ provider: 'openai' | 'anthropic';
13
+ error?: string;
14
+ }
15
+ /**
16
+ * Validate an OpenAI API key by calling the models list endpoint.
17
+ * This is a lightweight, read-only endpoint that requires auth.
18
+ */
19
+ export declare function validateOpenAIKey(key: string): Promise<KeyValidationResult>;
20
+ /**
21
+ * Validate an Anthropic API key by calling the messages endpoint
22
+ * with an invalid request. A 400 error means the key is valid
23
+ * (auth passed, but request was invalid). A 401 means invalid key.
24
+ */
25
+ export declare function validateAnthropicKey(key: string): Promise<KeyValidationResult>;
26
+ /**
27
+ * Validate an API key for any supported provider.
28
+ */
29
+ export declare function validateApiKey(provider: string, key: string): Promise<KeyValidationResult>;
30
+ /**
31
+ * Check if the key format looks valid (basic sanity check).
32
+ * Does NOT validate against the API.
33
+ */
34
+ export declare function isKeyFormatValid(provider: string, key: string): boolean;
35
+ //# sourceMappingURL=key-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-validator.d.ts","sourceRoot":"","sources":["../../src/keys/key-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoCjF;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA+CpF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC,CAe9B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAiBvE"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * API Key Validator
4
+ *
5
+ * Validates API keys for OpenAI and Anthropic providers
6
+ * by making lightweight API calls to verify authentication.
7
+ *
8
+ * SECURITY: Keys are NEVER logged. Validation results contain
9
+ * only boolean status and error messages, never the key itself.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.validateOpenAIKey = validateOpenAIKey;
13
+ exports.validateAnthropicKey = validateAnthropicKey;
14
+ exports.validateApiKey = validateApiKey;
15
+ exports.isKeyFormatValid = isKeyFormatValid;
16
+ /**
17
+ * Validate an OpenAI API key by calling the models list endpoint.
18
+ * This is a lightweight, read-only endpoint that requires auth.
19
+ */
20
+ async function validateOpenAIKey(key) {
21
+ const provider = 'openai';
22
+ if (!key || key.length < 10) {
23
+ return { valid: false, provider, error: 'Key too short' };
24
+ }
25
+ try {
26
+ const response = await fetch('https://api.openai.com/v1/models', {
27
+ method: 'GET',
28
+ headers: {
29
+ Authorization: `Bearer ${key}`,
30
+ },
31
+ });
32
+ if (response.status === 200) {
33
+ return { valid: true, provider };
34
+ }
35
+ if (response.status === 401) {
36
+ return { valid: false, provider, error: 'Invalid API key' };
37
+ }
38
+ if (response.status === 429) {
39
+ return { valid: false, provider, error: 'Rate limited - please try again' };
40
+ }
41
+ return {
42
+ valid: false,
43
+ provider,
44
+ error: `Unexpected response: ${response.status}`,
45
+ };
46
+ }
47
+ catch (error) {
48
+ const message = error instanceof Error ? error.message : 'Network error';
49
+ return { valid: false, provider, error: message };
50
+ }
51
+ }
52
+ /**
53
+ * Validate an Anthropic API key by calling the messages endpoint
54
+ * with an invalid request. A 400 error means the key is valid
55
+ * (auth passed, but request was invalid). A 401 means invalid key.
56
+ */
57
+ async function validateAnthropicKey(key) {
58
+ const provider = 'anthropic';
59
+ if (!key || key.length < 10) {
60
+ return { valid: false, provider, error: 'Key too short' };
61
+ }
62
+ try {
63
+ // Send an intentionally minimal/invalid request to check auth
64
+ // A 400 error means auth passed, 401 means invalid key
65
+ const response = await fetch('https://api.anthropic.com/v1/messages', {
66
+ method: 'POST',
67
+ headers: {
68
+ 'x-api-key': key,
69
+ 'anthropic-version': '2023-06-01',
70
+ 'content-type': 'application/json',
71
+ },
72
+ body: JSON.stringify({
73
+ model: 'claude-3-haiku-20240307',
74
+ max_tokens: 1,
75
+ messages: [],
76
+ }),
77
+ });
78
+ // 400 = auth OK, invalid request (expected)
79
+ // 200 = auth OK, request succeeded (unexpected but valid)
80
+ if (response.status === 400 || response.status === 200) {
81
+ return { valid: true, provider };
82
+ }
83
+ if (response.status === 401) {
84
+ return { valid: false, provider, error: 'Invalid API key' };
85
+ }
86
+ if (response.status === 429) {
87
+ return { valid: false, provider, error: 'Rate limited - please try again' };
88
+ }
89
+ return {
90
+ valid: false,
91
+ provider,
92
+ error: `Unexpected response: ${response.status}`,
93
+ };
94
+ }
95
+ catch (error) {
96
+ const message = error instanceof Error ? error.message : 'Network error';
97
+ return { valid: false, provider, error: message };
98
+ }
99
+ }
100
+ /**
101
+ * Validate an API key for any supported provider.
102
+ */
103
+ async function validateApiKey(provider, key) {
104
+ const normalizedProvider = provider.toLowerCase();
105
+ switch (normalizedProvider) {
106
+ case 'openai':
107
+ return validateOpenAIKey(key);
108
+ case 'anthropic':
109
+ return validateAnthropicKey(key);
110
+ default:
111
+ return {
112
+ valid: false,
113
+ provider: 'openai', // fallback for type
114
+ error: `Unknown provider: ${provider}`,
115
+ };
116
+ }
117
+ }
118
+ /**
119
+ * Check if the key format looks valid (basic sanity check).
120
+ * Does NOT validate against the API.
121
+ */
122
+ function isKeyFormatValid(provider, key) {
123
+ if (!key || key.length < 10) {
124
+ return false;
125
+ }
126
+ const normalizedProvider = provider.toLowerCase();
127
+ switch (normalizedProvider) {
128
+ case 'openai':
129
+ // OpenAI keys typically start with 'sk-'
130
+ return key.startsWith('sk-');
131
+ case 'anthropic':
132
+ // Anthropic keys typically start with 'sk-ant-'
133
+ return key.startsWith('sk-ant-');
134
+ default:
135
+ return key.length >= 10;
136
+ }
137
+ }
138
+ //# sourceMappingURL=key-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-validator.js","sourceRoot":"","sources":["../../src/keys/key-validator.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@
5
5
  * - OpenAI models with pricing
6
6
  * - Anthropic models with pricing
7
7
  * - claude-code does not have explicit models (delegated)
8
+ *
9
+ * Provider Recommendations:
10
+ * - openai: RECOMMENDED - API key based, direct control
11
+ * - anthropic: API key based, direct control
12
+ * - claude-code: NOT recommended by default, requires explicit opt-in (--provider claude-code)
8
13
  */
9
14
  import { Provider } from './repl-state';
10
15
  /**
@@ -26,10 +31,16 @@ export interface ProviderInfo {
26
31
  description: string;
27
32
  requiresApiKey: boolean;
28
33
  envVariable: string | null;
34
+ /** If true, this provider requires explicit --provider flag to use */
35
+ requiresExplicitOptIn?: boolean;
29
36
  }
30
37
  /**
31
38
  * Provider registry
32
39
  * Per spec 12_LLM_PROVIDER_AND_MODELS.md Section 1.1
40
+ *
41
+ * IMPORTANT: claude-code is NOT the default.
42
+ * Default is api-key mode (openai/anthropic).
43
+ * claude-code requires explicit --provider claude-code.
33
44
  */
34
45
  export declare const PROVIDER_REGISTRY: Record<Provider, ProviderInfo>;
35
46
  /**
@@ -70,4 +81,11 @@ export declare function getAllProviders(): ProviderInfo[];
70
81
  * @returns true if model exists
71
82
  */
72
83
  export declare function isValidModelForProvider(provider: Provider, modelId: string): boolean;
84
+ /**
85
+ * Check if a provider requires explicit opt-in
86
+ *
87
+ * @param provider - Provider identifier
88
+ * @returns true if provider requires explicit opt-in
89
+ */
90
+ export declare function requiresExplicitOptIn(provider: Provider): boolean;
73
91
  //# sourceMappingURL=model-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/models/repl/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAsB5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,EASpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAQvC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,CAWpE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,EAAE,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpF"}
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/models/repl/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,sEAAsE;IACtE,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAuB5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,EASpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAQvC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,CAWpE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,EAAE,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAGjE"}
@@ -6,6 +6,11 @@
6
6
  * - OpenAI models with pricing
7
7
  * - Anthropic models with pricing
8
8
  * - claude-code does not have explicit models (delegated)
9
+ *
10
+ * Provider Recommendations:
11
+ * - openai: RECOMMENDED - API key based, direct control
12
+ * - anthropic: API key based, direct control
13
+ * - claude-code: NOT recommended by default, requires explicit opt-in (--provider claude-code)
9
14
  */
10
15
  Object.defineProperty(exports, "__esModule", { value: true });
11
16
  exports.ANTHROPIC_MODELS = exports.OPENAI_MODELS = exports.PROVIDER_REGISTRY = void 0;
@@ -13,22 +18,28 @@ exports.getModelsForProvider = getModelsForProvider;
13
18
  exports.getProviderInfo = getProviderInfo;
14
19
  exports.getAllProviders = getAllProviders;
15
20
  exports.isValidModelForProvider = isValidModelForProvider;
21
+ exports.requiresExplicitOptIn = requiresExplicitOptIn;
16
22
  /**
17
23
  * Provider registry
18
24
  * Per spec 12_LLM_PROVIDER_AND_MODELS.md Section 1.1
25
+ *
26
+ * IMPORTANT: claude-code is NOT the default.
27
+ * Default is api-key mode (openai/anthropic).
28
+ * claude-code requires explicit --provider claude-code.
19
29
  */
20
30
  exports.PROVIDER_REGISTRY = {
21
31
  'claude-code': {
22
32
  id: 'claude-code',
23
33
  displayName: 'Claude Code',
24
- description: 'Claude Code Executor - recommended',
34
+ description: 'Claude Code CLI - requires explicit --provider claude-code opt-in',
25
35
  requiresApiKey: false,
26
36
  envVariable: null,
37
+ requiresExplicitOptIn: true,
27
38
  },
28
39
  'openai': {
29
40
  id: 'openai',
30
41
  displayName: 'OpenAI',
31
- description: 'OpenAI API direct',
42
+ description: 'OpenAI API direct - recommended',
32
43
  requiresApiKey: true,
33
44
  envVariable: 'OPENAI_API_KEY',
34
45
  },
@@ -113,4 +124,14 @@ function isValidModelForProvider(provider, modelId) {
113
124
  const models = getModelsForProvider(provider);
114
125
  return models.some(m => m.id === modelId);
115
126
  }
127
+ /**
128
+ * Check if a provider requires explicit opt-in
129
+ *
130
+ * @param provider - Provider identifier
131
+ * @returns true if provider requires explicit opt-in
132
+ */
133
+ function requiresExplicitOptIn(provider) {
134
+ const info = exports.PROVIDER_REGISTRY[provider];
135
+ return info?.requiresExplicitOptIn ?? false;
136
+ }
116
137
  //# sourceMappingURL=model-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-registry.js","sourceRoot":"","sources":["../../../src/models/repl/model-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-registry.js","sourceRoot":"","sources":["../../../src/models/repl/model-registry.ts"],"names":[],"mappings":"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"}
@@ -186,6 +186,7 @@ export declare class REPLInterface extends EventEmitter {
186
186
  private session;
187
187
  private running;
188
188
  private initOnlyMode;
189
+ private keySetupMode;
189
190
  private inputQueue;
190
191
  private isProcessingInput;
191
192
  private multiLineBuffer;
@@ -256,10 +257,24 @@ export declare class REPLInterface extends EventEmitter {
256
257
  */
257
258
  private checkClaudeCodeAuth;
258
259
  /**
259
- * Check API key status and show warning if not configured
260
+ * Check API key status and enter key-setup mode if not configured
260
261
  * API keys are stored in global config file (~/.pm-orchestrator-runner/config.json)
262
+ *
263
+ * Key Setup Mode (fail-closed + interactive onboarding):
264
+ * - No API key = enter key-setup mode
265
+ * - Only /help, /keys, /provider, /exit are available
266
+ * - User must set a valid API key to proceed
261
267
  */
262
268
  private checkApiKeyStatus;
269
+ /**
270
+ * Exit key-setup mode after a valid API key is configured
271
+ * This re-enables all commands
272
+ */
273
+ private exitKeySetupMode;
274
+ /**
275
+ * Check if in key-setup mode
276
+ */
277
+ isInKeySetupMode(): boolean;
263
278
  /**
264
279
  * Start the REPL
265
280
  * Per spec 10_REPL_UX.md L45: validate project structure on startup
@@ -1 +1 @@
1
- {"version":3,"file":"repl-interface.d.ts","sourceRoot":"","sources":["../../src/repl/repl-interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repl-interface.d.ts","sourceRoot":"","sources":["../../src/repl/repl-interface.ts"],"names":[],"mappings":"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"}