dme-agent 7.4.2 → 9.69.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/README.md +24 -4
- package/assets/agent/AGENTS.md +365 -50
- package/assets/agent/DME-Agent-v7.4-SYSTEM.md +29 -98
- package/assets/agent/DME-Agent-v9.69-SYSTEM.md +208 -0
- package/assets/agent/PROMPT-COMPACT.md +21 -9
- package/assets/agent/dme-v9.69.md +43 -0
- package/assets/manifesto/DME-Agent-v9.69.md +514 -0
- package/assets/references/icon-doctrine.md +122 -0
- package/assets/references/motion-bible.md +262 -0
- package/assets/references/palette-intake.md +159 -0
- package/assets/skills/dme-app-shell/SKILL.md +19 -0
- package/assets/skills/dme-critique/SKILL.md +105 -6
- package/assets/skills/dme-dashboard/SKILL.md +108 -35
- package/assets/skills/dme-design/SKILL.md +138 -11
- package/assets/skills/dme-icons/SKILL.md +21 -0
- package/assets/skills/dme-landing/SKILL.md +98 -23
- package/assets/skills/dme-motion/SKILL.md +19 -0
- package/assets/skills/dme-research/SKILL.md +134 -6
- package/assets/skills/dme-shadcn/SKILL.md +128 -6
- package/assets/skills/dme-ux/SKILL.md +110 -27
- package/assets/skills/dme-welcome/SKILL.md +20 -0
- package/bin/dme.mjs +31 -14
- package/package.json +7 -3
- package/src/install.mjs +101 -57
- package/src/postinstall-hint.mjs +2 -2
- package/src/ui.mjs +3 -3
|
@@ -1,14 +1,136 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dme-shadcn
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
Triggers: /dme-shadcn,
|
|
4
|
+
DME 9.69 shadcn-first composition skill. Install and compose primitives;
|
|
5
|
+
never reinvent Button/Input/Dialog/Table/Sidebar. Triggers: /dme-shadcn,
|
|
6
|
+
shadcn, compose UI, install components, don't reinvent primitives, ui atoms.
|
|
6
7
|
---
|
|
7
8
|
|
|
8
|
-
# DME shadcn
|
|
9
|
+
# DME shadcn 9.69 — Compose, Don't Invent
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
Law: **if shadcn has it, you use it.** You are a composer, not a component factory.
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
## When this skill owns the room
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
- Scaffolding any product UI, dashboard, landing form, dialog flow, table, sidebar
|
|
16
|
+
- He says “use shadcn”, “don’t hand-roll”, “install components”
|
|
17
|
+
- You feel the urge to write a custom Button or Modal from scratch → stop
|
|
18
|
+
|
|
19
|
+
## Install discipline
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx shadcn@latest add button input label textarea select checkbox radio-group
|
|
23
|
+
npx shadcn@latest add dialog sheet drawer popover dropdown-menu
|
|
24
|
+
npx shadcn@latest add table tabs badge separator skeleton sonner tooltip
|
|
25
|
+
npx shadcn@latest add card form accordion progress pagination
|
|
26
|
+
npx shadcn@latest add sidebar command scroll-area avatar switch
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Add only what the surface needs. Prefer one `add` batch over drive-by custom CSS atoms.
|
|
30
|
+
|
|
31
|
+
## Primitive map (default to these)
|
|
32
|
+
|
|
33
|
+
| Need | Use |
|
|
34
|
+
|------|-----|
|
|
35
|
+
| Actions | `Button` variants: default, secondary, outline, ghost, destructive |
|
|
36
|
+
| Text | `Input` + `Label` · `Textarea` · `InputOTP` if needed |
|
|
37
|
+
| Choice | `Select` · `Checkbox` · `RadioGroup` · `Switch` |
|
|
38
|
+
| Overlay | `Dialog` (decision) · `Sheet` (detail/side) · `Drawer` (mobile) · `Popover` |
|
|
39
|
+
| Menus | `DropdownMenu` · `ContextMenu` · `Command` (palette) |
|
|
40
|
+
| Data | `Table` + `Pagination` · never fake tables with div grids for tabular data |
|
|
41
|
+
| Chrome | `Sidebar` · `Tabs` · `Breadcrumb` · `Separator` · `ScrollArea` |
|
|
42
|
+
| Feedback | `Sonner` toasts · `Progress` · `Skeleton` · `Badge` · `Alert` |
|
|
43
|
+
| Structure | `Card` only when entity/KPI/plan/media — not for every paragraph |
|
|
44
|
+
| Forms | `Form` (RHF + zod) when validation matters |
|
|
45
|
+
|
|
46
|
+
## Compose patterns
|
|
47
|
+
|
|
48
|
+
### Work surface (dashboard)
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
SidebarProvider
|
|
52
|
+
Sidebar
|
|
53
|
+
SidebarInset
|
|
54
|
+
header: search | filters | Button(CTA)
|
|
55
|
+
metric strip: plain numbers (not Card essays)
|
|
56
|
+
Table | list (divide-y)
|
|
57
|
+
Sheet | Dialog for detail/create
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Decision modal
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Dialog
|
|
64
|
+
DialogHeader (title + 1 line description)
|
|
65
|
+
body ≤ 2–3 lines + fields
|
|
66
|
+
DialogFooter: outline cancel + primary verb
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Detail without route change
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
Sheet side="right"
|
|
73
|
+
identity header
|
|
74
|
+
dl / Table / Tabs
|
|
75
|
+
sticky footer actions
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Empty
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
short title
|
|
82
|
+
one helper line
|
|
83
|
+
one Button CTA
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
No illustration spam unless brand requires it.
|
|
87
|
+
|
|
88
|
+
## Styling rules (peace / 9.69)
|
|
89
|
+
|
|
90
|
+
- Extend via `className` + CVA variants — don’t fork the primitive file unless token-level
|
|
91
|
+
- Radius ≤ 8px; keep shadcn radius tokens consistent with zinc peace palette
|
|
92
|
+
- Prefer `variant` and `size` over one-off colored divs
|
|
93
|
+
- Dark: bg `#09090b`, raise `#18181b`; Light: white/zinc-50 peace
|
|
94
|
+
- Accent sparingly on primary Button / key Badge — not every border
|
|
95
|
+
|
|
96
|
+
## Anti-patterns (instant fail)
|
|
97
|
+
|
|
98
|
+
| Fail | Fix |
|
|
99
|
+
|------|-----|
|
|
100
|
+
| Custom `<button className="...">` for primary actions | `Button` |
|
|
101
|
+
| Hand-rolled modal with fixed overlay | `Dialog` / `Sheet` |
|
|
102
|
+
| Div soup “table” | `Table` |
|
|
103
|
+
| Card wrapping every sentence | list / `Separator` / bare layout |
|
|
104
|
+
| Rebuilding toast system | `Sonner` |
|
|
105
|
+
| Custom sidebar from scratch | `Sidebar` primitives |
|
|
106
|
+
| Icon+title+paragraph feature grid as “design system” | not a system — delete |
|
|
107
|
+
|
|
108
|
+
## Accessibility (ships with shadcn — keep it)
|
|
109
|
+
|
|
110
|
+
- Don’t strip `Dialog` focus trap or `Label` association
|
|
111
|
+
- Icon-only `Button` → `aria-label` or `sr-only` text
|
|
112
|
+
- Touch targets ≥ 44px on mobile (size default / padding)
|
|
113
|
+
- Focus rings visible — never `outline-none` without replacement
|
|
114
|
+
|
|
115
|
+
## Motion pairing
|
|
116
|
+
|
|
117
|
+
Primitives stay dumb; motion wraps them:
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
<motion.div {...fadeUp}>
|
|
121
|
+
<Card>...</Card>
|
|
122
|
+
</motion.div>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Don’t animate in a way that breaks Dialog/Sheet exit. See `/dme-motion`.
|
|
126
|
+
|
|
127
|
+
## Checklist
|
|
128
|
+
|
|
129
|
+
- [ ] Listed needed primitives before coding
|
|
130
|
+
- [ ] Installed via shadcn CLI (or confirmed present)
|
|
131
|
+
- [ ] Zero hand-rolled atoms that exist upstream
|
|
132
|
+
- [ ] Cards lean; tables for tabular data
|
|
133
|
+
- [ ] Forms labeled; errors human
|
|
134
|
+
- [ ] Composed shell matches platform (web vs app)
|
|
135
|
+
|
|
136
|
+
**Compose. Don’t invent.**
|
|
@@ -1,53 +1,136 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dme-ux
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
microcopy, onboarding,
|
|
4
|
+
DME 9.69 human UX for non-developers: addiction via ease not dark patterns,
|
|
5
|
+
microcopy caps, clear verbs, complete states. Triggers: /dme-ux, UX writing,
|
|
6
|
+
microcopy, empty state, onboarding UX, usability, human UI, dark patterns.
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# DME UX —
|
|
9
|
+
# DME UX 9.69 — Ease, Not Traps
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Audience default: **humans who don’t code**. They scan. They fear mistakes. Next step must be obvious.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
## Goal
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Make the product **habit-forming through ease**: fast success, clear recovery, low shame.
|
|
16
|
+
**Never** through dark patterns (forced continuity, hidden costs, fake urgency, trick checkboxes).
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
2. Immediate feedback (<150ms state)
|
|
19
|
-
3. Prevent errors; confirm destructive
|
|
20
|
-
4. Easy exit / undo
|
|
21
|
-
5. Progressive disclosure
|
|
22
|
-
6. Consistent patterns
|
|
23
|
-
7. A11y: contrast, focus, 44px targets, labeled inputs
|
|
24
|
-
8. Button = real verb
|
|
25
|
-
9. Full states: empty · loading · partial · success · error · offline
|
|
26
|
-
10. First-minute magic: one valuable action
|
|
18
|
+
## Core loop (ethical stickiness)
|
|
27
19
|
|
|
28
|
-
|
|
20
|
+
1. **One obvious primary action** per view
|
|
21
|
+
2. **Time-to-first-success** as short as honest
|
|
22
|
+
3. **Forgiving errors** — say what happened + how to continue
|
|
23
|
+
4. **Memory** — remember filters, last place, drafts
|
|
24
|
+
5. **Feedback** — every action gets a visible result (toast, row update, progress)
|
|
25
|
+
|
|
26
|
+
If they return, it’s because work was easier — not because leave was hard.
|
|
27
|
+
|
|
28
|
+
## Microcopy caps (hard)
|
|
29
29
|
|
|
30
30
|
| Element | Max |
|
|
31
|
-
|
|
31
|
+
|---------|-----|
|
|
32
32
|
| Field label | 3 words |
|
|
33
33
|
| Helper | 1 line |
|
|
34
34
|
| Card body | 1–2 lines |
|
|
35
35
|
| Toast | 1 line |
|
|
36
|
-
|
|
|
36
|
+
| Modal body | 2–3 lines |
|
|
37
37
|
| Hero lead | 1 sentence |
|
|
38
|
+
| Empty title | 3–6 words |
|
|
39
|
+
| Error | 1–2 lines + action |
|
|
40
|
+
|
|
41
|
+
### Buttons = verbs
|
|
42
|
+
|
|
43
|
+
`Salvar` · `Criar pedido` · `Enviar` · `Aprovar` · `Tentar de novo`
|
|
44
|
+
|
|
45
|
+
Not: `OK` · `Submit` · `Click here` · `Explore`
|
|
46
|
+
|
|
47
|
+
### Errors
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Não deu para salvar.
|
|
51
|
+
Verifique a conexão e tente de novo.
|
|
52
|
+
[ Tentar de novo ]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Never stack traces, never blame, never “unexpected error” alone.
|
|
56
|
+
|
|
57
|
+
## States (every surface)
|
|
58
|
+
|
|
59
|
+
| State | Content |
|
|
60
|
+
|-------|---------|
|
|
61
|
+
| Empty | title + one line + one CTA |
|
|
62
|
+
| Loading | skeleton geometry of result |
|
|
63
|
+
| Success | toast or inline confirm, 1 line |
|
|
64
|
+
| Error | cause + recovery |
|
|
65
|
+
| Offline | honest status + safe actions only |
|
|
66
|
+
|
|
67
|
+
## Progressive disclosure
|
|
38
68
|
|
|
39
|
-
|
|
69
|
+
- Defaults cover 80%
|
|
70
|
+
- “Mais opções” / advanced filters collapsed
|
|
71
|
+
- Dangerous stuff: Dialog confirm with consequence in plain language
|
|
40
72
|
|
|
41
|
-
|
|
73
|
+
## Onboarding (UX lens)
|
|
74
|
+
|
|
75
|
+
Value → account → **one** essential setup → first success.
|
|
76
|
+
|
|
77
|
+
No 12-tooltip product tours. For motion/craft detail → `/dme-welcome`.
|
|
42
78
|
|
|
43
79
|
## Forms
|
|
44
80
|
|
|
45
|
-
|
|
81
|
+
- Labels outside fields (visible)
|
|
82
|
+
- Placeholders are examples, not labels
|
|
83
|
+
- Inline validation after blur or submit — not while first keystroke
|
|
84
|
+
- Password managers / autocomplete respected
|
|
85
|
+
- Required: mark few; don’t asterisk everything
|
|
86
|
+
|
|
87
|
+
## Navigation & wayfinding
|
|
88
|
+
|
|
89
|
+
- Current location always clear
|
|
90
|
+
- Destructive far from primary when possible
|
|
91
|
+
- Back restores context (scroll, filters)
|
|
92
|
+
|
|
93
|
+
## Addiction via ease (allowed)
|
|
94
|
+
|
|
95
|
+
- Keyboard shortcuts for power users (discoverable)
|
|
96
|
+
- Optimistic UI when safe
|
|
97
|
+
- Smart defaults
|
|
98
|
+
- Undo instead of scary confirms when reversible
|
|
99
|
+
- Fast search (`Command`)
|
|
100
|
+
|
|
101
|
+
## Dark patterns (banned)
|
|
102
|
+
|
|
103
|
+
| Pattern | Why banned |
|
|
104
|
+
|---------|------------|
|
|
105
|
+
| Confirmshaming (“No, I hate saving time”) | contempt |
|
|
106
|
+
| Hidden unsubscribe / cancel | trap |
|
|
107
|
+
| Fake countdown scarcity | lie |
|
|
108
|
+
| Prechecked marketing consent | coercion |
|
|
109
|
+
| Infinite guilt badges | anxiety ≠ retention |
|
|
110
|
+
| Roach motel (easy in, hard out) | hostility |
|
|
111
|
+
|
|
112
|
+
## Language
|
|
113
|
+
|
|
114
|
+
- Human language; no API field names in UI (`order_id` → `Nº do pedido`)
|
|
115
|
+
- Locale-aware dates/numbers when product requires
|
|
116
|
+
- Banned AI fluff: seamless, next-gen, powerful, unlock, supercharge, elevate, journey, empower…
|
|
117
|
+
|
|
118
|
+
## a11y floor
|
|
46
119
|
|
|
47
|
-
|
|
120
|
+
- Contrast AA
|
|
121
|
+
- Focus visible
|
|
122
|
+
- ≥44px targets mobile
|
|
123
|
+
- Labels on inputs
|
|
124
|
+
- Don’t rely on color alone for status
|
|
48
125
|
|
|
49
|
-
|
|
126
|
+
## Checklist
|
|
50
127
|
|
|
51
|
-
|
|
128
|
+
- [ ] Primary action obvious
|
|
129
|
+
- [ ] Copy under caps
|
|
130
|
+
- [ ] Verbs on buttons
|
|
131
|
+
- [ ] Empty/error/success real
|
|
132
|
+
- [ ] No dark patterns
|
|
133
|
+
- [ ] Non-dev language
|
|
134
|
+
- [ ] First success path short
|
|
52
135
|
|
|
53
|
-
|
|
136
|
+
**Be easy to love. Never hard to leave for the wrong reasons.**
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dme-welcome
|
|
3
|
+
description: >
|
|
4
|
+
DME 9.69 onboarding / first-run welcome. Value then one setup then first win.
|
|
5
|
+
Triggers: /dme-welcome, onboarding, first-run, empty state setup, welcome flow.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# DME Welcome 9.69
|
|
9
|
+
|
|
10
|
+
1. Flow: **value → account → one essential setup → first success**
|
|
11
|
+
2. ≤3 visible steps · thin progress · skip always available
|
|
12
|
+
3. Motion: functional step crossfade 180–200ms
|
|
13
|
+
4. Icons: onboarding strategy (1–3 glyphs) — never 12-tooltip tours
|
|
14
|
+
5. After: empty state = short title + one line + one CTA
|
|
15
|
+
6. Copy caps: step title short · body ≤2 lines · buttons = real verbs
|
|
16
|
+
7. shadcn: Dialog/Sheet or full page · Progress · Button · Input
|
|
17
|
+
|
|
18
|
+
Banned: guided product tours with tooltip chains, feature-card spam on step 1.
|
|
19
|
+
|
|
20
|
+
Deliver: step list → copy → motion → implement → subtract.
|
package/bin/dme.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* DME Agent CLI — navigable TUI · detect-only install · strong AGENTS.md
|
|
3
|
+
* DME Agent CLI 9.69 — navigable TUI · detect-only install · strong AGENTS.md
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import fs from "node:fs";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
9
|
import { asciiLogo, c, fail, info, hr, showCursor } from "../src/ui.mjs";
|
|
10
|
-
import { installDme, doctor, uninstall, scan } from "../src/install.mjs";
|
|
10
|
+
import { installDme, doctor, uninstall, scan, SKILL_NAMES } from "../src/install.mjs";
|
|
11
11
|
import { getTargets } from "../src/targets.mjs";
|
|
12
12
|
import { formatScanReport, getDetectedTargets } from "../src/detect.mjs";
|
|
13
13
|
import { runMainTui, printScanTable } from "../src/tui.mjs";
|
|
@@ -27,7 +27,7 @@ function parseFlags(argv) {
|
|
|
27
27
|
noProject: false,
|
|
28
28
|
force: false,
|
|
29
29
|
all: false,
|
|
30
|
-
agentsPolicy: "ask",
|
|
30
|
+
agentsPolicy: "ask",
|
|
31
31
|
noTui: false,
|
|
32
32
|
yes: false,
|
|
33
33
|
};
|
|
@@ -39,13 +39,11 @@ function parseFlags(argv) {
|
|
|
39
39
|
else if (a === "--all") {
|
|
40
40
|
flags.all = true;
|
|
41
41
|
flags.targets = ["all"];
|
|
42
|
-
}
|
|
43
|
-
else if (a === "--no-tui" || a === "--plain") flags.noTui = true;
|
|
42
|
+
} else if (a === "--no-tui" || a === "--plain") flags.noTui = true;
|
|
44
43
|
else if (a === "-y" || a === "--yes") {
|
|
45
44
|
flags.yes = true;
|
|
46
45
|
flags.agentsPolicy = "merge";
|
|
47
|
-
}
|
|
48
|
-
else if (a === "--agents" || a === "--agents-policy") {
|
|
46
|
+
} else if (a === "--agents" || a === "--agents-policy") {
|
|
49
47
|
flags.agentsPolicy = (argv[++i] || "ask").toLowerCase();
|
|
50
48
|
} else if (a.startsWith("--agents=")) {
|
|
51
49
|
flags.agentsPolicy = a.slice(9).toLowerCase();
|
|
@@ -64,17 +62,22 @@ function parseFlags(argv) {
|
|
|
64
62
|
}
|
|
65
63
|
|
|
66
64
|
function help() {
|
|
67
|
-
|
|
68
|
-
console.log(
|
|
65
|
+
const ver = pkg.version || "9.69.0";
|
|
66
|
+
console.log(asciiLogo("9.69"));
|
|
67
|
+
console.log(`${c.bold}${c.brightCyan}DME Agent ${ver}${c.reset}
|
|
68
|
+
${c.dim}Ask palette · motion bible · web vs app · icons · welcome · TUI detect-only${c.reset}
|
|
69
|
+
|
|
70
|
+
${c.bold}${c.brightCyan}Usage${c.reset}
|
|
69
71
|
${c.brightYellow}dme${c.reset} interactive TUI
|
|
70
72
|
${c.brightYellow}dme${c.reset} <command> [options]
|
|
71
73
|
|
|
72
74
|
${c.bold}${c.brightCyan}Commands${c.reset}
|
|
73
75
|
${c.brightYellow}install${c.reset} Detect CLIs on this PC → install DME only there
|
|
74
|
-
${c.brightYellow}scan${c.reset} Show which CLIs are detected
|
|
76
|
+
${c.brightYellow}scan${c.reset} Show which CLIs are detected (detect-only)
|
|
75
77
|
${c.brightYellow}doctor${c.reset} Verify DME install health
|
|
76
78
|
${c.brightYellow}uninstall${c.reset} Remove DME (detected CLIs only)
|
|
77
79
|
${c.brightYellow}list${c.reset} List all supported targets
|
|
80
|
+
${c.brightYellow}skills${c.reset} List installer skill pack
|
|
78
81
|
${c.brightYellow}tui${c.reset} Open navigable menu
|
|
79
82
|
${c.brightYellow}path${c.reset} Print assets path
|
|
80
83
|
${c.brightYellow}version${c.reset} Print version
|
|
@@ -89,8 +92,11 @@ ${c.bold}${c.brightCyan}Options${c.reset}
|
|
|
89
92
|
${c.dim}--no-project${c.reset} Skip cwd project files
|
|
90
93
|
${c.dim}--no-tui${c.reset} Disable interactive pickers
|
|
91
94
|
|
|
95
|
+
${c.bold}${c.brightCyan}9.69 skills${c.reset}
|
|
96
|
+
${c.dim}${SKILL_NAMES.map((s) => "/" + s).join(" ")}${c.reset}
|
|
97
|
+
|
|
92
98
|
${c.bold}${c.brightCyan}Examples${c.reset}
|
|
93
|
-
${c.dim}npx dme-agent${c.reset}
|
|
99
|
+
${c.dim}npx dme-agent@9.69.0${c.reset}
|
|
94
100
|
${c.dim}dme install${c.reset}
|
|
95
101
|
${c.dim}dme install --targets claude,cursor${c.reset}
|
|
96
102
|
${c.dim}dme install --agents merge -y${c.reset}
|
|
@@ -98,6 +104,8 @@ ${c.bold}${c.brightCyan}Examples${c.reset}
|
|
|
98
104
|
|
|
99
105
|
${c.bold}${c.brightCyan}AGENTS.md${c.reset}
|
|
100
106
|
Written to each CLI’s ${c.underline}correct path${c.reset}.
|
|
107
|
+
Prefer assets: AGENTS.md · DME-Agent-v9.69-SYSTEM.md · dme-v9.69.md
|
|
108
|
+
(falls back to v7.4 names if 9.69 assets not yet present).
|
|
101
109
|
If the file already exists → TUI asks: Merge / Overwrite / Skip.
|
|
102
110
|
`);
|
|
103
111
|
}
|
|
@@ -123,7 +131,6 @@ async function doInstall(flags) {
|
|
|
123
131
|
}
|
|
124
132
|
|
|
125
133
|
async function main() {
|
|
126
|
-
// ensure cursor restored on crash
|
|
127
134
|
process.on("exit", () => showCursor());
|
|
128
135
|
process.on("SIGINT", () => {
|
|
129
136
|
showCursor();
|
|
@@ -132,7 +139,6 @@ async function main() {
|
|
|
132
139
|
|
|
133
140
|
const flags = parseFlags(cmd ? args.slice(1) : args);
|
|
134
141
|
|
|
135
|
-
// No command → TUI if tty, else help + scan hint
|
|
136
142
|
if (!cmd) {
|
|
137
143
|
if (process.stdin.isTTY && process.stdout.isTTY && !flags.noTui) {
|
|
138
144
|
await runMainTui({
|
|
@@ -180,6 +186,17 @@ async function main() {
|
|
|
180
186
|
uninstall({ all: flags.all });
|
|
181
187
|
break;
|
|
182
188
|
|
|
189
|
+
case "skills":
|
|
190
|
+
console.log(asciiLogo("9.69"));
|
|
191
|
+
console.log(hr());
|
|
192
|
+
for (const s of SKILL_NAMES) {
|
|
193
|
+
console.log(` ${c.brightYellow}/${s}${c.reset}`);
|
|
194
|
+
}
|
|
195
|
+
console.log("");
|
|
196
|
+
console.log(info(`${SKILL_NAMES.length} skills in installer pack`));
|
|
197
|
+
console.log("");
|
|
198
|
+
break;
|
|
199
|
+
|
|
183
200
|
case "tui":
|
|
184
201
|
case "menu":
|
|
185
202
|
case "ui":
|
|
@@ -194,7 +211,7 @@ async function main() {
|
|
|
194
211
|
|
|
195
212
|
case "list":
|
|
196
213
|
case "targets":
|
|
197
|
-
console.log(asciiLogo(
|
|
214
|
+
console.log(asciiLogo("9.69"));
|
|
198
215
|
console.log(hr());
|
|
199
216
|
for (const t of getTargets()) {
|
|
200
217
|
console.log(
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dme-agent",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "DME Agent
|
|
3
|
+
"version": "9.69.0",
|
|
4
|
+
"description": "DME Agent 9.69 — Neominimal Identity Engine. Detect-only bootstrap + TUI. Ask palette · motion bible · web vs app · icons · welcome.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"dme": "bin/dme.mjs",
|
|
@@ -35,7 +35,11 @@
|
|
|
35
35
|
"dashboard",
|
|
36
36
|
"landing-page",
|
|
37
37
|
"bootstrap",
|
|
38
|
-
"tui"
|
|
38
|
+
"tui",
|
|
39
|
+
"motion",
|
|
40
|
+
"icons",
|
|
41
|
+
"electron",
|
|
42
|
+
"tauri"
|
|
39
43
|
],
|
|
40
44
|
"author": "AnThophicous / brennoleondesouza",
|
|
41
45
|
"license": "MIT",
|