phaibel 4.0.7 → 4.0.21
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 +229 -245
- package/dist/commands/chat.d.ts +5 -2
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +168 -172
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/cron.d.ts.map +1 -1
- package/dist/commands/cron.js +1 -0
- package/dist/commands/cron.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +54 -52
- package/dist/commands/init.js.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/entities/entity-summary.js +3 -3
- package/dist/entities/entity-type-config.d.ts +3 -0
- package/dist/entities/entity-type-config.d.ts.map +1 -1
- package/dist/entities/entity-type-config.js +67 -1
- package/dist/entities/entity-type-config.js.map +1 -1
- package/dist/entities/entity-types-defaults.d.ts.map +1 -1
- package/dist/entities/entity-types-defaults.js +2 -0
- package/dist/entities/entity-types-defaults.js.map +1 -1
- package/dist/entities/spawner.d.ts.map +1 -1
- package/dist/entities/spawner.js +4 -2
- package/dist/entities/spawner.js.map +1 -1
- package/dist/feral/catalog/entity-catalog-source.js +31 -31
- package/dist/feral/node-code/abstract-node-code.js +1 -1
- package/dist/feral/node-code/abstract-node-code.js.map +1 -1
- package/dist/feral/node-code/data/set-context-value-node-code.d.ts.map +1 -1
- package/dist/feral/node-code/data/set-context-value-node-code.js +10 -1
- package/dist/feral/node-code/data/set-context-value-node-code.js.map +1 -1
- package/dist/feral/node-code/entity/create-entity-type-node-code.js +20 -20
- package/dist/feral/node-code/entity/load-vault-context-node-code.d.ts.map +1 -1
- package/dist/feral/node-code/entity/load-vault-context-node-code.js +7 -15
- package/dist/feral/node-code/entity/load-vault-context-node-code.js.map +1 -1
- package/dist/feral/node-code/entity/update-entity-type-node-code.js +20 -20
- package/dist/feral/node-code/input/prompt-input-node-code.d.ts.map +1 -1
- package/dist/feral/node-code/input/prompt-input-node-code.js +6 -0
- package/dist/feral/node-code/input/prompt-input-node-code.js.map +1 -1
- package/dist/feral/node-code/input/prompt-select-node-code.d.ts.map +1 -1
- package/dist/feral/node-code/input/prompt-select-node-code.js +6 -0
- package/dist/feral/node-code/input/prompt-select-node-code.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -39
- package/dist/index.js.map +1 -1
- package/dist/llm/router.js +27 -27
- package/dist/personalities.js +4 -4
- package/dist/phaibel.txt +81 -81
- package/dist/service/api-router.d.ts.map +1 -1
- package/dist/service/api-router.js +42 -2
- package/dist/service/api-router.js.map +1 -1
- package/dist/service/cron/feedback-analysis.js +14 -14
- package/dist/service/cron/innovate.d.ts +2 -0
- package/dist/service/cron/innovate.d.ts.map +1 -0
- package/dist/service/cron/innovate.js +354 -0
- package/dist/service/cron/innovate.js.map +1 -0
- package/dist/service/cron/process-lifecycle.js +36 -36
- package/dist/service/cron/scheduler.d.ts.map +1 -1
- package/dist/service/cron/scheduler.js +8 -0
- package/dist/service/cron/scheduler.js.map +1 -1
- package/dist/service/index.d.ts.map +1 -1
- package/dist/service/index.js +27 -20
- package/dist/service/index.js.map +1 -1
- package/dist/service/web-client.html +1984 -1569
- package/dist/service/web-server.d.ts +1 -0
- package/dist/service/web-server.d.ts.map +1 -1
- package/dist/service/web-server.js +188 -6
- package/dist/service/web-server.js.map +1 -1
- package/dist/tools/daily.js +2 -2
- package/package.json +69 -66
- package/dist/agentary.txt +0 -82
- package/dist/commands/event.d.ts +0 -4
- package/dist/commands/event.d.ts.map +0 -1
- package/dist/commands/event.js +0 -515
- package/dist/commands/event.js.map +0 -1
- package/dist/commands/goal.d.ts +0 -4
- package/dist/commands/goal.d.ts.map +0 -1
- package/dist/commands/goal.js +0 -14
- package/dist/commands/goal.js.map +0 -1
- package/dist/commands/interview.d.ts +0 -14
- package/dist/commands/interview.d.ts.map +0 -1
- package/dist/commands/interview.js +0 -343
- package/dist/commands/interview.js.map +0 -1
- package/dist/commands/note.d.ts +0 -4
- package/dist/commands/note.d.ts.map +0 -1
- package/dist/commands/note.js +0 -548
- package/dist/commands/note.js.map +0 -1
- package/dist/commands/pamp.d.ts +0 -4
- package/dist/commands/pamp.d.ts.map +0 -1
- package/dist/commands/pamp.js +0 -323
- package/dist/commands/pamp.js.map +0 -1
- package/dist/commands/person.d.ts +0 -4
- package/dist/commands/person.d.ts.map +0 -1
- package/dist/commands/person.js +0 -185
- package/dist/commands/person.js.map +0 -1
- package/dist/commands/project.d.ts +0 -4
- package/dist/commands/project.d.ts.map +0 -1
- package/dist/commands/project.js +0 -70
- package/dist/commands/project.js.map +0 -1
- package/dist/commands/remember.d.ts +0 -4
- package/dist/commands/remember.d.ts.map +0 -1
- package/dist/commands/remember.js +0 -70
- package/dist/commands/remember.js.map +0 -1
- package/dist/commands/research.d.ts +0 -4
- package/dist/commands/research.d.ts.map +0 -1
- package/dist/commands/research.js +0 -14
- package/dist/commands/research.js.map +0 -1
- package/dist/commands/shell.d.ts +0 -3
- package/dist/commands/shell.d.ts.map +0 -1
- package/dist/commands/shell.js +0 -346
- package/dist/commands/shell.js.map +0 -1
- package/dist/commands/today.d.ts +0 -4
- package/dist/commands/today.d.ts.map +0 -1
- package/dist/commands/today.js +0 -112
- package/dist/commands/today.js.map +0 -1
- package/dist/commands/todo.d.ts +0 -4
- package/dist/commands/todo.d.ts.map +0 -1
- package/dist/commands/todo.js +0 -678
- package/dist/commands/todo.js.map +0 -1
- package/dist/commands/todont.d.ts +0 -19
- package/dist/commands/todont.d.ts.map +0 -1
- package/dist/commands/todont.js +0 -209
- package/dist/commands/todont.js.map +0 -1
- package/dist/commands/week.d.ts +0 -4
- package/dist/commands/week.d.ts.map +0 -1
- package/dist/commands/week.js +0 -267
- package/dist/commands/week.js.map +0 -1
- package/dist/dobbai.txt +0 -55
- package/dist/dobbi.txt +0 -55
- package/dist/dobbie-bundle.cjs +0 -73313
- package/dist/dobbie.txt +0 -55
- package/dist/feral/node-code/output/dobbai-speak-node-code.d.ts +0 -11
- package/dist/feral/node-code/output/dobbai-speak-node-code.d.ts.map +0 -1
- package/dist/feral/node-code/output/dobbai-speak-node-code.js +0 -56
- package/dist/feral/node-code/output/dobbai-speak-node-code.js.map +0 -1
- package/dist/feral/node-code/output/dobbi-speak-node-code.d.ts +0 -15
- package/dist/feral/node-code/output/dobbi-speak-node-code.d.ts.map +0 -1
- package/dist/feral/node-code/output/dobbi-speak-node-code.js +0 -60
- package/dist/feral/node-code/output/dobbi-speak-node-code.js.map +0 -1
- package/dist/feral/node-code/output/dobbie-speak-node-code.d.ts +0 -11
- package/dist/feral/node-code/output/dobbie-speak-node-code.d.ts.map +0 -1
- package/dist/feral/node-code/output/dobbie-speak-node-code.js +0 -56
- package/dist/feral/node-code/output/dobbie-speak-node-code.js.map +0 -1
- package/dist/service/cron/process-evaluator.d.ts +0 -6
- package/dist/service/cron/process-evaluator.d.ts.map +0 -1
- package/dist/service/cron/process-evaluator.js +0 -126
- package/dist/service/cron/process-evaluator.js.map +0 -1
- package/dist/tools/project.d.ts +0 -2
- package/dist/tools/project.d.ts.map +0 -1
- package/dist/tools/project.js +0 -112
- package/dist/tools/project.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,245 +1,229 @@
|
|
|
1
|
-
# Phaibel
|
|
2
|
-
|
|
3
|
-
An AI-powered personal assistant that
|
|
4
|
-
|
|
5
|
-
Choose from 4 personalities and name your agent to make it truly yours.
|
|
6
|
-
|
|
7
|
-
> **Requires an API key from [OpenAI](https://platform.openai.com) and/or [Anthropic](https://console.anthropic.com).**
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
___ __
|
|
11
|
-
@@@@@@%%%%%%%%%%%%%%%%%##############%%#######%%%%%%%%%%%%%%@@@@@@@@@@@%%#########*+*#+++=:::::::::-
|
|
12
|
-
@@@@@@@@%%%%%%%%%%%%#################%###********#######%%%@@@@@@%%####**##*+=-:::.:-+==+=::::::::::
|
|
13
|
-
@@@@@@@@@@@@%%%%%%%%%%%%%########***###**********###%%%%@@%%%%###*****+=-:::........-+====::::::::::
|
|
14
|
-
@@@@%*=+%@%%%%%%%%%%%%%%%%######****##******####%%%%%%%%#####*+++=-:::..............:+=-==::::::::::
|
|
15
|
-
@@@@@##%@@@%%%%%%%%%%%%%%%%%##########*+*#%%%%%%%%%##*****+=+==-:...................:+=-=-::::::::::
|
|
16
|
-
@@@@@@@@@@@@@@@@%%%%%%%%%%%%%#########++*%@%%%##***++=--::..:--::...................:=--=-::.:::::::
|
|
17
|
-
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%#+=+####***+-::........:--::...................:=--=-:::::----:
|
|
18
|
-
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%###%*==+*****+=-:.-*%%%%%%%##*-:...................:=---===++**+===
|
|
19
|
-
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*****=-=++===::=#%@@@@@@@%####%*=:............:::--++---==++***+===
|
|
20
|
-
|
|
21
|
-
@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%#*=--==-:-=--:=@@@@@@@@@@@@@%%##%@%%%*:......::-----=++-:-====+++=---
|
|
22
|
-
@@@@@%%%%%%%%%%%%%%%%%%%%%#%#%%#+---==-:---:-*@@@@@@@@%#*++====*%%%#*-......-------=++-:-==+++++=---
|
|
23
|
-
@@@@@@%%%%%%%%%%###############*=---==-:---::*@@@%#***++===-----*##*+-......:---====++-:-===++++=---
|
|
24
|
-
@@%%%%%%%%%%#############***###*=-:--=-::--::*@@##**++++++==----+****-......:---====*+-:-===++++=---
|
|
25
|
-
%%%%%%%%%%%############*******#*=:::--:::--::-%%###**++++==------=**#=:.....:----===+=::-====+++=-::
|
|
26
|
-
%%%%%%%%%%%#######*******++****+-:::--:::-::::-%##**++++++*###*=::=*==+.....:---====+=::-=====+==-::
|
|
27
|
-
%%%%%%%######*********++++++++*+-:::--:::-:::::=##%%@%#*+*%%@%#+=:-+=*=.....:------=+=::-====+++=-::
|
|
28
|
-
%%%%%#######*********+++++++++*+-:::--:::-::::-=%%%%@%%*-=+**+=--::--+=.....:---====+=::---===+==--:
|
|
29
|
-
%%%%%#######*******++++++++==+++-:::--:::-::::-+%##***#*-:--==-----:--:.....:------=+=::-====+++=---
|
|
30
|
-
%%%%%%%%%%####*****+++++++====+=-:::--:::-::::*%@%****#*-:-=+=------:.......:------=+=::---======--:
|
|
31
|
-
%%%%%@@%%%%###****++++++======+=-::::-:::-::-=**%@%***###+*====------......::------=+=::-=====++=---
|
|
32
|
-
%%%%%%@@@%%########**++=======+=::::--:::-=+*%@@@@@%###%##+++**=-===-......:-------=+=::---======---
|
|
33
|
-
@@@@@@@@@%%%%%%##*****++======+=::::--::-+++=++++@+#%%%%%%*+========-:.....:-----===+=::-====+++=---
|
|
34
|
-
%%%%%%%@@%%%%%%#*+++++++======+=::::--::+**###%@@%:-*%#####+==--=++=--.:...:-------=+=::--====++=---
|
|
35
|
-
%%%%%%@@@%%%%%%####**++=========::.::-:=**+=+***%%*::-*##**++=+*#*+=:..=*-.:-------=+=::---======---
|
|
36
|
-
%@@@@@@@@@@@@%%####**++===+***+=::.::-=++++#%@@@@%*:::-#%%%##****+-:..-%#%*--------=+=::--====+===--
|
|
37
|
-
@@@@@@@@@@@%%%%%%%#***++=+*##*+=::.::-**+=+%%@@@#+::::-*%%##***+-::::=%%%%%%#+=----=+=::---=======--
|
|
38
|
-
@@@@@@@@%%%%%%%%%%%#*+++++++++==-::::=*+=-+#%%@%+-:-+%%**####+--::::=%%%%%@@@@%%#*==+=::--========--
|
|
39
|
-
@%%@@@@@@@@%%%%#####*++==+*###*=-:::-=*+=-=+===+*#%@@@@**#%%*=-:::-=%@@%%@@@@@@@@%%%#+-:---=======--
|
|
40
|
-
%%%@%%%%@@%%%%##%####*+++*%@%%#+-:::-+*+==-=-==#@@@@@@@%@@@@%@%*=-=%%@@@@@@@@@@@@@@@@%%%%%*+========
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Quick Start
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
phaibel
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
|
98
|
-
|
|
99
|
-
| **
|
|
100
|
-
| **
|
|
101
|
-
| **
|
|
102
|
-
| **
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
phaibel
|
|
183
|
-
phaibel
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
- **Up/Down arrow** history
|
|
231
|
-
- **Natural language fallback** — anything that isn't a command gets routed to the AI chat
|
|
232
|
-
- **Vault context** — the LLM reads `.vault.md` for project-specific context
|
|
233
|
-
|
|
234
|
-
## Development
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
npm run dev # Run with tsx (hot reload)
|
|
238
|
-
npm test # Run unit tests
|
|
239
|
-
npm run test:all # Run all tests including integration
|
|
240
|
-
npm run build # Compile TypeScript to dist/
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
## License
|
|
244
|
-
|
|
245
|
-
MIT © [Clift Labs](https://github.com/clift-labs)
|
|
1
|
+
# Phaibel
|
|
2
|
+
|
|
3
|
+
An AI-powered personal assistant that manages your tasks, events, notes, goals, people, and more — all stored as plain Markdown files in a local "vault" folder.
|
|
4
|
+
|
|
5
|
+
Choose from 4 personalities and name your agent to make it truly yours.
|
|
6
|
+
|
|
7
|
+
> **Requires an API key from [OpenAI](https://platform.openai.com) and/or [Anthropic](https://console.anthropic.com).**
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
___ __
|
|
11
|
+
@@@@@@%%%%%%%%%%%%%%%%%##############%%#######%%%%%%%%%%%%%%@@@@@@@@@@@%%#########*+*#+++=:::::::::-
|
|
12
|
+
@@@@@@@@%%%%%%%%%%%%#################%###********#######%%%@@@@@@%%####**##*+=-:::.:-+==+=::::::::::
|
|
13
|
+
@@@@@@@@@@@@%%%%%%%%%%%%%########***###**********###%%%%@@%%%%###*****+=-:::........-+====::::::::::
|
|
14
|
+
@@@@%*=+%@%%%%%%%%%%%%%%%%######****##******####%%%%%%%%#####*+++=-:::..............:+=-==::::::::::
|
|
15
|
+
@@@@@##%@@@%%%%%%%%%%%%%%%%%##########*+*#%%%%%%%%%##*****+=+==-:...................:+=-=-::::::::::
|
|
16
|
+
@@@@@@@@@@@@@@@@%%%%%%%%%%%%%#########++*%@%%%##***++=--::..:--::...................:=--=-::.:::::::
|
|
17
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%#+=+####***+-::........:--::...................:=--=-:::::----:
|
|
18
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%###%*==+*****+=-:.-*%%%%%%%##*-:...................:=---===++**+===
|
|
19
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*****=-=++===::=#%@@@@@@@%####%*=:............:::--++---==++***+===
|
|
20
|
+
@@@@@@@@@@@@@@%%%%%%%%%%%%%%@%#+==++---==----#@@@@@@%@@@%%##%%%##=..........:---==++-:-==+++++==--
|
|
21
|
+
@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%#*=--==-:-=--:=@@@@@@@@@@@@@%%##%@%%%*:......::-----=++-:-====+++=---
|
|
22
|
+
@@@@@%%%%%%%%%%%%%%%%%%%%%#%#%%#+---==-:---:-*@@@@@@@@%#*++====*%%%#*-......-------=++-:-==+++++=---
|
|
23
|
+
@@@@@@%%%%%%%%%%###############*=---==-:---::*@@@%#***++===-----*##*+-......:---====++-:-===++++=---
|
|
24
|
+
@@%%%%%%%%%%#############***###*=-:--=-::--::*@@##**++++++==----+****-......:---====*+-:-===++++=---
|
|
25
|
+
%%%%%%%%%%%############*******#*=:::--:::--::-%%###**++++==------=**#=:.....:----===+=::-====+++=-::
|
|
26
|
+
%%%%%%%%%%%#######*******++****+-:::--:::-::::-%##**++++++*###*=::=*==+.....:---====+=::-=====+==-::
|
|
27
|
+
%%%%%%%######*********++++++++*+-:::--:::-:::::=##%%@%#*+*%%@%#+=:-+=*=.....:------=+=::-====+++=-::
|
|
28
|
+
%%%%%#######*********+++++++++*+-:::--:::-::::-=%%%%@%%*-=+**+=--::--+=.....:---====+=::---===+==--:
|
|
29
|
+
%%%%%#######*******++++++++==+++-:::--:::-::::-+%##***#*-:--==-----:--:.....:------=+=::-====+++=---
|
|
30
|
+
%%%%%%%%%%####*****+++++++====+=-:::--:::-::::*%@%****#*-:-=+=------:.......:------=+=::---======--:
|
|
31
|
+
%%%%%@@%%%%###****++++++======+=-::::-:::-::-=**%@%***###+*====------......::------=+=::-=====++=---
|
|
32
|
+
%%%%%%@@@%%########**++=======+=::::--:::-=+*%@@@@@%###%##+++**=-===-......:-------=+=::---======---
|
|
33
|
+
@@@@@@@@@%%%%%%##*****++======+=::::--::-+++=++++@+#%%%%%%*+========-:.....:-----===+=::-====+++=---
|
|
34
|
+
%%%%%%%@@%%%%%%#*+++++++======+=::::--::+**###%@@%:-*%#####+==--=++=--.:...:-------=+=::--====++=---
|
|
35
|
+
%%%%%%@@@%%%%%%####**++=========::.::-:=**+=+***%%*::-*##**++=+*#*+=:..=*-.:-------=+=::---======---
|
|
36
|
+
%@@@@@@@@@@@@%%####**++===+***+=::.::-=++++#%@@@@%*:::-#%%%##****+-:..-%#%*--------=+=::--====+===--
|
|
37
|
+
@@@@@@@@@@@%%%%%%%#***++=+*##*+=::.::-**+=+%%@@@#+::::-*%%##***+-::::=%%%%%%#+=----=+=::---=======--
|
|
38
|
+
@@@@@@@@%%%%%%%%%%%#*+++++++++==-::::=*+=-+#%%@%+-:-+%%**####+--::::=%%%%%@@@@%%#*==+=::--========--
|
|
39
|
+
@%%@@@@@@@@%%%%#####*++==+*###*=-:::-=*+=-=+===+*#%@@@@**#%%*=-:::-=%@@%%@@@@@@@@%%%#+-:---=======--
|
|
40
|
+
%%%@%%%%@@%%%%##%####*+++*%@%%#+-:::-+*+==-=-==#@@@@@@@%@@@@%@%*=-=%%@@@@@@@@@@@@@@@@%%%%%*+========
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Quick Start
|
|
44
|
+
|
|
45
|
+
### 1. Install
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Install globally
|
|
49
|
+
npm install -g phaibel
|
|
50
|
+
|
|
51
|
+
# Or build from source
|
|
52
|
+
git clone https://github.com/clift-labs/phaibel.git
|
|
53
|
+
cd phaibel
|
|
54
|
+
npm install
|
|
55
|
+
npm run build
|
|
56
|
+
npm link
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 2. Create a vault
|
|
60
|
+
|
|
61
|
+
Navigate to a directory where you want your data stored:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
mkdir my-vault && cd my-vault
|
|
65
|
+
phaibel init
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
This creates a `.vault.md` marker, entity directories (todos, events, notes, etc.), and prompts you to configure an AI provider API key.
|
|
69
|
+
|
|
70
|
+
### 3. Start the service
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
phaibel service start
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 4. Open the web client
|
|
77
|
+
|
|
78
|
+
Visit **http://localhost:3737** in your browser.
|
|
79
|
+
|
|
80
|
+
If this is a new vault, you'll see an onboarding wizard that walks you through:
|
|
81
|
+
|
|
82
|
+
1. **Personality** — choose how your agent communicates
|
|
83
|
+
2. **Identity** — name your agent and introduce yourself
|
|
84
|
+
3. **Profile** — optional context about your work, goals, and life
|
|
85
|
+
|
|
86
|
+
After onboarding, chat with your agent using natural language:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
remind me to call the dentist tomorrow
|
|
90
|
+
what's on my plate today?
|
|
91
|
+
create a goal to run a half marathon by June
|
|
92
|
+
add a note about the meeting with Sarah
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Personalities
|
|
96
|
+
|
|
97
|
+
| Personality | Style |
|
|
98
|
+
|-------------|-------|
|
|
99
|
+
| **British Butler** | Formal, composed, measured. "Very good, sir." |
|
|
100
|
+
| **Rock Star** | High-energy, irreverent, enthusiastic. "Let's shred this to-do list!" |
|
|
101
|
+
| **Executive Assistant** | Professional, crisp, efficient. "Done. Next item on your agenda." |
|
|
102
|
+
| **Friend** | Warm, casual, supportive peer. "Hey! I took care of that for you." |
|
|
103
|
+
|
|
104
|
+
## CLI Commands
|
|
105
|
+
|
|
106
|
+
The CLI is an admin toolkit for managing Phaibel. The web client at `http://localhost:3737` is the primary user interface.
|
|
107
|
+
|
|
108
|
+
Run `phaibel --help` to see all commands:
|
|
109
|
+
|
|
110
|
+
| Command | Description |
|
|
111
|
+
|---------|-------------|
|
|
112
|
+
| `phaibel init` | Create a new vault in the current directory |
|
|
113
|
+
| `phaibel config` | Manage API keys and LLM provider settings |
|
|
114
|
+
| `phaibel service start\|stop\|restart\|status` | Manage the background daemon |
|
|
115
|
+
| `phaibel queue status\|pause\|resume\|clear` | Inspect the task queue |
|
|
116
|
+
| `phaibel index stats\|rebuild\|graph\|neighbors` | Manage the entity relationship graph |
|
|
117
|
+
| `phaibel cron list\|enable\|disable\|run` | Manage scheduled background jobs |
|
|
118
|
+
| `phaibel feral` | Inspect the Feral CCF flow engine |
|
|
119
|
+
| `phaibel sync` | Git-based vault sync |
|
|
120
|
+
| `phaibel setup` | Update your name and preferences |
|
|
121
|
+
| `phaibel type list\|add\|edit\|remove` | Manage entity type schemas |
|
|
122
|
+
| `phaibel entity <type> [action]` | CRUD for any entity type |
|
|
123
|
+
| `phaibel skill` | Manage MCP skill servers |
|
|
124
|
+
| `phaibel tool <name> [input]` | Run a registered tool directly |
|
|
125
|
+
| `phaibel tools` | List all available tools |
|
|
126
|
+
|
|
127
|
+
## Content Types
|
|
128
|
+
|
|
129
|
+
| Type | Description |
|
|
130
|
+
|------|-------------|
|
|
131
|
+
| **todo** | Tasks with priority, status, and due dates |
|
|
132
|
+
| **event** | Calendar events with start/end times and locations |
|
|
133
|
+
| **note** | Freeform notes |
|
|
134
|
+
| **todont** | Things you're deliberately *not* doing |
|
|
135
|
+
|
|
136
|
+
Your agent creates new content types as needed — just ask it to track something new.
|
|
137
|
+
|
|
138
|
+
## How It Works
|
|
139
|
+
|
|
140
|
+
Phaibel **writes a unique software process for every request**. Instead of following rigid workflows, it dynamically assembles a process graph tailored to what you asked for.
|
|
141
|
+
|
|
142
|
+
This is powered by **Feral CCF** (Catalog-Code Framework):
|
|
143
|
+
|
|
144
|
+
- **NodeCode** — reusable logic blocks (e.g., "query todos", "format as markdown", "call LLM")
|
|
145
|
+
- **CatalogNodes** — configured instances with default settings
|
|
146
|
+
- **ProcessNodes** — nodes wired together into a directed graph for a specific request
|
|
147
|
+
|
|
148
|
+
The web UI visualizes the process created for each action so you can see exactly what happened.
|
|
149
|
+
|
|
150
|
+
## BYOK (Bring Your Own Key)
|
|
151
|
+
|
|
152
|
+
Your keys are stored locally in `~/.phaibel/secrets.json` and never leave your machine.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
phaibel config add-provider openai
|
|
156
|
+
phaibel config add-provider anthropic
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
When both providers are configured, Phaibel picks the best model for each task:
|
|
160
|
+
|
|
161
|
+
| Capability | What it does | OpenAI default | Anthropic default |
|
|
162
|
+
|------------|-------------|----------------|-------------------|
|
|
163
|
+
| reason | Complex thinking | gpt-4o | claude-opus-4-6 |
|
|
164
|
+
| chat | Conversation | gpt-4o | claude-sonnet-4-6 |
|
|
165
|
+
| summarize | Condensing info | gpt-4o-mini | claude-haiku-4-5 |
|
|
166
|
+
| categorize | Classification | gpt-4o-mini | claude-haiku-4-5 |
|
|
167
|
+
| format | Text formatting | gpt-4o-mini | claude-haiku-4-5 |
|
|
168
|
+
| embed | Vector embeddings | text-embedding-3-small | *(not supported)* |
|
|
169
|
+
|
|
170
|
+
Override any mapping:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
phaibel config set-capability reason anthropic claude-sonnet-4-6
|
|
174
|
+
phaibel config reset-capability reason
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Where Things Live
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
~/.phaibel/
|
|
181
|
+
secrets.json # API keys (never committed)
|
|
182
|
+
phaibel.pid # Daemon PID
|
|
183
|
+
phaibel.sock # Unix socket
|
|
184
|
+
|
|
185
|
+
your-vault/
|
|
186
|
+
.vault.md # Vault root context (read by the LLM)
|
|
187
|
+
.state.json # User profile (name, personality, agent name)
|
|
188
|
+
.phaibel/ # Vault-scoped config
|
|
189
|
+
config.json # LLM capability overrides
|
|
190
|
+
entity-types.json # Entity type definitions
|
|
191
|
+
logs/ # Chat session logs
|
|
192
|
+
processes/ # Saved Feral processes
|
|
193
|
+
todos/
|
|
194
|
+
events/
|
|
195
|
+
notes/
|
|
196
|
+
goals/
|
|
197
|
+
people/
|
|
198
|
+
recurrences/
|
|
199
|
+
todonts/
|
|
200
|
+
inbox/
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Every entity is a plain `.md` file. Edit them with any text editor, sync with Git, or back up however you like.
|
|
204
|
+
|
|
205
|
+
## Environment Variables
|
|
206
|
+
|
|
207
|
+
| Variable | Description |
|
|
208
|
+
|----------|-------------|
|
|
209
|
+
| `PHAIBEL_VAULT` | Override vault root path |
|
|
210
|
+
| `PHAIBEL_SERVICE=1` | Internal: marks the process as the daemon |
|
|
211
|
+
| `PHAIBEL_DEBUG=1` | Enable verbose debug output |
|
|
212
|
+
|
|
213
|
+
## Development
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
npm run dev # Run with tsx (hot reload)
|
|
217
|
+
npm test # Run unit tests
|
|
218
|
+
npm run test:all # Run all tests including integration
|
|
219
|
+
npm run build # Compile TypeScript to dist/
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Requirements
|
|
223
|
+
|
|
224
|
+
- Node.js >= 18
|
|
225
|
+
- An API key from OpenAI and/or Anthropic
|
|
226
|
+
|
|
227
|
+
## License
|
|
228
|
+
|
|
229
|
+
MIT © [Clift Labs](https://github.com/clift-labs)
|
package/dist/commands/chat.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
1
|
+
export interface ChatHistoryEntry {
|
|
2
|
+
role: 'user' | 'assistant';
|
|
3
|
+
content: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function feralChatHeadless(userInput: string, onStatus?: (status: string) => void, onProcess?: (processJson: Record<string, unknown>) => void, onQuestion?: (question: string, options?: string[]) => Promise<string>, onChatId?: (chatId: string) => void, history?: ChatHistoryEntry[]): Promise<string>;
|
|
3
6
|
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAiLA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACnB;AAmBD,wBAAsB,iBAAiB,CACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EACnC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAC1D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EACtE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EACnC,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAC7B,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|