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/dist/commands/pamp.js
DELETED
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
2
|
-
// CLI Command ā pamp
|
|
3
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
4
|
-
import { Command } from 'commander';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
import inquirer from 'inquirer';
|
|
7
|
-
import { getUserName, getUserHonorific } from '../state/manager.js';
|
|
8
|
-
import { PampClient } from '../pamp/client.js';
|
|
9
|
-
import { requireIdentity, loadIdentity, listContacts, listSessions, listMessages, loadMessage, loadThread, } from '../pamp/storage.js';
|
|
10
|
-
export const pampCommand = new Command('pamp')
|
|
11
|
-
.description('PAMP messaging ā exchange encrypted messages with other Phaibel instances');
|
|
12
|
-
// Default action ā show status if set up, otherwise hint at setup
|
|
13
|
-
pampCommand
|
|
14
|
-
.action(async () => {
|
|
15
|
-
const identity = await loadIdentity();
|
|
16
|
-
if (!identity) {
|
|
17
|
-
console.log(chalk.yellow(`PAMP not set up yet. Run ${chalk.bold('phaibel pamp setup')} to register a mailbox.`));
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
// Delegate to status
|
|
21
|
-
await showStatus();
|
|
22
|
-
});
|
|
23
|
-
// āā pamp setup āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
24
|
-
pampCommand
|
|
25
|
-
.command('setup')
|
|
26
|
-
.description('Register a mailbox at a Post Office')
|
|
27
|
-
.option('--post-office <url>', 'Post Office URL')
|
|
28
|
-
.option('--name <name>', 'Display name for mailbox')
|
|
29
|
-
.option('--id <id>', 'Preferred mailbox ID (8 chars, uppercase alphanumeric)')
|
|
30
|
-
.action(async (opts) => {
|
|
31
|
-
const hon = await getUserHonorific();
|
|
32
|
-
const existing = await loadIdentity();
|
|
33
|
-
if (existing) {
|
|
34
|
-
console.log(chalk.yellow(`Already registered as ${chalk.bold(existing.address)}, ${hon}.`));
|
|
35
|
-
console.log(chalk.gray('To re-register, remove ~/.phaibel/pamp/identity.json first.'));
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
let postOffice = opts.postOffice;
|
|
39
|
-
if (!postOffice) {
|
|
40
|
-
const answers = await inquirer.prompt([{
|
|
41
|
-
type: 'input',
|
|
42
|
-
name: 'postOffice',
|
|
43
|
-
message: 'Post Office URL:',
|
|
44
|
-
default: 'https://relay.phaibel.dev',
|
|
45
|
-
}]);
|
|
46
|
-
postOffice = answers.postOffice;
|
|
47
|
-
}
|
|
48
|
-
const userName = await getUserName();
|
|
49
|
-
let displayName = opts.name;
|
|
50
|
-
if (!displayName) {
|
|
51
|
-
const answers = await inquirer.prompt([{
|
|
52
|
-
type: 'input',
|
|
53
|
-
name: 'displayName',
|
|
54
|
-
message: 'Display name:',
|
|
55
|
-
default: `${userName}'s Agent`,
|
|
56
|
-
}]);
|
|
57
|
-
displayName = answers.displayName;
|
|
58
|
-
}
|
|
59
|
-
const preferredId = opts.id ?? undefined;
|
|
60
|
-
console.log(chalk.gray('Registering mailbox...'));
|
|
61
|
-
try {
|
|
62
|
-
const identity = await PampClient.register(postOffice, displayName, preferredId);
|
|
63
|
-
console.log(chalk.green(`\nRegistered successfully, ${hon}!`));
|
|
64
|
-
console.log(chalk.cyan(` Address: ${chalk.bold(identity.address)}`));
|
|
65
|
-
console.log(chalk.gray(` Mailbox: ${identity.mailboxId}`));
|
|
66
|
-
console.log(chalk.gray(` Post Office: ${identity.postOffice}`));
|
|
67
|
-
console.log(chalk.gray(` Registered: ${identity.registeredAt}`));
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
70
|
-
console.log(chalk.red(`Registration failed: ${err instanceof Error ? err.message : err}`));
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
// āā pamp status āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
74
|
-
pampCommand
|
|
75
|
-
.command('status')
|
|
76
|
-
.description('Show mailbox info, active agreements, unread count')
|
|
77
|
-
.action(showStatus);
|
|
78
|
-
async function showStatus() {
|
|
79
|
-
const hon = await getUserHonorific();
|
|
80
|
-
const identity = await requireIdentity();
|
|
81
|
-
const client = new PampClient(identity);
|
|
82
|
-
console.log(chalk.cyan(`\nPAMP Mailbox, ${hon}:\n`));
|
|
83
|
-
console.log(` ${chalk.bold('Address:')} ${identity.address}`);
|
|
84
|
-
console.log(` ${chalk.bold('Name:')} ${identity.displayName}`);
|
|
85
|
-
console.log(` ${chalk.bold('Registered:')} ${identity.registeredAt}`);
|
|
86
|
-
try {
|
|
87
|
-
const unread = await client.listMessages({ unread: true });
|
|
88
|
-
console.log(` ${chalk.bold('Unread:')} ${unread.length}`);
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
console.log(chalk.gray(' (Could not reach Post Office for unread count)'));
|
|
92
|
-
}
|
|
93
|
-
try {
|
|
94
|
-
const pending = await client.listPendingAgreements();
|
|
95
|
-
if (pending.length > 0) {
|
|
96
|
-
console.log(` ${chalk.bold('Pending:')} ${pending.length} agreement(s) waiting`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
// Silently skip
|
|
101
|
-
}
|
|
102
|
-
console.log('');
|
|
103
|
-
}
|
|
104
|
-
// āā pamp agree āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
105
|
-
pampCommand
|
|
106
|
-
.command('agree <address>')
|
|
107
|
-
.description('Initiate an agreement with another mailbox')
|
|
108
|
-
.option('--type <type>', 'Agreement type', 'bilateral')
|
|
109
|
-
.action(async (address, opts) => {
|
|
110
|
-
const hon = await getUserHonorific();
|
|
111
|
-
const identity = await requireIdentity();
|
|
112
|
-
const client = new PampClient(identity);
|
|
113
|
-
const type = opts.type;
|
|
114
|
-
console.log(chalk.gray(`Requesting ${type} agreement with ${address}...`));
|
|
115
|
-
try {
|
|
116
|
-
const agreement = await client.requestAgreement(address, type);
|
|
117
|
-
console.log(chalk.green(`\nAgreement requested, ${hon}!`));
|
|
118
|
-
console.log(chalk.gray(` ID: ${agreement.agreementId}`));
|
|
119
|
-
console.log(chalk.gray(` Status: ${agreement.status}`));
|
|
120
|
-
console.log(chalk.gray(' Waiting for the other party to accept.'));
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
console.log(chalk.red(`Failed: ${err instanceof Error ? err.message : err}`));
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
// āā pamp agreements āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
127
|
-
pampCommand
|
|
128
|
-
.command('agreements')
|
|
129
|
-
.alias('agr')
|
|
130
|
-
.description('List all agreements')
|
|
131
|
-
.action(async () => {
|
|
132
|
-
const contacts = await listContacts();
|
|
133
|
-
const sessions = await listSessions();
|
|
134
|
-
if (contacts.length === 0) {
|
|
135
|
-
console.log(chalk.yellow('No agreements yet.'));
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
console.log(chalk.cyan('\nAgreements:\n'));
|
|
139
|
-
for (const contact of contacts) {
|
|
140
|
-
const session = sessions.find(s => s.agreementId === contact.agreementId);
|
|
141
|
-
const status = session?.contactPublicKey ? chalk.green('active') : chalk.yellow('pending');
|
|
142
|
-
const name = contact.displayName ? ` (${contact.displayName})` : '';
|
|
143
|
-
console.log(` ${contact.address}${chalk.gray(name)}`);
|
|
144
|
-
console.log(chalk.gray(` Agreement: ${contact.agreementId} Status: ${status}`));
|
|
145
|
-
}
|
|
146
|
-
console.log('');
|
|
147
|
-
});
|
|
148
|
-
// āā pamp accept āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
149
|
-
pampCommand
|
|
150
|
-
.command('accept <agreement_id>')
|
|
151
|
-
.description('Accept a pending agreement')
|
|
152
|
-
.action(async (agreementId) => {
|
|
153
|
-
const hon = await getUserHonorific();
|
|
154
|
-
const identity = await requireIdentity();
|
|
155
|
-
const client = new PampClient(identity);
|
|
156
|
-
console.log(chalk.gray(`Accepting agreement ${agreementId}...`));
|
|
157
|
-
try {
|
|
158
|
-
const agreement = await client.acceptAgreement(agreementId);
|
|
159
|
-
console.log(chalk.green(`\nAgreement accepted, ${hon}!`));
|
|
160
|
-
console.log(chalk.gray(` With: ${agreement.initiator}`));
|
|
161
|
-
console.log(chalk.gray(` Type: ${agreement.type}`));
|
|
162
|
-
}
|
|
163
|
-
catch (err) {
|
|
164
|
-
console.log(chalk.red(`Failed: ${err instanceof Error ? err.message : err}`));
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
// āā pamp revoke āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
168
|
-
pampCommand
|
|
169
|
-
.command('revoke <agreement_id>')
|
|
170
|
-
.description('Revoke an agreement (permanent)')
|
|
171
|
-
.action(async (agreementId) => {
|
|
172
|
-
const hon = await getUserHonorific();
|
|
173
|
-
const identity = await requireIdentity();
|
|
174
|
-
const client = new PampClient(identity);
|
|
175
|
-
try {
|
|
176
|
-
await client.revokeAgreement(agreementId);
|
|
177
|
-
console.log(chalk.green(`Agreement ${agreementId} revoked, ${hon}.`));
|
|
178
|
-
}
|
|
179
|
-
catch (err) {
|
|
180
|
-
console.log(chalk.red(`Failed: ${err instanceof Error ? err.message : err}`));
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
// āā pamp send āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
184
|
-
pampCommand
|
|
185
|
-
.command('send <address> [message]')
|
|
186
|
-
.description('Send an encrypted message')
|
|
187
|
-
.option('--reply-to <msg_id>', 'Reply to a message (threading)')
|
|
188
|
-
.option('--content-type <type>', 'Content type', 'text/plain')
|
|
189
|
-
.action(async (address, message, opts) => {
|
|
190
|
-
const hon = await getUserHonorific();
|
|
191
|
-
const identity = await requireIdentity();
|
|
192
|
-
const client = new PampClient(identity);
|
|
193
|
-
let body = message ?? '';
|
|
194
|
-
if (!body) {
|
|
195
|
-
const answers = await inquirer.prompt([{
|
|
196
|
-
type: 'input',
|
|
197
|
-
name: 'body',
|
|
198
|
-
message: 'Message:',
|
|
199
|
-
}]);
|
|
200
|
-
body = answers.body;
|
|
201
|
-
}
|
|
202
|
-
console.log(chalk.gray('Sending...'));
|
|
203
|
-
try {
|
|
204
|
-
const msg = await client.sendMessage(address, body, opts.contentType, opts.replyTo);
|
|
205
|
-
console.log(chalk.green(`\nMessage sent, ${hon}!`));
|
|
206
|
-
console.log(chalk.gray(` ID: ${msg.header.message_id}`));
|
|
207
|
-
console.log(chalk.gray(` To: ${address}`));
|
|
208
|
-
}
|
|
209
|
-
catch (err) {
|
|
210
|
-
console.log(chalk.red(`Failed: ${err instanceof Error ? err.message : err}`));
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
// āā pamp inbox āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
214
|
-
pampCommand
|
|
215
|
-
.command('inbox')
|
|
216
|
-
.description('List received messages')
|
|
217
|
-
.option('--local', 'Show only locally stored messages')
|
|
218
|
-
.action(async (opts) => {
|
|
219
|
-
const identity = await requireIdentity();
|
|
220
|
-
if (opts.local) {
|
|
221
|
-
const messages = await listMessages('inbox');
|
|
222
|
-
displayMessageList(messages);
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
const client = new PampClient(identity);
|
|
226
|
-
try {
|
|
227
|
-
const headers = await client.listMessages();
|
|
228
|
-
if (headers.length === 0) {
|
|
229
|
-
console.log(chalk.yellow('\nInbox is empty.'));
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
console.log(chalk.cyan(`\nInbox (${headers.length} message(s)):\n`));
|
|
233
|
-
for (const h of headers) {
|
|
234
|
-
const read = h.read_at ? chalk.gray('read') : chalk.green('new');
|
|
235
|
-
const id = h.message_id.substring(0, 12);
|
|
236
|
-
console.log(` ${read} ${chalk.bold(id)} from ${h.from} ${chalk.gray(h.created_at)}`);
|
|
237
|
-
}
|
|
238
|
-
console.log('');
|
|
239
|
-
}
|
|
240
|
-
catch (err) {
|
|
241
|
-
console.log(chalk.red(`Failed to fetch inbox: ${err instanceof Error ? err.message : err}`));
|
|
242
|
-
// Fall back to local
|
|
243
|
-
const messages = await listMessages('inbox');
|
|
244
|
-
displayMessageList(messages);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
function displayMessageList(messages) {
|
|
248
|
-
if (messages.length === 0) {
|
|
249
|
-
console.log(chalk.yellow('\nNo messages.'));
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
console.log(chalk.cyan(`\nMessages (${messages.length}):\n`));
|
|
253
|
-
const sorted = [...messages].sort((a, b) => new Date(b.header.created_at).getTime() - new Date(a.header.created_at).getTime());
|
|
254
|
-
for (const msg of sorted) {
|
|
255
|
-
const read = msg.header.read_at ? chalk.gray('read') : chalk.green('new');
|
|
256
|
-
const id = msg.header.message_id.substring(0, 12);
|
|
257
|
-
console.log(` ${read} ${chalk.bold(id)} from ${msg.header.from} ${chalk.gray(msg.header.created_at)}`);
|
|
258
|
-
}
|
|
259
|
-
console.log('');
|
|
260
|
-
}
|
|
261
|
-
// āā pamp read āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
262
|
-
pampCommand
|
|
263
|
-
.command('read <msg_id>')
|
|
264
|
-
.description('Read and decrypt a message')
|
|
265
|
-
.action(async (msgId) => {
|
|
266
|
-
const identity = await requireIdentity();
|
|
267
|
-
const client = new PampClient(identity);
|
|
268
|
-
// Check local first
|
|
269
|
-
let message = await loadMessage(msgId, 'inbox');
|
|
270
|
-
if (!message) {
|
|
271
|
-
console.log(chalk.gray('Fetching from Post Office...'));
|
|
272
|
-
try {
|
|
273
|
-
message = await client.fetchAndDecryptMessage(msgId);
|
|
274
|
-
await client.markRead(msgId);
|
|
275
|
-
}
|
|
276
|
-
catch (err) {
|
|
277
|
-
console.log(chalk.red(`Failed: ${err instanceof Error ? err.message : err}`));
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
console.log(chalk.cyan('\nāā Message āāāāāāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
282
|
-
console.log(` ${chalk.bold('ID:')} ${message.header.message_id}`);
|
|
283
|
-
console.log(` ${chalk.bold('From:')} ${message.header.from}`);
|
|
284
|
-
console.log(` ${chalk.bold('To:')} ${message.header.to}`);
|
|
285
|
-
console.log(` ${chalk.bold('Date:')} ${message.header.created_at}`);
|
|
286
|
-
console.log(` ${chalk.bold('Type:')} ${message.header.content_type}`);
|
|
287
|
-
if (message.header.chain.length > 0) {
|
|
288
|
-
console.log(` ${chalk.bold('Chain:')} ${message.header.chain.join(' ā ')}`);
|
|
289
|
-
}
|
|
290
|
-
console.log(chalk.cyan('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
291
|
-
console.log(`\n${message.body}\n`);
|
|
292
|
-
});
|
|
293
|
-
// āā pamp thread āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
294
|
-
pampCommand
|
|
295
|
-
.command('thread <msg_id>')
|
|
296
|
-
.description('Show conversation thread')
|
|
297
|
-
.action(async (msgId) => {
|
|
298
|
-
const identity = await requireIdentity();
|
|
299
|
-
const messageIds = await loadThread(msgId);
|
|
300
|
-
if (!messageIds || messageIds.length === 0) {
|
|
301
|
-
console.log(chalk.yellow(`No thread found for ${msgId}.`));
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
console.log(chalk.cyan(`\nThread (${messageIds.length} message(s)):\n`));
|
|
305
|
-
for (const id of messageIds) {
|
|
306
|
-
const inboxMsg = await loadMessage(id, 'inbox');
|
|
307
|
-
const sentMsg = await loadMessage(id, 'sent');
|
|
308
|
-
const msg = inboxMsg ?? sentMsg;
|
|
309
|
-
if (!msg) {
|
|
310
|
-
console.log(chalk.gray(` ? ${id} (not found locally)`));
|
|
311
|
-
continue;
|
|
312
|
-
}
|
|
313
|
-
const isSent = msg.header.from === identity.address;
|
|
314
|
-
const arrow = isSent ? chalk.blue('ā') : chalk.green('ā');
|
|
315
|
-
const peer = isSent ? msg.header.to : msg.header.from;
|
|
316
|
-
const preview = msg.body.length > 80 ? msg.body.substring(0, 77) + '...' : msg.body;
|
|
317
|
-
console.log(` ${arrow} ${chalk.gray(msg.header.created_at)} ${peer}`);
|
|
318
|
-
console.log(` ${preview}`);
|
|
319
|
-
console.log('');
|
|
320
|
-
}
|
|
321
|
-
});
|
|
322
|
-
export default pampCommand;
|
|
323
|
-
//# sourceMappingURL=pamp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pamp.js","sourceRoot":"","sources":["../../src/commands/pamp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/commands/person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqJpC,eAAO,MAAM,aAAa,SAyFpB,CAAC;AAEP,eAAe,aAAa,CAAC"}
|
package/dist/commands/person.js
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import inquirer from 'inquirer';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import { getResponse } from '../responses.js';
|
|
6
|
-
import { createEntityMeta, ensureEntityDir, writeEntity, findEntityByTitle, trashEntity, entityFilename, } from '../entities/entity.js';
|
|
7
|
-
import { listEntities } from './list.js';
|
|
8
|
-
import { getEntityIndex } from '../entities/entity-index.js';
|
|
9
|
-
async function savePerson(state) {
|
|
10
|
-
const dir = await ensureEntityDir('person');
|
|
11
|
-
const meta = createEntityMeta('person', state.name, {
|
|
12
|
-
tags: state.tags,
|
|
13
|
-
});
|
|
14
|
-
const id = meta.id;
|
|
15
|
-
const filepath = state.filepath ?? path.join(dir, entityFilename(state.name, id));
|
|
16
|
-
const fullMeta = {
|
|
17
|
-
...meta,
|
|
18
|
-
id,
|
|
19
|
-
company: state.company || undefined,
|
|
20
|
-
group: state.group || undefined,
|
|
21
|
-
phone: state.phone || undefined,
|
|
22
|
-
email: state.email || undefined,
|
|
23
|
-
handle: state.handle || undefined,
|
|
24
|
-
};
|
|
25
|
-
await writeEntity(filepath, fullMeta, state.content);
|
|
26
|
-
// Update entity index
|
|
27
|
-
const index = getEntityIndex();
|
|
28
|
-
if (index.isBuilt) {
|
|
29
|
-
await index.addOrUpdate('person', id, state.name, filepath);
|
|
30
|
-
}
|
|
31
|
-
return filepath;
|
|
32
|
-
}
|
|
33
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
34
|
-
// EDIT
|
|
35
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
36
|
-
async function editPerson(titleOrFilename) {
|
|
37
|
-
const found = await findEntityByTitle('person', titleOrFilename);
|
|
38
|
-
if (!found) {
|
|
39
|
-
console.log(chalk.red(`Person not found: ${titleOrFilename}`));
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const { filepath, meta, content } = found;
|
|
43
|
-
const answers = await inquirer.prompt([
|
|
44
|
-
{ type: 'input', name: 'name', message: 'Name:', default: meta.title },
|
|
45
|
-
{ type: 'input', name: 'company', message: 'Company:', default: meta.company ?? '' },
|
|
46
|
-
{ type: 'input', name: 'group', message: 'Group:', default: meta.group ?? '' },
|
|
47
|
-
{ type: 'input', name: 'phone', message: 'Phone:', default: meta.phone ?? '' },
|
|
48
|
-
{ type: 'input', name: 'email', message: 'Email:', default: meta.email ?? '' },
|
|
49
|
-
{ type: 'input', name: 'handle', message: 'Handle (@):', default: meta.handle ?? '' },
|
|
50
|
-
{ type: 'input', name: 'tags', message: 'Tags (comma-separated):', default: Array.isArray(meta.tags) ? meta.tags.join(', ') : '' },
|
|
51
|
-
{ type: 'editor', name: 'content', message: 'Notes about this person:', default: content },
|
|
52
|
-
]);
|
|
53
|
-
const updatedMeta = {
|
|
54
|
-
...meta,
|
|
55
|
-
title: answers.name,
|
|
56
|
-
company: answers.company || undefined,
|
|
57
|
-
group: answers.group || undefined,
|
|
58
|
-
phone: answers.phone || undefined,
|
|
59
|
-
email: answers.email || undefined,
|
|
60
|
-
handle: answers.handle || undefined,
|
|
61
|
-
tags: answers.tags ? answers.tags.split(',').map((t) => t.trim()).filter(Boolean) : [],
|
|
62
|
-
};
|
|
63
|
-
await writeEntity(filepath, updatedMeta, answers.content);
|
|
64
|
-
// Update entity index
|
|
65
|
-
const index = getEntityIndex();
|
|
66
|
-
if (index.isBuilt) {
|
|
67
|
-
const personId = updatedMeta.id;
|
|
68
|
-
await index.addOrUpdate('person', personId, answers.name, filepath);
|
|
69
|
-
}
|
|
70
|
-
console.log(chalk.green(`\nā Person updated: ${answers.name}`));
|
|
71
|
-
}
|
|
72
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
73
|
-
// DELETE
|
|
74
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
75
|
-
async function deletePerson(titleOrFilename) {
|
|
76
|
-
const found = await findEntityByTitle('person', titleOrFilename);
|
|
77
|
-
if (!found) {
|
|
78
|
-
console.log(chalk.red(`Person not found: ${titleOrFilename}`));
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const { confirm } = await inquirer.prompt([{
|
|
82
|
-
type: 'confirm',
|
|
83
|
-
name: 'confirm',
|
|
84
|
-
message: `Delete "${found.meta.title}"?`,
|
|
85
|
-
default: false,
|
|
86
|
-
}]);
|
|
87
|
-
if (confirm) {
|
|
88
|
-
const trashPath = await trashEntity(found.filepath);
|
|
89
|
-
// Update entity index
|
|
90
|
-
const index = getEntityIndex();
|
|
91
|
-
if (index.isBuilt) {
|
|
92
|
-
index.remove('person', found.meta.id);
|
|
93
|
-
}
|
|
94
|
-
console.log(chalk.green(`š Moved to trash: ${found.meta.title}`));
|
|
95
|
-
console.log(chalk.gray(` ${trashPath}`));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
99
|
-
// COMMAND
|
|
100
|
-
// āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
101
|
-
export const personCommand = new Command('person')
|
|
102
|
-
.description('Manage people / contacts')
|
|
103
|
-
.argument('[action]', 'Action: create (default), list, edit, delete')
|
|
104
|
-
.argument('[name...]', 'Person name or identifier')
|
|
105
|
-
.action(async (action, nameWords) => {
|
|
106
|
-
try {
|
|
107
|
-
// Route to subcommands
|
|
108
|
-
if (action === 'list') {
|
|
109
|
-
await listEntities('people');
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (action === 'edit') {
|
|
113
|
-
const name = nameWords?.join(' ');
|
|
114
|
-
if (!name) {
|
|
115
|
-
console.log(chalk.red('Please provide a name: person edit <name>'));
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
await editPerson(name);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (action === 'delete' || action === 'remove') {
|
|
122
|
-
const name = nameWords?.join(' ');
|
|
123
|
-
if (!name) {
|
|
124
|
-
console.log(chalk.red('Please provide a name: person delete <name>'));
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
await deletePerson(name);
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
// āā Create (default action) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
131
|
-
let personName = action;
|
|
132
|
-
if (nameWords && nameWords.length > 0 && action && action !== 'create') {
|
|
133
|
-
personName = [action, ...nameWords].join(' ');
|
|
134
|
-
}
|
|
135
|
-
else if (action === 'create') {
|
|
136
|
-
personName = nameWords?.join(' ') || undefined;
|
|
137
|
-
}
|
|
138
|
-
if (!personName) {
|
|
139
|
-
const { inputName } = await inquirer.prompt([{
|
|
140
|
-
type: 'input',
|
|
141
|
-
name: 'inputName',
|
|
142
|
-
message: 'Person\'s name:',
|
|
143
|
-
validate: (input) => input.trim().length > 0 || 'Name is required',
|
|
144
|
-
}]);
|
|
145
|
-
personName = inputName;
|
|
146
|
-
}
|
|
147
|
-
// Check if person already exists
|
|
148
|
-
const existing = await findEntityByTitle('person', personName);
|
|
149
|
-
if (existing) {
|
|
150
|
-
console.log(chalk.yellow(`\nPerson "${existing.meta.title}" already exists. Use 'person edit ${personName}' to update.`));
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
// Prompt for fields
|
|
154
|
-
const answers = await inquirer.prompt([
|
|
155
|
-
{ type: 'input', name: 'company', message: 'Company:' },
|
|
156
|
-
{ type: 'input', name: 'group', message: 'Group/Team:' },
|
|
157
|
-
{ type: 'input', name: 'phone', message: 'Phone:' },
|
|
158
|
-
{ type: 'input', name: 'email', message: 'Email:' },
|
|
159
|
-
{ type: 'input', name: 'handle', message: 'Handle (@ Slack/Teams):' },
|
|
160
|
-
{ type: 'input', name: 'tags', message: 'Tags (comma-separated):' },
|
|
161
|
-
{ type: 'input', name: 'content', message: 'Notes (optional):' },
|
|
162
|
-
]);
|
|
163
|
-
const state = {
|
|
164
|
-
name: personName,
|
|
165
|
-
company: answers.company,
|
|
166
|
-
group: answers.group,
|
|
167
|
-
phone: answers.phone,
|
|
168
|
-
email: answers.email,
|
|
169
|
-
handle: answers.handle,
|
|
170
|
-
tags: answers.tags ? answers.tags.split(',').map((t) => t.trim()).filter(Boolean) : [],
|
|
171
|
-
content: answers.content || '',
|
|
172
|
-
isExisting: false,
|
|
173
|
-
};
|
|
174
|
-
const filepath = await savePerson(state);
|
|
175
|
-
const msg = getResponse('task_saved');
|
|
176
|
-
console.log(chalk.green(`\n${msg}`));
|
|
177
|
-
console.log(chalk.gray(` š¤ ${personName} ā ${path.basename(filepath)}`));
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
const errMsg = getResponse('error');
|
|
181
|
-
console.error(chalk.red(`\n${errMsg}`), error);
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
export default personCommand;
|
|
185
|
-
//# sourceMappingURL=person.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/commands/person.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,cAAc,SACQ,CAAC;AAyEpC,eAAe,cAAc,CAAC"}
|
package/dist/commands/project.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { getActiveProject, setActiveProject, listProjects, createProject, projectExists, } from '../state/manager.js';
|
|
4
|
-
export const projectCommand = new Command('project')
|
|
5
|
-
.description('Manage projects');
|
|
6
|
-
// Default action - show current project
|
|
7
|
-
projectCommand
|
|
8
|
-
.action(async () => {
|
|
9
|
-
const active = await getActiveProject();
|
|
10
|
-
if (active) {
|
|
11
|
-
console.log(chalk.cyan(`šÆ Active project: ${chalk.bold(active)}`));
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
console.log(chalk.yellow('No active project, sir. Use `dobbi project switch <name>` to set one.'));
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
// List projects
|
|
18
|
-
projectCommand
|
|
19
|
-
.command('list')
|
|
20
|
-
.alias('ls')
|
|
21
|
-
.description('List all projects')
|
|
22
|
-
.action(async () => {
|
|
23
|
-
const projects = await listProjects();
|
|
24
|
-
const active = await getActiveProject();
|
|
25
|
-
if (projects.length === 0) {
|
|
26
|
-
console.log(chalk.yellow('No projects yet, sir. Create one with `dobbi project new <name>`'));
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
console.log(chalk.cyan('\nš Projects:\n'));
|
|
30
|
-
for (const project of projects) {
|
|
31
|
-
if (project === active) {
|
|
32
|
-
console.log(chalk.green(` ā ${project} (active)`));
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
console.log(chalk.gray(` ā ${project}`));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
console.log('');
|
|
39
|
-
});
|
|
40
|
-
// Switch project
|
|
41
|
-
projectCommand
|
|
42
|
-
.command('switch <name>')
|
|
43
|
-
.description('Switch to a project')
|
|
44
|
-
.action(async (name) => {
|
|
45
|
-
const exists = await projectExists(name);
|
|
46
|
-
if (!exists) {
|
|
47
|
-
console.log(chalk.red(`Project "${name}" does not exist, sir.`));
|
|
48
|
-
console.log(chalk.gray(`Create it with: dobbi project new ${name}`));
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
await setActiveProject(name);
|
|
52
|
-
console.log(chalk.green(`ā Switched to project "${name}", sir!`));
|
|
53
|
-
});
|
|
54
|
-
// Create new project
|
|
55
|
-
projectCommand
|
|
56
|
-
.command('new <name>')
|
|
57
|
-
.description('Create a new project')
|
|
58
|
-
.action(async (name) => {
|
|
59
|
-
const exists = await projectExists(name);
|
|
60
|
-
if (exists) {
|
|
61
|
-
console.log(chalk.yellow(`Project "${name}" already exists, sir.`));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
console.log(chalk.gray(`Creating project "${name}"...`));
|
|
65
|
-
await createProject(name);
|
|
66
|
-
await setActiveProject(name);
|
|
67
|
-
console.log(chalk.green(`ā Created and switched to project "${name}", sir!`));
|
|
68
|
-
});
|
|
69
|
-
export default projectCommand;
|
|
70
|
-
//# sourceMappingURL=project.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"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"}
|