@compilr-dev/cli 0.7.3 → 0.7.4
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.
|
Binary file
|
|
@@ -16,6 +16,7 @@ import { sessionManagementTutorial } from './tutorials/projects/session-manageme
|
|
|
16
16
|
import { anchorsTutorial } from './tutorials/projects/anchors.js';
|
|
17
17
|
import { importProjectTutorial } from './tutorials/projects/import-project.js';
|
|
18
18
|
import { appModelTutorial } from './tutorials/projects/app-model.js';
|
|
19
|
+
import { interactiveFlowsTutorial } from './tutorials/projects/interactive-flows.js';
|
|
19
20
|
import { designTutorial } from './tutorials/planning/design.js';
|
|
20
21
|
import { backlogTutorial } from './tutorials/planning/backlog.js';
|
|
21
22
|
import { sketchTutorial } from './tutorials/planning/sketch.js';
|
|
@@ -69,6 +70,7 @@ export function buildTutorialRegistry(s) {
|
|
|
69
70
|
sessionManagementTutorial(s),
|
|
70
71
|
anchorsTutorial(s),
|
|
71
72
|
appModelTutorial(s),
|
|
73
|
+
interactiveFlowsTutorial(s),
|
|
72
74
|
],
|
|
73
75
|
},
|
|
74
76
|
// =========================================================================
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Flows Tutorial
|
|
3
|
+
*
|
|
4
|
+
* Explains the `build_interactive_flow` agent tool — when an agent uses it,
|
|
5
|
+
* what to expect when the modal opens, and how it differs from `/ask_user`.
|
|
6
|
+
* Desktop-only feature in Phase 1 (CLI degradation lands in Phase 3).
|
|
7
|
+
*/
|
|
8
|
+
import type { TutorialBuilder } from '../../tutorial-types.js';
|
|
9
|
+
export declare const interactiveFlowsTutorial: TutorialBuilder;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Flows Tutorial
|
|
3
|
+
*
|
|
4
|
+
* Explains the `build_interactive_flow` agent tool — when an agent uses it,
|
|
5
|
+
* what to expect when the modal opens, and how it differs from `/ask_user`.
|
|
6
|
+
* Desktop-only feature in Phase 1 (CLI degradation lands in Phase 3).
|
|
7
|
+
*/
|
|
8
|
+
export const interactiveFlowsTutorial = (s) => ({
|
|
9
|
+
id: 'interactive-flows',
|
|
10
|
+
title: 'Interactive Flows',
|
|
11
|
+
description: 'Agent-driven decision trees',
|
|
12
|
+
pages: [
|
|
13
|
+
// Page 1: What it is
|
|
14
|
+
{
|
|
15
|
+
title: 'What is an Interactive Flow?',
|
|
16
|
+
lines: [
|
|
17
|
+
'',
|
|
18
|
+
` Sometimes an agent needs to walk you through a ${s.primaryBold('branching decision')}`,
|
|
19
|
+
` — picking a database, choosing a stack, navigating a tradeoff.`,
|
|
20
|
+
'',
|
|
21
|
+
` Instead of asking 5 questions in a row, the agent can build a`,
|
|
22
|
+
` ${s.primary('navigable tree')} you step through with Back/Forward.`,
|
|
23
|
+
'',
|
|
24
|
+
` ${s.secondary('Each step shows up as a modal on the desktop app:')}`,
|
|
25
|
+
'',
|
|
26
|
+
` ${s.muted('•')} Single-choice questions ${s.muted('(pick one)')}`,
|
|
27
|
+
` ${s.muted('•')} Multi-select questions ${s.muted('(pick several)')}`,
|
|
28
|
+
` ${s.muted('•')} Free-text questions ${s.muted('(type your answer)')}`,
|
|
29
|
+
` ${s.muted('•')} Info screens ${s.muted('(read context, click Next)')}`,
|
|
30
|
+
` ${s.muted('•')} A summary at the end recapping your choices`,
|
|
31
|
+
'',
|
|
32
|
+
` ${s.warning('Desktop-only for now.')} CLI rendering arrives later — when the`,
|
|
33
|
+
` agent uses this tool from a CLI session, you'll see a degraded`,
|
|
34
|
+
` text-prompt fallback.`,
|
|
35
|
+
'',
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
// Page 2: When agents use it
|
|
39
|
+
{
|
|
40
|
+
title: 'When the Agent Uses This',
|
|
41
|
+
lines: [
|
|
42
|
+
'',
|
|
43
|
+
` Agents pick ${s.primaryBold('build_interactive_flow')} over plain ${s.primary('ask_user')} when:`,
|
|
44
|
+
'',
|
|
45
|
+
` ${s.primary('1.')} The decision has ${s.primaryBold('2+ branching considerations')} —`,
|
|
46
|
+
` "if you pick A, the next question changes"`,
|
|
47
|
+
'',
|
|
48
|
+
` ${s.primary('2.')} You'd benefit from ${s.primaryBold('exploring before committing')} —`,
|
|
49
|
+
` Back/Forward lets you revisit prior steps`,
|
|
50
|
+
'',
|
|
51
|
+
` ${s.primary('3.')} The reasoning ${s.primaryBold('matters as much as the answer')} —`,
|
|
52
|
+
` the agent gets back your full path through the tree, not`,
|
|
53
|
+
` just your final choice`,
|
|
54
|
+
'',
|
|
55
|
+
` ${s.secondary('Typical patterns:')}`,
|
|
56
|
+
'',
|
|
57
|
+
` ${s.muted('•')} Tech stack selection ${s.muted('(database type → vendor → details)')}`,
|
|
58
|
+
` ${s.muted('•')} Architecture trade-offs ${s.muted('(monolith vs microservices)')}`,
|
|
59
|
+
` ${s.muted('•')} Backlog item refinement ${s.muted('(complexity, dependencies, scope)')}`,
|
|
60
|
+
` ${s.muted('•')} Project type selection during ${s.primary('/design')}`,
|
|
61
|
+
'',
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
// Page 3: Navigation + result
|
|
65
|
+
{
|
|
66
|
+
title: 'What to Expect',
|
|
67
|
+
lines: [
|
|
68
|
+
'',
|
|
69
|
+
` ${s.secondary('In the modal:')}`,
|
|
70
|
+
'',
|
|
71
|
+
` ${s.primaryBold('Single-choice')} Click an option → auto-advance to next step`,
|
|
72
|
+
` ${s.primaryBold('Multi-select')} Tick boxes → ${s.primary('Next')} button to advance`,
|
|
73
|
+
` ${s.primaryBold('Free text')} Type → ${s.muted('Enter')} (single-line) or`,
|
|
74
|
+
` ${s.muted('Cmd/Ctrl+Enter')} (multi-line) to submit`,
|
|
75
|
+
` ${s.primaryBold('Summary')} Confirm your path, or ${s.primary('Back')} to revise`,
|
|
76
|
+
'',
|
|
77
|
+
` ${s.secondary('Cancel anytime:')}`,
|
|
78
|
+
'',
|
|
79
|
+
` ${s.muted('•')} ${s.primary('Esc')} key`,
|
|
80
|
+
` ${s.muted('•')} ${s.primary('X')} icon in the header`,
|
|
81
|
+
` ${s.muted('•')} Click outside the modal`,
|
|
82
|
+
'',
|
|
83
|
+
` Canceling sends the agent ${s.primaryBold('completed: false')} with your`,
|
|
84
|
+
` partial answers. The agent can resume the same flow or ask`,
|
|
85
|
+
` again with adjustments.`,
|
|
86
|
+
'',
|
|
87
|
+
` ${s.warning('TIP:')} The agent gets your full path back — including any`,
|
|
88
|
+
` nodes you backtracked through. That's intentional: the path is`,
|
|
89
|
+
` ${s.primaryBold('reasoning data')}, not just answer data.`,
|
|
90
|
+
'',
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@compilr-dev/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.4",
|
|
4
4
|
"description": "AI-powered coding assistant CLI using @compilr-dev/agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -55,12 +55,12 @@
|
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@anthropic-ai/sdk": "^0.74.0",
|
|
58
|
-
"@compilr-dev/agents": "^0.5.
|
|
58
|
+
"@compilr-dev/agents": "^0.5.9",
|
|
59
59
|
"@compilr-dev/agents-coding": "^1.0.4",
|
|
60
60
|
"@compilr-dev/editor-core": "^0.0.2",
|
|
61
61
|
"@compilr-dev/factory": "^0.1.30",
|
|
62
62
|
"@compilr-dev/logger": "^0.1.0",
|
|
63
|
-
"@compilr-dev/sdk": "^0.10.
|
|
63
|
+
"@compilr-dev/sdk": "^0.10.17",
|
|
64
64
|
"@compilr-dev/ui-core": "^0.0.1",
|
|
65
65
|
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
66
66
|
"ansi-escapes": "^7.3.0",
|