liteagents 2.5.2 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +76 -15
- package/README.md +58 -30
- package/docs/INSTALLATION_DEMO.md +1 -1
- package/docs/INSTALLATION_LOCATIONS.md +5 -5
- package/docs/INSTALLER_GUIDE.md +5 -5
- package/docs/KNOWLEDGE_BASE.md +5 -5
- package/docs/MIGRATION.md +1 -1
- package/docs/PASS_QUICK_START.md +1 -1
- package/docs/PRIVACY.md +1 -1
- package/docs/PUBLISHING.md +7 -7
- package/docs/RELEASE_NOTES_1.2.0.md +2 -2
- package/docs/SILENT_MODE_GUIDE.md +1 -1
- package/installer/cli.js +1 -1
- package/installer/installation-engine.js +82 -21
- package/installer/package-manager.js +34 -3
- package/package.json +7 -6
- package/packages/ampcode/AGENT.md +1 -0
- package/packages/ampcode/commands/friction/friction.js +19 -4
- package/packages/ampcode/commands/live-canvas/DESIGN_PRINCIPLES.md +2140 -0
- package/packages/ampcode/commands/live-canvas/README.md +273 -0
- package/packages/ampcode/commands/live-canvas/templates/.claude/settings.local.json +8 -0
- package/packages/ampcode/commands/live-canvas/templates/demo/post-variants.html +205 -0
- package/packages/ampcode/commands/live-canvas/templates/feedback-react/FeedbackOverlay.tsx +1299 -0
- package/packages/ampcode/commands/live-canvas/templates/feedback-react/format-utils.ts +283 -0
- package/packages/ampcode/commands/live-canvas/templates/feedback-react/index.ts +62 -0
- package/packages/ampcode/commands/live-canvas/templates/feedback-react/selector-utils.ts +423 -0
- package/packages/ampcode/commands/live-canvas/templates/feedback-react/types.ts +118 -0
- package/packages/ampcode/commands/live-canvas/templates/overlay-vanilla.js +477 -0
- package/packages/ampcode/commands/live-canvas.md +1104 -0
- package/packages/claude/CLAUDE.md +1 -0
- package/packages/claude/commands/friction/friction.js +19 -4
- package/packages/claude/plugins/live-canvas-marketplace/.claude-plugin/marketplace.json +14 -0
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/.claude-plugin/plugin.json +18 -0
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/README.md +89 -0
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/package-lock.json +1142 -0
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/package.json +17 -0
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/schema.json +37 -0
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/server.js +179 -0
- package/packages/claude/plugins/live-canvas-marketplace/setup.sh +61 -0
- package/packages/claude/skills/live-canvas/DESIGN_PRINCIPLES.md +2140 -0
- package/packages/claude/skills/live-canvas/INTEGRATION_NOTES.md +210 -0
- package/packages/claude/skills/live-canvas/README.md +273 -0
- package/packages/claude/skills/live-canvas/SKILL.md +1119 -0
- package/packages/claude/skills/live-canvas/templates/.claude/settings.local.json +8 -0
- package/packages/claude/skills/live-canvas/templates/demo/post-variants.html +205 -0
- package/packages/claude/skills/live-canvas/templates/feedback-react/FeedbackOverlay.tsx +1299 -0
- package/packages/claude/skills/live-canvas/templates/feedback-react/format-utils.ts +283 -0
- package/packages/claude/skills/live-canvas/templates/feedback-react/index.ts +62 -0
- package/packages/claude/skills/live-canvas/templates/feedback-react/selector-utils.ts +423 -0
- package/packages/claude/skills/live-canvas/templates/feedback-react/types.ts +118 -0
- package/packages/claude/skills/live-canvas/templates/overlay-vanilla.js +477 -0
- package/packages/claude/variants.json +2 -1
- package/packages/droid/AGENTS.md +1 -0
- package/packages/droid/commands/friction/friction.js +19 -4
- package/packages/droid/commands/live-canvas/DESIGN_PRINCIPLES.md +2140 -0
- package/packages/droid/commands/live-canvas/README.md +273 -0
- package/packages/droid/commands/live-canvas/templates/.claude/settings.local.json +8 -0
- package/packages/droid/commands/live-canvas/templates/demo/post-variants.html +205 -0
- package/packages/droid/commands/live-canvas/templates/feedback-react/FeedbackOverlay.tsx +1299 -0
- package/packages/droid/commands/live-canvas/templates/feedback-react/format-utils.ts +283 -0
- package/packages/droid/commands/live-canvas/templates/feedback-react/index.ts +62 -0
- package/packages/droid/commands/live-canvas/templates/feedback-react/selector-utils.ts +423 -0
- package/packages/droid/commands/live-canvas/templates/feedback-react/types.ts +118 -0
- package/packages/droid/commands/live-canvas/templates/overlay-vanilla.js +477 -0
- package/packages/droid/commands/live-canvas.md +1104 -0
- package/packages/opencode/AGENTS.md +1 -0
- package/packages/opencode/command/friction/friction.js +19 -4
- package/packages/opencode/command/live-canvas/DESIGN_PRINCIPLES.md +2140 -0
- package/packages/opencode/command/live-canvas/README.md +273 -0
- package/packages/opencode/command/live-canvas/templates/.claude/settings.local.json +8 -0
- package/packages/opencode/command/live-canvas/templates/demo/post-variants.html +205 -0
- package/packages/opencode/command/live-canvas/templates/feedback-react/FeedbackOverlay.tsx +1299 -0
- package/packages/opencode/command/live-canvas/templates/feedback-react/format-utils.ts +283 -0
- package/packages/opencode/command/live-canvas/templates/feedback-react/index.ts +62 -0
- package/packages/opencode/command/live-canvas/templates/feedback-react/selector-utils.ts +423 -0
- package/packages/opencode/command/live-canvas/templates/feedback-react/types.ts +118 -0
- package/packages/opencode/command/live-canvas/templates/overlay-vanilla.js +477 -0
- package/packages/opencode/command/live-canvas.md +1104 -0
- package/packages/opencode/opencode.jsonc +4 -0
- package/packages/subagentic-manual.md +18 -15
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Live Canvas — Post card demo</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root { color-scheme: light; }
|
|
8
|
+
body { margin: 0; font-family: -apple-system, system-ui, sans-serif; background: #f4f4f5; color: #18181b; }
|
|
9
|
+
header { padding: 24px 32px; border-bottom: 1px solid #e4e4e7; background: #fff; }
|
|
10
|
+
header h1 { margin: 0 0 4px; font-size: 20px; }
|
|
11
|
+
header p { margin: 0; color: #71717a; font-size: 13px; }
|
|
12
|
+
main { padding: 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 20px; max-width: 1400px; margin: 0 auto; }
|
|
13
|
+
.variant-wrap { background: #fff; border: 1px solid #e4e4e7; border-radius: 12px; padding: 16px; }
|
|
14
|
+
.variant-wrap h3 { margin: 0 0 4px; font-size: 13px; color: #71717a; text-transform: uppercase; letter-spacing: .5px; }
|
|
15
|
+
.variant-wrap .why { margin: 0 0 14px; font-size: 12px; color: #a1a1aa; }
|
|
16
|
+
.post { padding: 14px; border-radius: 10px; }
|
|
17
|
+
|
|
18
|
+
/* ============ Variant A — classic Twitter-ish, icon row ============ */
|
|
19
|
+
[data-variant="A"] .post { background: #fff; border: 1px solid #e4e4e7; }
|
|
20
|
+
.va-head { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
|
|
21
|
+
.va-avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #6366f1, #d946ef); }
|
|
22
|
+
.va-name { font-weight: 700; font-size: 14px; }
|
|
23
|
+
.va-handle { color: #71717a; font-size: 13px; }
|
|
24
|
+
.va-body { font-size: 15px; line-height: 1.45; margin: 0 0 12px; }
|
|
25
|
+
.va-actions { display: flex; justify-content: space-between; color: #71717a; font-size: 13px; }
|
|
26
|
+
.va-actions button { background: transparent; border: 0; color: inherit; cursor: pointer; padding: 4px 8px; display: flex; gap: 6px; align-items: center; border-radius: 999px; font-size: 13px; }
|
|
27
|
+
.va-actions button:hover { background: #f4f4f5; }
|
|
28
|
+
|
|
29
|
+
/* ============ Variant B — card with big engagement bar on top ============ */
|
|
30
|
+
[data-variant="B"] .post { background: #fafafa; border: 1px solid #e4e4e7; padding: 0; overflow: hidden; }
|
|
31
|
+
.vb-strip { background: #18181b; color: #fff; padding: 10px 14px; display: flex; gap: 18px; font-size: 12px; font-weight: 600; }
|
|
32
|
+
.vb-strip .vb-metric { display: flex; gap: 6px; align-items: center; }
|
|
33
|
+
.vb-strip .vb-metric b { color: #d946ef; }
|
|
34
|
+
.vb-body { padding: 14px; }
|
|
35
|
+
.vb-text { font-size: 15px; line-height: 1.5; margin: 8px 0 12px; }
|
|
36
|
+
.vb-author { font-size: 13px; color: #71717a; }
|
|
37
|
+
.vb-foot { display: flex; gap: 8px; padding: 10px 14px; border-top: 1px solid #e4e4e7; }
|
|
38
|
+
.vb-foot button { flex: 1; background: #fff; border: 1px solid #e4e4e7; padding: 8px; border-radius: 6px; font-size: 13px; cursor: pointer; }
|
|
39
|
+
.vb-foot button:hover { background: #f4f4f5; }
|
|
40
|
+
.vb-foot button[data-testid="reply-b"] { background: #2563eb; color: #fff; border-color: #1d4ed8; }
|
|
41
|
+
.vb-foot button[data-testid="reply-b"]:hover { background: #1d4ed8; }
|
|
42
|
+
|
|
43
|
+
/* ============ Variant C — compact / list style, data-dense ============ */
|
|
44
|
+
[data-variant="C"] .post { background: #fff; border: 1px solid #e4e4e7; padding: 10px 12px; font-size: 13px; }
|
|
45
|
+
.vc-row { display: flex; gap: 10px; align-items: flex-start; }
|
|
46
|
+
.vc-avatar { width: 28px; height: 28px; border-radius: 50%; background: #27272a; flex-shrink: 0; }
|
|
47
|
+
.vc-main { flex: 1; min-width: 0; }
|
|
48
|
+
.vc-meta { color: #71717a; font-size: 12px; }
|
|
49
|
+
.vc-text { margin: 2px 0 6px; line-height: 1.4; }
|
|
50
|
+
.vc-metrics { display: flex; gap: 12px; font-size: 12px; color: #52525b; }
|
|
51
|
+
.vc-metrics span { cursor: pointer; }
|
|
52
|
+
.vc-metrics span:hover { color: #18181b; }
|
|
53
|
+
|
|
54
|
+
/* ============ Variant D — spacious / premium feel, big type ============ */
|
|
55
|
+
[data-variant="D"] .post { background: #fff; border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 10px 30px rgba(0,0,0,.04); padding: 24px; border-radius: 14px; }
|
|
56
|
+
.vd-author { font-size: 12px; color: #71717a; letter-spacing: .5px; text-transform: uppercase; margin-bottom: 8px; }
|
|
57
|
+
.vd-text { font-size: 18px; line-height: 1.55; font-weight: 500; margin: 0 0 20px; color: #18181b; }
|
|
58
|
+
.vd-divider { height: 1px; background: #e4e4e7; margin-bottom: 16px; }
|
|
59
|
+
.vd-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
|
|
60
|
+
.vd-metric { text-align: center; }
|
|
61
|
+
.vd-metric b { display: block; font-size: 20px; font-weight: 700; }
|
|
62
|
+
.vd-metric span { font-size: 11px; color: #71717a; text-transform: uppercase; letter-spacing: .5px; }
|
|
63
|
+
|
|
64
|
+
/* ============ Variant E — playful / colorful, chips for actions ============ */
|
|
65
|
+
[data-variant="E"] .post { background: linear-gradient(135deg, #fdf4ff, #eff6ff); border: 2px solid #fff; padding: 18px; border-radius: 16px; }
|
|
66
|
+
.ve-head { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; }
|
|
67
|
+
.ve-avatar { width: 44px; height: 44px; border-radius: 14px; background: linear-gradient(135deg, #f59e0b, #ef4444); }
|
|
68
|
+
.ve-name { font-weight: 800; font-size: 15px; }
|
|
69
|
+
.ve-text { font-size: 15px; line-height: 1.5; margin: 0 0 14px; }
|
|
70
|
+
.ve-chips { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
71
|
+
.ve-chip { background: #fff; border: 0; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.06); display: flex; gap: 6px; align-items: center; }
|
|
72
|
+
.ve-chip[data-kind="like"] { color: #ef4444; }
|
|
73
|
+
.ve-chip[data-kind="retweet"] { color: #22c55e; }
|
|
74
|
+
.ve-chip[data-kind="reply"] { color: #3b82f6; }
|
|
75
|
+
</style>
|
|
76
|
+
</head>
|
|
77
|
+
<body>
|
|
78
|
+
|
|
79
|
+
<header>
|
|
80
|
+
<h1>Live Canvas — Post card demo</h1>
|
|
81
|
+
<p>5 variations of a social post (likes, retweets, comments). Click <b>Add Feedback</b> bottom-right → click any element → leave a comment. Right-click the pill to submit.</p>
|
|
82
|
+
</header>
|
|
83
|
+
|
|
84
|
+
<main>
|
|
85
|
+
|
|
86
|
+
<!-- ============ Variant A ============ -->
|
|
87
|
+
<section class="variant-wrap" data-variant="A">
|
|
88
|
+
<h3>Variant A</h3>
|
|
89
|
+
<p class="why">Classic layout — header row, body, actions in a row of icons</p>
|
|
90
|
+
<div>
|
|
91
|
+
<article class="post">
|
|
92
|
+
<div class="va-head">
|
|
93
|
+
<div class="va-avatar"></div>
|
|
94
|
+
<div>
|
|
95
|
+
<div class="va-name">Ada Lovelace</div>
|
|
96
|
+
<div class="va-handle">@ada · 2h</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<p class="va-body">Shipped a draft of the analytical engine today. Feedback welcome — especially on the punch-card UX.</p>
|
|
100
|
+
<div class="va-actions">
|
|
101
|
+
<button data-testid="reply-a">💬 <span>48</span></button>
|
|
102
|
+
<button data-testid="retweet-a">🔁 <span>132</span></button>
|
|
103
|
+
<button data-testid="like-a">❤️ <span>1.2k</span></button>
|
|
104
|
+
<button data-testid="share-a">↗️</button>
|
|
105
|
+
</div>
|
|
106
|
+
</article>
|
|
107
|
+
</div>
|
|
108
|
+
</section>
|
|
109
|
+
|
|
110
|
+
<!-- ============ Variant B ============ -->
|
|
111
|
+
<section class="variant-wrap" data-variant="B">
|
|
112
|
+
<h3>Variant B</h3>
|
|
113
|
+
<p class="why">Metrics strip on top — data-forward, actions as buttons below</p>
|
|
114
|
+
<div>
|
|
115
|
+
<article class="post">
|
|
116
|
+
<div class="vb-strip">
|
|
117
|
+
<div class="vb-metric">❤️ <b>1,204</b> likes</div>
|
|
118
|
+
<div class="vb-metric">🔁 <b>132</b> retweets</div>
|
|
119
|
+
<div class="vb-metric">💬 <b>48</b> replies</div>
|
|
120
|
+
</div>
|
|
121
|
+
<div class="vb-body">
|
|
122
|
+
<div class="vb-author">Ada Lovelace · @ada · 2h</div>
|
|
123
|
+
<p class="vb-text">Shipped a draft of the analytical engine today. Feedback welcome — especially on the punch-card UX.</p>
|
|
124
|
+
</div>
|
|
125
|
+
<div class="vb-foot">
|
|
126
|
+
<button data-testid="reply-b">Reply</button>
|
|
127
|
+
<button data-testid="retweet-b">Retweet</button>
|
|
128
|
+
<button data-testid="like-b">Like</button>
|
|
129
|
+
</div>
|
|
130
|
+
</article>
|
|
131
|
+
</div>
|
|
132
|
+
</section>
|
|
133
|
+
|
|
134
|
+
<!-- ============ Variant C ============ -->
|
|
135
|
+
<section class="variant-wrap" data-variant="C">
|
|
136
|
+
<h3>Variant C</h3>
|
|
137
|
+
<p class="why">Compact / list-style — maximum density, small avatar, inline metrics</p>
|
|
138
|
+
<div>
|
|
139
|
+
<article class="post">
|
|
140
|
+
<div class="vc-row">
|
|
141
|
+
<div class="vc-avatar"></div>
|
|
142
|
+
<div class="vc-main">
|
|
143
|
+
<div class="vc-meta"><b style="color:#18181b">Ada Lovelace</b> · @ada · 2h</div>
|
|
144
|
+
<div class="vc-text">Shipped a draft of the analytical engine today. Feedback welcome — especially on the punch-card UX.</div>
|
|
145
|
+
<div class="vc-metrics">
|
|
146
|
+
<span data-testid="reply-c">💬 48</span>
|
|
147
|
+
<span data-testid="retweet-c">🔁 132</span>
|
|
148
|
+
<span data-testid="like-c">❤️ 1.2k</span>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</article>
|
|
153
|
+
</div>
|
|
154
|
+
</section>
|
|
155
|
+
|
|
156
|
+
<!-- ============ Variant D ============ -->
|
|
157
|
+
<section class="variant-wrap" data-variant="D">
|
|
158
|
+
<h3>Variant D</h3>
|
|
159
|
+
<p class="why">Spacious / premium — big body type, metrics as a stat block</p>
|
|
160
|
+
<div>
|
|
161
|
+
<article class="post">
|
|
162
|
+
<div class="vd-author">Ada Lovelace · 2 hours ago</div>
|
|
163
|
+
<p class="vd-text">Shipped a draft of the analytical engine today. Feedback welcome — especially on the punch-card UX.</p>
|
|
164
|
+
<div class="vd-divider"></div>
|
|
165
|
+
<div class="vd-metrics">
|
|
166
|
+
<div class="vd-metric" data-testid="likes-d"><b>1,204</b><span>Likes</span></div>
|
|
167
|
+
<div class="vd-metric" data-testid="retweets-d"><b>132</b><span>Retweets</span></div>
|
|
168
|
+
<div class="vd-metric" data-testid="replies-d"><b>48</b><span>Replies</span></div>
|
|
169
|
+
</div>
|
|
170
|
+
</article>
|
|
171
|
+
</div>
|
|
172
|
+
</section>
|
|
173
|
+
|
|
174
|
+
<!-- ============ Variant E ============ -->
|
|
175
|
+
<section class="variant-wrap" data-variant="E">
|
|
176
|
+
<h3>Variant E</h3>
|
|
177
|
+
<p class="why">Expressive / playful — rounded avatar, gradient bg, colored action chips</p>
|
|
178
|
+
<div>
|
|
179
|
+
<article class="post">
|
|
180
|
+
<div class="ve-head">
|
|
181
|
+
<div class="ve-avatar"></div>
|
|
182
|
+
<div class="ve-name">Ada Lovelace <span style="font-weight:400;color:#71717a">· 2h</span></div>
|
|
183
|
+
</div>
|
|
184
|
+
<p class="ve-text">Shipped a draft of the analytical engine today. Feedback welcome — especially on the punch-card UX.</p>
|
|
185
|
+
<div class="ve-chips">
|
|
186
|
+
<button class="ve-chip" data-kind="like" data-testid="like-e">❤️ 1.2k</button>
|
|
187
|
+
<button class="ve-chip" data-kind="retweet" data-testid="retweet-e">🔁 132</button>
|
|
188
|
+
<button class="ve-chip" data-kind="reply" data-testid="reply-e">💬 48</button>
|
|
189
|
+
</div>
|
|
190
|
+
</article>
|
|
191
|
+
</div>
|
|
192
|
+
</section>
|
|
193
|
+
|
|
194
|
+
</main>
|
|
195
|
+
|
|
196
|
+
<!-- Overlay (relative path works with file://) -->
|
|
197
|
+
<script src="../overlay-vanilla.js"></script>
|
|
198
|
+
<script>
|
|
199
|
+
LiveCanvas.init({
|
|
200
|
+
target: 'PostCard',
|
|
201
|
+
channelUrl: 'http://localhost:8788',
|
|
202
|
+
});
|
|
203
|
+
</script>
|
|
204
|
+
</body>
|
|
205
|
+
</html>
|