@aman_asmuei/aman 0.1.0 → 0.1.1

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.
Files changed (3) hide show
  1. package/README.md +62 -26
  2. package/dist/index.js +59 -5
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  ### Your complete AI companion.
11
11
 
12
- Identity + Memory + Tools — one command, any AI.
12
+ Identity + Memory + Tools + Workflows + Guardrails + Evaluation — one command, any AI.
13
13
 
14
14
  <br>
15
15
 
@@ -31,16 +31,14 @@ Sets up your complete AI ecosystem:
31
31
  ```
32
32
  ◆ aman — your complete AI companion
33
33
 
34
- Created ~/.acore/core.md (identity)
35
- ✔ Memory: run npx @aman_asmuei/amem to add automated memory
36
- ✔ Tools: run npx @aman_asmuei/akit add github to add capabilities
34
+ Identity: created ~/.acore/core.md
35
+ ✔ Memory: run npx @aman_asmuei/amem to enable
36
+ ✔ Tools: run npx @aman_asmuei/akit add github
37
+ ✔ Workflows: run npx @aman_asmuei/aflow init
38
+ ✔ Guardrails: run npx @aman_asmuei/arules init
39
+ ✔ Evaluation: run npx @aman_asmuei/aeval init
37
40
 
38
41
  ✔ Your AI companion is ready.
39
-
40
- aman status See your full ecosystem
41
- acore customize Change personality
42
- akit add <tool> Add tools
43
- npx @aman_asmuei/amem Enable automated memory
44
42
  ```
45
43
 
46
44
  ---
@@ -49,17 +47,23 @@ Sets up your complete AI ecosystem:
49
47
 
50
48
  ```
51
49
  aman
52
- ├── acore → identity → who your AI IS
53
- ├── amem → memory → what your AI KNOWS
54
- └── akit → tools → what your AI CAN DO
50
+ ├── acore → identity → who your AI IS
51
+ ├── amem → memory → what your AI KNOWS
52
+ ├── akit → tools → what your AI CAN DO
53
+ ├── aflow → workflows → HOW your AI works
54
+ ├── arules → guardrails → what your AI WON'T do
55
+ └── aeval → evaluation → how GOOD your AI is
55
56
  ```
56
57
 
57
58
  | Layer | Package | What it does |
58
59
  |:------|:--------|:-------------|
