@jungjaehoon/mama-os 0.47.0 → 0.48.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/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +9 -11
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/constants.d.ts +4 -1
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +34 -97
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts +2 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +227 -29
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/sandbox.d.ts +1 -0
- package/dist/agent/code-act/sandbox.d.ts.map +1 -1
- package/dist/agent/code-act/sandbox.js +33 -6
- package/dist/agent/code-act/sandbox.js.map +1 -1
- package/dist/agent/code-act/tool-catalog.d.ts +28 -0
- package/dist/agent/code-act/tool-catalog.d.ts.map +1 -0
- package/dist/agent/code-act/tool-catalog.js +146 -0
- package/dist/agent/code-act/tool-catalog.js.map +1 -0
- package/dist/agent/code-act/tool-policy.d.ts +2 -1
- package/dist/agent/code-act/tool-policy.d.ts.map +1 -1
- package/dist/agent/code-act/tool-policy.js +2 -1
- package/dist/agent/code-act/tool-policy.js.map +1 -1
- package/dist/agent/code-act/type-definition-generator.d.ts +6 -0
- package/dist/agent/code-act/type-definition-generator.d.ts.map +1 -1
- package/dist/agent/code-act/type-definition-generator.js +40 -21
- package/dist/agent/code-act/type-definition-generator.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +6 -0
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +102 -58
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +7 -7
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +22 -13
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/api/graph-api-types.d.ts +3 -0
- package/dist/api/graph-api-types.d.ts.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +7 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/runtime/code-act-executor.d.ts.map +1 -1
- package/dist/cli/runtime/code-act-executor.js +5 -0
- package/dist/cli/runtime/code-act-executor.js.map +1 -1
- package/dist/connectors/kagemusha/query-tools.d.ts +57 -0
- package/dist/connectors/kagemusha/query-tools.d.ts.map +1 -1
- package/dist/connectors/kagemusha/query-tools.js +247 -0
- package/dist/connectors/kagemusha/query-tools.js.map +1 -1
- package/dist/connectors/private-connector-policy.d.ts +32 -6
- package/dist/connectors/private-connector-policy.d.ts.map +1 -1
- package/dist/connectors/private-connector-policy.js +40 -5
- package/dist/connectors/private-connector-policy.js.map +1 -1
- package/dist/connectors/trello/query-tools.d.ts +148 -16
- package/dist/connectors/trello/query-tools.d.ts.map +1 -1
- package/dist/connectors/trello/query-tools.js +453 -65
- package/dist/connectors/trello/query-tools.js.map +1 -1
- package/dist/mcp/code-act-api-client.d.ts +1 -0
- package/dist/mcp/code-act-api-client.d.ts.map +1 -1
- package/dist/mcp/code-act-api-client.js.map +1 -1
- package/dist/mcp/code-act-server.js +8 -6
- package/dist/mcp/code-act-server.js.map +1 -1
- package/dist/mcp/code-act-terminal-transport.d.ts +2 -0
- package/dist/mcp/code-act-terminal-transport.d.ts.map +1 -1
- package/dist/mcp/code-act-terminal-transport.js +18 -6
- package/dist/mcp/code-act-terminal-transport.js.map +1 -1
- package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.js +1 -5
- package/dist/multi-agent/agent-process-manager.js.map +1 -1
- package/dist/operator/board-read-views.d.ts +49 -0
- package/dist/operator/board-read-views.d.ts.map +1 -0
- package/dist/operator/board-read-views.js +207 -0
- package/dist/operator/board-read-views.js.map +1 -0
- package/dist/operator/task-ledger.d.ts +85 -0
- package/dist/operator/task-ledger.d.ts.map +1 -1
- package/dist/operator/task-ledger.js +128 -0
- package/dist/operator/task-ledger.js.map +1 -1
- package/dist/operator/task-list-views.d.ts +91 -0
- package/dist/operator/task-list-views.d.ts.map +1 -0
- package/dist/operator/task-list-views.js +483 -0
- package/dist/operator/task-list-views.js.map +1 -0
- package/dist/operator/workorder-consumer.js +1 -1
- package/dist/operator/workorder-consumer.js.map +1 -1
- package/dist/sqlite.d.ts +7 -0
- package/dist/sqlite.d.ts.map +1 -1
- package/dist/sqlite.js +8 -0
- package/dist/sqlite.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Progressive board_read views (Task B, parent-fix P3/P5).
|
|
4
|
+
*
|
|
5
|
+
* The default read is descriptors only - each slot's name, updatedAt and stored
|
|
6
|
+
* HTML length in Unicode code points - never the full HTML. To read a slot the
|
|
7
|
+
* caller names it and a format: `text` extracts the slot's text with a real
|
|
8
|
+
* non-executing HTML parser (block/list/table breaks preserved, entities decoded,
|
|
9
|
+
* script/style bodies dropped - markup is never executed or fetched) and `html`
|
|
10
|
+
* returns the stored markup verbatim. Either way the content is paged by Unicode
|
|
11
|
+
* code points with offset/limit and total/nextOffset, and every selected read
|
|
12
|
+
* carries a readVersion bound to (slot, format, content): a continuation (offset
|
|
13
|
+
* > 0) must echo it, so a document that changes between chunks is caught rather
|
|
14
|
+
* than silently mixed. The default deliberately does not invent a summary.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.readBoardView = readBoardView;
|
|
18
|
+
exports.validateContinuationVersion = validateContinuationVersion;
|
|
19
|
+
const node_crypto_1 = require("node:crypto");
|
|
20
|
+
const htmlparser2_1 = require("htmlparser2");
|
|
21
|
+
const CONTENT_DEFAULT_LIMIT = 1000;
|
|
22
|
+
const CONTENT_MAX_LIMIT = 4000;
|
|
23
|
+
const FORMATS = ['text', 'html'];
|
|
24
|
+
function readBoardView(rawInput, slots) {
|
|
25
|
+
const input = asObject(rawInput, 'board_read');
|
|
26
|
+
if (input.slot === undefined) {
|
|
27
|
+
return { success: true, slots: describeSlots(slots) };
|
|
28
|
+
}
|
|
29
|
+
if (typeof input.slot !== 'string' || input.slot.trim().length === 0) {
|
|
30
|
+
throw new Error('board_read slot must be a slot name; omit slot for the descriptor list.');
|
|
31
|
+
}
|
|
32
|
+
const slot = input.slot;
|
|
33
|
+
const entry = Object.prototype.hasOwnProperty.call(slots, slot) ? slots[slot] : undefined;
|
|
34
|
+
if (!entry) {
|
|
35
|
+
throw new Error(`board_read unknown slot '${slot}'; call board_read with no slot to list available slots.`);
|
|
36
|
+
}
|
|
37
|
+
const format = parseFormat(input.format);
|
|
38
|
+
const offset = parseNonNegativeInt(input.offset, 'offset');
|
|
39
|
+
const limit = parseBoundedInt(input.limit, 'limit', CONTENT_DEFAULT_LIMIT, CONTENT_MAX_LIMIT);
|
|
40
|
+
// Normalize once: a missing html (despite the nominal type) is an empty slot,
|
|
41
|
+
// not a throw. The same normalized value backs both the representation and the
|
|
42
|
+
// content version, so a text read, an html read and readVersion all agree.
|
|
43
|
+
const html = entry.html ?? '';
|
|
44
|
+
const representation = format === 'html' ? html : extractText(html);
|
|
45
|
+
const readVersion = contentVersion(slot, format, html);
|
|
46
|
+
// Continuation must be pinned: a document that changed between chunks would
|
|
47
|
+
// otherwise splice two versions at a raw offset. Page 1 (offset 0) issues the
|
|
48
|
+
// version; every later page must echo the one it was handed.
|
|
49
|
+
validateContinuationVersion(input.readVersion, readVersion, offset, 'board_read');
|
|
50
|
+
const points = Array.from(representation);
|
|
51
|
+
const total = points.length;
|
|
52
|
+
const start = Math.min(offset, total);
|
|
53
|
+
const slice = points.slice(start, start + limit);
|
|
54
|
+
const end = start + slice.length;
|
|
55
|
+
const nextOffset = end < total ? end : null;
|
|
56
|
+
return {
|
|
57
|
+
success: true,
|
|
58
|
+
slot,
|
|
59
|
+
format,
|
|
60
|
+
content: slice.join(''),
|
|
61
|
+
offset,
|
|
62
|
+
limit,
|
|
63
|
+
total,
|
|
64
|
+
nextOffset,
|
|
65
|
+
complete: nextOffset === null,
|
|
66
|
+
readVersion,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function describeSlots(slots) {
|
|
70
|
+
return Object.entries(slots).map(([name, value]) => ({
|
|
71
|
+
name,
|
|
72
|
+
updatedAt: value.updatedAt ?? null,
|
|
73
|
+
htmlLength: Array.from(value.html ?? '').length,
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
function contentVersion(slot, format, html) {
|
|
77
|
+
return (0, node_crypto_1.createHash)('sha256')
|
|
78
|
+
.update(`${slot}\0${format}\0${html}`)
|
|
79
|
+
.digest('base64url')
|
|
80
|
+
.slice(0, 22);
|
|
81
|
+
}
|
|
82
|
+
/** Block-level tags whose boundary is a line break in the extracted text. */
|
|
83
|
+
const BLOCK_TAGS = new Set([
|
|
84
|
+
'p',
|
|
85
|
+
'div',
|
|
86
|
+
'section',
|
|
87
|
+
'article',
|
|
88
|
+
'header',
|
|
89
|
+
'footer',
|
|
90
|
+
'aside',
|
|
91
|
+
'nav',
|
|
92
|
+
'main',
|
|
93
|
+
'figure',
|
|
94
|
+
'figcaption',
|
|
95
|
+
'blockquote',
|
|
96
|
+
'pre',
|
|
97
|
+
'ul',
|
|
98
|
+
'ol',
|
|
99
|
+
'li',
|
|
100
|
+
'dl',
|
|
101
|
+
'dt',
|
|
102
|
+
'dd',
|
|
103
|
+
'table',
|
|
104
|
+
'thead',
|
|
105
|
+
'tbody',
|
|
106
|
+
'tfoot',
|
|
107
|
+
'tr',
|
|
108
|
+
'h1',
|
|
109
|
+
'h2',
|
|
110
|
+
'h3',
|
|
111
|
+
'h4',
|
|
112
|
+
'h5',
|
|
113
|
+
'h6',
|
|
114
|
+
'hr',
|
|
115
|
+
]);
|
|
116
|
+
const CELL_TAGS = new Set(['td', 'th']);
|
|
117
|
+
/**
|
|
118
|
+
* Remove markup with a real non-executing parser. Script and style bodies are
|
|
119
|
+
* display-irrelevant and dropped; block/list/table boundaries become line breaks
|
|
120
|
+
* and cells are tab-separated; entities (named and numeric) are decoded by the
|
|
121
|
+
* tokenizer. No DOM tree, no evaluation, no fetch - the parser only tokenizes.
|
|
122
|
+
*/
|
|
123
|
+
function extractText(html) {
|
|
124
|
+
const parts = [];
|
|
125
|
+
let skipDepth = 0;
|
|
126
|
+
const parser = new htmlparser2_1.Parser({
|
|
127
|
+
onopentag(name) {
|
|
128
|
+
if (name === 'script' || name === 'style') {
|
|
129
|
+
skipDepth += 1;
|
|
130
|
+
}
|
|
131
|
+
else if (name === 'br') {
|
|
132
|
+
parts.push('\n');
|
|
133
|
+
}
|
|
134
|
+
else if (BLOCK_TAGS.has(name)) {
|
|
135
|
+
parts.push('\n');
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
ontext(text) {
|
|
139
|
+
if (skipDepth === 0)
|
|
140
|
+
parts.push(text);
|
|
141
|
+
},
|
|
142
|
+
onclosetag(name) {
|
|
143
|
+
if (name === 'script' || name === 'style') {
|
|
144
|
+
if (skipDepth > 0)
|
|
145
|
+
skipDepth -= 1;
|
|
146
|
+
}
|
|
147
|
+
else if (CELL_TAGS.has(name)) {
|
|
148
|
+
parts.push('\t');
|
|
149
|
+
}
|
|
150
|
+
else if (BLOCK_TAGS.has(name)) {
|
|
151
|
+
parts.push('\n');
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
}, { decodeEntities: true });
|
|
155
|
+
parser.write(html);
|
|
156
|
+
parser.end();
|
|
157
|
+
return normalizeText(parts.join(''));
|
|
158
|
+
}
|
|
159
|
+
/** Collapse runs of blank lines and trailing cell tabs; keep intentional breaks. */
|
|
160
|
+
function normalizeText(text) {
|
|
161
|
+
return text
|
|
162
|
+
.replace(/[ \t]+\n/g, '\n')
|
|
163
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
164
|
+
.replace(/\t+\n/g, '\n')
|
|
165
|
+
.trim();
|
|
166
|
+
}
|
|
167
|
+
function validateContinuationVersion(supplied, current, offset, tool) {
|
|
168
|
+
if (offset > 0 && supplied === undefined) {
|
|
169
|
+
throw new Error(`${tool} continuation (offset > 0) requires the readVersion from the previous page; restart from offset 0.`);
|
|
170
|
+
}
|
|
171
|
+
if (supplied !== undefined && supplied !== current) {
|
|
172
|
+
throw new Error(`${tool} content changed since this readVersion was issued; restart the read from offset 0.`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function parseFormat(value) {
|
|
176
|
+
if (value === undefined)
|
|
177
|
+
return 'text';
|
|
178
|
+
if (typeof value !== 'string' || !FORMATS.includes(value)) {
|
|
179
|
+
throw new Error(`board_read format must be one of ${FORMATS.join('|')}.`);
|
|
180
|
+
}
|
|
181
|
+
return value;
|
|
182
|
+
}
|
|
183
|
+
function parseNonNegativeInt(value, field) {
|
|
184
|
+
if (value === undefined)
|
|
185
|
+
return 0;
|
|
186
|
+
if (!Number.isInteger(value) || value < 0) {
|
|
187
|
+
throw new Error(`board_read ${field} must be a non-negative integer.`);
|
|
188
|
+
}
|
|
189
|
+
return value;
|
|
190
|
+
}
|
|
191
|
+
function parseBoundedInt(value, field, fallback, max) {
|
|
192
|
+
if (value === undefined)
|
|
193
|
+
return fallback;
|
|
194
|
+
if (!Number.isInteger(value) || value < 1 || value > max) {
|
|
195
|
+
throw new Error(`board_read ${field} must be an integer from 1 to ${max}.`);
|
|
196
|
+
}
|
|
197
|
+
return value;
|
|
198
|
+
}
|
|
199
|
+
function asObject(value, name) {
|
|
200
|
+
if (value === undefined)
|
|
201
|
+
return {};
|
|
202
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
203
|
+
throw new Error(`${name} input must be an object.`);
|
|
204
|
+
}
|
|
205
|
+
return value;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=board-read-views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-read-views.js","sourceRoot":"","sources":["../../src/operator/board-read-views.ts"],"names":[],"mappings":"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"}
|
|
@@ -256,6 +256,17 @@ export interface ListTasksFilter {
|
|
|
256
256
|
includeTerminal?: boolean;
|
|
257
257
|
channel?: string;
|
|
258
258
|
search?: string;
|
|
259
|
+
/** Exact assignee match (progressive overview/items filter). */
|
|
260
|
+
assignee?: string;
|
|
261
|
+
/** Exact priority match (progressive overview/items filter). */
|
|
262
|
+
priority?: TaskPriority;
|
|
263
|
+
/** Exact due_at strictly before this epoch ms. Date-only-deadline rows (no due_at)
|
|
264
|
+
* are NOT matched: an exact-time filter never invents a clock for a date-only row. */
|
|
265
|
+
dueBeforeMs?: number;
|
|
266
|
+
/** Exact due_at at or after this epoch ms. Same date-only exclusion as dueBeforeMs. */
|
|
267
|
+
dueAfterMs?: number;
|
|
268
|
+
/** updated_at at or after this epoch ms. */
|
|
269
|
+
updatedSinceMs?: number;
|
|
259
270
|
limit?: number;
|
|
260
271
|
/** 'deadline_priority' = deadline asc NULLS LAST, then high>normal>low, then id. */
|
|
261
272
|
order?: 'deadline_priority' | 'updated';
|
|
@@ -280,6 +291,43 @@ export interface ListTasksPage {
|
|
|
280
291
|
/** Cursor for the next page, or null when this page ends the set. */
|
|
281
292
|
nextCursor: string | null;
|
|
282
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* Aggregate counts over the SAME owner predicate a page would return, plus the
|
|
296
|
+
* due buckets derived from the identical temporal classification `items` uses,
|
|
297
|
+
* under one captured `now`. Every facet partitions `total`, so a caller can add
|
|
298
|
+
* up any facet and check it against the number it drew the page from.
|
|
299
|
+
*/
|
|
300
|
+
export interface OverviewResult {
|
|
301
|
+
total: number;
|
|
302
|
+
/** Snapshot instant (ms) captured once for every bucket in this result. */
|
|
303
|
+
observedAt: number;
|
|
304
|
+
/** Conservative change signature; a cursor pinned to it is rejected after any owner write. */
|
|
305
|
+
readVersion: string;
|
|
306
|
+
status: Record<string, number>;
|
|
307
|
+
priority: Record<string, number>;
|
|
308
|
+
/** An unassigned source_channel is reported as a real null `channel`, not the string "null". */
|
|
309
|
+
channels: Array<{
|
|
310
|
+
channel: string | null;
|
|
311
|
+
count: number;
|
|
312
|
+
}>;
|
|
313
|
+
/** null assignee (unassigned) is reported with assignee: null. */
|
|
314
|
+
assignees: Array<{
|
|
315
|
+
assignee: string | null;
|
|
316
|
+
count: number;
|
|
317
|
+
}>;
|
|
318
|
+
/**
|
|
319
|
+
* Partition of `total` by temporal disposition under `observedAt`:
|
|
320
|
+
* missing = no due_at and no deadline; overdue/upcoming from the same
|
|
321
|
+
* deriveTemporalState `items` uses (date_due counts as upcoming); closed =
|
|
322
|
+
* done/cancelled. The four sum to `total`.
|
|
323
|
+
*/
|
|
324
|
+
due: {
|
|
325
|
+
missing: number;
|
|
326
|
+
overdue: number;
|
|
327
|
+
upcoming: number;
|
|
328
|
+
closed: number;
|
|
329
|
+
};
|
|
330
|
+
}
|
|
283
331
|
export declare class TaskLedger implements TaskSource {
|
|
284
332
|
private db;
|
|
285
333
|
private now;
|
|
@@ -317,6 +365,43 @@ export declare class TaskLedger implements TaskSource {
|
|
|
317
365
|
* read that quietly lost items.
|
|
318
366
|
*/
|
|
319
367
|
listPage(filter?: ListTasksPageFilter): ListTasksPage;
|
|
368
|
+
/**
|
|
369
|
+
* One `listPage`, with the read generation and observation instant captured
|
|
370
|
+
* in the SAME synchronous call so total/rows/version cannot straddle a write
|
|
371
|
+
* from this process. The progressive `items` view pins its cursor to this
|
|
372
|
+
* readVersion and restarts if a later page observes a different one.
|
|
373
|
+
*/
|
|
374
|
+
itemsPage(filter?: ListTasksPageFilter): ListTasksPage & {
|
|
375
|
+
readVersion: string;
|
|
376
|
+
observedAt: number;
|
|
377
|
+
};
|
|
378
|
+
/** The ledger's clock (injected in tests); progressive views stamp observedAt with it. */
|
|
379
|
+
nowMs(): number;
|
|
380
|
+
/**
|
|
381
|
+
* Run a read-only body inside a single DEFERRED transaction so every statement
|
|
382
|
+
* shares one snapshot. better-sqlite3 nests via SAVEPOINT, so this is safe even
|
|
383
|
+
* if a caller is already inside a transaction.
|
|
384
|
+
*/
|
|
385
|
+
private readSnapshot;
|
|
386
|
+
/**
|
|
387
|
+
* A conservative change signature for the whole owner board, derived from
|
|
388
|
+
* existing columns - no snapshot table. COUNT catches inserts/deletes,
|
|
389
|
+
* SUM(revision) catches every owner update (each bumps revision), MAX(id)
|
|
390
|
+
* catches inserts, MAX(updated_at) is a coarse tie-breaker. It is NOT an
|
|
391
|
+
* immutable snapshot id: it only lets a paged read reject its own cursor once
|
|
392
|
+
* ANY owner row has changed, so a "whole board" claim never spans a write.
|
|
393
|
+
* System workorder churn is deliberately excluded (kind='owner').
|
|
394
|
+
*/
|
|
395
|
+
readGeneration(): string;
|
|
396
|
+
/**
|
|
397
|
+
* Aggregate counts over the same owner predicate `listPage` filters by. Facets
|
|
398
|
+
* come from SQL GROUP BY (each partitions total); due buckets are computed in
|
|
399
|
+
* one JS pass over minimal rows using the SAME deriveTemporalState `items`
|
|
400
|
+
* uses, so an overview bucket and an item's temporal_state never disagree.
|
|
401
|
+
* readGeneration is captured in the same synchronous call as the counts.
|
|
402
|
+
*/
|
|
403
|
+
overview(filter?: ListTasksFilter): OverviewResult;
|
|
404
|
+
private overviewInSnapshot;
|
|
320
405
|
/** Internal bounded page for temporal reconciliation; excludes rows that can never be candidates. */
|
|
321
406
|
listTemporalScanPage(input: {
|
|
322
407
|
limit: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-ledger.d.ts","sourceRoot":"","sources":["../../src/operator/task-ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-ledger.d.ts","sourceRoot":"","sources":["../../src/operator/task-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -357,6 +357,26 @@ class TaskLedger {
|
|
|
357
357
|
const like = `%${filter.search}%`;
|
|
358
358
|
params.push(like, like, like);
|
|
359
359
|
}
|
|
360
|
+
if (filter.assignee !== undefined) {
|
|
361
|
+
where.push('assignee = ?');
|
|
362
|
+
params.push(filter.assignee);
|
|
363
|
+
}
|
|
364
|
+
if (filter.priority !== undefined) {
|
|
365
|
+
where.push('priority = ?');
|
|
366
|
+
params.push(filter.priority);
|
|
367
|
+
}
|
|
368
|
+
if (filter.dueBeforeMs !== undefined) {
|
|
369
|
+
where.push('due_at IS NOT NULL AND due_at < ?');
|
|
370
|
+
params.push(filter.dueBeforeMs);
|
|
371
|
+
}
|
|
372
|
+
if (filter.dueAfterMs !== undefined) {
|
|
373
|
+
where.push('due_at IS NOT NULL AND due_at >= ?');
|
|
374
|
+
params.push(filter.dueAfterMs);
|
|
375
|
+
}
|
|
376
|
+
if (filter.updatedSinceMs !== undefined) {
|
|
377
|
+
where.push('updated_at >= ?');
|
|
378
|
+
params.push(filter.updatedSinceMs);
|
|
379
|
+
}
|
|
360
380
|
return { where, params };
|
|
361
381
|
}
|
|
362
382
|
/** ORDER BY for both list() and listPage(); the trailing id makes it a TOTAL order,
|
|
@@ -432,6 +452,114 @@ class TaskLedger {
|
|
|
432
452
|
nextCursor: hasMore && last ? encodeListCursor(TaskLedger.cursorFor(last, order)) : null,
|
|
433
453
|
};
|
|
434
454
|
}
|
|
455
|
+
/**
|
|
456
|
+
* One `listPage`, with the read generation and observation instant captured
|
|
457
|
+
* in the SAME synchronous call so total/rows/version cannot straddle a write
|
|
458
|
+
* from this process. The progressive `items` view pins its cursor to this
|
|
459
|
+
* readVersion and restarts if a later page observes a different one.
|
|
460
|
+
*/
|
|
461
|
+
itemsPage(filter = {}) {
|
|
462
|
+
// One DEFERRED read transaction: the generation, the total and the rows all
|
|
463
|
+
// read the SAME SQLite snapshot, so another connection committing between the
|
|
464
|
+
// statements cannot make the returned readVersion disagree with the page it
|
|
465
|
+
// describes. Synchronous JS alone is not a cross-connection snapshot.
|
|
466
|
+
return this.readSnapshot(() => {
|
|
467
|
+
const observedAt = this.now();
|
|
468
|
+
const readVersion = this.readGeneration();
|
|
469
|
+
const page = this.listPage(filter);
|
|
470
|
+
return { ...page, readVersion, observedAt };
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
/** The ledger's clock (injected in tests); progressive views stamp observedAt with it. */
|
|
474
|
+
nowMs() {
|
|
475
|
+
return this.now();
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Run a read-only body inside a single DEFERRED transaction so every statement
|
|
479
|
+
* shares one snapshot. better-sqlite3 nests via SAVEPOINT, so this is safe even
|
|
480
|
+
* if a caller is already inside a transaction.
|
|
481
|
+
*/
|
|
482
|
+
readSnapshot(body) {
|
|
483
|
+
const runner = this.db.transaction(body);
|
|
484
|
+
return runner();
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* A conservative change signature for the whole owner board, derived from
|
|
488
|
+
* existing columns - no snapshot table. COUNT catches inserts/deletes,
|
|
489
|
+
* SUM(revision) catches every owner update (each bumps revision), MAX(id)
|
|
490
|
+
* catches inserts, MAX(updated_at) is a coarse tie-breaker. It is NOT an
|
|
491
|
+
* immutable snapshot id: it only lets a paged read reject its own cursor once
|
|
492
|
+
* ANY owner row has changed, so a "whole board" claim never spans a write.
|
|
493
|
+
* System workorder churn is deliberately excluded (kind='owner').
|
|
494
|
+
*/
|
|
495
|
+
readGeneration() {
|
|
496
|
+
const row = this.db
|
|
497
|
+
.prepare(`SELECT COUNT(*) AS c, COALESCE(SUM(revision), 0) AS r,
|
|
498
|
+
COALESCE(MAX(id), 0) AS m, COALESCE(MAX(updated_at), 0) AS u
|
|
499
|
+
FROM operator_tasks WHERE kind = 'owner'`)
|
|
500
|
+
.get();
|
|
501
|
+
return (0, node_crypto_1.createHash)('sha256')
|
|
502
|
+
.update(`${row.c}:${row.r}:${row.m}:${row.u}`)
|
|
503
|
+
.digest('base64url')
|
|
504
|
+
.slice(0, 22);
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* Aggregate counts over the same owner predicate `listPage` filters by. Facets
|
|
508
|
+
* come from SQL GROUP BY (each partitions total); due buckets are computed in
|
|
509
|
+
* one JS pass over minimal rows using the SAME deriveTemporalState `items`
|
|
510
|
+
* uses, so an overview bucket and an item's temporal_state never disagree.
|
|
511
|
+
* readGeneration is captured in the same synchronous call as the counts.
|
|
512
|
+
*/
|
|
513
|
+
overview(filter = {}) {
|
|
514
|
+
return this.readSnapshot(() => this.overviewInSnapshot(filter));
|
|
515
|
+
}
|
|
516
|
+
overviewInSnapshot(filter) {
|
|
517
|
+
// One captured time for every derived due bucket; one snapshot for every count.
|
|
518
|
+
const now = this.now();
|
|
519
|
+
const readVersion = this.readGeneration();
|
|
520
|
+
const { where, params } = this.buildListPredicate(filter);
|
|
521
|
+
const whereSql = where.join(' AND ');
|
|
522
|
+
const groupBy = (column) => this.db
|
|
523
|
+
.prepare(`SELECT ${column} AS key, COUNT(*) AS count FROM operator_tasks
|
|
524
|
+
WHERE ${whereSql} GROUP BY ${column}`)
|
|
525
|
+
.all(...params);
|
|
526
|
+
const total = this.db
|
|
527
|
+
.prepare(`SELECT COUNT(*) AS total FROM operator_tasks WHERE ${whereSql}`)
|
|
528
|
+
.get(...params).total;
|
|
529
|
+
const status = {};
|
|
530
|
+
for (const row of groupBy('status'))
|
|
531
|
+
status[String(row.key)] = row.count;
|
|
532
|
+
const priority = {};
|
|
533
|
+
for (const row of groupBy('priority'))
|
|
534
|
+
priority[String(row.key)] = row.count;
|
|
535
|
+
const channels = groupBy('source_channel').map((row) => ({
|
|
536
|
+
channel: row.key,
|
|
537
|
+
count: row.count,
|
|
538
|
+
}));
|
|
539
|
+
const assignees = groupBy('assignee').map((row) => ({ assignee: row.key, count: row.count }));
|
|
540
|
+
const due = { missing: 0, overdue: 0, upcoming: 0, closed: 0 };
|
|
541
|
+
const rows = this.db
|
|
542
|
+
.prepare(`SELECT status, due_at, deadline, deadline_offset_minutes
|
|
543
|
+
FROM operator_tasks WHERE ${whereSql}`)
|
|
544
|
+
.all(...params);
|
|
545
|
+
for (const row of rows) {
|
|
546
|
+
const state = (0, task_temporal_js_1.deriveTemporalState)({
|
|
547
|
+
status: row.status,
|
|
548
|
+
dueAt: row.due_at,
|
|
549
|
+
deadlineIso: row.deadline,
|
|
550
|
+
deadlineOffsetMinutes: row.deadline_offset_minutes,
|
|
551
|
+
}, now, this.timeZone);
|
|
552
|
+
if (state === 'closed')
|
|
553
|
+
due.closed += 1;
|
|
554
|
+
else if (state === 'unscheduled')
|
|
555
|
+
due.missing += 1;
|
|
556
|
+
else if (state === 'exact_overdue' || state === 'date_overdue')
|
|
557
|
+
due.overdue += 1;
|
|
558
|
+
else
|
|
559
|
+
due.upcoming += 1;
|
|
560
|
+
}
|
|
561
|
+
return { total, observedAt: now, readVersion, status, priority, channels, assignees, due };
|
|
562
|
+
}
|
|
435
563
|
/** Internal bounded page for temporal reconciliation; excludes rows that can never be candidates. */
|
|
436
564
|
listTemporalScanPage(input) {
|
|
437
565
|
const rawLimit = Number(input.limit);
|