@easysociable/cli 0.1.2 → 0.1.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.
- package/README.md +32 -21
- package/{skills/easysociable-content → content-engine}/scripts/starter.mjs +3 -1
- package/{skills/easysociable-content → content-engine}/scripts/workbench.mjs +13 -8
- package/{skills/easysociable-content → content-engine}/starter/CLAUDE.md +217 -128
- package/{skills/easysociable-content → content-engine}/starter/engine.json +3 -0
- package/content-engine/starter/needs/README.md +38 -0
- package/content-engine/starter/needs/_index.md +31 -0
- package/content-engine/starter/needs/_template.md +24 -0
- package/content-engine/starter/needs/entries/README.md +5 -0
- package/content-engine/starter/products/README.md +38 -0
- package/content-engine/starter/products/_index.md +24 -0
- package/content-engine/starter/products/_template.md +56 -0
- package/content-engine/starter/products/entries/P-001-easysociable.md +150 -0
- package/content-engine/starter/profiles/_index.md +16 -0
- package/{skills/easysociable-content → content-engine}/starter/profiles/default/README.md +4 -1
- package/content-engine/starter/profiles/default/boundaries.md +14 -0
- package/content-engine/starter/profiles/default/expression.md +18 -0
- package/content-engine/starter/profiles/default/lanes.md +12 -0
- package/content-engine/starter/profiles/default/stories.md +15 -0
- package/{skills/easysociable-content → content-engine}/starter/profiles/default/voice.md +14 -0
- package/content-engine/starter/recommendations/README.md +21 -0
- package/content-engine/starter/recommendations/_index.md +21 -0
- package/content-engine/starter/recommendations/_template.md +44 -0
- package/{skills/easysociable-content → content-engine}/starter/runs/_template/brief.md +1 -1
- package/{skills/easysociable-content → content-engine}/starter/runs/_template/pack.md +15 -7
- package/{skills/easysociable-content → content-engine}/starter/runs/_template/packet.md +6 -0
- package/{skills/easysociable-content → content-engine}/starter/swipe/_template.md +3 -1
- package/content-engine/starter/topics/README.md +21 -0
- package/{skills/easysociable-content → content-engine}/starter/topics/_index.md +12 -5
- package/content-engine/starter/topics/_template-item.md +103 -0
- package/{skills/easysociable-content → content-engine}/starter/topics/scoring.md +55 -4
- package/content-engine/workbench/__pycache__/build.cpython-310.pyc +0 -0
- package/{skills/easysociable-content → content-engine}/workbench/build.py +306 -97
- package/{skills/easysociable-content → content-engine}/workbench/serve.py +0 -0
- package/{skills/easysociable-content → content-engine}/workbench/template.html +173 -27
- package/dist/easysociable.js +629 -142
- package/dist/easysociable.js.map +1 -1
- package/package.json +15 -15
- package/skills/ONBOARDING.md +21 -18
- package/skills/easysociable-content/SKILL.md +104 -98
- package/skills/easysociable-content/workflows/INTERVIEW.md +70 -0
- package/skills/easysociable-content/workflows/NEEDS.md +82 -0
- package/skills/easysociable-slideshow/SKILL.md +79 -44
- package/skills/easysociable-slideshow/references/ARC.md +44 -0
- package/skills/easysociable-slideshow/references/CONTENT_PACK.md +34 -6
- package/skills/easysociable-slideshow/workflows/CREATE_RUN.md +24 -5
- package/skills/easysociable-slideshow/workflows/OUT_OF_SCOPE.md +3 -0
- package/skills/easysociable-template/SKILL.md +29 -30
- package/skills/easysociable-template/references/CATALOG_METADATA.md +23 -20
- package/skills/easysociable-template/references/DESIGN_V2_1.md +53 -2
- package/skills/easysociable-template/references/GATEWAY.md +7 -2
- package/skills/easysociable-template/references/PLATFORM_SPECS.md +11 -3
- package/skills/easysociable-template/references/THEME_TOKENS.md +1 -1
- package/skills/easysociable-template/references/fixtures/image-reference.design-plan.json +74 -0
- package/skills/easysociable-template/references/fixtures/image-reference.visual-qa.json +28 -0
- package/skills/easysociable-template/scripts/generate-theme-from-hex.mjs +0 -0
- package/skills/easysociable-template/scripts/validate-design-v2.mjs +97 -0
- package/skills/easysociable-template/workflows/ASSET_PLAN.md +2 -1
- package/skills/easysociable-template/workflows/AUTHORING_FROM_BRIEF.md +4 -4
- package/skills/easysociable-template/workflows/AUTHORING_FROM_IMAGE.md +66 -16
- package/skills/easysociable-template/workflows/AUTHORING_STUDIO.md +28 -15
- package/skills/easysociable-template/workflows/DESIGN_BRIEF.md +4 -3
- package/skills/easysociable-template/workflows/FILL_AND_RENDER.md +4 -83
- package/skills/easysociable-template/workflows/MULTI_PLATFORM_FAMILY.md +81 -0
- package/skills/easysociable-template/workflows/OUT_OF_SCOPE.md +3 -2
- package/skills/easysociable-template/workflows/PUBLISH_FROM_DRAFT.md +1 -1
- package/skills/easysociable-template/workflows/VISUAL_QA.md +10 -0
- package/skills/easysociable-content/INSTALL.md +0 -60
- package/skills/easysociable-content/platforms/claude.md +0 -4
- package/skills/easysociable-content/platforms/codex.md +0 -4
- package/skills/easysociable-content/platforms/hermes.md +0 -4
- package/skills/easysociable-content/platforms/openclaw.md +0 -4
- package/skills/easysociable-content/references/CLI.md +0 -40
- package/skills/easysociable-content/references/CONTRACT_SYNC.md +0 -42
- package/skills/easysociable-content/references/MCP.md +0 -15
- package/skills/easysociable-content/references/PAGE_PACK.md +0 -129
- package/skills/easysociable-content/references/PLATFORM_GUIDE.md +0 -36
- package/skills/easysociable-content/references/RUN_LAYOUT.md +0 -73
- package/skills/easysociable-content/references/TROUBLESHOOTING.md +0 -13
- package/skills/easysociable-content/references/VAULT.md +0 -40
- package/skills/easysociable-content/references/VOICE.md +0 -16
- package/skills/easysociable-content/scripts/package-skill.mjs +0 -49
- package/skills/easysociable-content/scripts/setup.mjs +0 -200
- package/skills/easysociable-content/scripts/setup.test.mjs +0 -82
- package/skills/easysociable-content/starter/discovery/README.md +0 -18
- package/skills/easysociable-content/starter/discovery/_index.md +0 -27
- package/skills/easysociable-content/starter/discovery/_template.md +0 -41
- package/skills/easysociable-content/starter/profiles/_index.md +0 -13
- package/skills/easysociable-content/starter/topics/README.md +0 -25
- package/skills/easysociable-content/starter/topics/WATCHLIST.md +0 -65
- package/skills/easysociable-content/starter/topics/_template-item.md +0 -90
- package/skills/easysociable-content/starter/topics/watchlists/README.md +0 -10
- package/skills/easysociable-content/starter/topics/watchlists/_shared.md +0 -14
- package/skills/easysociable-content/starter/topics/watchlists/default.md +0 -6
- package/skills/easysociable-content/workflows/ANALYSIS_AND_COVERAGE.md +0 -17
- package/skills/easysociable-content/workflows/CONTENT_EXPORT.md +0 -24
- package/skills/easysociable-content/workflows/GETTING_STARTED.md +0 -40
- package/skills/easysociable-content/workflows/MCP_FIRST.md +0 -5
- package/skills/easysociable-content/workflows/OUT_OF_SCOPE.md +0 -18
- package/skills/easysociable-content/workflows/PACK_AUTHORING.md +0 -42
- package/skills/easysociable-content/workflows/SWIPE_CAPTURE.md +0 -18
- package/skills/easysociable-content/workflows/TOPIC_DRAFT.md +0 -29
- package/skills/easysociable-content/workflows/WORKING_DRAFT.md +0 -19
- /package/{skills/easysociable-content → content-engine}/fixtures/golden-run-en/draft.md +0 -0
- /package/{skills/easysociable-content → content-engine}/fixtures/golden-run-en/idea.md +0 -0
- /package/{skills/easysociable-content → content-engine}/fixtures/golden-run-en/pack-tiktok.json +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/contracts.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/export-contracts.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/fixture.test.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate-export.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate-pack.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate-run.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate.test.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/accounts/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/accounts/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/accounts/overrides/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/exports/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/inbox/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/inbox/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/inbox/entries/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/ig.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/instagram.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/linkedin.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/threads.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/tiktok.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/x.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/xiaohongshu.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/profiles/default/audience.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/profiles/default/pillars.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/published/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/raw/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/raw/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/draft.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/editor.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/feedback.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/idea.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/rubric.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/swipe/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/topics/items/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/atoms/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/atoms/_template.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/claims/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/claims/_template.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/workbench/README.md +0 -0
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# EasySociable CLI
|
|
2
2
|
|
|
3
|
-
Agent-first CLI
|
|
4
|
-
Gateway-only: no Local API, SQLite, or local renderer.
|
|
3
|
+
Agent-first CLI for EasySociable: local Content Engine, Template, Slideshow, and MCP.
|
|
5
4
|
|
|
6
5
|
```bash
|
|
7
6
|
npm i -g @easysociable/cli
|
|
@@ -9,25 +8,44 @@ npm i -g @easysociable/cli
|
|
|
9
8
|
curl -fsSL https://easysociable.com/install.sh | bash
|
|
10
9
|
```
|
|
11
10
|
|
|
12
|
-
Requires Node.js 20+.
|
|
11
|
+
Requires Node.js 20+. Content Engine workbench also needs `python3`.
|
|
13
12
|
|
|
14
13
|
## Quick start
|
|
15
14
|
|
|
16
15
|
```bash
|
|
16
|
+
# Default skills + MCP for Codex / Claude Code (template + slideshow)
|
|
17
17
|
easysociable install --yes
|
|
18
|
-
# Tell your Agent what to make.
|
|
19
|
-
# Sign up and run auth login only when Gateway asks for it.
|
|
20
18
|
```
|
|
21
19
|
|
|
22
|
-
Default
|
|
23
|
-
unified MCP for Codex / Claude Code. Opt into the Obsidian Content Skill later:
|
|
20
|
+
Default install does **not** include `easysociable-content`. Add it when you want the Content Engine pointer skill:
|
|
24
21
|
|
|
25
22
|
```bash
|
|
26
|
-
easysociable install --skills content --yes
|
|
23
|
+
easysociable install --skills content,template,slideshow --yes
|
|
24
|
+
easysociable engine init --root /workspace --yes
|
|
25
|
+
easysociable engine serve --engine /workspace/Content Engine --no-open
|
|
27
26
|
```
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
Then tell the Agent to follow `Content Engine/CLAUDE.md`. The starter includes
|
|
29
|
+
separate `products/` (owned offers) and `recommendations/` (third-party review
|
|
30
|
+
subjects) libraries; neither is a substitute for `needs/`.
|
|
31
|
+
|
|
32
|
+
Lazy-auth guidance lives in the package at `skills/ONBOARDING.md`.
|
|
33
|
+
|
|
34
|
+
## Content Engine
|
|
35
|
+
|
|
36
|
+
| Command | Purpose |
|
|
37
|
+
|---------|---------|
|
|
38
|
+
| `easysociable engine init [--root] [--yes] [--serve]` | Scaffold starter (never overwrites) |
|
|
39
|
+
| `easysociable engine serve [--engine] [--no-open]` | Sync workbench runtime from CLI, rebuild, start on `:8765` |
|
|
40
|
+
| `easysociable engine build [--engine]` | Sync workbench runtime from CLI, then rebuild `workbench/index.html` |
|
|
41
|
+
| `easysociable engine detect` | Find engines under search roots |
|
|
42
|
+
| `easysociable engine validate --root …` | Starter completeness |
|
|
43
|
+
| `easysociable engine validate --run …` | Run / pack checks before render |
|
|
44
|
+
|
|
45
|
+
The Workbench exposes Products and Recommendations as separate read-only
|
|
46
|
+
indexes. Topics can cite either one without forcing a product connection.
|
|
47
|
+
|
|
48
|
+
Default `--root` / `--engine` parent is `/workspace` when that directory exists, otherwise the current working directory.
|
|
31
49
|
|
|
32
50
|
## Authentication
|
|
33
51
|
|
|
@@ -38,26 +56,19 @@ easysociable templates list --json
|
|
|
38
56
|
easysociable mcp serve --transport stdio
|
|
39
57
|
```
|
|
40
58
|
|
|
41
|
-
|
|
42
|
-
versioned JSON envelope.
|
|
43
|
-
|
|
44
|
-
## Common commands
|
|
59
|
+
## Other commands
|
|
45
60
|
|
|
46
61
|
| Command | Purpose |
|
|
47
62
|
|---------|---------|
|
|
48
63
|
| `easysociable install [--yes] [--skills list]` | Install Skills + MCP |
|
|
49
64
|
| `easysociable update [--yes] [--skills list]` | Update Skills + MCP |
|
|
50
|
-
| `easysociable auth login --api-key <key>` | Store Gateway credentials |
|
|
51
65
|
| `easysociable templates …` | Page Template drafts / catalog |
|
|
52
|
-
| `easysociable brands …` | Workspace Brands
|
|
53
|
-
| `easysociable
|
|
54
|
-
| `easysociable themes …` | Deprecated — use `brands` |
|
|
55
|
-
| `easysociable slideshows …` | List, create, update and render Slideshow Runs |
|
|
66
|
+
| `easysociable brands …` | Workspace Brands |
|
|
67
|
+
| `easysociable slideshows …` | Slideshow Runs |
|
|
56
68
|
| `easysociable renders …` | Single-page final render jobs |
|
|
57
69
|
| `easysociable mcp serve --transport stdio` | Unified MCP server |
|
|
58
70
|
|
|
59
|
-
`--skills` accepts
|
|
60
|
-
`slideshow` (default: `template,slideshow`).
|
|
71
|
+
`--skills` accepts: `content`, `template`, `slideshow` (default: `template,slideshow`).
|
|
61
72
|
|
|
62
73
|
## License
|
|
63
74
|
|
|
@@ -11,7 +11,9 @@ export const ENGINE_PATHS = {
|
|
|
11
11
|
runs: 'runs',
|
|
12
12
|
exports: 'exports',
|
|
13
13
|
topics: 'topics',
|
|
14
|
-
|
|
14
|
+
needs: 'needs',
|
|
15
|
+
products: 'products',
|
|
16
|
+
recommendations: 'recommendations',
|
|
15
17
|
swipe: 'swipe',
|
|
16
18
|
profiles: 'profiles',
|
|
17
19
|
inbox: 'inbox',
|
|
@@ -30,21 +30,26 @@ export function portInUse(port = WORKBENCH_PORT) {
|
|
|
30
30
|
})
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
/** `update: false` = init (missing only). `update: true` = build/serve refresh from package. */
|
|
34
|
+
export function ensureWorkbench(engine, { update = false } = {}) {
|
|
34
35
|
const destDir = join(engine, 'workbench')
|
|
35
36
|
mkdirSync(destDir, { recursive: true })
|
|
36
37
|
const copied = []
|
|
38
|
+
const updated = []
|
|
37
39
|
const skipped = []
|
|
38
40
|
for (const name of WORKBENCH_FILES) {
|
|
39
41
|
const dest = join(destDir, name)
|
|
40
|
-
|
|
42
|
+
const from = join(WORKBENCH_SRC, name)
|
|
43
|
+
if (existsSync(dest) && !update) {
|
|
41
44
|
skipped.push(name)
|
|
42
45
|
continue
|
|
43
46
|
}
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
const existed = existsSync(dest)
|
|
48
|
+
copyFileSync(from, dest)
|
|
49
|
+
if (existed) updated.push(name)
|
|
50
|
+
else copied.push(name)
|
|
46
51
|
}
|
|
47
|
-
return { destDir, copied, skipped }
|
|
52
|
+
return { destDir, copied, updated, skipped }
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
export function buildWorkbench(engine) {
|
|
@@ -68,7 +73,7 @@ export async function startWorkbench(engine, { noOpen = false } = {}) {
|
|
|
68
73
|
if (!python) {
|
|
69
74
|
return { ok: false, code: 'PYTHON3_REQUIRED', message: 'python3 is required for the workbench. Install Python 3 and retry.' }
|
|
70
75
|
}
|
|
71
|
-
ensureWorkbench(engine)
|
|
76
|
+
ensureWorkbench(engine, { update: true })
|
|
72
77
|
const built = buildWorkbench(engine)
|
|
73
78
|
if (!built.ok) return built
|
|
74
79
|
const url = WORKBENCH_URL
|
|
@@ -112,9 +117,9 @@ async function main() {
|
|
|
112
117
|
if (!options.engine) throw new Error('--engine is required')
|
|
113
118
|
const engine = resolve(options.engine)
|
|
114
119
|
if (options.command === 'build') {
|
|
115
|
-
ensureWorkbench(engine)
|
|
120
|
+
const workbench = ensureWorkbench(engine, { update: true })
|
|
116
121
|
const built = buildWorkbench(engine)
|
|
117
|
-
output(built, options.json)
|
|
122
|
+
output({ workbench, ...built }, options.json)
|
|
118
123
|
if (!built.ok) process.exitCode = 2
|
|
119
124
|
return
|
|
120
125
|
}
|