59
60
  | Identity | [acore](https://github.com/amanasmuei/acore) | Personality, values, relationship memory |
60
61
  | Memory | [amem](https://github.com/amanasmuei/amem) | Automated knowledge storage (MCP) |
61
- | Tools | [akit](https://github.com/amanasmuei/akit) | Portable AI capabilities (MCP + manual) |
62
- | **Unified** | **aman** | **One command to set up everything** |
62
+ | Tools | [akit](https://github.com/amanasmuei/akit) | 15 portable AI tools (MCP + manual fallback) |
63
+ | Workflows | [aflow](https://github.com/amanasmuei/aflow) | Reusable AI workflows (code review, bug fix, etc.) |
64
+ | Guardrails | [arules](https://github.com/amanasmuei/arules) | Safety boundaries and permissions |
65
+ | Evaluation | [aeval](https://github.com/amanasmuei/aeval) | Relationship tracking and session logging |
66
+ | **Unified** | **[aman](https://github.com/amanasmuei/aman)** | **One command to set up everything** |
63
67
 
64
68
  Each package works independently. `aman` is the front door.
65
69
 
@@ -70,18 +74,22 @@ Each package works independently. `aman` is the front door.
70
74
  | Command | What it does |
71
75
  |:--------|:------------|
72
76
  | `aman` | First run: setup. After that: show status |
73
- | `aman setup` | Set up identity + memory + tools |
74
- | `aman status` | View your full ecosystem status |
77
+ | `aman setup` | Set up the full ecosystem |
78
+ | `aman status` | View ecosystem status (all 6 layers) |
75
79
 
76
80
  After setup, use the individual CLIs for detailed management:
77
81
 
78
82
  ```bash
79
83
  acore customize # change AI personality
80
- acore show # view identity
84
+ acore doctor # health check identity
81
85
  akit add github # add tools
82
86
  akit search database # find tools
83
- acore doctor # health check identity
84
- akit doctor # health check tools
87
+ aflow init # set up AI workflows
88
+ aflow list # view workflows
89
+ arules init # set up guardrails
90
+ arules add Coding # add a coding rule
91
+ aeval log # log a session
92
+ aeval report # view relationship report
85
93
  ```
86
94
 
87
95
  ---
@@ -93,19 +101,47 @@ $ aman status
93
101
 
94
102
  ◆ aman — ecosystem status
95
103
 
96
- ✔ Identity: Companion + Aman
97
- ✔ Memory: amem connected (automated)
98
- ✔ Tools: 3 installed
99
- Platform: Claude Code (auto-save + MCP)
104
+ ✔ Identity: Companion + Aman
105
+ ✔ Memory: amem connected (automated)
106
+ ✔ Tools: 3 installed
107
+ Workflows: 4 defined
108
+ ✔ Guardrails: 24 rules
109
+ ✔ Evaluation: 12 sessions tracked
110
+ ✔ Platform: Claude Code (auto-save + MCP)
111
+
112
+ Ecosystem: Complete ecosystem (6/6 layers active)
113
+ ```
114
+
115
+ ---
116
+
117
+ ## How It All Connects
100
118
 
101
- Ecosystem: Complete ecosystem (3/3 layers active)
119
+ Every layer is a markdown file. acore auto-injects all of them into your AI's system prompt:
120
+
121
+ ```
122
+ CLAUDE.md / .cursorrules / .windsurfrules
123
+ ├── core.md (identity — acore)
124
+ ├── context.md (project — acore)
125
+ ├── kit.md (tools — akit)
126
+ ├── flow.md (workflows — aflow)
127
+ └── rules.md (guardrails — arules)
102
128
  ```
103
129
 
130
+ Your AI reads these files and behaves accordingly. Switch platforms? Bring your files.
131
+
132
+ ---
133
+
134
+ ## Not a Developer?
135
+
136
+ Generate your AI identity from a browser — no terminal needed:
137
+
138
+ https://amanasmuei.github.io/acore/
139
+
104
140
  ---
105
141
 
106
142
  ## Works With
107
143
 
108
- ChatGPT, Claude, Claude Code, Cursor, Windsurf, Gemini, and any AI that accepts a system prompt.
144
+ ChatGPT, Claude, Claude Code, Cursor, Windsurf, Gemini, Ollama, and any AI that accepts a system prompt.
109
145
 
110
146
  ## License
111
147
 
@@ -115,6 +151,6 @@ ChatGPT, Claude, Claude Code, Cursor, Windsurf, Gemini, and any AI that accepts
115
151
 
116
152
  <div align="center">
117
153
 
118
- **One command. Complete AI companion. Any platform.**
154
+ **One command. 6 layers. Any AI. Your companion.**
119
155
 
120
156
  </div>
package/dist/index.js CHANGED
@@ -104,10 +104,41 @@ function detectEcosystem() {
104
104
  }
105
105
  }
106
106
  }
107
+ const aflowPath = path.join(home, ".aflow", "flow.md");
108
+ let aflowWorkflowCount = 0;
109
+ if (fs.existsSync(aflowPath)) {
110
+ try {
111
+ const content = fs.readFileSync(aflowPath, "utf-8");
112
+ aflowWorkflowCount = (content.match(/^## /gm) || []).length;
113
+ } catch {
114
+ }
115
+ }
116
+ const arulesPath = path.join(home, ".arules", "rules.md");
117
+ let arulesRuleCount = 0;
118
+ if (fs.existsSync(arulesPath)) {
119
+ try {
120
+ const content = fs.readFileSync(arulesPath, "utf-8");
121
+ arulesRuleCount = (content.match(/^- /gm) || []).length;
122
+ } catch {
123
+ }
124
+ }
125
+ const aevalPath = path.join(home, ".aeval", "eval.md");
126
+ let aevalSessions = 0;
127
+ if (fs.existsSync(aevalPath)) {
128
+ try {
129
+ const content = fs.readFileSync(aevalPath, "utf-8");
130
+ const match = content.match(/- Sessions: (\d+)/);
131
+ aevalSessions = match ? parseInt(match[1], 10) : 0;
132
+ } catch {
133
+ }
134
+ }
107
135
  return {
108
136
  acore: { installed: fs.existsSync(acorePath), path: acorePath },
109
137
  amem: { installed: amemInstalled },
110
- akit: { installed: fs.existsSync(akitPath), path: akitPath, toolCount: akitToolCount }
138
+ akit: { installed: fs.existsSync(akitPath), path: akitPath, toolCount: akitToolCount },
139
+ aflow: { installed: fs.existsSync(aflowPath), path: aflowPath, workflowCount: aflowWorkflowCount },
140
+ arules: { installed: fs.existsSync(arulesPath), path: arulesPath, ruleCount: arulesRuleCount },
141
+ aeval: { installed: fs.existsSync(aevalPath), path: aevalPath, sessions: aevalSessions }
111
142
  };
112
143
  }
113
144
 
@@ -350,6 +381,11 @@ async function setupCommand() {
350
381
  } else {
351
382
  p.log.info(`Tools: run ${pc.bold("npx @aman_asmuei/akit add github")} to add capabilities`);
352
383
  }
384
+ if (ecosystem.aflow.installed) {
385
+ p.log.success(`Workflows: ${ecosystem.aflow.workflowCount} defined`);
386
+ } else {
387
+ p.log.info(`Workflows: run ${pc.bold("npx @aman_asmuei/aflow init")} to add AI workflows`);
388
+ }
353
389
  const card = [
354
390
  "",
355
391
  ` ${pc.green("\u2714")} Your AI companion is ready.`,
@@ -390,6 +426,21 @@ function statusCommand() {
390
426
  } else {
391
427
  p2.log.warning(`Tools: none \u2014 ${pc2.dim("npx @aman_asmuei/akit add github")}`);
392
428
  }
429
+ if (ecosystem.aflow.installed) {
430
+ p2.log.success(`Workflows: ${ecosystem.aflow.workflowCount} defined \u2014 ${pc2.dim("aflow list for details")}`);
431
+ } else {
432
+ p2.log.warning(`Workflows: none \u2014 ${pc2.dim("npx @aman_asmuei/aflow init")}`);
433
+ }
434
+ if (ecosystem.arules.installed) {
435
+ p2.log.success(`Guardrails: ${ecosystem.arules.ruleCount} rules defined \u2014 ${pc2.dim("arules list for details")}`);
436
+ } else {
437
+ p2.log.warning(`Guardrails: none \u2014 ${pc2.dim("npx @aman_asmuei/arules init")}`);
438
+ }
439
+ if (ecosystem.aeval.installed) {
440
+ p2.log.success(`Evaluation: ${ecosystem.aeval.sessions} sessions tracked \u2014 ${pc2.dim("aeval report")}`);
441
+ } else {
442
+ p2.log.warning(`Evaluation: not tracking \u2014 ${pc2.dim("npx @aman_asmuei/aeval init")}`);
443
+ }
393
444
  const platformLabels = {
394
445
  "claude-code": "Claude Code",
395
446
  cursor: "Cursor",
@@ -406,16 +457,19 @@ function statusCommand() {
406
457
  if (ecosystem.acore.installed) score += 1;
407
458
  if (ecosystem.amem.installed) score += 1;
408
459
  if (ecosystem.akit.installed) score += 1;
409
- const levels = ["Not started", "Getting started", "Growing", "Complete ecosystem"];
410
- const colors = [pc2.red, pc2.yellow, pc2.cyan, pc2.green];
460
+ if (ecosystem.aflow.installed) score += 1;
461
+ if (ecosystem.arules.installed) score += 1;
462
+ if (ecosystem.aeval.installed) score += 1;
463
+ const levels = ["Not started", "Getting started", "Growing", "Building", "Strong", "Advanced", "Complete ecosystem"];
464
+ const colors = [pc2.red, pc2.red, pc2.yellow, pc2.yellow, pc2.cyan, pc2.cyan, pc2.green];
411
465
  p2.log.message("");
412
- p2.log.info(`Ecosystem: ${colors[score](levels[score])} (${score}/3 layers active)`);
466
+ p2.log.info(`Ecosystem: ${colors[score](levels[score])} (${score}/6 layers active)`);
413
467
  p2.outro("");
414
468
  }
415
469
 
416
470
  // src/index.ts
417
471
  var program = new Command();
418
- program.name("aman").description("Your complete AI companion \u2014 identity, memory, and tools in one command").version("0.1.0").action(() => {
472
+ program.name("aman").description("Your complete AI companion \u2014 identity, memory, and tools in one command").version("0.1.1").action(() => {
419
473
  const ecosystem = detectEcosystem();
420
474
  if (ecosystem.acore.installed) {
421
475
  statusCommand();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aman_asmuei/aman",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Your complete AI companion — identity, memory, and tools in one command",
5
5
  "type": "module",
6
6
  "bin": {