@productbrain/cli 0.1.0-beta.36 → 0.1.0-beta.37
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/__tests__/experiment.test.d.ts +6 -0
- package/dist/__tests__/experiment.test.d.ts.map +1 -0
- package/dist/__tests__/experiment.test.js +69 -0
- package/dist/__tests__/experiment.test.js.map +1 -0
- package/dist/__tests__/onboarding-path-b.test.d.ts +2 -0
- package/dist/__tests__/onboarding-path-b.test.d.ts.map +1 -0
- package/dist/__tests__/onboarding-path-b.test.js +46 -0
- package/dist/__tests__/onboarding-path-b.test.js.map +1 -0
- package/dist/__tests__/onboarding.test.js +242 -89
- package/dist/__tests__/onboarding.test.js.map +1 -1
- package/dist/commands/connect-integration.test.d.ts +7 -0
- package/dist/commands/connect-integration.test.d.ts.map +1 -0
- package/dist/commands/connect-integration.test.js +148 -0
- package/dist/commands/connect-integration.test.js.map +1 -0
- package/dist/commands/connect.d.ts +17 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +280 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/connect.test.d.ts +6 -0
- package/dist/commands/connect.test.d.ts.map +1 -0
- package/dist/commands/connect.test.js +230 -0
- package/dist/commands/connect.test.js.map +1 -0
- package/dist/commands/handshake.d.ts +2 -0
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +20 -5
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +29 -2
- package/dist/commands/setup.js.map +1 -1
- package/dist/generators/context-md.d.ts +1 -1
- package/dist/generators/context-md.d.ts.map +1 -1
- package/dist/generators/context-md.js +12 -1
- package/dist/generators/context-md.js.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +25 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/conversation-engine.d.ts +22 -27
- package/dist/lib/conversation-engine.d.ts.map +1 -1
- package/dist/lib/conversation-engine.js +58 -80
- package/dist/lib/conversation-engine.js.map +1 -1
- package/dist/lib/conversation-phases.d.ts +22 -37
- package/dist/lib/conversation-phases.d.ts.map +1 -1
- package/dist/lib/conversation-phases.js +4 -4
- package/dist/lib/conversation-signals.d.ts +3 -0
- package/dist/lib/conversation-signals.d.ts.map +1 -1
- package/dist/lib/conversation-signals.js +14 -3
- package/dist/lib/conversation-signals.js.map +1 -1
- package/dist/lib/experiment.d.ts +18 -0
- package/dist/lib/experiment.d.ts.map +1 -0
- package/dist/lib/experiment.js +28 -0
- package/dist/lib/experiment.js.map +1 -0
- package/dist/lib/onboarding-path-b.d.ts +10 -0
- package/dist/lib/onboarding-path-b.d.ts.map +1 -0
- package/dist/lib/onboarding-path-b.js +214 -0
- package/dist/lib/onboarding-path-b.js.map +1 -0
- package/dist/lib/onboarding-phases.js +1 -1
- package/dist/lib/onboarding-shared.d.ts +81 -0
- package/dist/lib/onboarding-shared.d.ts.map +1 -0
- package/dist/lib/onboarding-shared.js +190 -0
- package/dist/lib/onboarding-shared.js.map +1 -0
- package/dist/lib/onboarding-topics.d.ts +27 -0
- package/dist/lib/onboarding-topics.d.ts.map +1 -0
- package/dist/lib/onboarding-topics.js +57 -0
- package/dist/lib/onboarding-topics.js.map +1 -0
- package/dist/lib/onboarding.d.ts +3 -3
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +109 -240
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/profiles.d.ts +5 -0
- package/dist/lib/profiles.d.ts.map +1 -1
- package/dist/lib/profiles.js +7 -0
- package/dist/lib/profiles.js.map +1 -1
- package/dist/lib/telemetry.d.ts +5 -5
- package/dist/lib/telemetry.d.ts.map +1 -1
- package/dist/lib/telemetry.js +34 -16
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/wizard-surfaces.d.ts +47 -0
- package/dist/lib/wizard-surfaces.d.ts.map +1 -0
- package/dist/lib/wizard-surfaces.js +176 -0
- package/dist/lib/wizard-surfaces.js.map +1 -0
- package/dist/lib/wizard-surfaces.test.d.ts +2 -0
- package/dist/lib/wizard-surfaces.test.d.ts.map +1 -0
- package/dist/lib/wizard-surfaces.test.js +127 -0
- package/dist/lib/wizard-surfaces.test.js.map +1 -0
- package/dist/lib/wizard-trust.d.ts +31 -0
- package/dist/lib/wizard-trust.d.ts.map +1 -0
- package/dist/lib/wizard-trust.js +66 -0
- package/dist/lib/wizard-trust.js.map +1 -0
- package/dist/lib/wizard-trust.test.d.ts +2 -0
- package/dist/lib/wizard-trust.test.d.ts.map +1 -0
- package/dist/lib/wizard-trust.test.js +32 -0
- package/dist/lib/wizard-trust.test.js.map +1 -0
- package/package.json +1 -1
package/dist/lib/onboarding.js
CHANGED
|
@@ -1,124 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Onboarding conversation —
|
|
3
|
-
* WP-304:
|
|
2
|
+
* Onboarding conversation — coach-pattern LLM conversation for new workspaces.
|
|
3
|
+
* WP-304: Topics with goal/behaviour/criteria. LLM judges completion, heuristic backup.
|
|
4
4
|
*
|
|
5
5
|
* Uses @clack/prompts (WP-303 S1) and the MCP gateway to call the
|
|
6
6
|
* Convex onboardingChat action for conversation and extraction,
|
|
7
7
|
* then chain.createEntry for batch-capture.
|
|
8
8
|
*/
|
|
9
|
-
import { mcpCall
|
|
9
|
+
import { mcpCall } from './client.js';
|
|
10
10
|
import { ask, confirm, select } from './prompts.js';
|
|
11
|
-
import { bold,
|
|
11
|
+
import { bold, dim, green, icons } from './style.js';
|
|
12
12
|
import { trackEvent } from './telemetry.js';
|
|
13
13
|
import { detectSignals, mergeSignals } from './conversation-signals.js';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
|
|
14
|
+
import { evaluateTopic, buildTopicDirective, sanitizeResponse, shouldSkipTopic, isTooSimilar } from './conversation-engine.js';
|
|
15
|
+
import { ONBOARDING_TOPICS, userWantsToSkip } from './onboarding-topics.js';
|
|
16
|
+
import { countWords, validateExtractedEntries, displayEntryExample, showCapturedSummary, batchCaptureEntries, truncate, firstNWords, } from './onboarding-shared.js';
|
|
17
|
+
/** Hard cap on total exchanges across all topics. */
|
|
17
18
|
const MAX_TOTAL_EXCHANGES = 10;
|
|
18
|
-
// ── Extraction → Entries Mapping ────────────────────────────────────────────
|
|
19
|
-
// SYNC: Must match packages/mcp-server/src/tools/start-interview.ts:extractionToBatchEntries
|
|
20
|
-
// Duplicated due to monorepo import boundary (BR-165). TEN tracked for shared-package extraction.
|
|
21
|
-
function truncate(str, maxLen) {
|
|
22
|
-
if (str.length <= maxLen)
|
|
23
|
-
return str;
|
|
24
|
-
const truncated = str.slice(0, maxLen);
|
|
25
|
-
const lastSpace = truncated.lastIndexOf(' ');
|
|
26
|
-
return lastSpace > maxLen * 0.6 ? truncated.slice(0, lastSpace) : truncated;
|
|
27
|
-
}
|
|
28
|
-
function firstNWords(str, n) {
|
|
29
|
-
return str.split(/\s+/).slice(0, n).join(' ');
|
|
30
|
-
}
|
|
31
|
-
function countWords(text) {
|
|
32
|
-
return text.trim().split(/\s+/).filter(Boolean).length;
|
|
33
|
-
}
|
|
34
|
-
function extractionToEntries(extracted) {
|
|
35
|
-
const entries = [];
|
|
36
|
-
if (extracted.vision?.trim()) {
|
|
37
|
-
entries.push({
|
|
38
|
-
collection: 'strategy',
|
|
39
|
-
name: 'Product Vision',
|
|
40
|
-
description: extracted.vision,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
if (extracted.audience) {
|
|
44
|
-
entries.push({
|
|
45
|
-
collection: 'audiences',
|
|
46
|
-
name: firstNWords(extracted.audience, 6),
|
|
47
|
-
description: extracted.audience,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
if (extracted.techStack?.length) {
|
|
51
|
-
entries.push({
|
|
52
|
-
collection: 'architecture',
|
|
53
|
-
name: 'Tech Stack',
|
|
54
|
-
description: `Technology choices: ${extracted.techStack.join(', ')}`,
|
|
55
|
-
});
|
|
56
|
-
for (const tech of extracted.techStack.slice(0, 3)) {
|
|
57
|
-
entries.push({
|
|
58
|
-
collection: 'glossary',
|
|
59
|
-
name: tech,
|
|
60
|
-
description: `${tech} — part of the tech stack`,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (extracted.keyTerms?.length) {
|
|
65
|
-
for (const term of extracted.keyTerms) {
|
|
66
|
-
const alreadyAdded = entries.some((e) => e.collection === 'glossary' && e.name.toLowerCase() === term.toLowerCase());
|
|
67
|
-
if (!alreadyAdded) {
|
|
68
|
-
entries.push({
|
|
69
|
-
collection: 'glossary',
|
|
70
|
-
name: term,
|
|
71
|
-
description: `Core domain term: ${term}`,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (extracted.keyDecisions?.length) {
|
|
77
|
-
for (const decision of extracted.keyDecisions) {
|
|
78
|
-
entries.push({
|
|
79
|
-
collection: 'decisions',
|
|
80
|
-
name: truncate(decision, 120),
|
|
81
|
-
description: decision,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (extracted.tensions?.length) {
|
|
86
|
-
for (const tension of extracted.tensions) {
|
|
87
|
-
entries.push({
|
|
88
|
-
collection: 'tensions',
|
|
89
|
-
name: truncate(tension, 120),
|
|
90
|
-
description: tension,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return entries;
|
|
95
|
-
}
|
|
96
|
-
// ── Display helpers ─────────────────────────────────────────────────────────
|
|
97
|
-
/** Collection type labels — human-friendly names for collections. */
|
|
98
|
-
const COLLECTION_LABELS = {
|
|
99
|
-
strategy: 'Strategy',
|
|
100
|
-
audiences: 'Audience',
|
|
101
|
-
architecture: 'Architecture',
|
|
102
|
-
glossary: 'Term',
|
|
103
|
-
decisions: 'Decision',
|
|
104
|
-
tensions: 'Tension',
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Display one entry example with schema structure.
|
|
108
|
-
* Shows collection type, name, and description in a clean format.
|
|
109
|
-
*/
|
|
110
|
-
function displayEntryExample(entry) {
|
|
111
|
-
const typeLabel = COLLECTION_LABELS[entry.collection] ?? entry.collection;
|
|
112
|
-
process.stdout.write(` ${cyan(typeLabel)}\n`);
|
|
113
|
-
process.stdout.write(` ${bold(entry.name)}\n`);
|
|
114
|
-
if (entry.description !== entry.name) {
|
|
115
|
-
process.stdout.write(` ${dim(entry.description)}\n`);
|
|
116
|
-
}
|
|
117
|
-
process.stdout.write('\n');
|
|
118
|
-
}
|
|
119
19
|
// ── Main conversation ───────────────────────────────────────────────────────
|
|
120
20
|
/**
|
|
121
|
-
* Run the onboarding conversation:
|
|
21
|
+
* Run the onboarding conversation: topic-by-topic coach pattern, extraction, and auto-capture.
|
|
122
22
|
*/
|
|
123
23
|
export async function runOnboardingConversation(workspaceName) {
|
|
124
24
|
trackEvent('setup_started', { mode: 'llm' });
|
|
@@ -127,26 +27,29 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
127
27
|
messages: [],
|
|
128
28
|
userMessageCount: 0,
|
|
129
29
|
totalUserWords: 0,
|
|
30
|
+
topicExchanges: {},
|
|
31
|
+
completedTopics: new Set(),
|
|
32
|
+
currentTopicId: ONBOARDING_TOPICS[0].id,
|
|
33
|
+
completedQA: [],
|
|
34
|
+
// Legacy aliases — kept for type compat during transition
|
|
130
35
|
phaseExchanges: {},
|
|
131
36
|
completedPhases: new Set(),
|
|
132
|
-
currentPhaseId:
|
|
37
|
+
currentPhaseId: ONBOARDING_TOPICS[0].id,
|
|
133
38
|
signals: detectSignals([]),
|
|
134
39
|
refusalStreak: 0,
|
|
135
40
|
};
|
|
136
|
-
let currentPhaseIndex = 0;
|
|
137
41
|
let totalExchanges = 0;
|
|
138
42
|
let emptyAttempts = 0;
|
|
139
43
|
const recentAssistantMessages = [];
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
const
|
|
143
|
-
const greetDirective = buildPhaseDirective(greetPhase, 0, ONBOARDING_PHASES.length);
|
|
44
|
+
// Step 1: Get the LLM's opening (topic 1 generates the greeting)
|
|
45
|
+
const firstTopic = ONBOARDING_TOPICS[0];
|
|
46
|
+
const openingDirective = buildTopicDirective(firstTopic, 0, ONBOARDING_TOPICS.length, [], workspaceName);
|
|
144
47
|
let greeting;
|
|
145
48
|
try {
|
|
146
49
|
const result = await mcpCall('onboarding.chat', {
|
|
147
50
|
messages: [],
|
|
148
51
|
workspaceName,
|
|
149
|
-
phaseDirective:
|
|
52
|
+
phaseDirective: openingDirective,
|
|
150
53
|
turnNumber: 1,
|
|
151
54
|
totalUserWords: 0,
|
|
152
55
|
refusalStreak: 0,
|
|
@@ -164,14 +67,21 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
164
67
|
process.stdout.write(`\n ${greeting}\n\n`);
|
|
165
68
|
state.messages.push({ role: 'assistant', content: greeting });
|
|
166
69
|
recentAssistantMessages.push(greeting);
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
70
|
+
// Step 2: Topic-by-topic conversation loop
|
|
71
|
+
let currentTopicIndex = 0;
|
|
72
|
+
while (currentTopicIndex < ONBOARDING_TOPICS.length && totalExchanges < MAX_TOTAL_EXCHANGES) {
|
|
73
|
+
const topic = ONBOARDING_TOPICS[currentTopicIndex];
|
|
74
|
+
state.currentTopicId = topic.id;
|
|
75
|
+
// DEBUG: trace loop state
|
|
76
|
+
if (process.env.PB_DEBUG) {
|
|
77
|
+
console.error(`[DEBUG] topic=${topic.id} idx=${currentTopicIndex} exchanges=${totalExchanges} words=${state.totalUserWords} skip=${shouldSkipTopic(topic, state.signals, state.totalUserWords)}`);
|
|
78
|
+
}
|
|
79
|
+
// Skip check: if the signal for this topic is already present AND we have enough content
|
|
80
|
+
if (shouldSkipTopic(topic, state.signals, state.totalUserWords)) {
|
|
81
|
+
state.completedTopics.add(topic.id);
|
|
82
|
+
currentTopicIndex++;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
175
85
|
// Get user input
|
|
176
86
|
let userInput;
|
|
177
87
|
try {
|
|
@@ -187,7 +97,7 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
187
97
|
if (!userInput.trim()) {
|
|
188
98
|
emptyAttempts++;
|
|
189
99
|
if (emptyAttempts >= 2) {
|
|
190
|
-
process.stdout.write(`\n ${dim('No
|
|
100
|
+
process.stdout.write(`\n ${dim('No worries — run')} ${bold('pb capture')} ${dim('anytime to teach your AI tools more.')}\n\n`);
|
|
191
101
|
return;
|
|
192
102
|
}
|
|
193
103
|
process.stdout.write(` ${dim('Just hit Enter again to skip, or type anything to continue.')}\n\n`);
|
|
@@ -196,14 +106,13 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
196
106
|
emptyAttempts = 0;
|
|
197
107
|
// Check if user wants to skip
|
|
198
108
|
if (userWantsToSkip(userInput) && state.totalUserWords > 10) {
|
|
199
|
-
// Skip to extraction with what we have
|
|
200
109
|
break;
|
|
201
110
|
}
|
|
202
111
|
// Update state
|
|
203
112
|
state.messages.push({ role: 'user', content: userInput });
|
|
204
113
|
state.userMessageCount++;
|
|
205
114
|
state.totalUserWords += countWords(userInput);
|
|
206
|
-
state.
|
|
115
|
+
state.topicExchanges[topic.id] = (state.topicExchanges[topic.id] ?? 0) + 1;
|
|
207
116
|
totalExchanges++;
|
|
208
117
|
// Detect refusals (very short non-answers)
|
|
209
118
|
const wordCount = countWords(userInput);
|
|
@@ -215,13 +124,14 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
215
124
|
}
|
|
216
125
|
// Update heuristic signals
|
|
217
126
|
state.signals = detectSignals(state.messages);
|
|
218
|
-
// Get LLM response with
|
|
219
|
-
const
|
|
127
|
+
// Get LLM response with topic directive
|
|
128
|
+
const topicDirective = buildTopicDirective(topic, currentTopicIndex, ONBOARDING_TOPICS.length, state.completedQA, workspaceName);
|
|
129
|
+
let topicComplete = false;
|
|
220
130
|
try {
|
|
221
131
|
const result = await mcpCall('onboarding.chat', {
|
|
222
132
|
messages: state.messages,
|
|
223
133
|
workspaceName,
|
|
224
|
-
phaseDirective,
|
|
134
|
+
phaseDirective: topicDirective,
|
|
225
135
|
turnNumber: totalExchanges + 1,
|
|
226
136
|
totalUserWords: state.totalUserWords,
|
|
227
137
|
refusalStreak: state.refusalStreak,
|
|
@@ -230,47 +140,48 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
230
140
|
// Merge LLM-reported signals with heuristic signals
|
|
231
141
|
if (result.signals) {
|
|
232
142
|
state.signals = mergeSignals(state.signals, result.signals);
|
|
233
|
-
// Accumulate quotable fragments for bridge phase
|
|
234
|
-
if (result.signals.quotableFragments?.length) {
|
|
235
|
-
for (const frag of result.signals.quotableFragments) {
|
|
236
|
-
if (frag.trim() && !accumulatedFragments.includes(frag)) {
|
|
237
|
-
accumulatedFragments.push(frag);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
143
|
}
|
|
144
|
+
// Read LLM's topic completion judgment
|
|
145
|
+
topicComplete = result.topicComplete ?? false;
|
|
242
146
|
// Post-process response
|
|
243
147
|
let displayMessage = sanitizeResponse(result.content);
|
|
244
|
-
|
|
245
|
-
// Detect repetition — if too similar, add a nudge for next call
|
|
148
|
+
// Detect repetition — if too similar, bump refusal streak for next call
|
|
246
149
|
if (isTooSimilar(displayMessage, recentAssistantMessages)) {
|
|
247
|
-
state.refusalStreak++;
|
|
150
|
+
state.refusalStreak++;
|
|
248
151
|
}
|
|
249
152
|
process.stdout.write(`\n ${displayMessage}\n\n`);
|
|
250
153
|
state.messages.push({ role: 'assistant', content: displayMessage });
|
|
251
154
|
recentAssistantMessages.push(displayMessage);
|
|
252
155
|
}
|
|
253
156
|
}
|
|
254
|
-
catch {
|
|
157
|
+
catch (err) {
|
|
255
158
|
// LLM call failed — try to continue with what we have
|
|
159
|
+
if (process.env.PB_DEBUG)
|
|
160
|
+
console.error(`[DEBUG] LLM catch, breaking. Error:`, err);
|
|
256
161
|
break;
|
|
257
162
|
}
|
|
258
|
-
//
|
|
259
|
-
const
|
|
260
|
-
if (
|
|
261
|
-
state.
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
163
|
+
// Evaluate topic completion: LLM judgment + heuristic backup + forced advancement
|
|
164
|
+
const evalResult = evaluateTopic(topic, state, topicComplete);
|
|
165
|
+
if (process.env.PB_DEBUG) {
|
|
166
|
+
console.error(`[DEBUG] eval: complete=${evalResult.complete} forced=${evalResult.forced} skip=${evalResult.skip} topicComplete=${topicComplete} topicExchanges=${state.topicExchanges[topic.id]}`);
|
|
167
|
+
}
|
|
168
|
+
if (evalResult.complete) {
|
|
169
|
+
// Accumulate the last Q&A for context in later topics
|
|
170
|
+
const lastAssistant = recentAssistantMessages[recentAssistantMessages.length - 1] ?? '';
|
|
171
|
+
state.completedQA.push({
|
|
172
|
+
topicId: topic.id,
|
|
173
|
+
question: lastAssistant,
|
|
174
|
+
answer: userInput,
|
|
175
|
+
});
|
|
176
|
+
state.completedTopics.add(topic.id);
|
|
177
|
+
currentTopicIndex++;
|
|
269
178
|
}
|
|
270
|
-
// else: stay in current
|
|
179
|
+
// else: stay in current topic, loop again
|
|
271
180
|
}
|
|
272
181
|
// Hard floor: barely any content — offer manual capture
|
|
273
|
-
|
|
182
|
+
// Threshold: 3 words means basically no real content. Previous threshold of 10
|
|
183
|
+
// was too aggressive — 3 short answers can be valid (e.g., "a finance app" + "me" = 4 words).
|
|
184
|
+
if (state.totalUserWords < 3 && state.userMessageCount > 0) {
|
|
274
185
|
process.stdout.write(`\n ${dim('No problem — you can add knowledge at your own pace with')} ${bold('pb capture')}\n\n`);
|
|
275
186
|
trackEvent('setup_completed', { capturedCount: 0, reason: 'insufficient_content' });
|
|
276
187
|
return;
|
|
@@ -281,39 +192,33 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
281
192
|
process.stdout.write(`\n ${dim('No worries! Run')} ${bold('pb capture')} ${dim('anytime to add knowledge.')}\n\n`);
|
|
282
193
|
return;
|
|
283
194
|
}
|
|
284
|
-
let
|
|
195
|
+
let entriesToCapture;
|
|
285
196
|
try {
|
|
286
197
|
const result = await mcpCall('onboarding.chat', {
|
|
287
198
|
messages: state.messages,
|
|
288
199
|
workspaceName,
|
|
289
200
|
mode: 'extract',
|
|
290
201
|
});
|
|
291
|
-
if (!result?.
|
|
202
|
+
if (!result?.entries?.length) {
|
|
292
203
|
process.stdout.write(`\n ${dim("Couldn't organize your answers just yet. Try")} ${bold('pb capture')} ${dim('to add knowledge manually.')}\n\n`);
|
|
293
204
|
return;
|
|
294
205
|
}
|
|
295
|
-
|
|
206
|
+
entriesToCapture = validateExtractedEntries(result.entries).slice(0, 5);
|
|
296
207
|
}
|
|
297
208
|
catch {
|
|
298
209
|
process.stdout.write(`\n ${dim("Couldn't organize your answers just yet. Try")} ${bold('pb capture')} ${dim('to add knowledge manually.')}\n\n`);
|
|
299
210
|
return;
|
|
300
211
|
}
|
|
301
|
-
// Step 4: Filter and cap entries
|
|
302
|
-
const allEntries = extractionToEntries(extraction);
|
|
303
|
-
// Filter out junk: single-word names, very short descriptions
|
|
304
|
-
const entriesToCapture = allEntries
|
|
305
|
-
.filter((e) => e.name.trim().split(/\s+/).length >= 2 || e.collection === 'glossary')
|
|
306
|
-
.slice(0, 5);
|
|
307
212
|
if (entriesToCapture.length === 0) {
|
|
308
213
|
process.stdout.write(`\n ${dim('Nothing to save yet. Try')} ${bold('pb capture')} ${dim('to add knowledge manually.')}\n\n`);
|
|
309
214
|
return;
|
|
310
215
|
}
|
|
311
|
-
// Step
|
|
216
|
+
// Step 4: Show ONE example with schema, offer to browse more
|
|
312
217
|
const itemCount = entriesToCapture.length;
|
|
313
218
|
process.stdout.write(`\n From this conversation, I'd remember ${bold(String(itemCount))} item${itemCount === 1 ? '' : 's'}.\n`);
|
|
314
219
|
process.stdout.write(` Here's an example:\n\n`);
|
|
315
220
|
displayEntryExample(entriesToCapture[0]);
|
|
316
|
-
let exampleIndex = 1;
|
|
221
|
+
let exampleIndex = 1;
|
|
317
222
|
let shouldSave = false;
|
|
318
223
|
// eslint-disable-next-line no-constant-condition
|
|
319
224
|
while (true) {
|
|
@@ -337,7 +242,7 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
337
242
|
return;
|
|
338
243
|
}
|
|
339
244
|
if (choice === 'skip') {
|
|
340
|
-
process.stdout.write(`\n ${dim('No problem —
|
|
245
|
+
process.stdout.write(`\n ${dim('No problem — run')} ${bold('pb capture')} ${dim('anytime to add more.')}\n\n`);
|
|
341
246
|
return;
|
|
342
247
|
}
|
|
343
248
|
if (choice === 'save') {
|
|
@@ -351,25 +256,9 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
351
256
|
}
|
|
352
257
|
if (!shouldSave)
|
|
353
258
|
return;
|
|
354
|
-
// Step
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
for (const entry of entriesToCapture) {
|
|
358
|
-
try {
|
|
359
|
-
await mcpCallWithSession('chain.createEntry', {
|
|
360
|
-
collectionSlug: entry.collection,
|
|
361
|
-
name: entry.name,
|
|
362
|
-
status: 'active',
|
|
363
|
-
data: { description: entry.description },
|
|
364
|
-
});
|
|
365
|
-
capturedCount++;
|
|
366
|
-
}
|
|
367
|
-
catch (err) {
|
|
368
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
369
|
-
errors.push(`${entry.name}: ${msg}`);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
// Step 7: Report results
|
|
259
|
+
// Step 5: Batch-capture entries
|
|
260
|
+
const { capturedCount, errors } = await batchCaptureEntries(entriesToCapture);
|
|
261
|
+
// Step 6: Report results
|
|
373
262
|
if (capturedCount > 0) {
|
|
374
263
|
process.stdout.write(`\n ${green(icons.pass)} Saved ${capturedCount} item${capturedCount === 1 ? '' : 's'} to your product brain.\n`);
|
|
375
264
|
trackEvent('capture_completed', { mode: 'llm', count: capturedCount });
|
|
@@ -377,32 +266,12 @@ export async function runOnboardingConversation(workspaceName) {
|
|
|
377
266
|
if (errors.length > 0) {
|
|
378
267
|
process.stdout.write(`\n ${dim(`${errors.length} couldn't be saved.`)}\n`);
|
|
379
268
|
}
|
|
380
|
-
// Step
|
|
381
|
-
|
|
382
|
-
process.stdout.write(` ${dim('
|
|
269
|
+
// Step 7: Deterministic proof + closing
|
|
270
|
+
showCapturedSummary(entriesToCapture, capturedCount);
|
|
271
|
+
process.stdout.write(` ${dim('Run')} ${bold('pb capture')} ${dim('anytime to teach your AI tools more.')}\n\n`);
|
|
383
272
|
trackEvent('setup_completed', { capturedCount });
|
|
384
273
|
}
|
|
385
|
-
// ──
|
|
386
|
-
async function showRetrievalProof() {
|
|
387
|
-
try {
|
|
388
|
-
const orient = await mcpCall('orient', { brief: true });
|
|
389
|
-
const items = orient?.sections?.flatMap((s) => s.items ?? []).filter((i) => i.name) ?? [];
|
|
390
|
-
if (items.length > 0) {
|
|
391
|
-
process.stdout.write(`\n ${bold("Here's how your product brain will use this:")}\n\n`);
|
|
392
|
-
for (const item of items.slice(0, 5)) {
|
|
393
|
-
process.stdout.write(` ${dim(icons.dot)} ${item.name}\n`);
|
|
394
|
-
}
|
|
395
|
-
if (items.length > 5) {
|
|
396
|
-
process.stdout.write(` ${dim(`...and ${items.length - 5} more`)}\n`);
|
|
397
|
-
}
|
|
398
|
-
process.stdout.write('\n');
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
catch {
|
|
402
|
-
// Retrieval proof is best-effort
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
// ── Deterministic fallback ────────────────────────────────────────────────
|
|
274
|
+
// ── Deterministic fallback ──────────────────────────────────────────��─────
|
|
406
275
|
const FALLBACK_QUESTIONS = [
|
|
407
276
|
{ message: 'What are you building?', placeholder: 'A tool for...' },
|
|
408
277
|
{ message: 'Who is it for?', placeholder: 'Developers, designers, teams...' },
|
|
@@ -430,22 +299,36 @@ export async function runFallbackOnboarding(workspaceName) {
|
|
|
430
299
|
return;
|
|
431
300
|
}
|
|
432
301
|
trackEvent('first_capture_prompted', { mode: 'fallback' });
|
|
433
|
-
const
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
302
|
+
const entriesToCapture = [];
|
|
303
|
+
if (answers[0]) {
|
|
304
|
+
entriesToCapture.push({
|
|
305
|
+
collection: 'strategy',
|
|
306
|
+
name: 'Product Vision',
|
|
307
|
+
description: answers[0],
|
|
308
|
+
typeLabel: "What you're building",
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
if (answers[1]) {
|
|
312
|
+
entriesToCapture.push({
|
|
313
|
+
collection: 'audiences',
|
|
314
|
+
name: firstNWords(answers[1], 6),
|
|
315
|
+
description: answers[1],
|
|
316
|
+
typeLabel: "Who it's for",
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
if (answers[2]) {
|
|
320
|
+
entriesToCapture.push({
|
|
321
|
+
collection: 'tensions',
|
|
322
|
+
name: truncate(answers[2], 120),
|
|
323
|
+
description: answers[2],
|
|
324
|
+
typeLabel: "A challenge you're facing",
|
|
325
|
+
});
|
|
326
|
+
}
|
|
438
327
|
// Show extraction
|
|
439
328
|
process.stdout.write('\n');
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
if (extraction.audience)
|
|
443
|
-
process.stdout.write(` ${green('\u2726')} ${extraction.audience}\n`);
|
|
444
|
-
if (extraction.tensions?.length) {
|
|
445
|
-
for (const t of extraction.tensions)
|
|
446
|
-
process.stdout.write(` ${green('\u2726')} ${t}\n`);
|
|
329
|
+
for (const entry of entriesToCapture) {
|
|
330
|
+
displayEntryExample(entry);
|
|
447
331
|
}
|
|
448
|
-
process.stdout.write('\n');
|
|
449
332
|
let approved;
|
|
450
333
|
try {
|
|
451
334
|
approved = await confirm({ message: 'Ready to save these to your product brain?', initialValue: true });
|
|
@@ -455,27 +338,13 @@ export async function runFallbackOnboarding(workspaceName) {
|
|
|
455
338
|
}
|
|
456
339
|
if (!approved)
|
|
457
340
|
return;
|
|
458
|
-
const
|
|
459
|
-
let capturedCount = 0;
|
|
460
|
-
for (const entry of entriesToCapture) {
|
|
461
|
-
try {
|
|
462
|
-
await mcpCallWithSession('chain.createEntry', {
|
|
463
|
-
collectionSlug: entry.collection,
|
|
464
|
-
name: entry.name,
|
|
465
|
-
status: 'active',
|
|
466
|
-
data: { description: entry.description },
|
|
467
|
-
});
|
|
468
|
-
capturedCount++;
|
|
469
|
-
}
|
|
470
|
-
catch { /* continue on error */ }
|
|
471
|
-
}
|
|
341
|
+
const { capturedCount } = await batchCaptureEntries(entriesToCapture);
|
|
472
342
|
if (capturedCount > 0) {
|
|
473
343
|
process.stdout.write(`\n ${green(icons.pass)} Saved ${capturedCount} item${capturedCount === 1 ? '' : 's'} to your product brain.\n`);
|
|
474
344
|
trackEvent('capture_completed', { mode: 'fallback', count: capturedCount });
|
|
475
345
|
}
|
|
476
|
-
|
|
477
|
-
process.stdout.write(` ${dim('
|
|
478
|
-
process.stdout.write(` ${dim('Your product brain gets smarter every time you capture.')}\n\n`);
|
|
346
|
+
showCapturedSummary(entriesToCapture, capturedCount);
|
|
347
|
+
process.stdout.write(` ${dim('Run')} ${bold('pb capture')} ${dim('anytime to teach your AI tools more.')}\n\n`);
|
|
479
348
|
trackEvent('setup_completed', { mode: 'fallback', capturedCount });
|
|
480
349
|
}
|
|
481
350
|
//# sourceMappingURL=onboarding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC/H,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,UAAU,EACV,wBAAwB,EAAE,mBAAmB,EAAE,mBAAmB,EAClE,mBAAmB,EACnB,QAAQ,EAAE,WAAW,GAItB,MAAM,wBAAwB,CAAC;AAEhC,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,aAAqB;IACnE,UAAU,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7C,gCAAgC;IAChC,MAAM,KAAK,GAAsB;QAC/B,QAAQ,EAAE,EAAE;QACZ,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;QACvC,WAAW,EAAE,EAAE;QACf,0DAA0D;QAC1D,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;QACvC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;QAC1B,aAAa,EAAE,CAAC;KACjB,CAAC;IAEF,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,uBAAuB,GAAa,EAAE,CAAC;IAE7C,iEAAiE;IACjE,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;IAEzG,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAA8B,iBAAiB,EAAE;YAC3E,QAAQ,EAAE,EAAE;YACZ,aAAa;YACb,cAAc,EAAE,gBAAgB;YAChC,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,QAAQ,MAAM,CAAC,CAAC;IAC5C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvC,2CAA2C;IAC3C,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,OAAO,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,IAAI,cAAc,GAAG,mBAAmB,EAAE,CAAC;QAC5F,MAAM,KAAK,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACnD,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC;QAEhC,0BAA0B;QAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,EAAE,QAAQ,iBAAiB,cAAc,cAAc,UAAU,KAAK,CAAC,cAAc,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACpM,CAAC;QAED,yFAAyF;QACzF,IAAI,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,iBAAiB,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,iBAAiB;QACjB,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,GAAG,CAAC;gBACpB,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE;aACzE,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAC9F,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,aAAa,EAAE,CAAC;YAChB,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,sCAAsC,CAAC,MAAM,CAC1G,CAAC;gBACF,OAAO;YACT,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,6DAA6D,CAAC,MAAM,CAAC,CAAC;YACpG,SAAS;QACX,CAAC;QAED,aAAa,GAAG,CAAC,CAAC;QAElB,8BAA8B;QAC9B,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,EAAE,CAAC;YAC5D,MAAM;QACR,CAAC;QAED,eAAe;QACf,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,KAAK,CAAC,cAAc,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,cAAc,EAAE,CAAC;QAEjB,2CAA2C;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,2BAA2B;QAC3B,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE9C,wCAAwC;QACxC,MAAM,cAAc,GAAG,mBAAmB,CACxC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,EAClD,KAAK,CAAC,WAAW,EAAE,aAAa,CACjC,CAAC;QAEF,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAA8B,iBAAiB,EAAE;gBAC3E,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,aAAa;gBACb,cAAc,EAAE,cAAc;gBAC9B,UAAU,EAAE,cAAc,GAAG,CAAC;gBAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,oDAAoD;gBACpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,CAAC;gBAED,uCAAuC;gBACvC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;gBAE9C,wBAAwB;gBACxB,IAAI,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEtD,wEAAwE;gBACxE,IAAI,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,EAAE,CAAC;oBAC1D,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,cAAc,MAAM,CAAC,CAAC;gBAClD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;gBACpE,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sDAAsD;YACtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;YACpF,MAAM;QACR,CAAC;QAED,kFAAkF;QAClF,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,0BAA0B,UAAU,CAAC,QAAQ,WAAW,UAAU,CAAC,MAAM,SAAS,UAAU,CAAC,IAAI,kBAAkB,aAAa,mBAAmB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrM,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,sDAAsD;YACtD,MAAM,aAAa,GAAG,uBAAuB,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACxF,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;gBACrB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YAEH,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,iBAAiB,EAAE,CAAC;QACtB,CAAC;QACD,0CAA0C;IAC5C,CAAC;IAED,wDAAwD;IACxD,+EAA+E;IAC/E,8FAA8F;IAC9F,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,GAAG,CAAC,0DAA0D,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CACnG,CAAC;QACF,UAAU,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IAED,UAAU,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAEjF,oDAAoD;IACpD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAC9F,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,gBAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAiC,iBAAiB,EAAE;YAC9E,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,GAAG,CAAC,8CAA8C,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,4BAA4B,CAAC,MAAM,CAC5H,CAAC;YACF,OAAO;QACT,CAAC;QAED,gBAAgB,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,GAAG,CAAC,8CAA8C,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,4BAA4B,CAAC,MAAM,CAC5H,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAC9H,OAAO;IACT,CAAC;IAED,6DAA6D;IAC7D,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACjI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEjD,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,iDAAiD;IACjD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,eAAe,GAAG,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAG/D,MAAM,OAAO,GAAsE;YACjF,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,GAAG,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE;SACjH,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAExD,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAoB;gBACvC,OAAO,EAAE,EAAE;gBACX,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACpG,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAChH,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM;QACR,CAAC;QAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,mBAAmB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;YACpD,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,gCAAgC;IAChC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAE9E,yBAAyB;IACzB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,QAAQ,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2BAA2B,CACjH,CAAC;QACF,UAAU,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,wCAAwC;IACxC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,sCAAsC,CAAC,MAAM,CAAC,CAAC;IACjH,UAAU,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG;IACzB,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAE;IACnE,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,iCAAiC,EAAE;IAC7E,EAAE,OAAO,EAAE,yCAAyC,EAAE,WAAW,EAAE,iCAAiC,EAAE;CACvG,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,aAAqB;IAC/D,UAAU,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,sBAAsB,aAAa,GAAG,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhH,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7E,IAAI,MAAM,CAAC,IAAI,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,wCAAwC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACvG,OAAO;IACT,CAAC;IAED,UAAU,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAE3D,MAAM,gBAAgB,GAAmB,EAAE,CAAC;IAC5C,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACf,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YACvB,SAAS,EAAE,sBAAsB;SAClC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACf,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YACvB,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACf,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAC/B,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YACvB,SAAS,EAAE,2BAA2B;SACvC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAEtE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,QAAQ,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC;QACvI,UAAU,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,sCAAsC,CAAC,MAAM,CAAC,CAAC;IACjH,UAAU,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/lib/profiles.d.ts
CHANGED
|
@@ -30,5 +30,10 @@ export declare function deleteProfile(name: string): void;
|
|
|
30
30
|
* Returns null if no profile or config is available.
|
|
31
31
|
*/
|
|
32
32
|
export declare function resolveProfileConfig(): ProfileConfig | null;
|
|
33
|
+
/**
|
|
34
|
+
* Resolve config for a specific named profile.
|
|
35
|
+
* Returns null if the profile doesn't exist.
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveNamedProfileConfig(name: string): ProfileConfig | null;
|
|
33
38
|
export { PROFILES_DIR, ACTIVE_PROFILE_PATH, LEGACY_ENV_PATH, HOME_CONFIG_DIR };
|
|
34
39
|
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,QAAA,MAAM,eAAe,QAAgD,CAAC;AACtE,QAAA,MAAM,YAAY,QAAuC,CAAC;AAC1D,QAAA,MAAM,mBAAmB,QAA6C,CAAC;AACvE,QAAA,MAAM,eAAe,QAAmC,CAAC;AAKzD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoDD,uCAAuC;AACvC,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAOvC;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAWhD;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAwBlF;AAED,iCAAiC;AACjC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAS7C;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmBhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,IAAI,CAgC3D;AAGD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,QAAA,MAAM,eAAe,QAAgD,CAAC;AACtE,QAAA,MAAM,YAAY,QAAuC,CAAC;AAC1D,QAAA,MAAM,mBAAmB,QAA6C,CAAC;AACvE,QAAA,MAAM,eAAe,QAAmC,CAAC;AAKzD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoDD,uCAAuC;AACvC,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAOvC;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAWhD;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAwBlF;AAED,iCAAiC;AACjC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAS7C;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmBhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,IAAI,CAgC3D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE5E;AAGD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/lib/profiles.js
CHANGED
|
@@ -168,6 +168,13 @@ export function resolveProfileConfig() {
|
|
|
168
168
|
}
|
|
169
169
|
return null;
|
|
170
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Resolve config for a specific named profile.
|
|
173
|
+
* Returns null if the profile doesn't exist.
|
|
174
|
+
*/
|
|
175
|
+
export function resolveNamedProfileConfig(name) {
|
|
176
|
+
return readProfileFile(profilePath(name));
|
|
177
|
+
}
|
|
171
178
|
// Exported for testing
|
|
172
179
|
export { PROFILES_DIR, ACTIVE_PROFILE_PATH, LEGACY_ENV_PATH, HOME_CONFIG_DIR };
|
|
173
180
|
//# sourceMappingURL=profiles.js.map
|