skill-schedule 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/cmd_read.d.ts +3 -0
- package/dist/cli/cmd_read.d.ts.map +1 -0
- package/dist/cli/cmd_read.js +312 -0
- package/dist/cli/cmd_read.js.map +1 -0
- package/dist/fetch/db.d.ts +97 -0
- package/dist/fetch/db.d.ts.map +1 -0
- package/dist/fetch/db.js +382 -0
- package/dist/fetch/db.js.map +1 -0
- package/dist/fetch/errors.d.ts +13 -0
- package/dist/fetch/errors.d.ts.map +1 -0
- package/dist/fetch/errors.js +18 -0
- package/dist/fetch/errors.js.map +1 -0
- package/dist/fetch/feishu.d.ts +36 -0
- package/dist/fetch/feishu.d.ts.map +1 -0
- package/dist/fetch/feishu.js +141 -0
- package/dist/fetch/feishu.js.map +1 -0
- package/dist/fetch/index.d.ts +7 -0
- package/dist/fetch/index.d.ts.map +1 -0
- package/dist/fetch/index.js +5 -0
- package/dist/fetch/index.js.map +1 -0
- package/dist/fetch/paths.d.ts +6 -0
- package/dist/fetch/paths.d.ts.map +1 -0
- package/dist/fetch/paths.js +31 -0
- package/dist/fetch/paths.js.map +1 -0
- package/dist/help/index.d.ts +3 -0
- package/dist/help/index.d.ts.map +1 -0
- package/dist/help/index.js +2 -0
- package/dist/help/index.js.map +1 -0
- package/dist/help/lookup.d.ts +11 -0
- package/dist/help/lookup.d.ts.map +1 -0
- package/dist/help/lookup.js +39 -0
- package/dist/help/lookup.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/policy/category.d.ts +29 -0
- package/dist/policy/category.d.ts.map +1 -0
- package/dist/policy/category.js +168 -0
- package/dist/policy/category.js.map +1 -0
- package/dist/policy/index.d.ts +10 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +6 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/plan.d.ts +26 -0
- package/dist/policy/plan.d.ts.map +1 -0
- package/dist/policy/plan.js +124 -0
- package/dist/policy/plan.js.map +1 -0
- package/dist/policy/record.d.ts +36 -0
- package/dist/policy/record.d.ts.map +1 -0
- package/dist/policy/record.js +189 -0
- package/dist/policy/record.js.map +1 -0
- package/dist/policy/routing.d.ts +13 -0
- package/dist/policy/routing.d.ts.map +1 -0
- package/dist/policy/routing.js +72 -0
- package/dist/policy/routing.js.map +1 -0
- package/dist/policy/wakewords.d.ts +14 -0
- package/dist/policy/wakewords.d.ts.map +1 -0
- package/dist/policy/wakewords.js +85 -0
- package/dist/policy/wakewords.js.map +1 -0
- package/dist/render/envelope.d.ts +6 -0
- package/dist/render/envelope.d.ts.map +1 -0
- package/dist/render/envelope.js +48 -0
- package/dist/render/envelope.js.map +1 -0
- package/dist/render/errors.d.ts +5 -0
- package/dist/render/errors.d.ts.map +1 -0
- package/dist/render/errors.js +9 -0
- package/dist/render/errors.js.map +1 -0
- package/dist/render/html.d.ts +13 -0
- package/dist/render/html.d.ts.map +1 -0
- package/dist/render/html.js +68 -0
- package/dist/render/html.js.map +1 -0
- package/dist/render/index.d.ts +8 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +6 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/templates.d.ts +5 -0
- package/dist/render/templates.d.ts.map +1 -0
- package/dist/render/templates.js +42 -0
- package/dist/render/templates.js.map +1 -0
- package/dist/render/views.d.ts +78 -0
- package/dist/render/views.d.ts.map +1 -0
- package/dist/render/views.js +145 -0
- package/dist/render/views.js.map +1 -0
- package/package.json +32 -0
- package/templates/help.html +16 -0
- package/templates/plan_day.html +16 -0
- package/templates/plan_receipt.html +16 -0
- package/templates/record_compare.html +16 -0
- package/templates/record_day.html +16 -0
- package/templates/record_detail.html +16 -0
- package/templates/record_range.html +16 -0
- package/templates/record_receipt.html +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmd_read.d.ts","sourceRoot":"","sources":["../../src/cli/cmd_read.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// 作息管家唯一出口 cmd_read:argv+JSON(stdout)+exit;非 0 走 stderr;超时 terminate+TOAST 降级标记。
|
|
3
|
+
// 退出码对齐 skilllink 冻结:0 ok;1 预检;2 用法/参数;3 key;4 取数/超时;5 envelope/渲染/落盘。
|
|
4
|
+
// stdout 纯净:成功只打 envelope JSON 一行。
|
|
5
|
+
import { writeFileSync } from 'node:fs';
|
|
6
|
+
import { ScheduleFetchError, SchedulePolicyError, resolveDbPath, openScheduleDb, closeScheduleDb, listRecordsByDate, listRecordsRange, getRecordById, getStatus, addRecord, amendRecord, addSummary, listPlanEvents, getPlanEventsRange, searchPlanEvent, ensurePlanEvent, upsertPlanEvents, updatePlanEvent, deactivatePlanEvent, setFeishuEventId, larkReady, searchFeishuEvents, createFeishuEvent, updateFeishuEvent, } from '../fetch/index.js';
|
|
7
|
+
import { resolveDateParam, resolveRangeParam, validateAddInput, validateAmendInput, validateSummaryInput, validateCompareInput, normalizeDate, validateUpsertInput, validateEnsureInput, validateUpdateInput, parsePlanOp, parseRecordOp, VALID_COMPLETIONS, l1Of, toMinutes, } from '../policy/index.js';
|
|
8
|
+
import { scheduleShapeFor, buildScheduleEnvelope, renderEnvelopeHtml, assertHtmlSize, loadTemplate, templateFor, fillTemplate, buildRecordToday, buildRecordRange, buildRecordDetail, buildRecordReceipt, buildRecordCompare, buildCategoryDeep, buildAnomaly, buildPlanToday, buildPlanReceipt, buildHelpItems, ScheduleRenderError, } from '../render/index.js';
|
|
9
|
+
import { buildHelpLookup } from '../help/index.js';
|
|
10
|
+
const DEFAULT_TIMEOUT_MS = 30000;
|
|
11
|
+
function fail(code, msg) { console.error('ERR ' + code + ': ' + msg); process.exit(code); }
|
|
12
|
+
function toast(msg) { console.error('TOAST: ' + msg); }
|
|
13
|
+
function note(msg) { console.error('NOTE: ' + msg); }
|
|
14
|
+
function preflight() {
|
|
15
|
+
const v = process.versions.node.split('.').map(Number);
|
|
16
|
+
if (!(v[0] > 22 || (v[0] === 22 && v[1] >= 13)))
|
|
17
|
+
fail(1, 'node 低于 22.13:' + process.versions.node);
|
|
18
|
+
const p = process.env.SKILLS_DB_PATH;
|
|
19
|
+
if (!p)
|
|
20
|
+
fail(1, 'SKILLS_DB_PATH 未设置(无默认值,必设)');
|
|
21
|
+
return p;
|
|
22
|
+
}
|
|
23
|
+
function needInt(params, name) {
|
|
24
|
+
const v = params[name];
|
|
25
|
+
if (!Number.isInteger(v) || v <= 0)
|
|
26
|
+
fail(2, '缺参数 ' + name + '(须为正整数)');
|
|
27
|
+
return v;
|
|
28
|
+
}
|
|
29
|
+
function monthRange(month) {
|
|
30
|
+
const [y, m] = month.split('-').map(Number);
|
|
31
|
+
const last = new Date(y, m, 0).getDate();
|
|
32
|
+
const dd = String(last).padStart(2, '0');
|
|
33
|
+
return { start: month + '-01', end: month + '-' + dd };
|
|
34
|
+
}
|
|
35
|
+
function toISODateTime(date, time) {
|
|
36
|
+
return date + 'T' + time + ':00';
|
|
37
|
+
}
|
|
38
|
+
function dispatch(key, params) {
|
|
39
|
+
const dbPath = resolveDbPath();
|
|
40
|
+
const handle = openScheduleDb(dbPath);
|
|
41
|
+
try {
|
|
42
|
+
if (handle.initialized)
|
|
43
|
+
note('作息 DB 已初始化:' + dbPath);
|
|
44
|
+
switch (key) {
|
|
45
|
+
case 'schedule.record.today': {
|
|
46
|
+
const date = resolveDateParam(params);
|
|
47
|
+
const records = listRecordsByDate(handle, date);
|
|
48
|
+
const st = getStatus(handle);
|
|
49
|
+
if (st.records === 0)
|
|
50
|
+
note('库空:真实无记录(非故障)');
|
|
51
|
+
return buildRecordToday(date, records);
|
|
52
|
+
}
|
|
53
|
+
case 'schedule.record.range': {
|
|
54
|
+
const { start, end } = resolveRangeParam(params);
|
|
55
|
+
const records = listRecordsRange(handle, start, end);
|
|
56
|
+
if (!records.length) {
|
|
57
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '区间无记录:' + start + '~' + end + '(缺失阻断,不返空统计)');
|
|
58
|
+
}
|
|
59
|
+
return buildRecordRange(start, end, records);
|
|
60
|
+
}
|
|
61
|
+
case 'schedule.record.detail': {
|
|
62
|
+
if (params.id !== undefined)
|
|
63
|
+
return buildRecordDetail(getRecordById(handle, needInt(params, 'id')));
|
|
64
|
+
const date = resolveDateParam(params);
|
|
65
|
+
const records = listRecordsByDate(handle, date);
|
|
66
|
+
if (!records.length)
|
|
67
|
+
throw new ScheduleFetchError('SCHEDULE_RECORD_NOT_FOUND', '当日无记录:' + date);
|
|
68
|
+
return buildRecordDetail(records[0]);
|
|
69
|
+
}
|
|
70
|
+
case 'schedule.record.write': {
|
|
71
|
+
const op = parseRecordOp(params);
|
|
72
|
+
if (op === 'add') {
|
|
73
|
+
const input = validateAddInput(params);
|
|
74
|
+
const r = addRecord(handle, input);
|
|
75
|
+
return buildRecordReceipt('已记一条:' + r.id + '(' + r.date + ' ' + r.time_start + '~' + r.time_end + ' ' + r.category + ')');
|
|
76
|
+
}
|
|
77
|
+
if (op === 'amend') {
|
|
78
|
+
const { id, patch } = validateAmendInput(params);
|
|
79
|
+
const r = amendRecord(handle, id, patch);
|
|
80
|
+
return buildRecordReceipt('已修正:' + r.id + '(edit_count=' + r.edit_count + ')');
|
|
81
|
+
}
|
|
82
|
+
const s = validateSummaryInput(params);
|
|
83
|
+
addSummary(handle, s.date, s.category, s.totalMinutes);
|
|
84
|
+
return buildRecordReceipt('已写摘要:' + s.date + ' ' + s.category + '=' + s.totalMinutes + '分钟');
|
|
85
|
+
}
|
|
86
|
+
case 'schedule.record.compare': {
|
|
87
|
+
const c = validateCompareInput(params);
|
|
88
|
+
if (c.kind === 'months') {
|
|
89
|
+
const ra = monthRange(c.monthA);
|
|
90
|
+
const rb = monthRange(c.monthB);
|
|
91
|
+
const a = listRecordsRange(handle, ra.start, ra.end);
|
|
92
|
+
const b = listRecordsRange(handle, rb.start, rb.end);
|
|
93
|
+
if (!a.length || !b.length) {
|
|
94
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '对比缺数据:' + c.monthA + '(' + a.length + '块)/' + c.monthB + '(' + b.length + '块)');
|
|
95
|
+
}
|
|
96
|
+
return buildRecordCompare({ labelA: c.monthA, labelB: c.monthB, a, b });
|
|
97
|
+
}
|
|
98
|
+
if (c.kind === 'ranges') {
|
|
99
|
+
const a = listRecordsRange(handle, c.startA, c.endA);
|
|
100
|
+
const b = listRecordsRange(handle, c.startB, c.endB);
|
|
101
|
+
if (!a.length || !b.length)
|
|
102
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '对比缺数据(两侧均须有记录)');
|
|
103
|
+
return buildRecordCompare({ labelA: c.labelA, labelB: c.labelB, a, b });
|
|
104
|
+
}
|
|
105
|
+
if (c.kind === 'category') {
|
|
106
|
+
const records = listRecordsRange(handle, c.start, c.end);
|
|
107
|
+
if (!records.length)
|
|
108
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '区间无记录:' + c.start + '~' + c.end);
|
|
109
|
+
return buildCategoryDeep(c.start, c.end, c.category, records);
|
|
110
|
+
}
|
|
111
|
+
const w = c.windowDays;
|
|
112
|
+
const end = c.end;
|
|
113
|
+
const d = new Date(end + 'T00:00:00');
|
|
114
|
+
d.setDate(d.getDate() - (w - 1));
|
|
115
|
+
const start = d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0');
|
|
116
|
+
const records = listRecordsRange(handle, start, end);
|
|
117
|
+
if (!records.length)
|
|
118
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '窗口无记录:' + start + '~' + end);
|
|
119
|
+
const byDay = new Map();
|
|
120
|
+
for (const r of records) {
|
|
121
|
+
const m = byDay.get(r.date) || {};
|
|
122
|
+
const k = l1Of(r.category);
|
|
123
|
+
m[k] = (m[k] || 0) + (r.duration_minutes || 0);
|
|
124
|
+
byDay.set(r.date, m);
|
|
125
|
+
}
|
|
126
|
+
const daily = [...byDay.entries()].sort().map(([date, byL1]) => ({ date, byL1 }));
|
|
127
|
+
return buildAnomaly(end, w, daily);
|
|
128
|
+
}
|
|
129
|
+
case 'schedule.plan.today': {
|
|
130
|
+
if (typeof params.title === 'string' && params.title.trim()) {
|
|
131
|
+
const date = resolveDateParam(params);
|
|
132
|
+
const hits = searchPlanEvent(handle, date, params.title.trim(), params.time_start, params.time_end);
|
|
133
|
+
return buildPlanToday(date, hits);
|
|
134
|
+
}
|
|
135
|
+
if (Array.isArray(params.dates) && params.dates.length) {
|
|
136
|
+
const dates = params.dates.map((x) => normalizeDate(x, 'dates[]'));
|
|
137
|
+
const lo = [...dates].sort()[0];
|
|
138
|
+
const hi = [...dates].sort()[dates.length - 1];
|
|
139
|
+
const all = getPlanEventsRange(handle, lo, hi).filter((e) => dates.includes(e.date));
|
|
140
|
+
return { items: all.map((e) => buildPlanToday(e.date, [e]).items[0]), total: all.length, date: lo + '~' + hi };
|
|
141
|
+
}
|
|
142
|
+
const date = resolveDateParam(params);
|
|
143
|
+
return buildPlanToday(date, listPlanEvents(handle, date));
|
|
144
|
+
}
|
|
145
|
+
case 'schedule.plan.write': {
|
|
146
|
+
const op = parsePlanOp(params);
|
|
147
|
+
if (op === 'preview') {
|
|
148
|
+
const { date, events } = validateUpsertInput(params);
|
|
149
|
+
return buildPlanReceipt('预览通过:' + date + ' ' + events.length + ' 个事件 00:00~24:00 连续(确认后 op=upsert 落盘)');
|
|
150
|
+
}
|
|
151
|
+
if (op === 'upsert') {
|
|
152
|
+
const { date, events } = validateUpsertInput(params);
|
|
153
|
+
const out = upsertPlanEvents(handle, date, events);
|
|
154
|
+
return buildPlanReceipt('已落盘:' + date + ' ' + out.length + ' 个事件');
|
|
155
|
+
}
|
|
156
|
+
if (op === 'ensure') {
|
|
157
|
+
const input = validateEnsureInput(params);
|
|
158
|
+
const { event, created } = ensurePlanEvent(handle, input);
|
|
159
|
+
return buildPlanReceipt(created ? '已补计划:' + event.id : '已存在(幂等未重复):' + event.id);
|
|
160
|
+
}
|
|
161
|
+
if (op === 'update') {
|
|
162
|
+
const { id, patch } = validateUpdateInput(params);
|
|
163
|
+
if (patch.time_start !== undefined && patch.time_end !== undefined) {
|
|
164
|
+
if (toMinutes(patch.time_end) <= toMinutes(patch.time_start)) {
|
|
165
|
+
throw new SchedulePolicyError('POLICY_BAD_TIME', 'time_end 必须晚于 time_start');
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
updatePlanEvent(handle, id, patch);
|
|
169
|
+
return buildPlanReceipt('已改计划:' + id);
|
|
170
|
+
}
|
|
171
|
+
if (op === 'deactivate') {
|
|
172
|
+
const id = needInt(params, 'id');
|
|
173
|
+
deactivatePlanEvent(handle, id);
|
|
174
|
+
return buildPlanReceipt('已删计划(软删):' + id);
|
|
175
|
+
}
|
|
176
|
+
if (op === 'review') {
|
|
177
|
+
const { start, end } = params.granularity === 'range' || params.start !== undefined
|
|
178
|
+
? resolveRangeParam(params)
|
|
179
|
+
: { start: resolveDateParam(params), end: resolveDateParam(params) };
|
|
180
|
+
const events = getPlanEventsRange(handle, start, end);
|
|
181
|
+
if (!events.length)
|
|
182
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '复盘无日程:' + start + '~' + end);
|
|
183
|
+
const counts = {};
|
|
184
|
+
for (const e of events)
|
|
185
|
+
counts[e.completion || '未复盘'] = (counts[e.completion || '未复盘'] || 0) + 1;
|
|
186
|
+
const parts = VALID_COMPLETIONS.filter((k) => counts[k]).map((k) => k + counts[k]);
|
|
187
|
+
return buildPlanReceipt('已复盘 ' + start + '~' + end + ':' + events.length + ' 个事件(' + parts.join('、') + ')');
|
|
188
|
+
}
|
|
189
|
+
// op === 'sync':飞书四门 + diff(local 无飞书 id→create,有→update;dryRun 只报数)。
|
|
190
|
+
const gate = larkReady();
|
|
191
|
+
const date = resolveDateParam(params);
|
|
192
|
+
const events = listPlanEvents(handle, date, true).filter((e) => e.is_active === 1);
|
|
193
|
+
if (params.dryRun === true) {
|
|
194
|
+
return buildPlanReceipt('飞书就绪:' + gate.openId + '(dryRun 未同步;' + date + ' 待比 ' + events.length + ' 个事件)');
|
|
195
|
+
}
|
|
196
|
+
let created = 0;
|
|
197
|
+
let updated = 0;
|
|
198
|
+
try {
|
|
199
|
+
searchFeishuEvents(gate.cliPath, date, date);
|
|
200
|
+
}
|
|
201
|
+
catch (e) {
|
|
202
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '飞书查询失败:' + e.message);
|
|
203
|
+
}
|
|
204
|
+
for (const e of events) {
|
|
205
|
+
const s = toISODateTime(e.date, e.time_start);
|
|
206
|
+
const t = toISODateTime(e.date, e.time_end);
|
|
207
|
+
if (!e.feishu_event_id) {
|
|
208
|
+
const r = createFeishuEvent(gate.cliPath, s, t, e.title, e.notes || '');
|
|
209
|
+
const fid = typeof r.eventId === 'string' ? r.eventId : typeof r.id === 'string' ? r.id : null;
|
|
210
|
+
setFeishuEventId(handle, e.id, fid);
|
|
211
|
+
created++;
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
updateFeishuEvent(gate.cliPath, e.feishu_event_id, s, t, e.title);
|
|
215
|
+
setFeishuEventId(handle, e.id, e.feishu_event_id);
|
|
216
|
+
updated++;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return buildPlanReceipt('已同步 ' + date + ':新建' + created + ' 更新' + updated + '(' + gate.openId + ')');
|
|
220
|
+
}
|
|
221
|
+
case 'schedule.help.lookup': {
|
|
222
|
+
const q = typeof params.q === 'string' ? params.q : undefined;
|
|
223
|
+
const all = buildHelpLookup().map((h) => ({ phrase: h.phrase, key: h.key, shape: h.shape, cli: h.cli, desc: h.desc }));
|
|
224
|
+
return buildHelpItems(all, q);
|
|
225
|
+
}
|
|
226
|
+
default:
|
|
227
|
+
fail(3, '未知 schedule key:' + key);
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
closeScheduleDb(handle);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
function parseArgs(a) {
|
|
236
|
+
const o = { key: a[0], params: undefined, html: undefined, timeout: DEFAULT_TIMEOUT_MS };
|
|
237
|
+
for (let i = 1; i < a.length; i++) {
|
|
238
|
+
if (a[i] === '--params' && i + 1 < a.length)
|
|
239
|
+
o.params = a[++i];
|
|
240
|
+
else if (a[i] === '--html' && i + 1 < a.length)
|
|
241
|
+
o.html = a[++i];
|
|
242
|
+
else if (a[i] === '--timeout' && i + 1 < a.length) {
|
|
243
|
+
o.timeout = Number(a[++i]);
|
|
244
|
+
if (!Number.isFinite(o.timeout) || o.timeout <= 0)
|
|
245
|
+
fail(2, '--timeout 须为正数毫秒');
|
|
246
|
+
}
|
|
247
|
+
else
|
|
248
|
+
fail(2, '未知参数:' + a[i]);
|
|
249
|
+
}
|
|
250
|
+
return o;
|
|
251
|
+
}
|
|
252
|
+
async function main() {
|
|
253
|
+
const o = parseArgs(process.argv.slice(2));
|
|
254
|
+
if (!o.key)
|
|
255
|
+
fail(2, '用法:schedule-cmd-read <schedule.key> [--params JSON对象] [--html 输出路径] [--timeout 毫秒]');
|
|
256
|
+
preflight();
|
|
257
|
+
let params = {};
|
|
258
|
+
if (o.params !== undefined) {
|
|
259
|
+
try {
|
|
260
|
+
params = JSON.parse(o.params);
|
|
261
|
+
}
|
|
262
|
+
catch (e) {
|
|
263
|
+
fail(2, '--params 须为 JSON');
|
|
264
|
+
}
|
|
265
|
+
if (typeof params !== 'object' || params === null || Array.isArray(params))
|
|
266
|
+
fail(2, '--params 须为 JSON 对象');
|
|
267
|
+
}
|
|
268
|
+
try {
|
|
269
|
+
scheduleShapeFor(o.key);
|
|
270
|
+
}
|
|
271
|
+
catch (e) {
|
|
272
|
+
fail(3, e.message);
|
|
273
|
+
}
|
|
274
|
+
const key = o.key;
|
|
275
|
+
const timer = setTimeout(() => {
|
|
276
|
+
toast('cmd_read 超时 terminate(' + o.timeout + 'ms),已终止取数');
|
|
277
|
+
process.exit(4);
|
|
278
|
+
}, o.timeout);
|
|
279
|
+
if (typeof timer.unref === 'function')
|
|
280
|
+
timer.unref();
|
|
281
|
+
try {
|
|
282
|
+
const data = dispatch(key, params);
|
|
283
|
+
const env = buildScheduleEnvelope(key, data);
|
|
284
|
+
if (o.html !== undefined) {
|
|
285
|
+
try {
|
|
286
|
+
const html = fillTemplate(loadTemplate(templateFor(key)), renderEnvelopeHtml(env));
|
|
287
|
+
assertHtmlSize(html);
|
|
288
|
+
writeFileSync(o.html, html, 'utf8');
|
|
289
|
+
note('HTML 已写:' + o.html + '(utf8)');
|
|
290
|
+
}
|
|
291
|
+
catch (e) {
|
|
292
|
+
if (e instanceof ScheduleRenderError)
|
|
293
|
+
fail(5, e.message);
|
|
294
|
+
fail(5, 'HTML 写盘失败:' + o.html + '(' + e.message + ')');
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
process.stdout.write(JSON.stringify(env) + '\n');
|
|
298
|
+
clearTimeout(timer);
|
|
299
|
+
}
|
|
300
|
+
catch (e) {
|
|
301
|
+
clearTimeout(timer);
|
|
302
|
+
if (e instanceof SchedulePolicyError)
|
|
303
|
+
fail(2, e.message);
|
|
304
|
+
if (e instanceof ScheduleFetchError)
|
|
305
|
+
fail(4, e.message);
|
|
306
|
+
if (e instanceof ScheduleRenderError)
|
|
307
|
+
fail(5, e.message);
|
|
308
|
+
fail(4, '取数失败:' + e.message);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
void main();
|
|
312
|
+
//# sourceMappingURL=cmd_read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmd_read.js","sourceRoot":"","sources":["../../src/cli/cmd_read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
export declare const SCHEMA_VERSION = 1;
|
|
3
|
+
export interface ScheduleRecord {
|
|
4
|
+
id: number;
|
|
5
|
+
date: string;
|
|
6
|
+
time_start: string;
|
|
7
|
+
time_end: string;
|
|
8
|
+
duration_minutes: number | null;
|
|
9
|
+
activity: string;
|
|
10
|
+
category: string;
|
|
11
|
+
source_contents: string | null;
|
|
12
|
+
source_timestamps: string | null;
|
|
13
|
+
analysis_reasoning: string | null;
|
|
14
|
+
created_at: string;
|
|
15
|
+
updated_at: string;
|
|
16
|
+
edit_count: number;
|
|
17
|
+
}
|
|
18
|
+
export interface DailySummary {
|
|
19
|
+
date: string;
|
|
20
|
+
category: string;
|
|
21
|
+
total_minutes: number;
|
|
22
|
+
}
|
|
23
|
+
export interface PlanEvent {
|
|
24
|
+
id: number;
|
|
25
|
+
date: string;
|
|
26
|
+
time_start: string;
|
|
27
|
+
time_end: string;
|
|
28
|
+
title: string;
|
|
29
|
+
notes: string | null;
|
|
30
|
+
category: string | null;
|
|
31
|
+
feishu_event_id: string | null;
|
|
32
|
+
last_synced_at: string | null;
|
|
33
|
+
is_active: number;
|
|
34
|
+
completion: string | null;
|
|
35
|
+
completion_note: string | null;
|
|
36
|
+
created_at: string;
|
|
37
|
+
updated_at: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ScheduleDb {
|
|
40
|
+
db: DatabaseSync;
|
|
41
|
+
path: string;
|
|
42
|
+
/** 本次 open 是否新建了表(初始化语义,供 #22 初始化回执)。 */
|
|
43
|
+
initialized: boolean;
|
|
44
|
+
}
|
|
45
|
+
export declare function openScheduleDb(dbPath: string): ScheduleDb;
|
|
46
|
+
export declare function closeScheduleDb(handle: ScheduleDb): void;
|
|
47
|
+
export declare function addRecord(handle: ScheduleDb, input: {
|
|
48
|
+
date: string;
|
|
49
|
+
time_start: string;
|
|
50
|
+
time_end: string;
|
|
51
|
+
duration_minutes: number;
|
|
52
|
+
activity: string;
|
|
53
|
+
category: string;
|
|
54
|
+
source_contents?: string | null;
|
|
55
|
+
source_timestamps?: string | null;
|
|
56
|
+
analysis_reasoning?: string | null;
|
|
57
|
+
}): ScheduleRecord;
|
|
58
|
+
export declare function amendRecord(handle: ScheduleDb, id: number, patch: Partial<ScheduleRecord>): ScheduleRecord;
|
|
59
|
+
export declare function getRecordById(handle: ScheduleDb, id: number): ScheduleRecord;
|
|
60
|
+
export declare function listRecordsByDate(handle: ScheduleDb, date: string): ScheduleRecord[];
|
|
61
|
+
export declare function listRecordsRange(handle: ScheduleDb, start: string, end: string): ScheduleRecord[];
|
|
62
|
+
export declare function getLastRecord(handle: ScheduleDb): ScheduleRecord | null;
|
|
63
|
+
export declare function getStatus(handle: ScheduleDb): {
|
|
64
|
+
records: number;
|
|
65
|
+
days: number;
|
|
66
|
+
firstDate: string | null;
|
|
67
|
+
lastDate: string | null;
|
|
68
|
+
};
|
|
69
|
+
export declare function addSummary(handle: ScheduleDb, date: string, category: string, totalMinutes: number): DailySummary;
|
|
70
|
+
export declare function getDailySummary(handle: ScheduleDb, date: string): DailySummary[];
|
|
71
|
+
export declare function getSummariesRange(handle: ScheduleDb, start: string, end: string): DailySummary[];
|
|
72
|
+
export declare function listPlanEvents(handle: ScheduleDb, date: string, includeInactive?: boolean): PlanEvent[];
|
|
73
|
+
export declare function getPlanEventsRange(handle: ScheduleDb, start: string, end: string): PlanEvent[];
|
|
74
|
+
export declare function getPlanEvent(handle: ScheduleDb, id: number): PlanEvent;
|
|
75
|
+
export declare function searchPlanEvent(handle: ScheduleDb, date: string, title: string, timeStart?: string, timeEnd?: string): PlanEvent[];
|
|
76
|
+
export declare function ensurePlanEvent(handle: ScheduleDb, input: {
|
|
77
|
+
date: string;
|
|
78
|
+
time_start: string;
|
|
79
|
+
time_end: string;
|
|
80
|
+
title: string;
|
|
81
|
+
notes?: string | null;
|
|
82
|
+
category?: string | null;
|
|
83
|
+
}): {
|
|
84
|
+
event: PlanEvent;
|
|
85
|
+
created: boolean;
|
|
86
|
+
};
|
|
87
|
+
export declare function upsertPlanEvents(handle: ScheduleDb, date: string, events: {
|
|
88
|
+
time_start: string;
|
|
89
|
+
time_end: string;
|
|
90
|
+
title: string;
|
|
91
|
+
notes?: string | null;
|
|
92
|
+
category?: string | null;
|
|
93
|
+
}[]): PlanEvent[];
|
|
94
|
+
export declare function updatePlanEvent(handle: ScheduleDb, id: number, patch: Partial<PlanEvent>): PlanEvent;
|
|
95
|
+
export declare function deactivatePlanEvent(handle: ScheduleDb, id: number): PlanEvent;
|
|
96
|
+
export declare function setFeishuEventId(handle: ScheduleDb, id: number, feishuEventId: string | null): void;
|
|
97
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/fetch/db.ts"],"names":[],"mappings":"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"}
|