@fleox-agent-crm/agentcrm 0.7.0 → 0.9.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 +16 -16
- package/changelog.json +19 -0
- package/dist/admin/admin-files.json +7 -7
- package/dist/admin/assets/{chartsImpl-Cx0bQmYg.js → chartsImpl-D2PADqts.js} +1 -1
- package/dist/admin/assets/{firebase-DyAT9e1o.js → firebase-CwGe_Sf_.js} +2 -2
- package/dist/admin/assets/{gitJson-BeyPO6eJ.js → gitJson-iOqViH3d.js} +1 -1
- package/dist/admin/assets/{index-Bp5AxImK.js → index-BgYXHsdo.js} +270 -270
- package/dist/admin/assets/{lucide-react.min-BXJHmaO2.js → lucide-react.min-DBYEZafa.js} +1 -1
- package/dist/admin/assets/{sdk-hs3heWPk.js → sdk-DQ9ctNk3.js} +1 -1
- package/dist/admin/index.html +1 -1
- package/dist/agent/agentcrm.mjs +21 -21
- package/dist/agent/chunks/{extCheck-Bu8C87OV.mjs → extCheck-yWx4BPsr.mjs} +3 -3
- package/dist/agent/chunks/{loader-CGIek5YG.mjs → loader-CQwZ14Sl.mjs} +3 -3
- package/dist/agent/chunks/{registry-Bg8kGteS.mjs → registry-D3C_myHO.mjs} +2 -2
- package/dist/agent/chunks/{runtime-Bmwgx2hK.mjs → runtime-CImKXCKZ.mjs} +21 -4
- package/dist/agent/chunks/{schema-Cwi7iFp2.mjs → schema-CehJcGBp.mjs} +28 -0
- package/dist/agent/chunks/{schemaApply-tEIr5lFK.mjs → schemaApply-RJGX9KZk.mjs} +19 -3
- package/dist/agent/chunks/{server-3awvGTvL.mjs → server-876r03Db.mjs} +2 -2
- package/dist/agent/chunks/{tools-BR3X1Uvm.mjs → tools-FJK-FGxt.mjs} +1 -1
- package/dist/version.json +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/skills/agentcrm-admin/SKILL.md +67 -67
- package/plugin/skills/agentcrm-admin/references/records.md +5 -5
- package/plugin/skills/agentcrm-admin/references/schema.md +19 -19
- package/plugin/skills/agentcrm-extensions/SKILL.md +8 -8
- package/plugin/skills/agentcrm-extensions/references/module-recipes.md +2 -2
- package/plugin/skills/agentcrm-extensions/references/testing.md +14 -14
- package/plugin/skills/agentcrm-extensions/references/theme-recipes.md +3 -3
- package/plugin/skills/agentcrm-install/SKILL.md +13 -13
- package/plugin/skills/agentcrm-install/references/firebase.md +1 -1
- package/plugin/skills/agentcrm-install/references/github.md +1 -1
- package/plugin/skills/agentcrm-install/references/mcp.md +2 -2
- package/plugin/skills/agentcrm-install/references/plans.md +1 -1
- package/plugin/skills/agentcrm-install/references/s3.md +1 -1
- package/plugin/skills/agentcrm-manage/SKILL.md +15 -15
- package/plugin/skills/agentcrm-sales/SKILL.md +18 -18
|
@@ -4,7 +4,7 @@ description: Run an AgentCRM like its admin does - find, list, create, update, d
|
|
|
4
4
|
license: PolyForm-Noncommercial-1.0.0
|
|
5
5
|
compatibility: Requires Node.js 20+.
|
|
6
6
|
metadata:
|
|
7
|
-
version: "0.
|
|
7
|
+
version: "0.9.0"
|
|
8
8
|
repository: "https://github.com/fleox/agentcrm"
|
|
9
9
|
allowed-tools: Bash Read Write
|
|
10
10
|
---
|
|
@@ -15,7 +15,7 @@ The CLI runs the admin's own engine headless: the same validation, roles and aut
|
|
|
15
15
|
|
|
16
16
|
**Language:** talk to the user in their language; keep commands and files in English.
|
|
17
17
|
|
|
18
|
-
Every command is `npx -y @fleox-agent-crm/agentcrm@0.
|
|
18
|
+
Every command is `npx -y @fleox-agent-crm/agentcrm@0.9.0 <command> --json`; always pass `--site <alias>` (see `agentcrm-manage` to pick one). Read `error.hint` when `ok` is false. `npx -y @fleox-agent-crm/agentcrm@0.9.0 help records --json` lists any command's actions and options.
|
|
19
19
|
|
|
20
20
|
## Rules
|
|
21
21
|
|
|
@@ -27,13 +27,13 @@ Every command is `npx -y @fleox-agent-crm/agentcrm@0.7.0 <command> --json`; alwa
|
|
|
27
27
|
## Records
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
31
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
32
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
33
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
34
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
35
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
36
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
30
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records list --site acme --object deals --filter stage:in:proposal,negotiation --filter amount:gte:10000 --sort amount:desc --limit 20 --json
|
|
31
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records get <id> --site acme --json
|
|
32
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records search "globex" --site acme --json
|
|
33
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records create --site acme --object people --set firstName=Grace --set lastName=Hopper --set email=grace@globex.com --set company=<companyId> --json
|
|
34
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records update <id> --site acme --set jobTitle=CTO --json
|
|
35
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records delete <id> --site acme --json
|
|
36
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records restore <id> --site acme --json
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
- Filters: `--filter field:op:value`, repeatable. Ops: eq, neq, contains, notContains, empty, notEmpty, gt, gte, lt, lte, in, notIn, before, after, withinDays. Dates: `YYYY-MM-DD`, `today`, `+30d`. Also `id`, `ownerId`, `createdAt`, `updatedAt`.
|
|
@@ -46,13 +46,13 @@ More examples per object: references/records.md.
|
|
|
46
46
|
## Timeline and tasks
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
50
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
51
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
52
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
53
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
54
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
55
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
49
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 notes add <recordId> --site acme --body "Met at the expo; wants a demo in June." --json
|
|
50
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 activities add --site acme --type call --title "Discovery call" --record <personId> --record <dealId> --meta '{"durationMin":25}' --json
|
|
51
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 activities list --site acme --record <companyId> --related --json
|
|
52
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tasks add --site acme --title "Send the proposal" --due 2026-11-10 --assignee me --record <dealId> --json
|
|
53
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tasks list --site acme --assignee me --overdue --json
|
|
54
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tasks done <taskId> --site acme --json
|
|
55
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tasks reassign <taskId> --site acme --assignee sam@acme.com --json
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
Activity types: note, task, call, email, meeting. `--body @notes.md` reads a file.
|
|
@@ -62,18 +62,18 @@ Activity types: note, task, call, email, meeting. `--body @notes.md` reads a fil
|
|
|
62
62
|
People have a **photo** (`avatar` field) and companies a **logo** (`logo`), shown next to the name everywhere; custom objects get one by adding an `image` field (the first becomes the object's image). Files (any type: images, PDFs, Office documents…) attach to a record or to an activity (note, task, call, email, meeting).
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
66
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
67
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
68
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
69
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
70
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
71
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
72
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
73
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
74
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
75
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
76
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
65
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records image <personId> ./ada.jpg --site acme --json
|
|
66
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records image <companyId> ./logo.svg --site acme --json
|
|
67
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records image <personId> --remove --site acme --json
|
|
68
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 notes add <recordId> --body "Signed contract attached." --attach ./contract.pdf --site acme --json
|
|
69
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tasks add --title "Review the quote" --record <dealId> --attach ./quote.xlsx --attach ./scope.pdf --site acme --json
|
|
70
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 activities add --type meeting --title "Workshop" --record <companyId> --attach ./whiteboard.png --site acme --json
|
|
71
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 files upload ./brochure.pdf ./photo.png --record <companyId> --site acme --json
|
|
72
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 files upload ./minutes.docx --activity <noteId> --site acme --json
|
|
73
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 files list --record <companyId> --related --site acme --json
|
|
74
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 files get <fileId> --out ./contract.pdf --site acme --json
|
|
75
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 files delete <fileId> --site acme --json
|
|
76
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 files usage --site acme --json
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
- Files live next to the data and are **encrypted with the same passphrase** on the journal backend; IndexedDB in local mode; the data repo (`files/`) for git-json (warn: history keeps them); Firebase Storage for Firebase (Storage must be enabled, see docs/files.md).
|
|
@@ -86,9 +86,9 @@ npx -y @fleox-agent-crm/agentcrm@0.7.0 files usage --site acme --json
|
|
|
86
86
|
## Pipelines
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
90
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
91
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
89
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 pipelines list --site acme --json
|
|
90
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 pipelines move <dealId> Negotiation --site acme --json
|
|
91
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 pipelines move <dealId> Lost --lost-reason "Budget" --site acme --json
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
Moving sets the deal's probability to the stage's. Adding / renaming stages is done in the admin (Settings → Data model).
|
|
@@ -102,10 +102,10 @@ See references/schema.md for objects, fields (types, options, relations), views,
|
|
|
102
102
|
Built-in modules: dashboard, deals (deals object + pipelines), reports, forms, tasks, automations, integrations (email and calendar), assistant (in-admin AI); records, search, settings, setup and customize are required. Installed extension modules are listed with `source: "extension"`. Disabling hides pages, navigation, widgets and owned objects for every user; it never deletes data, and enabling again brings everything back.
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
106
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
107
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
108
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
105
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 modules list --site acme --json
|
|
106
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 modules disable forms --site acme --json
|
|
107
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 modules disable forms --site acme --yes --json
|
|
108
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 modules enable deals --site acme --cascade --yes --json
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
- When the user says "we only manage contacts" or "hide what we don't use": list the modules, propose which to turn off (with what each hides), and apply only after they agree.
|
|
@@ -117,14 +117,14 @@ npx -y @fleox-agent-crm/agentcrm@0.7.0 modules enable deals --site acme --cascad
|
|
|
117
117
|
One accent color drives the whole palette (a 50 to 950 scale is generated). Applies live to every user.
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
121
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
122
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
123
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
124
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
125
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
126
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
127
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
120
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance get --site acme --json
|
|
121
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance presets --site acme --json
|
|
122
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance set --site acme --accent "#0f766e" --neutral stone --radius lg --json
|
|
123
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance preset ocean --site acme --yes --json
|
|
124
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance logo ./logo.svg --site acme --yes --json
|
|
125
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance favicon ./favicon.png --site acme --yes --json
|
|
126
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance css ./brand.css --site acme --yes --json
|
|
127
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance reset --site acme --json
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
- **Brand from a hex:** `appearance set --accent <hex>`, then pick `--neutral` by temperature (blue / teal brands: slate; warm brands: stone; otherwise zinc), `--buttons accent` for a colorful brand. **From a logo:** read the dominant non-gray color of the SVG (its `fill`) or the image, propose it as the accent, and upload the logo itself with `appearance logo`.
|
|
@@ -134,9 +134,9 @@ npx -y @fleox-agent-crm/agentcrm@0.7.0 appearance reset --site acme --json
|
|
|
134
134
|
## Extensions (installed modules and themes)
|
|
135
135
|
|
|
136
136
|
```bash
|
|
137
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
138
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
139
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
137
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext list --site acme --json
|
|
138
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext disable sales-goals --site acme --yes --json
|
|
139
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext enable sales-goals --site acme --yes --json
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
Installing, building or debugging extensions: the `agentcrm-extensions` skill. Installing runs third-party code with admin rights: always show the plan and ask. If the admin misbehaves after an extension change, `ext disable <id> --yes`, or open the admin with `?safe=1`; CLI commands accept `--safe` to skip extensions.
|
|
@@ -144,11 +144,11 @@ Installing, building or debugging extensions: the `agentcrm-extensions` skill. I
|
|
|
144
144
|
## Import and export
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
148
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
149
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
150
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
151
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
147
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 import csv contacts.csv --site acme --object people --json
|
|
148
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 import csv contacts.csv --site acme --object people --yes --json
|
|
149
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 export csv --site acme --object companies --out companies.csv --json
|
|
150
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 export json --site acme --out backup.json --json
|
|
151
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 export zip --site acme --out backup.zip --json
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
The import is a DRY RUN until `--yes`: read the report (mapping, per-row action, errors, new select options, companies to create) with the user before applying. Mapping, dedupe and coercion rules: references/import.md.
|
|
@@ -156,25 +156,25 @@ The import is a DRY RUN until `--yes`: read the report (mapping, per-row action,
|
|
|
156
156
|
## Reports and stats
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
160
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
161
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
162
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
163
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
164
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
165
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
166
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
159
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 report pipeline --site acme --json
|
|
160
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 report forecast --site acme --json
|
|
161
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 report won-lost --site acme --months 6 --json
|
|
162
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 report activity --site acme --days 30 --json
|
|
163
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 report lead-sources --site acme --json
|
|
164
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 report stale --site acme --days 21 --json
|
|
165
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 report conversion --site acme --json
|
|
166
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 stats --site acme --json
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
## Automations and lead forms
|
|
170
170
|
|
|
171
171
|
```bash
|
|
172
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
173
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
174
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
175
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
176
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
177
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
172
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 automations list --site acme --json
|
|
173
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 automations disable <id> --site acme --json
|
|
174
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 automations run --site acme --json
|
|
175
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 forms list --site acme --json
|
|
176
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 forms publish <formId> --site acme --json
|
|
177
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 forms ingest --site acme --json
|
|
178
178
|
```
|
|
179
179
|
|
|
180
180
|
Event automations (record created, field changed, stage changed) fire on every write, from the CLI too. Building automations and forms is done in the admin; the CLI enables / disables, runs the scheduled ones and ingests form submissions. For a cron, see the `agentcrm-manage` skill.
|
|
@@ -184,8 +184,8 @@ Event automations (record created, field changed, stage changed) fire on every w
|
|
|
184
184
|
The same tools the MCP server and the in-admin assistant expose, including the tools of enabled extension modules (`source: "extension"`) the customisation tools (`list_modules`, `set_module_enabled`, `get_appearance`, `set_appearance`, `apply_appearance_preset`, `list_extensions`, `set_extension_enabled`) and the file tools (`list_files`, `describe_attachments`):
|
|
185
185
|
|
|
186
186
|
```bash
|
|
187
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
188
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
187
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tools list --site acme --json
|
|
188
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tools call pipeline_summary --site acme --input '{}' --json
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
Useful when a tool returns exactly what you need in one call (`get_record` with relations and latest activities, `pipeline_summary`).
|
|
@@ -12,17 +12,17 @@ Always confirm with `objects get <object>`: admins add fields and options.
|
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
# A company and its contact
|
|
15
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
16
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
15
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records create --site acme --object companies --set name="Globex" --set domain=globex.com --set industry=software --json
|
|
16
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records create --site acme --object people --fields @grace.json --json
|
|
17
17
|
|
|
18
18
|
# A deal linked to both
|
|
19
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
19
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records create --site acme --object deals --fields '{"name":"Globex pilot","amount":12000,"closeDate":"2026-12-15","company":"<companyId>","contacts":["<personId>"]}' --json
|
|
20
20
|
|
|
21
21
|
# Leads created this week, without an owner
|
|
22
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
22
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records list --site acme --object people --filter lifecycleStage:eq:lead --filter createdAt:withinDays:-7 --filter ownerId:empty --json
|
|
23
23
|
|
|
24
24
|
# Assign an owner
|
|
25
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
25
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 records update <id> --site acme --owner <userId> --json
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
`records get` returns `relations` (records this one points to) and `related` (records pointing to it, e.g. a company's people and deals) plus `activityCount`.
|
|
@@ -5,11 +5,11 @@ All schema commands need the admin role.
|
|
|
5
5
|
## Objects
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
9
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
10
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
11
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
12
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
8
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 objects list --site acme --json
|
|
9
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 objects get deals --site acme --json
|
|
10
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 objects create --site acme --singular Project --plural Projects --icon folder --json
|
|
11
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 objects update projects --site acme --plural "Client projects" --json
|
|
12
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 objects delete projects --site acme --json
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Deleting an object deletes all its records (plan first).
|
|
@@ -19,10 +19,10 @@ Deleting an object deletes all its records (plan first).
|
|
|
19
19
|
Types: text, longText, number, currency, percent, date, datetime, boolean, select, multiSelect, email, phone, url, relation, user, rating, address, tags, image (one picture; the first one becomes the record avatar), files (attachments).
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
23
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
24
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
25
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
22
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 fields add --site acme --object deals --label "Contract type" --type select --options "New,Renewal,Upsell" --json
|
|
23
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 fields add --site acme --object projects --label Client --type relation --relation-object companies --json
|
|
24
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 fields update contractType --site acme --object deals --options "New,Renewal,Upsell,Cross-sell" --json
|
|
25
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 fields delete contractType --site acme --object deals --json
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
`fields update --type <t>` converts existing values (the result reports what could not be converted). Standard fields can't be deleted.
|
|
@@ -30,10 +30,10 @@ npx -y @fleox-agent-crm/agentcrm@0.7.0 fields delete contractType --site acme --
|
|
|
30
30
|
## Views
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
34
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
35
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
36
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
33
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 views list --site acme --object deals --json
|
|
34
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 views create --site acme --object deals --name "Closing this month" --filter closeDate:withinDays:30 --sort closeDate --columns name,amount,stage,closeDate --shared --json
|
|
35
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 views create --site acme --object deals --name Board --type kanban --group-by stage --json
|
|
36
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 views delete <viewId> --site acme --json
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
## Users and roles
|
|
@@ -41,10 +41,10 @@ npx -y @fleox-agent-crm/agentcrm@0.7.0 views delete <viewId> --site acme --json
|
|
|
41
41
|
Roles: `admin` (everything), `member` (records, activities, own views, import / export), `viewer` (read only).
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
45
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
46
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
47
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
44
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 users list --site acme --all --json
|
|
45
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 users add --site acme --email sam@acme.com --name "Sam Rivera" --role member --json
|
|
46
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 users role sam@acme.com admin --site acme --json
|
|
47
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 users disable sam@acme.com --site acme --json
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Firebase / git-json sites: the login itself is created on that service (Firebase Authentication, a repository collaborator).
|
|
@@ -52,8 +52,8 @@ Firebase / git-json sites: the login itself is created on that service (Firebase
|
|
|
52
52
|
## Settings
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
56
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
55
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 settings get --site acme --json
|
|
56
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 settings set --site acme --set name="Acme CRM" --set defaultCurrency=EUR --set locale=fr-FR --set staleDealDays=21 --json
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
Secrets are refused in settings.
|
|
@@ -4,7 +4,7 @@ description: Create, test and ship AgentCRM extensions - scaffold a module or th
|
|
|
4
4
|
license: PolyForm-Noncommercial-1.0.0
|
|
5
5
|
compatibility: Requires Node.js 20+ (npm for the extension project's own build).
|
|
6
6
|
metadata:
|
|
7
|
-
version: "0.
|
|
7
|
+
version: "0.9.0"
|
|
8
8
|
repository: "https://github.com/fleox/agentcrm"
|
|
9
9
|
allowed-tools: Bash Read Write Edit
|
|
10
10
|
---
|
|
@@ -33,7 +33,7 @@ AgentCRM is a static CRM: the admin is a single-page app that runs in the browse
|
|
|
33
33
|
|
|
34
34
|
## The toolchain: `agentcrm ext`
|
|
35
35
|
|
|
36
|
-
Every command is `npx -y @fleox-agent-crm/agentcrm@0.
|
|
36
|
+
Every command is `npx -y @fleox-agent-crm/agentcrm@0.9.0 <command> … --json`. Read `error.hint` when `ok` is false.
|
|
37
37
|
|
|
38
38
|
| Action | What it does |
|
|
39
39
|
|---|---|
|
|
@@ -51,7 +51,7 @@ Every command is `npx -y @fleox-agent-crm/agentcrm@0.7.0 <command> … --json`.
|
|
|
51
51
|
1. **Understand the request.** A new look = a **theme**. New pages, widgets, record tabs, AI tools, automation steps or reactions to CRM events = a **module**. Pick an id: lowercase letters, digits and dashes, 3 to 50 characters, not a built-in module id (records, deals, dashboard, reports, forms, tasks, automations, integrations, assistant, search, settings, setup, customize) nor agentcrm, core, runtime, admin, app, custom, default. Prefix it with the company or product (`acme-quotes`).
|
|
52
52
|
2. **Scaffold and install the toolchain:**
|
|
53
53
|
```bash
|
|
54
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
54
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext new module acme-quotes --author "Acme" --json
|
|
55
55
|
cd acme-quotes && npm install
|
|
56
56
|
```
|
|
57
57
|
3. **Read the scaffold**, then the reference for what you are building:
|
|
@@ -64,15 +64,15 @@ Every command is `npx -y @fleox-agent-crm/agentcrm@0.7.0 <command> … --json`.
|
|
|
64
64
|
```bash
|
|
65
65
|
npm run typecheck
|
|
66
66
|
npm run build
|
|
67
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
67
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext check . --json
|
|
68
68
|
```
|
|
69
69
|
Fix every error; read the warnings (missing French strings, tool names without the module prefix, nav entries without a route).
|
|
70
70
|
6. **Pack and install** (plan first, then `--yes` once the user agreed):
|
|
71
71
|
```bash
|
|
72
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
73
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
74
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
75
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
72
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext pack . --json
|
|
73
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext install . --site acme --json
|
|
74
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext install . --site acme --yes --json
|
|
75
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tools list --site acme --json
|
|
76
76
|
```
|
|
77
77
|
For a new release, bump `version` in `manifest.json` (semver) and install again: it upgrades in place.
|
|
78
78
|
|
|
@@ -182,8 +182,8 @@ function SettingsPage() {
|
|
|
182
182
|
In AI tools / actions read it with `readConfig(ops.getModuleConfig(ctx, ID))`. From the CLI:
|
|
183
183
|
|
|
184
184
|
```bash
|
|
185
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
186
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
185
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 modules config get acme-projects --site acme --json
|
|
186
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 modules config set acme-projects --value '{"budgetAlert":50000}' --site acme --json
|
|
187
187
|
```
|
|
188
188
|
|
|
189
189
|
(the second prints a plan; add `--yes`).
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
```bash
|
|
6
6
|
npm run typecheck # tsc against types/agentcrm-runtime.d.ts
|
|
7
7
|
npm run build # vite build → dist/bundle.js
|
|
8
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
8
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext check . --json # what the admin will see
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
`ext check` reads `manifest.json` + `dist/bundle.js` (+ `src/style.css` for themes declaring it) from a project, `manifest.json` + `bundle.js` from an unpacked folder, or a ZIP. Then:
|
|
@@ -24,10 +24,10 @@ The check runs the bundle in Node with the real loader and runtime, in a throw-a
|
|
|
24
24
|
## Pack and install
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
28
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
29
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
30
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
27
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext pack . --json # → <id>-<version>.zip
|
|
28
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext install acme-quotes-0.1.0.zip --site acme --json
|
|
29
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext install acme-quotes-0.1.0.zip --site acme --yes --json
|
|
30
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext list --site acme --json
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
- The plan (`needsConfirmation: true`) shows `id`, `kind`, `name`, `version`, `author`, `mode` (`install` / `upgrade` with `from`), `dependsOn`, `size`, `warnings` and the trust warning. **Show it to the user and ask before `--yes`.**
|
|
@@ -45,21 +45,21 @@ Bump `version` in `manifest.json`, build, check, install again: `mode: "upgrade"
|
|
|
45
45
|
## Use it
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
49
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
50
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
51
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
48
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tools list --site acme --json # its AI tools (source: "extension")
|
|
49
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 tools call acme_quotes_list --site acme --input '{}' --json
|
|
50
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 modules list --site acme --json # appears as a module (source: "extension")
|
|
51
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 automations run --site acme --json # its automation actions run here too
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
To see the UI, open the CRM's admin (its hosted URL, see `site show`, or `npx -y @fleox-agent-crm/agentcrm@0.
|
|
54
|
+
To see the UI, open the CRM's admin (its hosted URL, see `site show`, or `npx -y @fleox-agent-crm/agentcrm@0.9.0 serve` for a local copy), and check the page, the tabs and widgets in light and dark mode and in French (language switcher in the user menu or the Cmd+K palette).
|
|
55
55
|
|
|
56
56
|
## Disable, uninstall, export
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
60
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
61
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
62
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
59
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext disable acme-quotes --site acme --yes --json
|
|
60
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext enable acme-quotes --site acme --yes --json
|
|
61
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext uninstall acme-quotes --site acme --yes --json
|
|
62
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext export acme-quotes --site acme --out backup.zip --json
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Disabling keeps the package and its config; uninstalling keeps the config (a re-install restores it). Data the module created (records, objects, notes) is never deleted by either.
|
|
@@ -57,9 +57,9 @@ Variables: `--acc-50` … `--acc-950` (accent scale), `--srf-50` … `--srf-950`
|
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
59
|
npm run build
|
|
60
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
61
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
62
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
60
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext check . --json
|
|
61
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 ext install . --site acme --yes --json
|
|
62
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 appearance preset acme-brand --site acme --json
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
`ext check` prints the resolved values (`data.theme.appearance`) and the CSS size. `appearance preset` prints the before / after plan; add `--yes` to apply. Open the admin to look at it (light and dark, a table and a record page).
|
|
@@ -4,7 +4,7 @@ description: Install a new AgentCRM (static, AI-drivable CRM) for the user - ask
|
|
|
4
4
|
license: PolyForm-Noncommercial-1.0.0
|
|
5
5
|
compatibility: Requires Node.js 20+ and network access to the chosen storage. Works in Claude Code and any agent that can run shell commands.
|
|
6
6
|
metadata:
|
|
7
|
-
version: "0.
|
|
7
|
+
version: "0.9.0"
|
|
8
8
|
repository: "https://github.com/fleox/agentcrm"
|
|
9
9
|
allowed-tools: Bash Read Write
|
|
10
10
|
---
|
|
@@ -15,13 +15,13 @@ AgentCRM is a HubSpot / Twenty-style CRM (companies, people, deals, pipelines, a
|
|
|
15
15
|
|
|
16
16
|
**Language:** talk to the user in their language; keep commands, files and plans in English.
|
|
17
17
|
|
|
18
|
-
Every command is `npx -y @fleox-agent-crm/agentcrm@0.
|
|
18
|
+
Every command is `npx -y @fleox-agent-crm/agentcrm@0.9.0 <command> --json` (Node.js 20+). Each prints ONE JSON object: `{"ok": true, "data": ...}` or `{"ok": false, "error": {"code", "message", "hint"}}`. When `ok` is false, read `error.hint` and act on it. Exit code 2 = a usage error in your command.
|
|
19
19
|
|
|
20
20
|
## 1. Start with status and options
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
24
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
23
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 status --json
|
|
24
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 options --json
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
`status` shows CRMs this computer already manages (maybe the user wants `agentcrm-manage` instead). `options` lists backends, data locations, hostings, credential types and the plan format.
|
|
@@ -36,7 +36,7 @@ The CRM holds personal data (contacts, emails, phone numbers). Ask, in this orde
|
|
|
36
36
|
- a **folder on this computer** - single computer, no account. Advise backing it up.
|
|
37
37
|
2. **Firebase** (backend `firebase`) - real-time teams with logins and per-user roles. See references/firebase.md.
|
|
38
38
|
3. **A private git repo as readable JSON** (backend `git-json`) - readable history, but deleted records stay in the git history: warn the user.
|
|
39
|
-
4. **This browser only** - for trying it: `npx -y @fleox-agent-crm/agentcrm@0.
|
|
39
|
+
4. **This browser only** - for trying it: `npx -y @fleox-agent-crm/agentcrm@0.9.0 serve --json`, then "This browser" in the wizard. The CLI can't reach it.
|
|
40
40
|
|
|
41
41
|
Encryption: the journal is encrypted with AES-256-GCM by default. A passphrase is generated at install and stored only on this computer. Never offer to turn it off unless the user insists and the location is strictly private.
|
|
42
42
|
|
|
@@ -54,15 +54,15 @@ HTTPS is required: browsers only allow the admin's request signing and encryptio
|
|
|
54
54
|
|
|
55
55
|
## 4. Credentials - never in the chat
|
|
56
56
|
|
|
57
|
-
Secrets (keys, tokens, passwords, passphrases) are NEVER typed into the conversation and never written in a plan. The user stores each one in their own terminal; in Claude Code they type `! npx -y @fleox-agent-crm/agentcrm@0.
|
|
57
|
+
Secrets (keys, tokens, passwords, passphrases) are NEVER typed into the conversation and never written in a plan. The user stores each one in their own terminal; in Claude Code they type `! npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials set s3:main` (hidden prompt). Alternatives that keep secrets out of the chat:
|
|
58
58
|
|
|
59
59
|
- `--from-env KEY_ID,SECRET` - variables the user already exported (CI, `.env`).
|
|
60
60
|
- `--from-aws-profile <profile>` - an existing aws CLI profile (s3).
|
|
61
61
|
- `--from-gh` - the token of the signed-in GitHub CLI (github).
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
65
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
64
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials list --json
|
|
65
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials types --json
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
How to create each key with least privilege: references/s3.md, references/github.md, references/firebase.md. One account can serve several CRMs (`s3:main` for both the data bucket and the hosting bucket is fine).
|
|
@@ -89,8 +89,8 @@ Write `plan.json` (no secrets, only account ids):
|
|
|
89
89
|
More examples (GitHub repo data + GitHub Pages, local folder, Firebase): references/plans.md. `owner` becomes the first CRM admin, and the CLI acts as that user. `demo: true` adds a realistic sample dataset - offer it for a first look, not for a production CRM.
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
93
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
92
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 install --plan plan.json --dry-run --json
|
|
93
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 install --plan plan.json --json
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
The dry run checks every access and writes nothing. Fix `check-failed` errors with their hint (permissions, names, CORS) before installing. An existing dataset in the same place is kept; only what's missing is seeded.
|
|
@@ -99,16 +99,16 @@ The dry run checks every access and writes nothing. Fix `check-failed` errors wi
|
|
|
99
99
|
|
|
100
100
|
When the result has `savePassphrase`, stop and do it with the user before anything else:
|
|
101
101
|
|
|
102
|
-
1. `npx -y @fleox-agent-crm/agentcrm@0.
|
|
102
|
+
1. `npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials copy passphrase:<alias> --json` puts it on the clipboard (never print it).
|
|
103
103
|
2. The user pastes it into their password manager now.
|
|
104
|
-
3. The user proves it: in their own terminal, `! npx -y @fleox-agent-crm/agentcrm@0.
|
|
104
|
+
3. The user proves it: in their own terminal, `! npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials verify passphrase:<alias>`, pasting FROM the password manager. It must say "verified".
|
|
105
105
|
|
|
106
106
|
Without the passphrase nobody can read the data, ever.
|
|
107
107
|
|
|
108
108
|
## 7. Verify
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
|
-
npx -y @fleox-agent-crm/agentcrm@0.
|
|
111
|
+
npx -y @fleox-agent-crm/agentcrm@0.9.0 doctor --site <alias> --json
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
Every failing check has a `fix`. The most common one on buckets is CORS: the result prints the exact JSON rule for the data bucket - help the user apply it (references/s3.md). Then give the user the admin URL (`data.adminUrl` of the install) and explain: each new browser asks once for the storage keys and the passphrase, which stay in that browser.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
1. Create a Firebase project (console.firebase.google.com), add a Web app and copy its config (apiKey, authDomain, projectId, appId...). The web apiKey is public by design.
|
|
4
4
|
2. Enable Authentication → Sign-in method → Email/Password (and Google if wanted).
|
|
5
5
|
3. Create Firestore (production mode) and publish the AgentCRM security rules (see docs/firebase.md in the repository).
|
|
6
|
-
4. Create the first admin account (Authentication → Users → Add user). The user stores its login: `! npx -y @fleox-agent-crm/agentcrm@0.
|
|
6
|
+
4. Create the first admin account (Authentication → Users → Add user). The user stores its login: `! npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials set firebase:<name>` (email + password at hidden prompts).
|
|
7
7
|
5. Plan:
|
|
8
8
|
|
|
9
9
|
```json
|
|
@@ -7,7 +7,7 @@ Fine-grained personal access token: https://github.com/settings/personal-access-
|
|
|
7
7
|
- Repository access: only the data repository (PRIVATE) and, if used, the admin hosting repository.
|
|
8
8
|
- Permissions: Contents read and write; Metadata read-only; Pages read and write (optional, lets the CLI enable Pages).
|
|
9
9
|
|
|
10
|
-
The user stores it: `! npx -y @fleox-agent-crm/agentcrm@0.
|
|
10
|
+
The user stores it: `! npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials set github:<login>`, or reuses the GitHub CLI login: `npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials set github:<login> --from-gh --json`.
|
|
11
11
|
|
|
12
12
|
GitLab: project → Settings → Access tokens, scope `api`, role Developer; store as `gitlab:<name>`.
|
|
13
13
|
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
Claude Code:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
claude mcp add agentcrm -- npx -y @fleox-agent-crm/agentcrm@0.
|
|
8
|
+
claude mcp add agentcrm -- npx -y @fleox-agent-crm/agentcrm@0.9.0 mcp --site <alias>
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Claude Desktop (`claude_desktop_config.json`) and Cursor (`.cursor/mcp.json`):
|
|
12
12
|
|
|
13
13
|
```json
|
|
14
|
-
{ "mcpServers": { "agentcrm": { "command": "npx", "args": ["-y", "@fleox-agent-crm/agentcrm@0.
|
|
14
|
+
{ "mcpServers": { "agentcrm": { "command": "npx", "args": ["-y", "@fleox-agent-crm/agentcrm@0.9.0", "mcp", "--site", "<alias>"] } } }
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
The server uses the credentials of this computer (`~/.agentcrm`) and acts as the site's CLI user.
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Use it from the browser with `npx -y @fleox-agent-crm/agentcrm@0.
|
|
26
|
+
Use it from the browser with `npx -y @fleox-agent-crm/agentcrm@0.9.0 serve --json` and the folder picker.
|
|
27
27
|
|
|
28
28
|
## git-json in a private repo
|
|
29
29
|
|
|
@@ -4,7 +4,7 @@ Use TWO buckets: a PRIVATE one for the data (journal backend) and a public one f
|
|
|
4
4
|
|
|
5
5
|
## Access key (least privilege)
|
|
6
6
|
|
|
7
|
-
- **AWS**: IAM user with a policy on both buckets: `s3:GetObject`, `s3:PutObject`, `s3:DeleteObject` on `arn:aws:s3:::<bucket>/*` and `s3:ListBucket` on `arn:aws:s3:::<bucket>`. Store it: `! npx -y @fleox-agent-crm/agentcrm@0.
|
|
7
|
+
- **AWS**: IAM user with a policy on both buckets: `s3:GetObject`, `s3:PutObject`, `s3:DeleteObject` on `arn:aws:s3:::<bucket>/*` and `s3:ListBucket` on `arn:aws:s3:::<bucket>`. Store it: `! npx -y @fleox-agent-crm/agentcrm@0.9.0 credentials set s3:main`, or import a profile with `--from-aws-profile <name>`.
|
|
8
8
|
- **Cloudflare R2**: R2 → Manage API tokens → Object Read & Write, scoped to the buckets. Endpoint `https://<account-id>.r2.cloudflarestorage.com`, region `auto`.
|
|
9
9
|
- **OVHcloud**: Public Cloud → Object Storage → S3 users; endpoint `https://s3.<region>.io.cloud.ovh.net`. Set `publicRead: true` on the hosting bucket.
|
|
10
10
|
- **Scaleway**: endpoint `https://s3.<region>.scw.cloud`.
|