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.
Files changed (150) hide show
  1. package/README.md +229 -245
  2. package/dist/commands/chat.d.ts +5 -2
  3. package/dist/commands/chat.d.ts.map +1 -1
  4. package/dist/commands/chat.js +168 -172
  5. package/dist/commands/chat.js.map +1 -1
  6. package/dist/commands/cron.d.ts.map +1 -1
  7. package/dist/commands/cron.js +1 -0
  8. package/dist/commands/cron.js.map +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +54 -52
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/config.js +2 -2
  13. package/dist/config.js.map +1 -1
  14. package/dist/entities/entity-summary.js +3 -3
  15. package/dist/entities/entity-type-config.d.ts +3 -0
  16. package/dist/entities/entity-type-config.d.ts.map +1 -1
  17. package/dist/entities/entity-type-config.js +67 -1
  18. package/dist/entities/entity-type-config.js.map +1 -1
  19. package/dist/entities/entity-types-defaults.d.ts.map +1 -1
  20. package/dist/entities/entity-types-defaults.js +2 -0
  21. package/dist/entities/entity-types-defaults.js.map +1 -1
  22. package/dist/entities/spawner.d.ts.map +1 -1
  23. package/dist/entities/spawner.js +4 -2
  24. package/dist/entities/spawner.js.map +1 -1
  25. package/dist/feral/catalog/entity-catalog-source.js +31 -31
  26. package/dist/feral/node-code/abstract-node-code.js +1 -1
  27. package/dist/feral/node-code/abstract-node-code.js.map +1 -1
  28. package/dist/feral/node-code/data/set-context-value-node-code.d.ts.map +1 -1
  29. package/dist/feral/node-code/data/set-context-value-node-code.js +10 -1
  30. package/dist/feral/node-code/data/set-context-value-node-code.js.map +1 -1
  31. package/dist/feral/node-code/entity/create-entity-type-node-code.js +20 -20
  32. package/dist/feral/node-code/entity/load-vault-context-node-code.d.ts.map +1 -1
  33. package/dist/feral/node-code/entity/load-vault-context-node-code.js +7 -15
  34. package/dist/feral/node-code/entity/load-vault-context-node-code.js.map +1 -1
  35. package/dist/feral/node-code/entity/update-entity-type-node-code.js +20 -20
  36. package/dist/feral/node-code/input/prompt-input-node-code.d.ts.map +1 -1
  37. package/dist/feral/node-code/input/prompt-input-node-code.js +6 -0
  38. package/dist/feral/node-code/input/prompt-input-node-code.js.map +1 -1
  39. package/dist/feral/node-code/input/prompt-select-node-code.d.ts.map +1 -1
  40. package/dist/feral/node-code/input/prompt-select-node-code.js +6 -0
  41. package/dist/feral/node-code/input/prompt-select-node-code.js.map +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +5 -39
  44. package/dist/index.js.map +1 -1
  45. package/dist/llm/router.js +27 -27
  46. package/dist/personalities.js +4 -4
  47. package/dist/phaibel.txt +81 -81
  48. package/dist/service/api-router.d.ts.map +1 -1
  49. package/dist/service/api-router.js +42 -2
  50. package/dist/service/api-router.js.map +1 -1
  51. package/dist/service/cron/feedback-analysis.js +14 -14
  52. package/dist/service/cron/innovate.d.ts +2 -0
  53. package/dist/service/cron/innovate.d.ts.map +1 -0
  54. package/dist/service/cron/innovate.js +354 -0
  55. package/dist/service/cron/innovate.js.map +1 -0
  56. package/dist/service/cron/process-lifecycle.js +36 -36
  57. package/dist/service/cron/scheduler.d.ts.map +1 -1
  58. package/dist/service/cron/scheduler.js +8 -0
  59. package/dist/service/cron/scheduler.js.map +1 -1
  60. package/dist/service/index.d.ts.map +1 -1
  61. package/dist/service/index.js +27 -20
  62. package/dist/service/index.js.map +1 -1
  63. package/dist/service/web-client.html +1984 -1569
  64. package/dist/service/web-server.d.ts +1 -0
  65. package/dist/service/web-server.d.ts.map +1 -1
  66. package/dist/service/web-server.js +188 -6
  67. package/dist/service/web-server.js.map +1 -1
  68. package/dist/tools/daily.js +2 -2
  69. package/package.json +69 -66
  70. package/dist/agentary.txt +0 -82
  71. package/dist/commands/event.d.ts +0 -4
  72. package/dist/commands/event.d.ts.map +0 -1
  73. package/dist/commands/event.js +0 -515
  74. package/dist/commands/event.js.map +0 -1
  75. package/dist/commands/goal.d.ts +0 -4
  76. package/dist/commands/goal.d.ts.map +0 -1
  77. package/dist/commands/goal.js +0 -14
  78. package/dist/commands/goal.js.map +0 -1
  79. package/dist/commands/interview.d.ts +0 -14
  80. package/dist/commands/interview.d.ts.map +0 -1
  81. package/dist/commands/interview.js +0 -343
  82. package/dist/commands/interview.js.map +0 -1
  83. package/dist/commands/note.d.ts +0 -4
  84. package/dist/commands/note.d.ts.map +0 -1
  85. package/dist/commands/note.js +0 -548
  86. package/dist/commands/note.js.map +0 -1
  87. package/dist/commands/pamp.d.ts +0 -4
  88. package/dist/commands/pamp.d.ts.map +0 -1
  89. package/dist/commands/pamp.js +0 -323
  90. package/dist/commands/pamp.js.map +0 -1
  91. package/dist/commands/person.d.ts +0 -4
  92. package/dist/commands/person.d.ts.map +0 -1
  93. package/dist/commands/person.js +0 -185
  94. package/dist/commands/person.js.map +0 -1
  95. package/dist/commands/project.d.ts +0 -4
  96. package/dist/commands/project.d.ts.map +0 -1
  97. package/dist/commands/project.js +0 -70
  98. package/dist/commands/project.js.map +0 -1
  99. package/dist/commands/remember.d.ts +0 -4
  100. package/dist/commands/remember.d.ts.map +0 -1
  101. package/dist/commands/remember.js +0 -70
  102. package/dist/commands/remember.js.map +0 -1
  103. package/dist/commands/research.d.ts +0 -4
  104. package/dist/commands/research.d.ts.map +0 -1
  105. package/dist/commands/research.js +0 -14
  106. package/dist/commands/research.js.map +0 -1
  107. package/dist/commands/shell.d.ts +0 -3
  108. package/dist/commands/shell.d.ts.map +0 -1
  109. package/dist/commands/shell.js +0 -346
  110. package/dist/commands/shell.js.map +0 -1
  111. package/dist/commands/today.d.ts +0 -4
  112. package/dist/commands/today.d.ts.map +0 -1
  113. package/dist/commands/today.js +0 -112
  114. package/dist/commands/today.js.map +0 -1
  115. package/dist/commands/todo.d.ts +0 -4
  116. package/dist/commands/todo.d.ts.map +0 -1
  117. package/dist/commands/todo.js +0 -678
  118. package/dist/commands/todo.js.map +0 -1
  119. package/dist/commands/todont.d.ts +0 -19
  120. package/dist/commands/todont.d.ts.map +0 -1
  121. package/dist/commands/todont.js +0 -209
  122. package/dist/commands/todont.js.map +0 -1
  123. package/dist/commands/week.d.ts +0 -4
  124. package/dist/commands/week.d.ts.map +0 -1
  125. package/dist/commands/week.js +0 -267
  126. package/dist/commands/week.js.map +0 -1
  127. package/dist/dobbai.txt +0 -55
  128. package/dist/dobbi.txt +0 -55
  129. package/dist/dobbie-bundle.cjs +0 -73313
  130. package/dist/dobbie.txt +0 -55
  131. package/dist/feral/node-code/output/dobbai-speak-node-code.d.ts +0 -11
  132. package/dist/feral/node-code/output/dobbai-speak-node-code.d.ts.map +0 -1
  133. package/dist/feral/node-code/output/dobbai-speak-node-code.js +0 -56
  134. package/dist/feral/node-code/output/dobbai-speak-node-code.js.map +0 -1
  135. package/dist/feral/node-code/output/dobbi-speak-node-code.d.ts +0 -15
  136. package/dist/feral/node-code/output/dobbi-speak-node-code.d.ts.map +0 -1
  137. package/dist/feral/node-code/output/dobbi-speak-node-code.js +0 -60
  138. package/dist/feral/node-code/output/dobbi-speak-node-code.js.map +0 -1
  139. package/dist/feral/node-code/output/dobbie-speak-node-code.d.ts +0 -11
  140. package/dist/feral/node-code/output/dobbie-speak-node-code.d.ts.map +0 -1
  141. package/dist/feral/node-code/output/dobbie-speak-node-code.js +0 -56
  142. package/dist/feral/node-code/output/dobbie-speak-node-code.js.map +0 -1
  143. package/dist/service/cron/process-evaluator.d.ts +0 -6
  144. package/dist/service/cron/process-evaluator.d.ts.map +0 -1
  145. package/dist/service/cron/process-evaluator.js +0 -126
  146. package/dist/service/cron/process-evaluator.js.map +0 -1
  147. package/dist/tools/project.d.ts +0 -2
  148. package/dist/tools/project.d.ts.map +0 -1
  149. package/dist/tools/project.js +0 -112
  150. package/dist/tools/project.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo.js","sourceRoot":"","sources":["../../src/commands/todo.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Command } from 'commander';
