@jungjaehoon/mama-os 0.25.0 → 0.27.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/CHANGELOG.md +9 -0
- package/README.md +37 -17
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +8 -0
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/attachment-text-extractor.d.ts +2 -0
- package/dist/agent/attachment-text-extractor.d.ts.map +1 -0
- package/dist/agent/attachment-text-extractor.js +128 -0
- package/dist/agent/attachment-text-extractor.js.map +1 -0
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +17 -2
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +107 -0
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/tool-policy.d.ts +9 -1
- package/dist/agent/code-act/tool-policy.d.ts.map +1 -1
- package/dist/agent/code-act/tool-policy.js +30 -1
- package/dist/agent/code-act/tool-policy.js.map +1 -1
- package/dist/agent/codex-app-server-process.d.ts +1 -0
- package/dist/agent/codex-app-server-process.d.ts.map +1 -1
- package/dist/agent/codex-app-server-process.js +16 -0
- package/dist/agent/codex-app-server-process.js.map +1 -1
- package/dist/agent/drive-tools.d.ts +55 -0
- package/dist/agent/drive-tools.d.ts.map +1 -0
- package/dist/agent/drive-tools.js +263 -0
- package/dist/agent/drive-tools.js.map +1 -0
- package/dist/agent/gateway-tool-executor.d.ts +11 -3
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +249 -19
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +9 -0
- package/dist/agent/image-translation-tools.d.ts +48 -0
- package/dist/agent/image-translation-tools.d.ts.map +1 -0
- package/dist/agent/image-translation-tools.js +274 -0
- package/dist/agent/image-translation-tools.js.map +1 -0
- package/dist/agent/role-manager.d.ts.map +1 -1
- package/dist/agent/role-manager.js +9 -1
- package/dist/agent/role-manager.js.map +1 -1
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +53 -0
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +22 -33
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +18 -8
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +12 -4
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.d.ts.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.js +8 -1
- package/dist/cli/runtime/envelope-bootstrap.js.map +1 -1
- package/dist/connectors/drive/index.d.ts +1 -1
- package/dist/connectors/drive/index.d.ts.map +1 -1
- package/dist/connectors/drive/index.js +100 -56
- package/dist/connectors/drive/index.js.map +1 -1
- package/dist/connectors/framework/gws-utils.d.ts +3 -0
- package/dist/connectors/framework/gws-utils.d.ts.map +1 -1
- package/dist/connectors/framework/gws-utils.js +17 -0
- package/dist/connectors/framework/gws-utils.js.map +1 -1
- package/dist/envelope/enforcer.d.ts.map +1 -1
- package/dist/envelope/enforcer.js +18 -3
- package/dist/envelope/enforcer.js.map +1 -1
- package/dist/envelope/reactive-config.d.ts +1 -1
- package/dist/envelope/reactive-config.d.ts.map +1 -1
- package/dist/envelope/reactive-config.js +10 -2
- package/dist/envelope/reactive-config.js.map +1 -1
- package/dist/envelope/types.d.ts +1 -1
- package/dist/envelope/types.d.ts.map +1 -1
- package/dist/envelope/types.js.map +1 -1
- package/dist/gateways/message-router.d.ts +4 -0
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +433 -335
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/session-store.d.ts +2 -0
- package/dist/gateways/session-store.d.ts.map +1 -1
- package/dist/gateways/session-store.js +41 -1
- package/dist/gateways/session-store.js.map +1 -1
- package/dist/gateways/telegram-media.d.ts +41 -0
- package/dist/gateways/telegram-media.d.ts.map +1 -0
- package/dist/gateways/telegram-media.js +242 -0
- package/dist/gateways/telegram-media.js.map +1 -0
- package/dist/gateways/telegram-message-ledger.d.ts +49 -0
- package/dist/gateways/telegram-message-ledger.d.ts.map +1 -0
- package/dist/gateways/telegram-message-ledger.js +266 -0
- package/dist/gateways/telegram-message-ledger.js.map +1 -0
- package/dist/gateways/telegram-response-presenter.d.ts +41 -0
- package/dist/gateways/telegram-response-presenter.d.ts.map +1 -0
- package/dist/gateways/telegram-response-presenter.js +250 -0
- package/dist/gateways/telegram-response-presenter.js.map +1 -0
- package/dist/gateways/telegram.d.ts +30 -7
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +444 -124
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/gateways/types.d.ts +4 -2
- package/dist/gateways/types.d.ts.map +1 -1
- package/dist/operator/operator-interfaces.d.ts +1 -1
- package/dist/operator/operator-interfaces.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.d.ts +12 -0
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +184 -38
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/pending-report-store.d.ts +35 -0
- package/dist/operator/pending-report-store.d.ts.map +1 -0
- package/dist/operator/pending-report-store.js +155 -0
- package/dist/operator/pending-report-store.js.map +1 -0
- package/dist/operator/runtime-config.d.ts +10 -0
- package/dist/operator/runtime-config.d.ts.map +1 -0
- package/dist/operator/runtime-config.js +21 -0
- package/dist/operator/runtime-config.js.map +1 -0
- package/dist/operator/situation-report.d.ts +37 -0
- package/dist/operator/situation-report.d.ts.map +1 -1
- package/dist/operator/situation-report.js +122 -9
- package/dist/operator/situation-report.js.map +1 -1
- package/package.json +3 -1
- package/scripts/attachment/extract-office-text.js +179 -0
- package/scripts/attachment/extract-pdf-text.swift +36 -0
- package/scripts/image/fb-overlay.py +128 -0
- package/scripts/image/ocr-image.py +38 -0
- package/scripts/setup-ocr.js +120 -0
- package/templates/skills/image-translate.md +17 -22
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { PreparedSituationReport, SituationReporterSnapshot } from './situation-report.js';
|
|
2
|
+
export interface PendingReportOccurrence {
|
|
3
|
+
kind: 'digest' | 'scheduled_full' | 'on_demand_full';
|
|
4
|
+
hourKey?: string;
|
|
5
|
+
firedAtIso?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface PendingReportDelivery extends PreparedSituationReport {
|
|
8
|
+
deliveryId: string;
|
|
9
|
+
occurrence: PendingReportOccurrence;
|
|
10
|
+
}
|
|
11
|
+
export interface PendingReportRequest {
|
|
12
|
+
mode: 'full';
|
|
13
|
+
deliveryId: string;
|
|
14
|
+
occurrence: PendingReportOccurrence;
|
|
15
|
+
acceptedAtIso: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PendingReportState {
|
|
18
|
+
version: 1;
|
|
19
|
+
digest: SituationReporterSnapshot;
|
|
20
|
+
full: SituationReporterSnapshot;
|
|
21
|
+
delivery?: PendingReportDelivery;
|
|
22
|
+
request?: PendingReportRequest;
|
|
23
|
+
}
|
|
24
|
+
export interface PendingReportStore {
|
|
25
|
+
load(): PendingReportState | null;
|
|
26
|
+
save(state: PendingReportState): void;
|
|
27
|
+
}
|
|
28
|
+
export declare class FilePendingReportStore implements PendingReportStore {
|
|
29
|
+
private readonly path;
|
|
30
|
+
private readonly log;
|
|
31
|
+
constructor(path: string, log?: (line: string) => void);
|
|
32
|
+
load(): PendingReportState | null;
|
|
33
|
+
save(state: PendingReportState): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=pending-report-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-report-store.d.ts","sourceRoot":"","sources":["../../src/operator/pending-report-store.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEhG,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,uBAAuB,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,yBAAyB,CAAC;IAClC,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACvC;AA+HD,qBAAa,sBAAuB,YAAW,kBAAkB;IAE7D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe;IAGzD,IAAI,IAAI,kBAAkB,GAAG,IAAI;IA0BjC,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAUtC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FilePendingReportStore = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const MAX_PENDING_REPORT_BYTES = 8 * 1024 * 1024;
|
|
7
|
+
const MAX_CHANNELS = 48;
|
|
8
|
+
const MAX_FIRES = 100;
|
|
9
|
+
const MAX_RECALLED = 20;
|
|
10
|
+
const MAX_EVENT_KEYS = 10_000;
|
|
11
|
+
function isPendingReportState(value) {
|
|
12
|
+
if (!value || typeof value !== 'object')
|
|
13
|
+
return false;
|
|
14
|
+
const record = value;
|
|
15
|
+
if (record.version !== 1)
|
|
16
|
+
return false;
|
|
17
|
+
for (const key of ['digest', 'full']) {
|
|
18
|
+
const snapshot = record[key];
|
|
19
|
+
if (!snapshot || typeof snapshot !== 'object')
|
|
20
|
+
return false;
|
|
21
|
+
const fields = snapshot;
|
|
22
|
+
if (!isSituationSnapshot(fields)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return ((record.delivery === undefined || isPendingDelivery(record.delivery)) &&
|
|
27
|
+
(record.request === undefined || isPendingRequest(record.request)));
|
|
28
|
+
}
|
|
29
|
+
function isPendingRequest(value) {
|
|
30
|
+
if (!value || typeof value !== 'object')
|
|
31
|
+
return false;
|
|
32
|
+
const record = value;
|
|
33
|
+
const occurrence = record.occurrence;
|
|
34
|
+
return (record.mode === 'full' &&
|
|
35
|
+
isBoundedString(record.deliveryId, 512) &&
|
|
36
|
+
isBoundedString(record.acceptedAtIso, 64) &&
|
|
37
|
+
Boolean(occurrence) &&
|
|
38
|
+
occurrence?.kind === 'on_demand_full' &&
|
|
39
|
+
(occurrence.hourKey === undefined || isBoundedString(occurrence.hourKey, 128)) &&
|
|
40
|
+
isBoundedString(occurrence.firedAtIso, 64));
|
|
41
|
+
}
|
|
42
|
+
function isPendingDelivery(value) {
|
|
43
|
+
if (!value || typeof value !== 'object')
|
|
44
|
+
return false;
|
|
45
|
+
const record = value;
|
|
46
|
+
const occurrence = record.occurrence;
|
|
47
|
+
return ((record.mode === 'digest' || record.mode === 'full') &&
|
|
48
|
+
isBoundedString(record.text, 1_000_000) &&
|
|
49
|
+
isBoundedString(record.deliveryId, 512) &&
|
|
50
|
+
isBoundedString(record.createdAtIso, 64) &&
|
|
51
|
+
Array.isArray(record.citedTriggerIds) &&
|
|
52
|
+
record.citedTriggerIds.length <= MAX_FIRES &&
|
|
53
|
+
record.citedTriggerIds.every((item) => isBoundedString(item, 512)) &&
|
|
54
|
+
Boolean(occurrence) &&
|
|
55
|
+
(occurrence?.kind === 'digest' ||
|
|
56
|
+
occurrence?.kind === 'scheduled_full' ||
|
|
57
|
+
occurrence?.kind === 'on_demand_full') &&
|
|
58
|
+
(occurrence.hourKey === undefined || isBoundedString(occurrence.hourKey, 128)) &&
|
|
59
|
+
(occurrence.firedAtIso === undefined || isBoundedString(occurrence.firedAtIso, 64)));
|
|
60
|
+
}
|
|
61
|
+
function isSituationSnapshot(fields) {
|
|
62
|
+
if (fields.version !== 1 ||
|
|
63
|
+
!isSafeCount(fields.windowTotal) ||
|
|
64
|
+
!isSafeCount(fields.authored) ||
|
|
65
|
+
!Array.isArray(fields.channels) ||
|
|
66
|
+
fields.channels.length > MAX_CHANNELS ||
|
|
67
|
+
!Array.isArray(fields.fires) ||
|
|
68
|
+
fields.fires.length > MAX_FIRES ||
|
|
69
|
+
!Array.isArray(fields.recalled) ||
|
|
70
|
+
fields.recalled.length > MAX_RECALLED ||
|
|
71
|
+
(fields.eventKeys !== undefined &&
|
|
72
|
+
(!Array.isArray(fields.eventKeys) ||
|
|
73
|
+
fields.eventKeys.length > MAX_EVENT_KEYS ||
|
|
74
|
+
!fields.eventKeys.every((item) => isBoundedString(item, 1_024))))) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return (fields.channels.every(isChannelSnapshot) &&
|
|
78
|
+
fields.fires.every(isFireSnapshot) &&
|
|
79
|
+
fields.recalled.every(isRecalledSnapshot));
|
|
80
|
+
}
|
|
81
|
+
function isChannelSnapshot(value) {
|
|
82
|
+
if (!value || typeof value !== 'object')
|
|
83
|
+
return false;
|
|
84
|
+
const record = value;
|
|
85
|
+
return (isBoundedString(record.channelId, 512) &&
|
|
86
|
+
isSafeCount(record.count) &&
|
|
87
|
+
Array.isArray(record.excerpts) &&
|
|
88
|
+
record.excerpts.length <= 5 &&
|
|
89
|
+
record.excerpts.every((item) => isBoundedString(item, 160)));
|
|
90
|
+
}
|
|
91
|
+
function isFireSnapshot(value) {
|
|
92
|
+
if (!value || typeof value !== 'object')
|
|
93
|
+
return false;
|
|
94
|
+
const record = value;
|
|
95
|
+
return (isBoundedString(record.triggerId, 512) &&
|
|
96
|
+
isBoundedString(record.kind, 512) &&
|
|
97
|
+
isBoundedString(record.channelId, 512) &&
|
|
98
|
+
isSafeCount(record.count) &&
|
|
99
|
+
Array.isArray(record.topics) &&
|
|
100
|
+
record.topics.length <= MAX_RECALLED &&
|
|
101
|
+
record.topics.every((item) => isBoundedString(item, 512)));
|
|
102
|
+
}
|
|
103
|
+
function isRecalledSnapshot(value) {
|
|
104
|
+
if (!value || typeof value !== 'object')
|
|
105
|
+
return false;
|
|
106
|
+
const record = value;
|
|
107
|
+
return isBoundedString(record.topic, 512) && isBoundedString(record.content, 160);
|
|
108
|
+
}
|
|
109
|
+
function isSafeCount(value) {
|
|
110
|
+
return Number.isSafeInteger(value) && value >= 0;
|
|
111
|
+
}
|
|
112
|
+
function isBoundedString(value, maxLength) {
|
|
113
|
+
return typeof value === 'string' && value.length <= maxLength;
|
|
114
|
+
}
|
|
115
|
+
class FilePendingReportStore {
|
|
116
|
+
path;
|
|
117
|
+
log;
|
|
118
|
+
constructor(path, log = () => { }) {
|
|
119
|
+
this.path = path;
|
|
120
|
+
this.log = log;
|
|
121
|
+
}
|
|
122
|
+
load() {
|
|
123
|
+
if (!(0, node_fs_1.existsSync)(this.path))
|
|
124
|
+
return null;
|
|
125
|
+
const size = (0, node_fs_1.statSync)(this.path).size;
|
|
126
|
+
const raw = size <= MAX_PENDING_REPORT_BYTES ? (0, node_fs_1.readFileSync)(this.path, 'utf8') : null;
|
|
127
|
+
try {
|
|
128
|
+
const parsed = raw === null ? null : JSON.parse(raw);
|
|
129
|
+
if (!isPendingReportState(parsed)) {
|
|
130
|
+
throw new Error(size > MAX_PENDING_REPORT_BYTES
|
|
131
|
+
? 'Pending operator report state exceeds its size limit'
|
|
132
|
+
: 'Pending operator report state is invalid');
|
|
133
|
+
}
|
|
134
|
+
return parsed;
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
const quarantinePath = `${this.path}.corrupt-${Date.now()}-${process.pid}`;
|
|
138
|
+
(0, node_fs_1.renameSync)(this.path, quarantinePath);
|
|
139
|
+
this.log(`[trigger-loop] invalid pending owner-report state quarantined at ${quarantinePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
save(state) {
|
|
144
|
+
if (!isPendingReportState(state)) {
|
|
145
|
+
throw new Error('Refusing to persist invalid pending operator report state');
|
|
146
|
+
}
|
|
147
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(this.path), { recursive: true, mode: 0o700 });
|
|
148
|
+
const temporaryPath = `${this.path}.tmp`;
|
|
149
|
+
(0, node_fs_1.writeFileSync)(temporaryPath, `${JSON.stringify(state)}\n`, { mode: 0o600 });
|
|
150
|
+
(0, node_fs_1.chmodSync)(temporaryPath, 0o600);
|
|
151
|
+
(0, node_fs_1.renameSync)(temporaryPath, this.path);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.FilePendingReportStore = FilePendingReportStore;
|
|
155
|
+
//# sourceMappingURL=pending-report-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-report-store.js","sourceRoot":"","sources":["../../src/operator/pending-report-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type OperatorRuntimeEnvironment = Readonly<Record<string, string | undefined>>;
|
|
2
|
+
/** Proactive monitoring is a core operator behavior; an explicit 0 is the opt-out. */
|
|
3
|
+
export declare function isOperatorTriggerLoopEnabled(environment: OperatorRuntimeEnvironment): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the owner-report destination without requiring a duplicate secret setting.
|
|
6
|
+
* Falling back is safe only for exactly one allowlisted private Telegram chat; groups
|
|
7
|
+
* and ambiguous allowlists require the explicit environment setting.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveOperatorReportChatId(environment: OperatorRuntimeEnvironment, allowedChats: readonly string[] | undefined): string;
|
|
10
|
+
//# sourceMappingURL=runtime-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../../src/operator/runtime-config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEtF,sFAAsF;AACtF,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,0BAA0B,GAAG,OAAO,CAE7F;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,0BAA0B,EACvC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC1C,MAAM,CAOR"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isOperatorTriggerLoopEnabled = isOperatorTriggerLoopEnabled;
|
|
4
|
+
exports.resolveOperatorReportChatId = resolveOperatorReportChatId;
|
|
5
|
+
/** Proactive monitoring is a core operator behavior; an explicit 0 is the opt-out. */
|
|
6
|
+
function isOperatorTriggerLoopEnabled(environment) {
|
|
7
|
+
return environment.MAMA_TRIGGER_LOOP !== '0';
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the owner-report destination without requiring a duplicate secret setting.
|
|
11
|
+
* Falling back is safe only for exactly one allowlisted private Telegram chat; groups
|
|
12
|
+
* and ambiguous allowlists require the explicit environment setting.
|
|
13
|
+
*/
|
|
14
|
+
function resolveOperatorReportChatId(environment, allowedChats) {
|
|
15
|
+
const explicit = environment.MAMA_TRIGGER_LOOP_REPORT_CHAT?.trim();
|
|
16
|
+
const privateChats = [...new Set((allowedChats ?? []).map((chat) => chat.trim()))].filter((chat) => /^[1-9]\d*$/.test(chat));
|
|
17
|
+
if (explicit)
|
|
18
|
+
return privateChats.includes(explicit) ? explicit : '';
|
|
19
|
+
return privateChats.length === 1 ? privateChats[0] : '';
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=runtime-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../../src/operator/runtime-config.ts"],"names":[],"mappings":";;AAGA,oEAEC;AAOD,kEAUC;AApBD,sFAAsF;AACtF,SAAgB,4BAA4B,CAAC,WAAuC;IAClF,OAAO,WAAW,CAAC,iBAAiB,KAAK,GAAG,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAgB,2BAA2B,CACzC,WAAuC,EACvC,YAA2C;IAE3C,MAAM,QAAQ,GAAG,WAAW,CAAC,6BAA6B,EAAE,IAAI,EAAE,CAAC;IACnE,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CACvF,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAClC,CAAC;IACF,IAAI,QAAQ;QAAE,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -34,6 +34,35 @@ export interface FireActivity {
|
|
|
34
34
|
}[];
|
|
35
35
|
}
|
|
36
36
|
export type ReportMode = 'digest' | 'full';
|
|
37
|
+
export interface PreparedSituationReport {
|
|
38
|
+
mode: ReportMode;
|
|
39
|
+
text: string;
|
|
40
|
+
citedTriggerIds: string[];
|
|
41
|
+
createdAtIso: string;
|
|
42
|
+
deliveryId?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface SituationReporterSnapshot {
|
|
45
|
+
version: 1;
|
|
46
|
+
channels: Array<{
|
|
47
|
+
channelId: string;
|
|
48
|
+
count: number;
|
|
49
|
+
excerpts: string[];
|
|
50
|
+
}>;
|
|
51
|
+
windowTotal: number;
|
|
52
|
+
fires: Array<{
|
|
53
|
+
triggerId: string;
|
|
54
|
+
kind: string;
|
|
55
|
+
channelId: string;
|
|
56
|
+
count: number;
|
|
57
|
+
topics: string[];
|
|
58
|
+
}>;
|
|
59
|
+
authored: number;
|
|
60
|
+
recalled: Array<{
|
|
61
|
+
topic: string;
|
|
62
|
+
content: string;
|
|
63
|
+
}>;
|
|
64
|
+
eventKeys?: string[];
|
|
65
|
+
}
|
|
37
66
|
export interface SituationReporterOptions {
|
|
38
67
|
/** Model provider controls only the tool-call syntax; report workflow/content stays shared. */
|
|
39
68
|
backend?: BackendType;
|
|
@@ -78,19 +107,27 @@ export declare class SituationReporter {
|
|
|
78
107
|
private fireAgg;
|
|
79
108
|
private authored;
|
|
80
109
|
private recalled;
|
|
110
|
+
private eventKeys;
|
|
81
111
|
private opts;
|
|
82
112
|
constructor(opts?: SituationReporterOptions);
|
|
83
113
|
/** Fold a batch of drained events into the bounded per-channel window. */
|
|
84
114
|
recordWindow(events: OperatorChannelEvent[]): void;
|
|
115
|
+
hasRecordedEvent(event: OperatorChannelEvent): boolean;
|
|
116
|
+
private eventKey;
|
|
117
|
+
private legacyEventKey;
|
|
85
118
|
/** Fold one fire into the aggregate; merge the memory it recalled (agent-query-driven). */
|
|
86
119
|
recordFire(activity: FireActivity): void;
|
|
87
120
|
recordAuthored(count: number): void;
|
|
88
121
|
/** Any window events, fires, or authored triggers accumulated since the last reset. */
|
|
89
122
|
hasActivity(): boolean;
|
|
123
|
+
snapshot(): SituationReporterSnapshot;
|
|
124
|
+
restore(snapshot: SituationReporterSnapshot): void;
|
|
90
125
|
/**
|
|
91
126
|
* Agent composes the report from the aggregate; sink delivers it. Returns true if a report was
|
|
92
127
|
* sent, false if there was nothing to say or the agent suppressed it (NOTHING).
|
|
93
128
|
*/
|
|
129
|
+
prepareReport(askAgent: AskAgent, mode: ReportMode, deliveryId?: string): Promise<PreparedSituationReport | null>;
|
|
130
|
+
deliverPrepared(prepared: PreparedSituationReport, output: Pick<OutputSink, 'send'>): Promise<void>;
|
|
94
131
|
report(askAgent: AskAgent, output: Pick<OutputSink, 'send'>, mode: ReportMode): Promise<boolean>;
|
|
95
132
|
private reset;
|
|
96
133
|
/** Public for testability. Aggregate window + fire activity + recalled memory -> agent prompt. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"situation-report.d.ts","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"situation-report.d.ts","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SituationReporter = exports.OPERATOR_FULL_REPORT_TAG = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
4
5
|
const untrusted_content_js_1 = require("../utils/untrusted-content.js");
|
|
5
6
|
/**
|
|
6
7
|
* Machine frame tag prepended to the FULL report prompt so the report-run wiring can tell a full
|
|
@@ -12,7 +13,10 @@ exports.OPERATOR_FULL_REPORT_TAG = '[operator_full_report]';
|
|
|
12
13
|
const MAX_EXCERPTS_PER_CHANNEL = 5;
|
|
13
14
|
const MAX_EXCERPT_CHARS = 160;
|
|
14
15
|
const MAX_CHANNELS_IN_PROMPT = 12;
|
|
16
|
+
const MAX_CHANNELS_IN_SNAPSHOT = MAX_CHANNELS_IN_PROMPT * 4;
|
|
15
17
|
const MAX_RECALLED = 20;
|
|
18
|
+
const MAX_FIRES_IN_SNAPSHOT = 100;
|
|
19
|
+
const MAX_SEEN_EVENT_KEYS = 10_000;
|
|
16
20
|
/** Machine trailer the agent appends; stripped before the owner sees the report. */
|
|
17
21
|
const USED_TRIGGERS_PATTERN = /\n?^USED_TRIGGERS:\s*(.*)\s*$/im;
|
|
18
22
|
class SituationReporter {
|
|
@@ -21,6 +25,7 @@ class SituationReporter {
|
|
|
21
25
|
fireAgg = new Map();
|
|
22
26
|
authored = 0;
|
|
23
27
|
recalled = new Map(); // topic -> content (deduped, bounded)
|
|
28
|
+
eventKeys = new Set();
|
|
24
29
|
opts;
|
|
25
30
|
constructor(opts = {}) {
|
|
26
31
|
this.opts = opts;
|
|
@@ -28,6 +33,15 @@ class SituationReporter {
|
|
|
28
33
|
/** Fold a batch of drained events into the bounded per-channel window. */
|
|
29
34
|
recordWindow(events) {
|
|
30
35
|
for (const e of events) {
|
|
36
|
+
const eventKey = this.eventKey(e);
|
|
37
|
+
if (this.eventKeys.has(eventKey))
|
|
38
|
+
continue;
|
|
39
|
+
this.eventKeys.add(eventKey);
|
|
40
|
+
if (this.eventKeys.size > MAX_SEEN_EVENT_KEYS) {
|
|
41
|
+
const oldest = this.eventKeys.values().next().value;
|
|
42
|
+
if (oldest)
|
|
43
|
+
this.eventKeys.delete(oldest);
|
|
44
|
+
}
|
|
31
45
|
const w = this.windowByChannel.get(e.channelId) ?? { count: 0, excerpts: [] };
|
|
32
46
|
w.count += 1;
|
|
33
47
|
const text = e.content.trim();
|
|
@@ -41,6 +55,15 @@ class SituationReporter {
|
|
|
41
55
|
this.windowTotal += 1;
|
|
42
56
|
}
|
|
43
57
|
}
|
|
58
|
+
hasRecordedEvent(event) {
|
|
59
|
+
return (this.eventKeys.has(this.eventKey(event)) || this.eventKeys.has(this.legacyEventKey(event)));
|
|
60
|
+
}
|
|
61
|
+
eventKey(event) {
|
|
62
|
+
return (0, node_crypto_1.createHash)('sha256').update(this.legacyEventKey(event)).digest('hex');
|
|
63
|
+
}
|
|
64
|
+
legacyEventKey(event) {
|
|
65
|
+
return `${event.channel}:${event.channelId}:${event.eventIndexId ?? event.id}`;
|
|
66
|
+
}
|
|
44
67
|
/** Fold one fire into the aggregate; merge the memory it recalled (agent-query-driven). */
|
|
45
68
|
recordFire(activity) {
|
|
46
69
|
const key = `${activity.triggerId}|${activity.channelId}`;
|
|
@@ -67,19 +90,81 @@ class SituationReporter {
|
|
|
67
90
|
hasActivity() {
|
|
68
91
|
return this.windowTotal > 0 || this.fireAgg.size > 0 || this.authored > 0;
|
|
69
92
|
}
|
|
93
|
+
snapshot() {
|
|
94
|
+
return {
|
|
95
|
+
version: 1,
|
|
96
|
+
channels: [...this.windowByChannel.entries()]
|
|
97
|
+
.sort((a, b) => b[1].count - a[1].count || a[0].localeCompare(b[0]))
|
|
98
|
+
.slice(0, MAX_CHANNELS_IN_SNAPSHOT)
|
|
99
|
+
.map(([channelId, window]) => ({
|
|
100
|
+
channelId: channelId.slice(0, 512),
|
|
101
|
+
count: window.count,
|
|
102
|
+
excerpts: window.excerpts.map((excerpt) => excerpt.slice(0, MAX_EXCERPT_CHARS)),
|
|
103
|
+
})),
|
|
104
|
+
windowTotal: this.windowTotal,
|
|
105
|
+
fires: [...this.fireAgg.values()]
|
|
106
|
+
.sort((a, b) => b.count - a.count ||
|
|
107
|
+
a.triggerId.localeCompare(b.triggerId) ||
|
|
108
|
+
a.channelId.localeCompare(b.channelId))
|
|
109
|
+
.slice(0, MAX_FIRES_IN_SNAPSHOT)
|
|
110
|
+
.map((fire) => ({
|
|
111
|
+
triggerId: fire.triggerId.slice(0, 512),
|
|
112
|
+
kind: fire.kind.slice(0, 512),
|
|
113
|
+
channelId: fire.channelId.slice(0, 512),
|
|
114
|
+
count: fire.count,
|
|
115
|
+
topics: [...fire.topics].slice(-MAX_RECALLED).map((topic) => topic.slice(0, 512)),
|
|
116
|
+
})),
|
|
117
|
+
authored: this.authored,
|
|
118
|
+
recalled: [...this.recalled.entries()].map(([topic, content]) => ({
|
|
119
|
+
topic: topic.slice(0, 512),
|
|
120
|
+
content: content.slice(0, MAX_EXCERPT_CHARS),
|
|
121
|
+
})),
|
|
122
|
+
eventKeys: [...this.eventKeys].map((key) => key.slice(0, 1_024)),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
restore(snapshot) {
|
|
126
|
+
if (snapshot.version !== 1) {
|
|
127
|
+
throw new Error('Unsupported situation reporter snapshot version');
|
|
128
|
+
}
|
|
129
|
+
this.reset();
|
|
130
|
+
for (const channel of snapshot.channels.slice(0, MAX_CHANNELS_IN_SNAPSHOT)) {
|
|
131
|
+
this.windowByChannel.set(channel.channelId, {
|
|
132
|
+
count: Math.max(0, channel.count),
|
|
133
|
+
excerpts: channel.excerpts.slice(-MAX_EXCERPTS_PER_CHANNEL),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
this.windowTotal = Math.max(0, snapshot.windowTotal);
|
|
137
|
+
for (const fire of snapshot.fires.slice(0, MAX_FIRES_IN_SNAPSHOT)) {
|
|
138
|
+
this.fireAgg.set(`${fire.triggerId}|${fire.channelId}`, {
|
|
139
|
+
triggerId: fire.triggerId,
|
|
140
|
+
kind: fire.kind,
|
|
141
|
+
channelId: fire.channelId,
|
|
142
|
+
count: Math.max(0, fire.count),
|
|
143
|
+
topics: new Set(fire.topics.slice(0, MAX_RECALLED)),
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
this.authored = Math.max(0, snapshot.authored);
|
|
147
|
+
for (const item of snapshot.recalled.slice(0, MAX_RECALLED)) {
|
|
148
|
+
this.recalled.set(item.topic, item.content.slice(0, MAX_EXCERPT_CHARS));
|
|
149
|
+
}
|
|
150
|
+
this.eventKeys = new Set((snapshot.eventKeys ?? []).slice(-MAX_SEEN_EVENT_KEYS));
|
|
151
|
+
}
|
|
70
152
|
/**
|
|
71
153
|
* Agent composes the report from the aggregate; sink delivers it. Returns true if a report was
|
|
72
154
|
* sent, false if there was nothing to say or the agent suppressed it (NOTHING).
|
|
73
155
|
*/
|
|
74
|
-
async
|
|
156
|
+
async prepareReport(askAgent, mode, deliveryId) {
|
|
75
157
|
// M2.1: the scheduled FULL report is a duty report - it composes even on an empty window
|
|
76
158
|
// (the owner relies on it arriving; a quiet window is itself the news). Digests stay gated.
|
|
77
159
|
if (mode !== 'full' && !this.hasActivity())
|
|
78
|
-
return
|
|
160
|
+
return null;
|
|
79
161
|
const raw = (await askAgent(this.buildPrompt(mode))).trim();
|
|
80
162
|
if (raw === '' || /^NOTHING\b/i.test(raw)) {
|
|
163
|
+
if (mode === 'full') {
|
|
164
|
+
throw new Error('Full owner report returned no content');
|
|
165
|
+
}
|
|
81
166
|
this.reset(); // agent judged nothing worth reporting - drop the buffer quietly
|
|
82
|
-
return
|
|
167
|
+
return null;
|
|
83
168
|
}
|
|
84
169
|
// Parse + strip the USED_TRIGGERS machine trailer (the owner never sees it)
|
|
85
170
|
// and validate the ids against THIS window's fires (no hallucinated credit).
|
|
@@ -96,22 +181,42 @@ class SituationReporter {
|
|
|
96
181
|
];
|
|
97
182
|
}
|
|
98
183
|
if (text === '') {
|
|
184
|
+
if (mode === 'full') {
|
|
185
|
+
throw new Error('Full owner report returned no content');
|
|
186
|
+
}
|
|
99
187
|
this.reset(); // trailer-only reply: nothing was delivered, so no credit either
|
|
100
|
-
return
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
mode,
|
|
192
|
+
text,
|
|
193
|
+
citedTriggerIds: cited,
|
|
194
|
+
createdAtIso: new Date().toISOString(),
|
|
195
|
+
...(deliveryId ? { deliveryId } : {}),
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
async deliverPrepared(prepared, output) {
|
|
199
|
+
if (prepared.mode !== 'digest' && prepared.mode !== 'full') {
|
|
200
|
+
throw new Error('Unsupported prepared report mode');
|
|
201
|
+
}
|
|
202
|
+
if (prepared.deliveryId) {
|
|
203
|
+
await output.send(prepared.text, prepared.deliveryId);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
await output.send(prepared.text);
|
|
101
207
|
}
|
|
102
|
-
await output.send(text); // throws loudly on failure; buffer kept for retry (no-fallback)
|
|
103
208
|
// Credit only AFTER a successful send: success means "cited in a DELIVERED
|
|
104
209
|
// report". Crediting before send would double-count on the retry path
|
|
105
210
|
// (send throws -> buffer kept -> next cadence re-cites the same fires).
|
|
106
|
-
if (
|
|
107
|
-
this.opts.recordTriggerUse?.(
|
|
211
|
+
if (prepared.citedTriggerIds.length > 0) {
|
|
212
|
+
this.opts.recordTriggerUse?.(prepared.citedTriggerIds);
|
|
108
213
|
}
|
|
109
214
|
// Context carry (plan v6 S1-T4): persist the DELIVERED full report so the
|
|
110
215
|
// chat console can reference "the report you just got" instead of
|
|
111
216
|
// fabricating one. Same success condition as the delta anchor.
|
|
112
|
-
if (mode === 'full') {
|
|
217
|
+
if (prepared.mode === 'full') {
|
|
113
218
|
try {
|
|
114
|
-
this.opts.persistLastFullReport?.(new Date().toISOString(), text);
|
|
219
|
+
this.opts.persistLastFullReport?.(new Date().toISOString(), prepared.text);
|
|
115
220
|
}
|
|
116
221
|
catch (error) {
|
|
117
222
|
// Carry is derived state - persistence failure must not fail the
|
|
@@ -120,6 +225,13 @@ class SituationReporter {
|
|
|
120
225
|
}
|
|
121
226
|
}
|
|
122
227
|
this.reset();
|
|
228
|
+
}
|
|
229
|
+
async report(askAgent, output, mode) {
|
|
230
|
+
const prepared = await this.prepareReport(askAgent, mode);
|
|
231
|
+
if (!prepared) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
await this.deliverPrepared(prepared, output);
|
|
123
235
|
return true;
|
|
124
236
|
}
|
|
125
237
|
reset() {
|
|
@@ -128,6 +240,7 @@ class SituationReporter {
|
|
|
128
240
|
this.fireAgg.clear();
|
|
129
241
|
this.authored = 0;
|
|
130
242
|
this.recalled.clear();
|
|
243
|
+
this.eventKeys.clear();
|
|
131
244
|
}
|
|
132
245
|
/** Public for testability. Aggregate window + fire activity + recalled memory -> agent prompt. */
|
|
133
246
|
buildPrompt(mode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"situation-report.js","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"situation-report.js","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":";;;AAkBA,6CAAyC;AAGzC,wEAAqE;AAErE;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,wBAAwB,CAAC;AAmBjE,kGAAkG;AAClG,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,wBAAwB,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAC5D,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAsEnC,oFAAoF;AACpF,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AAEhE,MAAa,iBAAiB;IACpB,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,WAAW,GAAG,CAAC,CAAC;IAChB,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IACrC,QAAQ,GAAG,CAAC,CAAC;IACb,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,sCAAsC;IAC5E,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAA2B;IAEvC,YAAY,OAAiC,EAAE;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,0EAA0E;IAC1E,YAAY,CAAC,MAA8B;QACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBACpD,IAAI,MAAM;oBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC9E,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,EAAE,CAAC;gBACT,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;oBACjD,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,KAA2B;QAC1C,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAC3F,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,KAA2B;QAC1C,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IAEO,cAAc,CAAC,KAA2B;QAChD,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;IACjF,CAAC;IAED,2FAA2F;IAC3F,UAAU,CAAC,QAAsB;QAC/B,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;YACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,IAAI,GAAG,EAAU;SAC1B,CAAC;QACF,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;gBACrE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACzB,CAAC;IAED,uFAAuF;IACvF,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;iBAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnE,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAClC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;aAChF,CAAC,CAAC;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;iBAC9B,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;gBACjB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CACzC;iBACA,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC;iBAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACvC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAClF,CAAC,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC1B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;aAC7C,CAAC,CAAC;YACH,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,QAAmC;QACzC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1C,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;gBACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACtD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;gBAC9B,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;aACpD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,QAAkB,EAClB,IAAgB,EAChB,UAAmB;QAEnB,yFAAyF;QACzF,4FAA4F;QAC5F,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC;QAExD,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,GAAG,KAAK,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,iEAAiE;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,KAAK,GAAG;gBACN,GAAG,IAAI,GAAG,CACR,KAAK,CAAC,CAAC,CAAC;qBACL,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;qBACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACrF;aACF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,iEAAiE;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI;YACJ,IAAI;YACJ,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAiC,EACjC,MAAgC;QAEhC,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,2EAA2E;QAC3E,sEAAsE;QACtE,wEAAwE;QACxE,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACzD,CAAC;QACD,0EAA0E;QAC1E,kEAAkE;QAClE,+DAA+D;QAC/D,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iEAAiE;gBACjE,yCAAyC;gBACzC,OAAO,CAAC,IAAI,CACV,4EACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAkB,EAClB,MAAgC,EAChC,IAAgB;QAEhB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,kGAAkG;IAClG,WAAW,CAAC,IAAgB;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAC3B,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACjB,KAAK,SAAS,KAAK,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,EAAE,CACrF,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpF,WAAW,CAAC,IAAI,CACd,OAAO,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,qBAAqB,SAAS,UAAU,CAC9E,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAC9C,CAAC,CAAC,EAAE,EAAE,CACJ,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CACtI,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,OAAO,EAAE,CAC/C,CAAC;QAEF,uFAAuF;QACvF,wFAAwF;QACxF,0FAA0F;QAC1F,yFAAyF;QACzF,gFAAgF;QAChF,MAAM,WAAW,GACf,IAAI,KAAK,MAAM;YACb,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,UAAU;gBAC/C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;YACrC,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,kBAAkB,GACtB,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO;YAC3B,CAAC,CAAC;gBACE,gGAAgG;gBAChG,uFAAuF;gBACvF,8EAA8E;gBAC9E,+CAA+C;gBAC/C,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,oFAAoF;gBACpF,gDAAgD;gBAChD,oFAAoF;gBACpF,mFAAmF;gBACnF,kFAAkF;gBAClF,0CAA0C;gBAC1C,EAAE;gBACF,qFAAqF;gBACrF,8EAA8E;gBAC9E,8EAA8E;gBAC9E,8EAA8E;aAC/E;YACH,CAAC,CAAC;gBACE,gFAAgF;gBAChF,gFAAgF;gBAChF,6CAA6C;gBAC7C,cAAc;gBACd,iEAAiE;gBACjE,KAAK;gBACL,uCAAuC;gBACvC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,6EAA6E;gBAC7E,4EAA4E;gBAC5E,6EAA6E;gBAC7E,+BAA+B;gBAC/B,2EAA2E;gBAC3E,iFAAiF;gBACjF,+EAA+E;gBAC/E,kEAAkE;gBAClE,EAAE;gBACF,4EAA4E;gBAC5E,0EAA0E;gBAC1E,8EAA8E;gBAC9E,8EAA8E;aAC/E,CAAC;QAER,qFAAqF;QACrF,2FAA2F;QAC3F,yCAAyC;QACzC,MAAM,OAAO,GACX,IAAI,KAAK,MAAM;YACb,CAAC,CAAC;gBACE,gCAAwB;gBACxB,yFAAyF;gBACzF,wFAAwF;gBACxF,sFAAsF;gBACtF,qFAAqF;gBACrF,iDAAiD;gBACjD,wFAAwF;gBACxF,8CAA8C;gBAC9C,yFAAyF;gBACzF,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;oBACvE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBACtC,CAAC,CAAC,EAAE,CAAC;aACR;YACH,CAAC,CAAC;gBACE,qFAAqF;gBACrF,yFAAyF;gBACzF,wFAAwF;gBACxF,iFAAiF;gBACjF,gEAAgE;aACjE,CAAC;QAER,OAAO;YACL,GAAG,OAAO;YACV,8EAA8E;YAC9E,8CAA8C;YAC9C,uFAAuF;YACvF,mFAAmF;YACnF,2EAA2E;YAC3E,gEAAgE;YAChE,iEAAiE;YACjE,uFAAuF;YACvF,yEAAyE;YACzE,iFAAiF;YACjF,mCAAmC;YACnC,4FAA4F;YAC5F,qFAAqF;YACrF,iFAAiF;YACjF,uBAAuB,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,4CAA4C;YAC9F,EAAE;YACF,2CAA2C;YAC3C,IAAA,2CAAoB,EAClB,kBAAkB,EAClB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qCAAqC,CACxF;YACD,EAAE;YACF,wCAAwC,IAAI,CAAC,QAAQ,EAAE;YACvD,gBAAgB;YAChB,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC;YAC7E,EAAE;YACF,4CAA4C;YAC5C,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF;AA7YD,8CA6YC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jungjaehoon/mama-os",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"description": "MAMA OS - Local AI Runtime. Your scattered knowledge, organized by AI agents that never sleep.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
13
|
"postinstall": "node scripts/postinstall.js",
|
|
14
|
+
"setup:ocr": "node scripts/setup-ocr.js",
|
|
15
|
+
"check:ocr": "node scripts/setup-ocr.js --check",
|
|
14
16
|
"build": "tsc && pnpm exec tsx scripts/generate-gateway-tools.ts && rm -rf public/viewer/js && tsc -p public/viewer/tsconfig.viewer.json && pnpm run build:ui",
|
|
15
17
|
"build:ui": "pnpm --dir ui run bundle",
|
|
16
18
|
"dev:ui": "pnpm --dir ui run dev",
|