@productbrain/cli 0.1.0-beta.10332 → 0.1.0-beta.10343
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__/route-latency-budget.test.js +3 -4
- package/dist/__tests__/route-latency-budget.test.js.map +1 -1
- package/dist/generated/routeLatencyBudget.generated.d.ts +0 -1
- package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -1
- package/dist/generated/routeLatencyBudget.generated.js +0 -5
- package/dist/generated/routeLatencyBudget.generated.js.map +1 -1
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +0 -1
- package/dist/lib/client.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/onboarding-path-b.test.d.ts +0 -2
- package/dist/__tests__/onboarding-path-b.test.d.ts.map +0 -1
- package/dist/__tests__/onboarding-path-b.test.js +0 -46
- package/dist/__tests__/onboarding-path-b.test.js.map +0 -1
- package/dist/__tests__/onboarding.test.d.ts +0 -6
- package/dist/__tests__/onboarding.test.d.ts.map +0 -1
- package/dist/__tests__/onboarding.test.js +0 -371
- package/dist/__tests__/onboarding.test.js.map +0 -1
- package/dist/__tests__/onboardingFallback.test.d.ts +0 -2
- package/dist/__tests__/onboardingFallback.test.d.ts.map +0 -1
- package/dist/__tests__/onboardingFallback.test.js +0 -74
- package/dist/__tests__/onboardingFallback.test.js.map +0 -1
- package/dist/lib/conversation-engine.d.ts +0 -45
- package/dist/lib/conversation-engine.d.ts.map +0 -1
- package/dist/lib/conversation-engine.js +0 -112
- package/dist/lib/conversation-engine.js.map +0 -1
- package/dist/lib/conversation-phases.d.ts +0 -59
- package/dist/lib/conversation-phases.d.ts.map +0 -1
- package/dist/lib/conversation-phases.js +0 -11
- package/dist/lib/conversation-phases.js.map +0 -1
- package/dist/lib/conversation-signals.d.ts +0 -30
- package/dist/lib/conversation-signals.d.ts.map +0 -1
- package/dist/lib/conversation-signals.js +0 -64
- package/dist/lib/conversation-signals.js.map +0 -1
- package/dist/lib/onboarding-path-b.d.ts +0 -10
- package/dist/lib/onboarding-path-b.d.ts.map +0 -1
- package/dist/lib/onboarding-path-b.js +0 -238
- package/dist/lib/onboarding-path-b.js.map +0 -1
- package/dist/lib/onboarding-shared.d.ts +0 -103
- package/dist/lib/onboarding-shared.d.ts.map +0 -1
- package/dist/lib/onboarding-shared.js +0 -208
- package/dist/lib/onboarding-shared.js.map +0 -1
- package/dist/lib/onboarding-shared.test.d.ts +0 -2
- package/dist/lib/onboarding-shared.test.d.ts.map +0 -1
- package/dist/lib/onboarding-shared.test.js +0 -131
- package/dist/lib/onboarding-shared.test.js.map +0 -1
- package/dist/lib/onboarding-topics.d.ts +0 -27
- package/dist/lib/onboarding-topics.d.ts.map +0 -1
- package/dist/lib/onboarding-topics.js +0 -57
- package/dist/lib/onboarding-topics.js.map +0 -1
- package/dist/lib/onboarding.d.ts +0 -21
- package/dist/lib/onboarding.d.ts.map +0 -1
- package/dist/lib/onboarding.js +0 -387
- package/dist/lib/onboarding.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.test.js","sourceRoot":"","sources":["../../src/__tests__/onboarding.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboardingFallback.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/onboardingFallback.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WP-770 why-producers round 4 (TASK-360, DEC-1792, Codex P2 PRRT_kwDORS4ils6mNX-o):
|
|
3
|
-
* runFallbackOnboarding's strategy entry (Product Vision) never has a why (the fallback asks
|
|
4
|
-
* no why question) — it must be skipped and reported, never captured without a reason.
|
|
5
|
-
* showCapturedSummary must list only what batchCaptureEntries actually captured, never the
|
|
6
|
-
* full input list (a failed capture must not read as "remembered").
|
|
7
|
-
*/
|
|
8
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
9
|
-
const kernelCallWithSessionMock = vi.fn();
|
|
10
|
-
const askMock = vi.fn();
|
|
11
|
-
const confirmMock = vi.fn();
|
|
12
|
-
vi.mock('../lib/client.js', () => ({
|
|
13
|
-
kernelCallWithSession: (...args) => kernelCallWithSessionMock(...args),
|
|
14
|
-
}));
|
|
15
|
-
vi.mock('../lib/prompts.js', () => ({
|
|
16
|
-
ask: (...args) => askMock(...args),
|
|
17
|
-
confirm: (...args) => confirmMock(...args),
|
|
18
|
-
select: vi.fn(),
|
|
19
|
-
}));
|
|
20
|
-
vi.mock('../lib/telemetry.js', () => ({ trackEvent: vi.fn() }));
|
|
21
|
-
vi.mock('../formatters/session.js', () => ({ FEEDBACK_SUBMIT_HINT: 'feedback hint' }));
|
|
22
|
-
let stdout = [];
|
|
23
|
-
beforeEach(() => {
|
|
24
|
-
stdout = [];
|
|
25
|
-
vi.spyOn(process.stdout, 'write').mockImplementation((chunk) => {
|
|
26
|
-
stdout.push(String(chunk));
|
|
27
|
-
return true;
|
|
28
|
-
});
|
|
29
|
-
kernelCallWithSessionMock.mockReset();
|
|
30
|
-
askMock.mockReset();
|
|
31
|
-
confirmMock.mockReset();
|
|
32
|
-
});
|
|
33
|
-
describe('runFallbackOnboarding — why-required strategy entry is skipped, not captured', () => {
|
|
34
|
-
it('skips the Product Vision (strategy) entry for lacking a why, and reports it', async () => {
|
|
35
|
-
const { runFallbackOnboarding } = await import('../lib/onboarding.js');
|
|
36
|
-
askMock
|
|
37
|
-
.mockResolvedValueOnce('A finance automation tool')
|
|
38
|
-
.mockResolvedValueOnce('Manual reconciliation takes hours');
|
|
39
|
-
confirmMock.mockResolvedValueOnce(true);
|
|
40
|
-
kernelCallWithSessionMock.mockResolvedValueOnce({ entryId: 'TEN-1' }); // tensions capture succeeds
|
|
41
|
-
await runFallbackOnboarding('acme');
|
|
42
|
-
const output = stdout.join('');
|
|
43
|
-
expect(output).toContain('skipped, needs a why');
|
|
44
|
-
expect(output).toContain('Product Vision');
|
|
45
|
-
// Only ONE createEntry call — the tensions entry. The skipped strategy entry never reaches it.
|
|
46
|
-
expect(kernelCallWithSessionMock).toHaveBeenCalledTimes(1);
|
|
47
|
-
expect(kernelCallWithSessionMock).toHaveBeenCalledWith('chain.createEntry', expect.objectContaining({
|
|
48
|
-
collectionSlug: 'tensions',
|
|
49
|
-
}));
|
|
50
|
-
});
|
|
51
|
-
it('showCapturedSummary lists only what was actually captured — a failed capture is not shown as remembered', async () => {
|
|
52
|
-
const { runFallbackOnboarding } = await import('../lib/onboarding.js');
|
|
53
|
-
askMock
|
|
54
|
-
.mockResolvedValueOnce('A finance automation tool')
|
|
55
|
-
.mockResolvedValueOnce('Manual reconciliation takes hours');
|
|
56
|
-
confirmMock.mockResolvedValueOnce(true);
|
|
57
|
-
kernelCallWithSessionMock.mockRejectedValueOnce(new Error('boom')); // tensions capture FAILS
|
|
58
|
-
await runFallbackOnboarding('acme');
|
|
59
|
-
const output = stdout.join('');
|
|
60
|
-
expect(output).not.toContain('Your AI tools will now remember');
|
|
61
|
-
});
|
|
62
|
-
it('when only the (skipped) strategy answer is given, reports skipped and never prompts to save', async () => {
|
|
63
|
-
const { runFallbackOnboarding } = await import('../lib/onboarding.js');
|
|
64
|
-
askMock
|
|
65
|
-
.mockResolvedValueOnce('A finance automation tool')
|
|
66
|
-
.mockRejectedValueOnce(new Error('cancelled'));
|
|
67
|
-
await runFallbackOnboarding('acme');
|
|
68
|
-
const output = stdout.join('');
|
|
69
|
-
expect(output).toContain('skipped, needs a why');
|
|
70
|
-
expect(confirmMock).not.toHaveBeenCalled();
|
|
71
|
-
expect(kernelCallWithSessionMock).not.toHaveBeenCalled();
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
//# sourceMappingURL=onboardingFallback.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboardingFallback.test.js","sourceRoot":"","sources":["../../src/__tests__/onboardingFallback.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE9D,MAAM,yBAAyB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACxB,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAE5B,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,qBAAqB,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;CAClF,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,OAAO,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACrD,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AAEvF,IAAI,MAAM,GAAa,EAAE,CAAC;AAE1B,UAAU,CAAC,GAAG,EAAE;IACd,MAAM,GAAG,EAAE,CAAC;IACZ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAAc,EAAE,EAAE;QACtE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,yBAAyB,CAAC,SAAS,EAAE,CAAC;IACtC,OAAO,CAAC,SAAS,EAAE,CAAC;IACpB,WAAW,CAAC,SAAS,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8EAA8E,EAAE,GAAG,EAAE;IAC5F,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvE,OAAO;aACJ,qBAAqB,CAAC,2BAA2B,CAAC;aAClD,qBAAqB,CAAC,mCAAmC,CAAC,CAAC;QAC9D,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,yBAAyB,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,4BAA4B;QAEnG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,+FAA+F;QAC/F,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,CAAC;YAClG,cAAc,EAAE,UAAU;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yGAAyG,EAAE,KAAK,IAAI,EAAE;QACvH,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvE,OAAO;aACJ,qBAAqB,CAAC,2BAA2B,CAAC;aAClD,qBAAqB,CAAC,mCAAmC,CAAC,CAAC;QAC9D,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,yBAAyB,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAE7F,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvE,OAAO;aACJ,qBAAqB,CAAC,2BAA2B,CAAC;aAClD,qBAAqB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAEjD,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation engine — topic evaluation, XML directive builder, post-processing.
|
|
3
|
-
* WP-304: Coach pattern — LLM judges topic completion, heuristic backup.
|
|
4
|
-
*
|
|
5
|
-
* The engine evaluates topic completion and builds XML directives.
|
|
6
|
-
* It does NOT generate content — that's the LLM's job.
|
|
7
|
-
*/
|
|
8
|
-
import type { ConversationState, ConversationSignals, TopicQA } from './conversation-phases.js';
|
|
9
|
-
import type { OnboardingTopic } from './onboarding-topics.js';
|
|
10
|
-
/** Result of evaluating the current topic. */
|
|
11
|
-
export interface TopicEvalResult {
|
|
12
|
-
/** Whether the current topic is complete. */
|
|
13
|
-
complete: boolean;
|
|
14
|
-
/** Whether advancement was forced by maxExchanges. */
|
|
15
|
-
forced: boolean;
|
|
16
|
-
/** Whether this topic was skipped (signal already present). */
|
|
17
|
-
skip: boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Check if a topic should be skipped because its signal is already present.
|
|
21
|
-
* Only skips if we have enough content for quality extraction (>= 20 words).
|
|
22
|
-
*/
|
|
23
|
-
export declare function shouldSkipTopic(topic: OnboardingTopic, signals: ConversationSignals, totalUserWords: number): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Evaluate whether the current topic is complete.
|
|
26
|
-
* Priority: skip > LLM judgment > heuristic backup > forced > continue.
|
|
27
|
-
*/
|
|
28
|
-
export declare function evaluateTopic(topic: OnboardingTopic, state: ConversationState, llmSaidComplete: boolean): TopicEvalResult;
|
|
29
|
-
/**
|
|
30
|
-
* Build the XML topic directive to inject into the system prompt.
|
|
31
|
-
* Renders <topic> with goal/behaviour/criteria, plus <accumulated_context>
|
|
32
|
-
* with completed Q&A pairs from earlier topics.
|
|
33
|
-
*/
|
|
34
|
-
export declare function buildTopicDirective(topic: OnboardingTopic, topicIndex: number, totalTopics: number, completedQA: TopicQA[], workspaceName: string): string;
|
|
35
|
-
/**
|
|
36
|
-
* Strip banned patterns the LLM produces despite prompt instructions.
|
|
37
|
-
* Safety net — Gemini Flash at temp 0.3 still produces these ~15% of the time.
|
|
38
|
-
*/
|
|
39
|
-
export declare function sanitizeResponse(text: string): string;
|
|
40
|
-
/**
|
|
41
|
-
* Detect if a response is too similar to recent ones (refusal loop).
|
|
42
|
-
* Uses Jaccard similarity on word sets.
|
|
43
|
-
*/
|
|
44
|
-
export declare function isTooSimilar(newMsg: string, recentMsgs: string[], threshold?: number): boolean;
|
|
45
|
-
//# sourceMappingURL=conversation-engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-engine.d.ts","sourceRoot":"","sources":["../../src/lib/conversation-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAElB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAC;IAEhB,+DAA+D;IAC/D,IAAI,EAAE,OAAO,CAAC;CACf;AASD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAIrH;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,iBAAiB,EACxB,eAAe,EAAE,OAAO,GACvB,eAAe,CAyBjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EAAE,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAoBR;AAcD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,SAAM,GAAG,OAAO,CAW3F"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation engine — topic evaluation, XML directive builder, post-processing.
|
|
3
|
-
* WP-304: Coach pattern — LLM judges topic completion, heuristic backup.
|
|
4
|
-
*
|
|
5
|
-
* The engine evaluates topic completion and builds XML directives.
|
|
6
|
-
* It does NOT generate content — that's the LLM's job.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Minimum user words before topic skipping is allowed.
|
|
10
|
-
* Below this threshold, the conversation is too thin for quality extraction —
|
|
11
|
-
* keep asking even if LLM signals say the topic is covered.
|
|
12
|
-
*/
|
|
13
|
-
const MIN_WORDS_FOR_SKIP = 20;
|
|
14
|
-
/**
|
|
15
|
-
* Check if a topic should be skipped because its signal is already present.
|
|
16
|
-
* Only skips if we have enough content for quality extraction (>= 20 words).
|
|
17
|
-
*/
|
|
18
|
-
export function shouldSkipTopic(topic, signals, totalUserWords) {
|
|
19
|
-
if (topic.skipIfSignal === null)
|
|
20
|
-
return false;
|
|
21
|
-
if (totalUserWords < MIN_WORDS_FOR_SKIP)
|
|
22
|
-
return false;
|
|
23
|
-
return signals[topic.skipIfSignal] === true;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Evaluate whether the current topic is complete.
|
|
27
|
-
* Priority: skip > LLM judgment > heuristic backup > forced > continue.
|
|
28
|
-
*/
|
|
29
|
-
export function evaluateTopic(topic, state, llmSaidComplete) {
|
|
30
|
-
// 1. Skip: signal already present from earlier topics (only if enough content)
|
|
31
|
-
if (shouldSkipTopic(topic, state.signals, state.totalUserWords)) {
|
|
32
|
-
return { complete: true, forced: false, skip: true };
|
|
33
|
-
}
|
|
34
|
-
const exchanges = state.topicExchanges[topic.id] ?? 0;
|
|
35
|
-
// 2. LLM says complete (require at least 1 exchange to prevent premature completion)
|
|
36
|
-
if (llmSaidComplete && exchanges >= 1) {
|
|
37
|
-
return { complete: true, forced: false, skip: false };
|
|
38
|
-
}
|
|
39
|
-
// 3. Heuristic backup: signal detected even if LLM didn't say complete
|
|
40
|
-
if (topic.heuristicSignal && state.signals[topic.heuristicSignal] === true && exchanges >= 1) {
|
|
41
|
-
return { complete: true, forced: false, skip: false };
|
|
42
|
-
}
|
|
43
|
-
// 4. Forced: max exchanges hit
|
|
44
|
-
if (exchanges >= topic.maxExchanges) {
|
|
45
|
-
return { complete: true, forced: true, skip: false };
|
|
46
|
-
}
|
|
47
|
-
// 5. Continue
|
|
48
|
-
return { complete: false, forced: false, skip: false };
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Build the XML topic directive to inject into the system prompt.
|
|
52
|
-
* Renders <topic> with goal/behaviour/criteria, plus <accumulated_context>
|
|
53
|
-
* with completed Q&A pairs from earlier topics.
|
|
54
|
-
*/
|
|
55
|
-
export function buildTopicDirective(topic, topicIndex, totalTopics, completedQA, workspaceName) {
|
|
56
|
-
let xml = `
|
|
57
|
-
<topic id="${topic.id}" index="${topicIndex + 1}" of="${totalTopics}">
|
|
58
|
-
<goal>${topic.goal}</goal>
|
|
59
|
-
<behaviour>${topic.behaviour}</behaviour>
|
|
60
|
-
<criteria>${topic.criteria}</criteria>
|
|
61
|
-
</topic>`;
|
|
62
|
-
if (completedQA.length > 0) {
|
|
63
|
-
xml += '\n\n<accumulated_context>';
|
|
64
|
-
for (const qa of completedQA) {
|
|
65
|
-
xml += `\n <topic_qa id="${qa.topicId}">`;
|
|
66
|
-
xml += `\n <question>${qa.question}</question>`;
|
|
67
|
-
xml += `\n <answer>${qa.answer}</answer>`;
|
|
68
|
-
xml += '\n </topic_qa>';
|
|
69
|
-
}
|
|
70
|
-
xml += '\n</accumulated_context>';
|
|
71
|
-
}
|
|
72
|
-
return xml;
|
|
73
|
-
}
|
|
74
|
-
// ── Post-processing ─────────────────────────────────────────────────────────
|
|
75
|
-
const BANNED_PATTERNS = [
|
|
76
|
-
/\bsounds like\b/gi,
|
|
77
|
-
/\bit sounds like\b/gi,
|
|
78
|
-
/\bsounds\s+(?:ambitious|exciting|fascinating|impressive|intriguing|interesting|amazing|complex|like)\b/gi,
|
|
79
|
-
/\bintriguing\b/gi,
|
|
80
|
-
// Anti-paraphrase: strip "When you say X," and "You mentioned X," prefixes
|
|
81
|
-
/^when you (?:say|mention|talk about)\b[^.?!]{0,60}[,]\s*/i,
|
|
82
|
-
/^you mentioned\b[^.?!]{0,60}[,]\s*/i,
|
|
83
|
-
];
|
|
84
|
-
/**
|
|
85
|
-
* Strip banned patterns the LLM produces despite prompt instructions.
|
|
86
|
-
* Safety net — Gemini Flash at temp 0.3 still produces these ~15% of the time.
|
|
87
|
-
*/
|
|
88
|
-
export function sanitizeResponse(text) {
|
|
89
|
-
let cleaned = text;
|
|
90
|
-
for (const pattern of BANNED_PATTERNS) {
|
|
91
|
-
cleaned = cleaned.replace(pattern, '');
|
|
92
|
-
}
|
|
93
|
-
// Clean up double spaces and leading punctuation from removals
|
|
94
|
-
return cleaned.replace(/\s{2,}/g, ' ').replace(/^\s*[.,]\s*/, '').trim();
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Detect if a response is too similar to recent ones (refusal loop).
|
|
98
|
-
* Uses Jaccard similarity on word sets.
|
|
99
|
-
*/
|
|
100
|
-
export function isTooSimilar(newMsg, recentMsgs, threshold = 0.6) {
|
|
101
|
-
const newWords = new Set(newMsg.toLowerCase().split(/\s+/));
|
|
102
|
-
for (const prev of recentMsgs.slice(-2)) {
|
|
103
|
-
const prevWords = new Set(prev.toLowerCase().split(/\s+/));
|
|
104
|
-
const intersection = new Set([...newWords].filter((w) => prevWords.has(w)));
|
|
105
|
-
const union = new Set([...newWords, ...prevWords]);
|
|
106
|
-
if (union.size > 0 && intersection.size / union.size > threshold) {
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=conversation-engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-engine.js","sourceRoot":"","sources":["../../src/lib/conversation-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation types — state and signal types for coach-pattern conversations.
|
|
3
|
-
* WP-304: LLM owns content, CLI owns flow.
|
|
4
|
-
*
|
|
5
|
-
* Pattern: Deterministic Shell, Stochastic Core.
|
|
6
|
-
* - CLI defines topics with goal/behaviour/criteria (deterministic)
|
|
7
|
-
* - LLM generates conversation content and judges criteria (stochastic)
|
|
8
|
-
* - CLI evaluates with heuristic backup and decides when to advance
|
|
9
|
-
*/
|
|
10
|
-
/** A completed topic's question-answer pair, accumulated as context for later topics. */
|
|
11
|
-
export interface TopicQA {
|
|
12
|
-
topicId: string;
|
|
13
|
-
question: string;
|
|
14
|
-
answer: string;
|
|
15
|
-
}
|
|
16
|
-
/** Conversation state — the CLI's accumulated view of the conversation. */
|
|
17
|
-
export interface ConversationState {
|
|
18
|
-
/** All messages so far. */
|
|
19
|
-
messages: Array<{
|
|
20
|
-
role: 'user' | 'assistant';
|
|
21
|
-
content: string;
|
|
22
|
-
}>;
|
|
23
|
-
/** Number of user messages total. */
|
|
24
|
-
userMessageCount: number;
|
|
25
|
-
/** Total user words total. */
|
|
26
|
-
totalUserWords: number;
|
|
27
|
-
/** Exchange count per topic (coach pattern) or phase (legacy). */
|
|
28
|
-
topicExchanges: Record<string, number>;
|
|
29
|
-
/** @deprecated Alias for topicExchanges — used by legacy phase engine until Slice 3. */
|
|
30
|
-
phaseExchanges: Record<string, number>;
|
|
31
|
-
/** Which topics have been completed. */
|
|
32
|
-
completedTopics: Set<string>;
|
|
33
|
-
/** @deprecated Alias for completedTopics — used by legacy phase engine until Slice 3. */
|
|
34
|
-
completedPhases: Set<string>;
|
|
35
|
-
/** Current topic ID. */
|
|
36
|
-
currentTopicId: string;
|
|
37
|
-
/** @deprecated Alias for currentTopicId — used by legacy phase engine until Slice 3. */
|
|
38
|
-
currentPhaseId: string;
|
|
39
|
-
/** Completed topic Q&A pairs — accumulated context for later topics. */
|
|
40
|
-
completedQA: TopicQA[];
|
|
41
|
-
/** Heuristic signals detected from user messages. */
|
|
42
|
-
signals: ConversationSignals;
|
|
43
|
-
/** Count of consecutive refusals/non-answers. */
|
|
44
|
-
refusalStreak: number;
|
|
45
|
-
}
|
|
46
|
-
/** Signals detected from user messages — heuristic + LLM-reported. */
|
|
47
|
-
export interface ConversationSignals {
|
|
48
|
-
/** User described what they're building. */
|
|
49
|
-
mentionedProduct: boolean;
|
|
50
|
-
/** User described a problem, pain point, or challenge. */
|
|
51
|
-
mentionedChallenge: boolean;
|
|
52
|
-
/** User mentioned why they're trying Product Brain. */
|
|
53
|
-
mentionedWhyPB: boolean;
|
|
54
|
-
/** User gave at least one substantive answer (>= 15 words). */
|
|
55
|
-
hasSubstantiveAnswer: boolean;
|
|
56
|
-
/** Number of user messages with >= 8 words. */
|
|
57
|
-
substantiveMessageCount: number;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=conversation-phases.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-phases.d.ts","sourceRoot":"","sources":["../../src/lib/conversation-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yFAAyF;AACzF,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjE,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IAEvB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,wFAAwF;IACxF,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,wCAAwC;IACxC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,yFAAyF;IACzF,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE7B,wBAAwB;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,cAAc,EAAE,MAAM,CAAC;IAEvB,wEAAwE;IACxE,WAAW,EAAE,OAAO,EAAE,CAAC;IAEvB,qDAAqD;IACrD,OAAO,EAAE,mBAAmB,CAAC;IAE7B,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,gBAAgB,EAAE,OAAO,CAAC;IAE1B,0DAA0D;IAC1D,kBAAkB,EAAE,OAAO,CAAC;IAE5B,uDAAuD;IACvD,cAAc,EAAE,OAAO,CAAC;IAExB,+DAA+D;IAC/D,oBAAoB,EAAE,OAAO,CAAC;IAE9B,+CAA+C;IAC/C,uBAAuB,EAAE,MAAM,CAAC;CACjC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation types — state and signal types for coach-pattern conversations.
|
|
3
|
-
* WP-304: LLM owns content, CLI owns flow.
|
|
4
|
-
*
|
|
5
|
-
* Pattern: Deterministic Shell, Stochastic Core.
|
|
6
|
-
* - CLI defines topics with goal/behaviour/criteria (deterministic)
|
|
7
|
-
* - LLM generates conversation content and judges criteria (stochastic)
|
|
8
|
-
* - CLI evaluates with heuristic backup and decides when to advance
|
|
9
|
-
*/
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=conversation-phases.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-phases.js","sourceRoot":"","sources":["../../src/lib/conversation-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation signal detection — heuristic pattern matching on user text.
|
|
3
|
-
* WP-304: CLI-side signal detection as backup/validation for LLM-reported signals.
|
|
4
|
-
*
|
|
5
|
-
* These are intentionally loose. False positives advance the conversation
|
|
6
|
-
* (fine — user gave a relevant answer). False negatives mean one more turn
|
|
7
|
-
* in the phase (also fine — maxExchanges caps prevent loops).
|
|
8
|
-
*/
|
|
9
|
-
import type { ConversationSignals } from './conversation-phases.js';
|
|
10
|
-
/**
|
|
11
|
-
* Detect signals from user messages using regex heuristics.
|
|
12
|
-
* Returns accumulated signals across all user messages.
|
|
13
|
-
*
|
|
14
|
-
* Thresholds are intentionally strict — we'd rather ask one more question
|
|
15
|
-
* than advance on a vague answer. maxExchanges is the safety valve.
|
|
16
|
-
*/
|
|
17
|
-
export declare function detectSignals(messages: Array<{
|
|
18
|
-
role: string;
|
|
19
|
-
content: string;
|
|
20
|
-
}>): ConversationSignals;
|
|
21
|
-
/**
|
|
22
|
-
* Merge LLM-reported signals into heuristic signals.
|
|
23
|
-
* LLM signals are additive — once true, always true.
|
|
24
|
-
*/
|
|
25
|
-
export declare function mergeSignals(heuristic: ConversationSignals, llmSignals: {
|
|
26
|
-
describedProduct?: boolean;
|
|
27
|
-
describedProblem?: boolean;
|
|
28
|
-
answeredWhyPB?: boolean;
|
|
29
|
-
}): ConversationSignals;
|
|
30
|
-
//# sourceMappingURL=conversation-signals.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-signals.d.ts","sourceRoot":"","sources":["../../src/lib/conversation-signals.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA4BpE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,mBAAmB,CAgBrG;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9F,mBAAmB,CAOrB"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation signal detection — heuristic pattern matching on user text.
|
|
3
|
-
* WP-304: CLI-side signal detection as backup/validation for LLM-reported signals.
|
|
4
|
-
*
|
|
5
|
-
* These are intentionally loose. False positives advance the conversation
|
|
6
|
-
* (fine — user gave a relevant answer). False negatives mean one more turn
|
|
7
|
-
* in the phase (also fine — maxExchanges caps prevent loops).
|
|
8
|
-
*/
|
|
9
|
-
const PRODUCT_PATTERNS = [
|
|
10
|
-
/\b(?:building|making|creating|working on|developing)\b/i,
|
|
11
|
-
/\b(?:app|platform|tool|product|service|saas|api|system|software)\b/i,
|
|
12
|
-
];
|
|
13
|
-
const CHALLENGE_PATTERNS = [
|
|
14
|
-
/\b(?:hard|hardest|difficult|challeng|struggling?|pain|problem|frustrat|broken|mess)\b/i,
|
|
15
|
-
/\b(?:don'?t know|can'?t figure|losing track|forget|lost context|outdated|rot)\b/i,
|
|
16
|
-
/\b(?:hate|annoying|waste|slow|manual|tedious)\b/i,
|
|
17
|
-
];
|
|
18
|
-
const WHY_PB_PATTERNS = [
|
|
19
|
-
/\b(?:product brain|brain)\b/i,
|
|
20
|
-
/\b(?:context|memory|decisions?|knowledge|source of truth|ssot)\b/i,
|
|
21
|
-
/\b(?:ai|llm|claude|cursor|copilot|agent)\b.*\b(?:context|remember|forget|know)\b/i,
|
|
22
|
-
/\b(?:remember|forget|consistent|prompt)\b.*\b(?:ai|llm|agent|tool)\b/i,
|
|
23
|
-
// Broader: user describes the problem PB solves without naming PB
|
|
24
|
-
/\b(?:re-?explain|repeat myself|start from (?:zero|scratch)|re-?tell)\b/i,
|
|
25
|
-
/\b(?:docs?|documentation|md files?)\b.*\b(?:outdated|stale|rot|drift|wrong|maintain)\b/i,
|
|
26
|
-
/\b(?:cost|waste|spend)\b.*\b(?:tokens?|context|time)\b.*\b(?:re-?explain|repeat|maintain)\b/i,
|
|
27
|
-
];
|
|
28
|
-
function countWords(text) {
|
|
29
|
-
return text.trim().split(/\s+/).filter(Boolean).length;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Detect signals from user messages using regex heuristics.
|
|
33
|
-
* Returns accumulated signals across all user messages.
|
|
34
|
-
*
|
|
35
|
-
* Thresholds are intentionally strict — we'd rather ask one more question
|
|
36
|
-
* than advance on a vague answer. maxExchanges is the safety valve.
|
|
37
|
-
*/
|
|
38
|
-
export function detectSignals(messages) {
|
|
39
|
-
const userMessages = messages.filter((m) => m.role === 'user');
|
|
40
|
-
return {
|
|
41
|
-
// Product mention requires BOTH a pattern match AND enough words to be meaningful.
|
|
42
|
-
// "a cool app" matches the pattern but isn't substantive — need at least 10 words.
|
|
43
|
-
mentionedProduct: userMessages.some((m) => PRODUCT_PATTERNS.some((p) => p.test(m.content)) && countWords(m.content) >= 10),
|
|
44
|
-
mentionedChallenge: userMessages.some((m) => CHALLENGE_PATTERNS.some((p) => p.test(m.content))),
|
|
45
|
-
mentionedWhyPB: userMessages.some((m) => WHY_PB_PATTERNS.some((p) => p.test(m.content))),
|
|
46
|
-
// Substantive = enough detail to extract something meaningful from
|
|
47
|
-
hasSubstantiveAnswer: userMessages.some((m) => countWords(m.content) >= 15),
|
|
48
|
-
// Count messages with real content (not just "me" or "yes")
|
|
49
|
-
substantiveMessageCount: userMessages.filter((m) => countWords(m.content) >= 8).length,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Merge LLM-reported signals into heuristic signals.
|
|
54
|
-
* LLM signals are additive — once true, always true.
|
|
55
|
-
*/
|
|
56
|
-
export function mergeSignals(heuristic, llmSignals) {
|
|
57
|
-
return {
|
|
58
|
-
...heuristic,
|
|
59
|
-
mentionedProduct: heuristic.mentionedProduct || (llmSignals.describedProduct ?? false),
|
|
60
|
-
mentionedChallenge: heuristic.mentionedChallenge || (llmSignals.describedProblem ?? false),
|
|
61
|
-
mentionedWhyPB: heuristic.mentionedWhyPB || (llmSignals.answeredWhyPB ?? false),
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=conversation-signals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-signals.js","sourceRoot":"","sources":["../../src/lib/conversation-signals.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,gBAAgB,GAAG;IACvB,yDAAyD;IACzD,qEAAqE;CACtE,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,wFAAwF;IACxF,kFAAkF;IAClF,kDAAkD;CACnD,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,8BAA8B;IAC9B,mEAAmE;IACnE,mFAAmF;IACnF,uEAAuE;IACvE,kEAAkE;IAClE,yEAAyE;IACzE,yFAAyF;IACzF,8FAA8F;CAC/F,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,QAAkD;IAC9E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAE/D,OAAO;QACL,mFAAmF;QACnF,mFAAmF;QACnF,gBAAgB,EAAE,YAAY,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CACtF;QACD,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/F,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,mEAAmE;QACnE,oBAAoB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3E,4DAA4D;QAC5D,uBAAuB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;KACvF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,SAA8B,EAC9B,UAA+F;IAE/F,OAAO;QACL,GAAG,SAAS;QACZ,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,KAAK,CAAC;QACtF,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAC1F,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,KAAK,CAAC;KAChF,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Path B — Facilitator-pattern onboarding (2 exchanges max).
|
|
3
|
-
* WP-304: Shorter flow, silent extraction, auto-capture, governance proof.
|
|
4
|
-
*/
|
|
5
|
-
import { type OnboardingExtraction } from './onboarding-shared.js';
|
|
6
|
-
export declare function runOnboardingPathB(workspaceName: string): Promise<void>;
|
|
7
|
-
/** Merge two extractions — second takes precedence for scalar fields, arrays concatenate. */
|
|
8
|
-
export declare function mergeExtractions(first: OnboardingExtraction | null, second: OnboardingExtraction): OnboardingExtraction;
|
|
9
|
-
export declare function dedupe(arr: string[]): string[];
|
|
10
|
-
//# sourceMappingURL=onboarding-path-b.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding-path-b.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding-path-b.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAIL,KAAK,oBAAoB,EAG1B,MAAM,wBAAwB,CAAC;AAehC,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyK7E;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,MAAM,EAAE,oBAAoB,GAC3B,oBAAoB,CAStB;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAI9C"}
|