2
- /**
3
- * Check if a todont is currently active based on its date window.
4
- * No dates = always active. Has dates = active only within window.
5
- */
6
- export declare function isTodontActive(meta: Record<string, unknown>, refDate?: string): boolean;
7
- /**
8
- * Scan the todonts directory and return all active todonts.
9
- */
10
- export declare function getActiveTodonts(refDate?: string): Promise<{
11
- title: string;
12
- content: string;
13
- startDate?: string;
14
- endDate?: string;
15
- filepath: string;
16
- }[]>;
17
- export declare const todontCommand: Command;
18
- export default todontCommand;
19
- //# sourceMappingURL=todont.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todont.d.ts","sourceRoot":"","sources":["../../src/commands/todont.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEpC;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,GAAE,MAA+C,GACzD,OAAO,CAeT;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB,EAAE,CAAC,CAuCH;AAMD,eAAO,MAAM,aAAa,SA4GpB,CAAC;AAEP,eAAe,aAAa,CAAC"}
@@ -1,209 +0,0 @@
1
- // ─────────────────────────────────────────────────────────────────────────────
2
- // TODONT COMMAND
3
- // Things to avoid β€” "always" or during a time window.
4
- // ─────────────────────────────────────────────────────────────────────────────
5
- import { Command } from 'commander';
6
- import chalk from 'chalk';
7
- import inquirer from 'inquirer';
8
- import path from 'path';
9
- import { promises as fs } from 'fs';
10
- import { generateEntityId, ensureEntityDir, findEntityByTitle, trashEntity, parseEntity, getEntityDir, entityFilename, } from '../entities/entity.js';
11
- import { listEntities } from './list.js';
12
- import { getEntityIndex } from '../entities/entity-index.js';
13
- import { getResponse } from '../responses.js';
14
- // ─────────────────────────────────────────────────────────────────────────────
15
- // SAVE
16
- // ─────────────────────────────────────────────────────────────────────────────
17
- async function saveTodont(state) {
18
- const dir = await ensureEntityDir('todont');
19
- const id = generateEntityId('todont');
20
- const filepath = path.join(dir, entityFilename(state.title, id));
21
- const today = new Date().toISOString().split('T')[0];
22
- const lines = [
23
- '---',
24
- `id: ${id}`,
25
- `title: "${state.title}"`,
26
- `entityType: todont`,
27
- `created: ${today}`,
28
- ];
29
- if (state.startDate)
30
- lines.push(`startDate: ${state.startDate}`);
31
- if (state.endDate)
32
- lines.push(`endDate: ${state.endDate}`);
33
- lines.push('tags: [todont]');
34
- lines.push('---');
35
- lines.push('');
36
- lines.push(state.content);
37
- lines.push('');
38
- await fs.writeFile(filepath, lines.join('\n'));
39
- // Update entity index
40
- const index = getEntityIndex();
41
- if (index.isBuilt) {
42
- await index.addOrUpdate('todont', id, state.title, filepath);
43
- }
44
- return filepath;
45
- }
46
- // ─────────────────────────────────────────────────────────────────────────────
47
- // HELPERS
48
- // ─────────────────────────────────────────────────────────────────────────────
49
- /**
50
- * Check if a todont is currently active based on its date window.
51
- * No dates = always active. Has dates = active only within window.
52
- */
53
- export function isTodontActive(meta, refDate = new Date().toISOString().split('T')[0]) {
54
- const start = meta.startDate;
55
- const end = meta.endDate;
56
- // No window = always active
57
- if (!start && !end)
58
- return true;
59
- // Only start date β€” active from that date onward
60
- if (start && !end)
61
- return refDate >= start;
62
- // Only end date β€” active until that date
63
- if (!start && end)
64
- return refDate <= end;
65
- // Both β€” active within window
66
- return refDate >= start && refDate <= end;
67
- }
68
- /**
69
- * Scan the todonts directory and return all active todonts.
70
- */
71
- export async function getActiveTodonts(refDate) {
72
- let dir;
73
- try {
74
- dir = await getEntityDir('todont');
75
- }
76
- catch {
77
- return [];
78
- }
79
- const active = [];
80
- try {
81
- const files = await fs.readdir(dir);
82
- for (const file of files) {
83
- if (!file.endsWith('.md') || file.startsWith('.'))
84
- continue;
85
- const filepath = path.join(dir, file);
86
- const raw = await fs.readFile(filepath, 'utf-8');
87
- const { meta, content } = parseEntity(filepath, raw);
88
- if (isTodontActive(meta, refDate)) {
89
- active.push({
90
- title: meta.title || file.replace('.md', ''),
91
- content,
92
- startDate: meta.startDate,
93
- endDate: meta.endDate,
94
- filepath,
95
- });
96
- }
97
- }
98
- }
99
- catch {
100
- // Dir doesn't exist yet
101
- }
102
- return active;
103
- }
104
- // ─────────────────────────────────────────────────────────────────────────────
105
- // COMMAND
106
- // ─────────────────────────────────────────────────────────────────────────────
107
- export const todontCommand = new Command('todont')
108
- .description('Manage things to avoid β€” "always" or during a time window')
109
- .argument('[words...]', 'Title or subcommand (list, remove)')
110
- .action(async (words) => {
111
- try {
112
- // Handle: phaibel todont list
113
- if (words[0] === 'list') {
114
- await listEntities('todonts');
115
- return;
116
- }
117
- // Handle: phaibel todont remove <title>
118
- if (words[0] === 'remove' || words[0] === 'delete') {
119
- const removeTitle = words.slice(1).join(' ');
120
- if (!removeTitle) {
121
- console.log(chalk.yellow('\n Please specify which todont to remove: todont remove <title>\n'));
122
- return;
123
- }
124
- const found = await findEntityByTitle('todont', removeTitle);
125
- if (!found) {
126
- console.log(chalk.red(`\n βœ— Todont "${removeTitle}" not found\n`));
127
- return;
128
- }
129
- const trashPath = await trashEntity(found.filepath);
130
- const idx = getEntityIndex();
131
- if (idx.isBuilt) {
132
- idx.remove('todont', found.meta.id);
133
- }
134
- console.log(chalk.green(`\n πŸ—‘ Moved to trash: ${found.meta.title}`));
135
- console.log(chalk.gray(` ${trashPath}\n`));
136
- return;
137
- }
138
- // Create flow
139
- let title = words.length > 0 ? words[0] : undefined;
140
- if (!title) {
141
- const { todontTitle } = await inquirer.prompt([{
142
- type: 'input',
143
- name: 'todontTitle',
144
- message: '🚫 What should you avoid, sir?',
145
- validate: (input) => input.length > 0 || 'Title is required',
146
- }]);
147
- title = todontTitle;
148
- }
149
- // Ask for time window
150
- const { windowType } = await inquirer.prompt([{
151
- type: 'list',
152
- name: 'windowType',
153
- message: 'How long should this be active?',
154
- choices: [
155
- { name: 'Always', value: 'always' },
156
- { name: 'During a specific time window', value: 'window' },
157
- ],
158
- }]);
159
- let startDate;
160
- let endDate;
161
- if (windowType === 'window') {
162
- const dates = await inquirer.prompt([
163
- {
164
- type: 'input',
165
- name: 'startDate',
166
- message: 'Start date (YYYY-MM-DD):',
167
- validate: (input) => /^\d{4}-\d{2}-\d{2}$/.test(input) || 'Use YYYY-MM-DD format',
168
- },
169
- {
170
- type: 'input',
171
- name: 'endDate',
172
- message: 'End date (YYYY-MM-DD):',
173
- validate: (input) => /^\d{4}-\d{2}-\d{2}$/.test(input) || 'Use YYYY-MM-DD format',
174
- },
175
- ]);
176
- startDate = dates.startDate;
177
- endDate = dates.endDate;
178
- }
179
- // Optional description
180
- const { description } = await inquirer.prompt([{
181
- type: 'input',
182
- name: 'description',
183
- message: 'Why? (optional):',
184
- }]);
185
- const state = {
186
- title: title,
187
- content: description || '',
188
- startDate,
189
- endDate,
190
- };
191
- const filepath = await saveTodont(state);
192
- const msg = getResponse('task_saved');
193
- console.log(chalk.green(`\n 🚫 ${msg}`));
194
- if (startDate && endDate) {
195
- console.log(chalk.gray(` Active: ${startDate} β†’ ${endDate}`));
196
- }
197
- else {
198
- console.log(chalk.gray(` Active: always`));
199
- }
200
- console.log(chalk.gray(` ${filepath}\n`));
201
- }
202
- catch (error) {
203
- if (error instanceof Error && error.message.includes('force closed'))
204
- return;
205
- console.error(chalk.red('Error:'), error instanceof Error ? error.message : error);
206
- }
207
- });
208
- export default todontCommand;
209
- //# sourceMappingURL=todont.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todont.js","sourceRoot":"","sources":["../../src/commands/todont.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const weekCommand: Command;
3
- export default weekCommand;
4
- //# sourceMappingURL=week.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"week.d.ts","sourceRoot":"","sources":["../../src/commands/week.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8QpC,eAAO,MAAM,WAAW,SAiClB,CAAC;AAEP,eAAe,WAAW,CAAC"}
@@ -1,267 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { promises as fs } from 'fs';
4
- import path from 'path';
5
- import { getVaultRoot } from '../state/manager.js';
6
- import { parseEntity } from '../entities/entity.js';
7
- import { debug } from '../utils/debug.js';
8
- import { getResponse } from '../responses.js';
9
- import { isTodontActive } from './todont.js';
10
- // ─────────────────────────────────────────────────────────────────────────────
11
- // DATE HELPERS
12
- // ─────────────────────────────────────────────────────────────────────────────
13
- function getWeekDays(refDate) {
14
- const today = new Date(refDate);
15
- today.setHours(0, 0, 0, 0);
16
- const todayStr = formatDate(today);
17
- // Find Sunday of this week
18
- const dayOfWeek = today.getDay(); // 0=Sun
19
- const sunday = new Date(today);
20
- sunday.setDate(today.getDate() - dayOfWeek);
21
- const days = [];
22
- for (let i = 0; i < 7; i++) {
23
- const d = new Date(sunday);
24
- d.setDate(sunday.getDate() + i);
25
- const dateStr = formatDate(d);
26
- days.push({
27
- date: dateStr,
28
- dayName: d.toLocaleDateString('en-US', { weekday: 'long' }),
29
- dayShort: d.toLocaleDateString('en-US', { weekday: 'short' }),
30
- dayNum: d.getDate().toString(),
31
- month: d.toLocaleDateString('en-US', { month: 'short' }),
32
- isToday: dateStr === todayStr,
33
- items: [],
34
- });
35
- }
36
- return days;
37
- }
38
- function formatDate(d) {
39
- const y = d.getFullYear();
40
- const m = String(d.getMonth() + 1).padStart(2, '0');
41
- const day = String(d.getDate()).padStart(2, '0');
42
- return `${y}-${m}-${day}`;
43
- }
44
- // ─────────────────────────────────────────────────────────────────────────────
45
- // ENTITY SCANNING
46
- // ─────────────────────────────────────────────────────────────────────────────
47
- async function scanDir(dir) {
48
- const results = [];
49
- try {
50
- const files = await fs.readdir(dir);
51
- for (const file of files) {
52
- if (!file.endsWith('.md') || file.startsWith('.'))
53
- continue;
54
- try {
55
- const filepath = path.join(dir, file);
56
- const raw = await fs.readFile(filepath, 'utf-8');
57
- results.push(parseEntity(filepath, raw));
58
- }
59
- catch (err) {
60
- debug('week', `Failed to parse ${file}: ${err}`);
61
- }
62
- }
63
- }
64
- catch {
65
- // directory doesn't exist
66
- }
67
- return results;
68
- }
69
- async function populateItems(days) {
70
- const vaultRoot = await getVaultRoot();
71
- const dateSet = new Set(days.map(d => d.date));
72
- const dateMap = new Map(days.map(d => [d.date, d]));
73
- // Scan todos β€” match on dueDate
74
- const todoDir = path.join(vaultRoot, 'todos');
75
- const todoEntities = await scanDir(todoDir);
76
- for (const { meta } of todoEntities) {
77
- const due = meta.dueDate;
78
- if (due && dateSet.has(due)) {
79
- const day = dateMap.get(due);
80
- day.items.push({
81
- title: meta.title || 'Untitled',
82
- type: 'todo',
83
- status: meta.status,
84
- priority: meta.priority,
85
- });
86
- }
87
- }
88
- // Scan events β€” match on startDate (YYYY-MM-DD prefix)
89
- const eventDir = path.join(vaultRoot, 'events');
90
- const eventEntities = await scanDir(eventDir);
91
- for (const { meta } of eventEntities) {
92
- const start = meta.startDate;
93
- if (!start)
94
- continue;
95
- const datePrefix = start.slice(0, 10); // YYYY-MM-DD
96
- if (dateSet.has(datePrefix)) {
97
- const day = dateMap.get(datePrefix);
98
- const timePart = start.length > 10 ? start.slice(11, 16) : undefined;
99
- day.items.push({
100
- title: meta.title || 'Untitled',
101
- type: 'event',
102
- time: timePart,
103
- });
104
- }
105
- }
106
- // Scan todonts β€” active for any day in the range
107
- const todontDir = path.join(vaultRoot, 'todonts');
108
- const todontEntities = await scanDir(todontDir);
109
- for (const { meta } of todontEntities) {
110
- for (const day of days) {
111
- if (isTodontActive(meta, day.date)) {
112
- day.items.push({
113
- title: meta.title || 'Untitled',
114
- type: 'todont',
115
- });
116
- }
117
- }
118
- }
119
- // Sort items: events with time first (sorted by time), then todos, then todonts
120
- for (const day of days) {
121
- day.items.sort((a, b) => {
122
- if (a.type === 'event' && b.type === 'event') {
123
- return (a.time || '').localeCompare(b.time || '');
124
- }
125
- if (a.type === 'event')
126
- return -1;
127
- if (b.type === 'event')
128
- return 1;
129
- if (a.type === 'todont' && b.type !== 'todont')
130
- return 1;
131
- if (b.type === 'todont' && a.type !== 'todont')
132
- return -1;
133
- return 0;
134
- });
135
- }
136
- }
137
- // ─────────────────────────────────────────────────────────────────────────────
138
- // BOX RENDERING
139
- // ─────────────────────────────────────────────────────────────────────────────
140
- const BOX_WIDTH = 24;
141
- function statusIcon(item) {
142
- if (item.type === 'todont')
143
- return '🚫';
144
- if (item.type === 'event')
145
- return 'πŸ“…';
146
- if (item.status === 'done')
147
- return 'βœ…';
148
- if (item.status === 'in-progress')
149
- return 'πŸ”§';
150
- if (item.status === 'blocked')
151
- return '🚫';
152
- if (item.priority === 'critical')
153
- return 'πŸ”΄';
154
- if (item.priority === 'high')
155
- return '🟠';
156
- return '◻️';
157
- }
158
- function truncate(str, maxLen) {
159
- if (str.length <= maxLen)
160
- return str;
161
- return str.slice(0, maxLen - 1) + '…';
162
- }
163
- function padRight(str, len) {
164
- // Account for emoji width (most are 2 chars visually)
165
- const visLen = stripAnsi(str).length;
166
- const pad = Math.max(0, len - visLen);
167
- return str + ' '.repeat(pad);
168
- }
169
- function stripAnsi(str) {
170
- return str.replace(/\x1b\[[0-9;]*m/g, '');
171
- }
172
- function renderWeek(days) {
173
- const inner = BOX_WIDTH - 2; // space inside the box edges
174
- // ── Header row ──────────────────────────────────────────────────────
175
- let topBorder = '';
176
- let headerLine = '';
177
- let dateLine = '';
178
- let headerBottom = '';
179
- for (let i = 0; i < 7; i++) {
180
- const day = days[i];
181
- const connector = i === 0 ? 'β”Œ' : '┬';
182
- topBorder += connector + '─'.repeat(inner);
183
- const label = day.isToday
184
- ? chalk.bold.cyan(day.dayShort)
185
- : chalk.white(day.dayShort);
186
- const dateLabel = day.isToday
187
- ? chalk.bold.cyan(`${day.month} ${day.dayNum}`)
188
- : chalk.dim(`${day.month} ${day.dayNum}`);
189
- headerLine += 'β”‚' + padRight(` ${label}`, inner);
190
- dateLine += 'β”‚' + padRight(` ${dateLabel}`, inner);
191
- const sep = i === 0 ? 'β”œ' : 'β”Ό';
192
- headerBottom += sep + '─'.repeat(inner);
193
- }
194
- topBorder += '┐';
195
- headerLine += 'β”‚';
196
- dateLine += 'β”‚';
197
- headerBottom += '─';
198
- console.log(chalk.gray(topBorder));
199
- console.log(chalk.gray(headerLine));
200
- console.log(chalk.gray(dateLine));
201
- console.log(chalk.gray(headerBottom));
202
- // ── Item rows ───────────────────────────────────────────────────────
203
- const maxItems = Math.max(...days.map(d => d.items.length), 1);
204
- for (let row = 0; row < maxItems; row++) {
205
- let line = '';
206
- for (let i = 0; i < 7; i++) {
207
- const day = days[i];
208
- const item = day.items[row];
209
- if (item) {
210
- const icon = statusIcon(item);
211
- const timeStr = item.time ? chalk.dim(`${item.time} `) : '';
212
- const titleStr = truncate(item.title, inner - 5);
213
- const cell = ` ${icon} ${timeStr}${titleStr}`;
214
- line += 'β”‚' + padRight(cell, inner);
215
- }
216
- else {
217
- line += 'β”‚' + ' '.repeat(inner);
218
- }
219
- }
220
- line += 'β”‚';
221
- console.log(chalk.gray(line));
222
- }
223
- // ── Bottom border ───────────────────────────────────────────────────
224
- let bottomBorder = '';
225
- for (let i = 0; i < 7; i++) {
226
- const connector = i === 0 ? 'β””' : 'β”΄';
227
- bottomBorder += connector + '─'.repeat(inner);
228
- }
229
- bottomBorder += 'β”˜';
230
- console.log(chalk.gray(bottomBorder));
231
- }
232
- // ─────────────────────────────────────────────────────────────────────────────
233
- // COMMAND
234
- // ─────────────────────────────────────────────────────────────────────────────
235
- export const weekCommand = new Command('week')
236
- .description('Show the weekly calendar (Sun–Sat) with todos and events')
237
- .option('-n, --next', 'Show next week instead of current')
238
- .action(async (options) => {
239
- try {
240
- const ref = new Date();
241
- if (options.next) {
242
- ref.setDate(ref.getDate() + 7);
243
- }
244
- const days = getWeekDays(ref);
245
- await populateItems(days);
246
- // Title
247
- const weekStart = days[0];
248
- const weekEnd = days[6];
249
- const title = options.next ? 'Next Week' : 'This Week';
250
- console.log(chalk.bold.cyan(`\nπŸ“† ${title} β€” ${weekStart.month} ${weekStart.dayNum} – ${weekEnd.month} ${weekEnd.dayNum}\n`));
251
- renderWeek(days);
252
- // Summary
253
- const totalItems = days.reduce((sum, d) => sum + d.items.length, 0);
254
- const totalEvents = days.reduce((sum, d) => sum + d.items.filter(i => i.type === 'event').length, 0);
255
- const totalTodonts = days.reduce((sum, d) => sum + d.items.filter(i => i.type === 'todont').length, 0);
256
- const totalTodos = totalItems - totalEvents - totalTodonts;
257
- const parts = [`${totalTodos} todos`, `${totalEvents} events`];
258
- if (totalTodonts > 0)
259
- parts.push(`${totalTodonts} todonts`);
260
- console.log(chalk.dim(`\n ${totalItems} items: ${parts.join(', ')}\n`));
261
- }
262
- catch (error) {
263
- console.error(chalk.red(getResponse('error')), error instanceof Error ? error.message : error);
264
- }
265
- });
266
- export default weekCommand;
267
- //# sourceMappingURL=week.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"week.js","sourceRoot":"","sources":["../../src/commands/week.ts"],"names":[],"mappings":"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"}