@askexenow/exe-os 0.9.135 → 0.9.136
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/{active-agent-5Z4ZFQZD.js → active-agent-DZXEPRY7.js} +3 -3
- package/dist/{active-agent-VCMF6TCC.js → active-agent-EFZ6YZIM.js} +3 -3
- package/dist/{agentic-ontology-F7DQUWYK.js → agentic-ontology-2TD5YS4O.js} +1 -1
- package/dist/{backfill-metadata-XXBEIM6J.js → backfill-metadata-5LNLRCA6.js} +6 -6
- package/dist/{background-jobs-ATB73RFI.js → background-jobs-6V4GQ5QT.js} +2 -2
- package/dist/{behaviors-WKTZOWL2.js → behaviors-PPFGGHYD.js} +5 -5
- package/dist/bin/age-ontology-load.js +2 -2
- package/dist/bin/agentic-ontology-backfill.js +8 -8
- package/dist/bin/agentic-reflection-backfill.js +9 -9
- package/dist/bin/agentic-semantic-label.js +8 -8
- package/dist/bin/backfill-conversations.js +8 -8
- package/dist/bin/backfill-responses.js +8 -8
- package/dist/bin/backfill-vectors.js +10 -10
- package/dist/bin/bulk-sync-postgres.js +9 -9
- package/dist/bin/cc-doctor.js +3 -3
- package/dist/bin/cleanup-stale-review-tasks.js +10 -10
- package/dist/bin/cli.js +15 -15
- package/dist/bin/customer-readiness.js +5 -0
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +6 -6
- package/dist/bin/exe-assign.js +10 -10
- package/dist/bin/exe-boot.js +17 -17
- package/dist/bin/exe-call.js +6 -6
- package/dist/bin/exe-cloud.js +15 -8
- package/dist/bin/exe-dispatch.js +11 -11
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +9 -9
- package/dist/bin/exe-forget.js +8 -8
- package/dist/bin/exe-gateway.js +6 -6
- package/dist/bin/exe-healthcheck.js +3 -3
- package/dist/bin/exe-heartbeat.js +10 -10
- package/dist/bin/exe-kill.js +8 -8
- package/dist/bin/exe-launch-agent.js +13 -13
- package/dist/bin/exe-new-employee.js +13 -20
- package/dist/bin/exe-pending-messages.js +11 -11
- package/dist/bin/exe-pending-notifications.js +10 -10
- package/dist/bin/exe-pending-reviews.js +10 -10
- package/dist/bin/exe-rename.js +6 -6
- package/dist/bin/exe-review.js +7 -7
- package/dist/bin/exe-search.js +7 -7
- package/dist/bin/exe-session-cleanup.js +14 -14
- package/dist/bin/exe-settings.js +8 -8
- package/dist/bin/exe-start-codex.js +14 -14
- package/dist/bin/exe-start-opencode.js +10 -10
- package/dist/bin/exe-status.js +11 -11
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +5 -5
- package/dist/bin/git-sweep.js +10 -10
- package/dist/bin/graph-backfill.js +7 -7
- package/dist/bin/graph-export.js +7 -7
- package/dist/bin/install.js +7 -7
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
- package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
- package/dist/bin/scan-tasks.js +10 -10
- package/dist/bin/setup.js +2 -2
- package/dist/bin/shard-migrate.js +7 -7
- package/dist/bin/stack-update.js +2 -2
- package/dist/{capacity-monitor-SD7TFRI7.js → capacity-monitor-PFHHXTEN.js} +11 -11
- package/dist/{catchup-brief-ZZE67H6X.js → catchup-brief-Y75GOHWU.js} +12 -12
- package/dist/{chunk-7525VIRY.js → chunk-2CKP7O4F.js} +1 -1
- package/dist/{chunk-TCLLBHWX.js → chunk-2SXMWUOQ.js} +1 -1
- package/dist/{chunk-TGAZBOQV.js → chunk-37LVIZ3P.js} +2 -2
- package/dist/{chunk-SG3JQDRS.js → chunk-3BVZNKAZ.js} +5 -5
- package/dist/{chunk-K3ICF4GD.js → chunk-3UKHLUXH.js} +1 -1
- package/dist/{chunk-7K4OTYL4.js → chunk-4ADWX7S6.js} +9 -9
- package/dist/{chunk-UQFWCTKE.js → chunk-5DZTDWFU.js} +1 -1
- package/dist/{chunk-QOR7M5WH.js → chunk-5NLZS5KX.js} +3 -3
- package/dist/{chunk-UQQJV7DB.js → chunk-5XNCH6UM.js} +4 -4
- package/dist/{chunk-7CUQQAZH.js → chunk-6ZXIG7R6.js} +4 -4
- package/dist/{chunk-ZC37J6BF.js → chunk-A63V4QMR.js} +62 -62
- package/dist/{chunk-TOIDMYUI.js → chunk-ARQQ4T47.js} +1 -1
- package/dist/{chunk-JGHS2M7L.js → chunk-ARZWYVYC.js} +4 -4
- package/dist/{chunk-H3QAD2WH.js → chunk-AVUQCUZC.js} +1 -1
- package/dist/{chunk-2FBEH3A3.js → chunk-BI3COBMQ.js} +1 -1
- package/dist/{chunk-LSDG5VMO.js → chunk-BPLXSBNM.js} +1 -1
- package/dist/{chunk-J2Q3TSEM.js → chunk-CTEENZVZ.js} +7 -7
- package/dist/{chunk-5GTTS5HP.js → chunk-D7FYU6DX.js} +2 -2
- package/dist/{chunk-MFEYHPQD.js → chunk-DIQOUMHM.js} +2 -2
- package/dist/{chunk-5XDQJUZV.js → chunk-E2XB56OH.js} +2 -2
- package/dist/{chunk-B46U2TYB.js → chunk-FM4UBRBE.js} +7 -7
- package/dist/{chunk-WXRFX7C2.js → chunk-G2HJSPM4.js} +2 -2
- package/dist/{chunk-5B6EK7TA.js → chunk-GERMZD6I.js} +2 -2
- package/dist/{chunk-2HL4VLOK.js → chunk-GISRZK6K.js} +5 -5
- package/dist/{chunk-LPZ6UYNK.js → chunk-GU2Z6K2T.js} +2 -2
- package/dist/{chunk-6TNLZ3XL.js → chunk-IMZM3H6N.js} +4 -4
- package/dist/{chunk-JBDY3SWN.js → chunk-ISRQKXHM.js} +0 -2
- package/dist/{chunk-CGRQVRIF.js → chunk-IUKRBQ2B.js} +3 -3
- package/dist/{chunk-WIR7ISPK.js → chunk-J7LFCZMQ.js} +57 -16
- package/dist/{chunk-NALLK6IN.js → chunk-JXYZVTBX.js} +1 -1
- package/dist/{chunk-SC444GZ6.js → chunk-K7E72WGL.js} +1 -1
- package/dist/{chunk-SXMHIS42.js → chunk-KDM3GZ6T.js} +2 -2
- package/dist/{chunk-LNGM5OHX.js → chunk-KHUJEI3A.js} +2 -2
- package/dist/{chunk-RPH5MQWS.js → chunk-KQW5PWOA.js} +2 -2
- package/dist/{chunk-HV3NRFAG.js → chunk-KSFOG6FJ.js} +1 -1
- package/dist/{chunk-XCPOD4HP.js → chunk-KTS6MOE4.js} +1 -1
- package/dist/{chunk-OBFB27SZ.js → chunk-M6ODLM7X.js} +1 -1
- package/dist/{chunk-BYGGAO5Q.js → chunk-MPZRPM5X.js} +6 -6
- package/dist/{chunk-FNF6ASM2.js → chunk-NBJIGVPG.js} +97 -46
- package/dist/{chunk-JENH7FT4.js → chunk-NFRFF6QS.js} +1 -1
- package/dist/{chunk-CWNH6272.js → chunk-NHLW6DUE.js} +1 -1
- package/dist/{chunk-CVDBI4IN.js → chunk-NR3MPNTF.js} +4 -4
- package/dist/{chunk-BOKXKD3V.js → chunk-NSVI6RZ5.js} +1 -1
- package/dist/{chunk-PDQJA34K.js → chunk-O2ENLWKX.js} +1 -1
- package/dist/{chunk-BZKZSA4Z.js → chunk-OMHM3NGK.js} +1 -1
- package/dist/{chunk-RCLALZN6.js → chunk-P6CLMRWJ.js} +1 -1
- package/dist/{chunk-ZE46WYO3.js → chunk-PRRSSHU3.js} +1 -1
- package/dist/{chunk-G4F2EKRS.js → chunk-QCYYXXO5.js} +2 -2
- package/dist/{chunk-YJGCJFWK.js → chunk-QKBDAHFM.js} +1 -1
- package/dist/{chunk-F264RXCP.js → chunk-REFUKSCU.js} +2 -2
- package/dist/{chunk-DTERWF6K.js → chunk-S67DRFRK.js} +1 -1
- package/dist/{chunk-P4INSLEM.js → chunk-SF6H4ZME.js} +1 -1
- package/dist/{chunk-NOMUQ6C3.js → chunk-SJWW6GRT.js} +1 -1
- package/dist/{chunk-NC75HFMP.js → chunk-T65APBMF.js} +3 -3
- package/dist/{chunk-U2PFRUJW.js → chunk-TCOTFMDP.js} +2 -2
- package/dist/{chunk-PM23XC7F.js → chunk-TERS54YJ.js} +2 -2
- package/dist/{chunk-ZJYUR3HO.js → chunk-TXRDECEW.js} +4 -4
- package/dist/{chunk-EKJYATYD.js → chunk-UMLRHSAP.js} +1 -1
- package/dist/{chunk-ZXDB3XCV.js → chunk-UXGZ3V3U.js} +1 -1
- package/dist/{chunk-HWNRY6QJ.js → chunk-VAPODXIB.js} +2 -2
- package/dist/{chunk-32KXWG3Q.js → chunk-VIONSYFC.js} +1 -1
- package/dist/{chunk-UVBTYTNG.js → chunk-W7G2DOLC.js} +2 -2
- package/dist/{chunk-F53H7WLK.js → chunk-WQ6FW5JD.js} +1 -1
- package/dist/{chunk-HIDVVYWW.js → chunk-XDWCEQLH.js} +8 -8
- package/dist/{chunk-BFHUCGBO.js → chunk-XEZ64YCS.js} +2 -2
- package/dist/{chunk-ULNG2L4A.js → chunk-XK3P2PRN.js} +2 -2
- package/dist/{chunk-XJLGNOYT.js → chunk-YMMTBQQY.js} +4 -4
- package/dist/{chunk-PX3TSXNY.js → chunk-YTTVKPOQ.js} +1 -1
- package/dist/{chunk-N5V3PJUE.js → chunk-ZJ7N6BNZ.js} +2 -2
- package/dist/{chunk-DFQ3VHJQ.js → chunk-ZKYHW6KY.js} +1 -1
- package/dist/{chunk-NJ5FQH6Y.js → chunk-ZNWYU3VE.js} +4 -4
- package/dist/{code-context-index-RZOVUUQJ.js → code-context-index-I7JC7DPM.js} +4 -4
- package/dist/{conversation-wiki-populator-XVPHVT3R.js → conversation-wiki-populator-L24LNYDL.js} +1 -1
- package/dist/{crdt-sync-4K7EAN7H.js → crdt-sync-UUJDUXTJ.js} +1 -1
- package/dist/{crm-webhook-F2FP2XPU.js → crm-webhook-UXZORR4I.js} +2 -2
- package/dist/{cto-delegation-gate-LRAXRSDW.js → cto-delegation-gate-7MIMXB4T.js} +9 -9
- package/dist/{daemon-auth-STCSTDRT.js → daemon-auth-IFWQGMDT.js} +2 -2
- package/dist/{daemon-orchestration-R76H4QCE.js → daemon-orchestration-FIL7U2RV.js} +11 -11
- package/dist/{db-backup-X46NRH47.js → db-backup-RZA3JICI.js} +2 -2
- package/dist/{exe-drift-IKGS64KM.js → exe-drift-D7YCMMR3.js} +6 -6
- package/dist/{exe-export-3Z4ISZRQ.js → exe-export-YKP26EW6.js} +8 -8
- package/dist/{exe-import-I4C4ZFCX.js → exe-import-HSQORBEH.js} +8 -8
- package/dist/{exe-key-ADZ2AXQW.js → exe-key-QLXFQGNV.js} +4 -4
- package/dist/{exe-org-MHIWMBBQ.js → exe-org-F56R5P37.js} +2 -2
- package/dist/{fast-db-init-HT4JSB7L.js → fast-db-init-RFYRERZL.js} +1 -1
- package/dist/gateway/index.js +8 -8
- package/dist/{git-staleness-UWXPNRR4.js → git-staleness-2IBA7MM2.js} +4 -4
- package/dist/{git-task-sweep-2I2QZTM6.js → git-task-sweep-ZZQHHVXR.js} +10 -10
- package/dist/{global-procedures-XC3FSAHU.js → global-procedures-6B5JT3B5.js} +5 -5
- package/dist/hooks/bug-report-worker.js +13 -13
- package/dist/hooks/codex-stop-task-finalizer.js +13 -13
- package/dist/hooks/commit-complete.js +12 -12
- package/dist/hooks/error-recall.js +8 -8
- package/dist/hooks/exe-heartbeat-hook.js +3 -3
- package/dist/hooks/ingest-worker.js +5 -5
- package/dist/hooks/ingest.js +7 -7
- package/dist/hooks/instructions-loaded.js +7 -7
- package/dist/hooks/notification.js +4 -4
- package/dist/hooks/post-compact.js +11 -11
- package/dist/hooks/post-tool-combined.js +5 -5
- package/dist/hooks/pre-compact.js +16 -16
- package/dist/hooks/pre-tool-use.js +15 -15
- package/dist/hooks/prompt-submit.js +19 -19
- package/dist/hooks/session-end.js +20 -20
- package/dist/hooks/session-start.js +7 -7
- package/dist/hooks/stop.js +17 -17
- package/dist/hooks/subagent-stop.js +11 -11
- package/dist/hooks/summary-worker.js +19 -19
- package/dist/index.js +17 -17
- package/dist/{installer-4M35AQEU.js → installer-EIUTCCHV.js} +5 -5
- package/dist/{installer-U2JNFXOK.js → installer-GDMELU5L.js} +5 -5
- package/dist/{installer-LBYEM5CW.js → installer-WZEN2XJ7.js} +5 -5
- package/dist/{key-backup-status-TJA5I4HI.js → key-backup-status-NMUFOHXW.js} +1 -1
- package/dist/lib/agent-config.js +2 -2
- package/dist/lib/cloud-sync.js +11 -7
- package/dist/lib/config.js +1 -1
- package/dist/lib/consolidation.js +7 -7
- package/dist/lib/database.js +4 -4
- package/dist/lib/db-daemon-client.js +3 -3
- package/dist/lib/db.js +4 -4
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/embedder.js +4 -4
- package/dist/lib/employee-templates.js +6 -6
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon-client.js +3 -3
- package/dist/lib/exe-daemon.js +297 -50
- package/dist/lib/hybrid-search.js +7 -7
- package/dist/lib/identity.js +5 -5
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +10 -10
- package/dist/lib/reminders.js +5 -5
- package/dist/lib/schedules.js +7 -7
- package/dist/lib/skill-learning.js +6 -6
- package/dist/lib/store.js +6 -6
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +12 -12
- package/dist/lib/tmux-routing.js +9 -9
- package/dist/lib/token-spend.js +5 -5
- package/dist/{license-gate-MX5ZWMYM.js → license-gate-VMGC326L.js} +3 -3
- package/dist/mcp/register-tools.js +60 -60
- package/dist/mcp/server.js +61 -61
- package/dist/mcp/tools/complete-reminder.js +6 -6
- package/dist/mcp/tools/create-reminder.js +6 -6
- package/dist/mcp/tools/create-task.js +14 -14
- package/dist/mcp/tools/deactivate-behavior.js +7 -7
- package/dist/mcp/tools/list-reminders.js +6 -6
- package/dist/mcp/tools/list-tasks.js +14 -14
- package/dist/mcp/tools/send-message.js +12 -12
- package/dist/mcp/tools/update-task.js +13 -13
- package/dist/{mcp-http-config-N7T35WCM.js → mcp-http-config-WPF5MBSO.js} +3 -3
- package/dist/{memory-cards-5F4IQQYX.js → memory-cards-MA5SIQKN.js} +4 -4
- package/dist/{memory-queue-FOCGY2LO.js → memory-queue-QX6UY4BP.js} +2 -2
- package/dist/{memory-queue-client-OVO7YLJJ.js → memory-queue-client-AG2QB6PK.js} +5 -5
- package/dist/{memory-reflection-2XLGAFPO.js → memory-reflection-VHCEW3UN.js} +4 -4
- package/dist/{notifications-VBTAHI35.js → notifications-NY2OVCDV.js} +9 -9
- package/dist/{orchestration-phase-PEAJAA6F.js → orchestration-phase-YKDZDERC.js} +2 -2
- package/dist/{orchestrator-JKCBGSKL.js → orchestrator-ZVOTKKV6.js} +12 -12
- package/dist/{plan-limits-N5Q6M7TX.js → plan-limits-UQTXKXJQ.js} +6 -6
- package/dist/{projection-worker-2A3JQIU2.js → projection-worker-UL47LRTS.js} +2 -2
- package/dist/{reranker-DFEFSWBV.js → reranker-EEX3UEA2.js} +2 -2
- package/dist/runtime/index.js +13 -13
- package/dist/{session-events-JUCYTOFB.js → session-events-DU6PKAJN.js} +10 -10
- package/dist/{session-kill-telemetry-6Y4AKJEO.js → session-kill-telemetry-5XGSTQJS.js} +5 -5
- package/dist/{session-scope-XF5ZIUF4.js → session-scope-WJRSCUKP.js} +10 -10
- package/dist/{setup-wizard-TMXGF64O.js → setup-wizard-36V5GCGG.js} +2 -2
- package/dist/{shard-manager-V6J6QHZ5.js → shard-manager-4QLCI2RC.js} +2 -2
- package/dist/{task-scope-CULJLUKF.js → task-scope-7XCYEZAG.js} +9 -9
- package/dist/{tasks-crud-BLLW4V65.js → tasks-crud-DUNJJUV3.js} +10 -10
- package/dist/{tasks-review-BYV33QEA.js → tasks-review-BPSW2TBZ.js} +9 -9
- package/dist/{tool-capability-index-Z6JVOY52.js → tool-capability-index-XYEJ57EL.js} +1 -1
- package/dist/{tool-telemetry-QULJ7R5K.js → tool-telemetry-Q6ZSUTHS.js} +1 -1
- package/dist/tui/App.js +22 -22
- package/dist/{tui-data-UWRAVNRE.js → tui-data-GUMMW3IG.js} +9 -9
- package/dist/{worker-gate-XQGJMV7V.js → worker-gate-IHFHRPF5.js} +2 -2
- package/dist/{workflow-engine-R27UQ6UZ.js → workflow-engine-A6K4MHN3.js} +1 -1
- package/package.json +1 -1
- /package/dist/{chunk-E4AZQH6U.js → chunk-4AZA3DZM.js} +0 -0
- /package/dist/{chunk-4B6D4WX7.js → chunk-7U65IF2W.js} +0 -0
- /package/dist/{chunk-75GJADBE.js → chunk-FR5FFQ6G.js} +0 -0
- /package/dist/{chunk-TGCOB7MO.js → chunk-ISPV5JR2.js} +0 -0
- /package/dist/{chunk-KAOD42BV.js → chunk-KI3UEJUR.js} +0 -0
- /package/dist/{chunk-GRD5UQXZ.js → chunk-M6FENV7U.js} +0 -0
- /package/dist/{chunk-R7NM4KAJ.js → chunk-RCKUCKED.js} +0 -0
- /package/dist/{wiki-acl-XI33GTP7.js → wiki-acl-QY5EXWEQ.js} +0 -0
- /package/dist/{wiki-client-BVPFZW5I.js → wiki-client-ZWA545PZ.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isCrdtSyncEnabled
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4AZA3DZM.js";
|
|
4
4
|
import {
|
|
5
5
|
decryptSyncBlob,
|
|
6
6
|
encryptSyncBlob,
|
|
@@ -10,21 +10,21 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
getClient,
|
|
12
12
|
init_database
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ZJ7N6BNZ.js";
|
|
14
14
|
import {
|
|
15
15
|
init_employees,
|
|
16
16
|
loadEmployees,
|
|
17
17
|
registerBinSymlinks,
|
|
18
18
|
saveEmployees
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ZKYHW6KY.js";
|
|
20
20
|
import {
|
|
21
21
|
init_license,
|
|
22
22
|
loadDeviceId
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-UMLRHSAP.js";
|
|
24
24
|
import {
|
|
25
25
|
EXE_AI_DIR,
|
|
26
26
|
init_config
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-ISRQKXHM.js";
|
|
28
28
|
import {
|
|
29
29
|
enforcePrivateFileSync,
|
|
30
30
|
ensurePrivateDirSync,
|
|
@@ -66,7 +66,8 @@ function logError(msg) {
|
|
|
66
66
|
const logPath = path.join(homedir(), ".exe-os", "workers.log");
|
|
67
67
|
appendFileSync(logPath, `${(/* @__PURE__ */ new Date()).toISOString()} ${msg}
|
|
68
68
|
`);
|
|
69
|
-
} catch {
|
|
69
|
+
} catch (e) {
|
|
70
|
+
process.stderr.write("[cloud-sync] logError write failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
var LOCALHOST_PATTERNS = /^(localhost|127\.0\.0\.1|\[::1\])$/i;
|
|
@@ -90,7 +91,8 @@ function loadPgClient() {
|
|
|
90
91
|
cloudPostgresUrl = cfg.cloud?.postgresUrl;
|
|
91
92
|
configEnabled = cfg.cloud?.syncToPostgres === true;
|
|
92
93
|
}
|
|
93
|
-
} catch {
|
|
94
|
+
} catch (e) {
|
|
95
|
+
process.stderr.write("[cloud-sync] config.json parse failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
94
96
|
}
|
|
95
97
|
const envEnabled = isTruthyEnv(process.env.EXE_CLOUD_SYNC_TO_POSTGRES);
|
|
96
98
|
if (!envEnabled && !configEnabled) {
|
|
@@ -153,7 +155,8 @@ async function pushToPostgres(records) {
|
|
|
153
155
|
let prisma;
|
|
154
156
|
try {
|
|
155
157
|
prisma = await loader;
|
|
156
|
-
} catch {
|
|
158
|
+
} catch (e) {
|
|
159
|
+
process.stderr.write("[cloud-sync] Postgres client init failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
157
160
|
return 0;
|
|
158
161
|
}
|
|
159
162
|
let inserted = 0;
|
|
@@ -169,7 +172,8 @@ async function pushToPostgres(records) {
|
|
|
169
172
|
rec.timestamp ? new Date(String(rec.timestamp)) : /* @__PURE__ */ new Date()
|
|
170
173
|
);
|
|
171
174
|
inserted += Number(changed ?? 0);
|
|
172
|
-
} catch {
|
|
175
|
+
} catch (e) {
|
|
176
|
+
process.stderr.write("[cloud-sync] Postgres raw_events insert failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
173
177
|
}
|
|
174
178
|
}
|
|
175
179
|
return inserted;
|
|
@@ -203,7 +207,8 @@ async function withRosterLock(fn) {
|
|
|
203
207
|
} finally {
|
|
204
208
|
try {
|
|
205
209
|
unlinkSync(ROSTER_LOCK_PATH);
|
|
206
|
-
} catch {
|
|
210
|
+
} catch (e) {
|
|
211
|
+
process.stderr.write("[cloud-sync] roster lock cleanup failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
207
212
|
}
|
|
208
213
|
}
|
|
209
214
|
}
|
|
@@ -216,6 +221,10 @@ async function fetchWithRetry(url, init) {
|
|
|
216
221
|
const signal = AbortSignal.timeout(FETCH_TIMEOUT_MS);
|
|
217
222
|
const resp = await fetch(url, { ...init, signal });
|
|
218
223
|
if (resp && resp.status >= 500 && attempt < MAX_RETRIES) {
|
|
224
|
+
try {
|
|
225
|
+
await resp.text();
|
|
226
|
+
} catch {
|
|
227
|
+
}
|
|
219
228
|
await new Promise((r) => setTimeout(r, BASE_DELAY_MS * Math.pow(2, attempt)));
|
|
220
229
|
continue;
|
|
221
230
|
}
|
|
@@ -243,7 +252,8 @@ function assertSecureEndpoint(endpoint) {
|
|
|
243
252
|
try {
|
|
244
253
|
const parsed = new URL(endpoint);
|
|
245
254
|
if (LOCALHOST_PATTERNS.test(parsed.hostname)) return;
|
|
246
|
-
} catch {
|
|
255
|
+
} catch (e) {
|
|
256
|
+
process.stderr.write("[cloud-sync] malformed endpoint URL parse: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
247
257
|
return;
|
|
248
258
|
}
|
|
249
259
|
throw new Error(
|
|
@@ -336,7 +346,8 @@ async function cloudPull(sinceVersion, config) {
|
|
|
336
346
|
Number.isFinite(blobVersion) ? blobVersion : 0,
|
|
337
347
|
recordMax
|
|
338
348
|
);
|
|
339
|
-
} catch {
|
|
349
|
+
} catch (e) {
|
|
350
|
+
process.stderr.write("[cloud-sync] blob decrypt/decompress failed (version " + version + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
340
351
|
skippedBlobs++;
|
|
341
352
|
continue;
|
|
342
353
|
}
|
|
@@ -357,7 +368,8 @@ async function getCloudReuploadRequired(client = getClient()) {
|
|
|
357
368
|
await client.execute("CREATE TABLE IF NOT EXISTS sync_meta (key TEXT PRIMARY KEY, value TEXT NOT NULL)");
|
|
358
369
|
const result = await client.execute("SELECT key, value FROM sync_meta WHERE key IN ('cloud_reupload_required', 'cloud_relink_required')");
|
|
359
370
|
return result.rows.some((row) => String(row.value ?? "") === "1");
|
|
360
|
-
} catch {
|
|
371
|
+
} catch (e) {
|
|
372
|
+
process.stderr.write("[cloud-sync] getCloudReuploadRequired query failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
361
373
|
return false;
|
|
362
374
|
}
|
|
363
375
|
}
|
|
@@ -371,6 +383,17 @@ async function clearCloudReuploadRequired(client = getClient()) {
|
|
|
371
383
|
});
|
|
372
384
|
await client.execute("DELETE FROM sync_meta WHERE key IN ('last_cloud_pull_version', 'last_cloud_push_version')");
|
|
373
385
|
}
|
|
386
|
+
var getCloudRelinkRequired = getCloudReuploadRequired;
|
|
387
|
+
async function clearCloudRelinkRequired(client = getClient()) {
|
|
388
|
+
await client.execute("CREATE TABLE IF NOT EXISTS sync_meta (key TEXT PRIMARY KEY, value TEXT NOT NULL)");
|
|
389
|
+
await client.execute("INSERT OR REPLACE INTO sync_meta (key, value) VALUES ('cloud_reupload_required', '0')");
|
|
390
|
+
await client.execute("INSERT OR REPLACE INTO sync_meta (key, value) VALUES ('cloud_relink_required', '0')");
|
|
391
|
+
await client.execute({
|
|
392
|
+
sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES ('cloud_relinked_at', ?)",
|
|
393
|
+
args: [(/* @__PURE__ */ new Date()).toISOString()]
|
|
394
|
+
});
|
|
395
|
+
await client.execute("DELETE FROM sync_meta WHERE key IN ('last_cloud_pull_version', 'last_cloud_push_version')");
|
|
396
|
+
}
|
|
374
397
|
async function markCloudReuploadRequired(client = getClient()) {
|
|
375
398
|
await client.execute("CREATE TABLE IF NOT EXISTS sync_meta (key TEXT PRIMARY KEY, value TEXT NOT NULL)");
|
|
376
399
|
await client.execute("INSERT OR REPLACE INTO sync_meta (key, value) VALUES ('cloud_reupload_required', '1')");
|
|
@@ -393,7 +416,8 @@ async function cloudSync(config) {
|
|
|
393
416
|
let client;
|
|
394
417
|
try {
|
|
395
418
|
client = getClient();
|
|
396
|
-
} catch {
|
|
419
|
+
} catch (e) {
|
|
420
|
+
process.stderr.write("[cloud-sync] getClient() failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
397
421
|
throw new Error("[cloud-sync] Database not initialized. Call initStore() before cloudSync().");
|
|
398
422
|
}
|
|
399
423
|
try {
|
|
@@ -405,7 +429,8 @@ async function cloudSync(config) {
|
|
|
405
429
|
try {
|
|
406
430
|
const { getRawClient } = await import("./lib/database.js");
|
|
407
431
|
await getRawClient().execute("PRAGMA wal_checkpoint(PASSIVE)");
|
|
408
|
-
} catch {
|
|
432
|
+
} catch (e) {
|
|
433
|
+
process.stderr.write("[cloud-sync] WAL checkpoint failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
409
434
|
}
|
|
410
435
|
try {
|
|
411
436
|
await client.execute(
|
|
@@ -422,7 +447,7 @@ async function cloudSync(config) {
|
|
|
422
447
|
let pulled = 0;
|
|
423
448
|
if (pullResult.records.length > 0) {
|
|
424
449
|
if (isCrdtSyncEnabled()) {
|
|
425
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
450
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-UUJDUXTJ.js");
|
|
426
451
|
initCrdtDoc();
|
|
427
452
|
importExistingMemories(
|
|
428
453
|
pullResult.records.map((rec) => ({
|
|
@@ -485,7 +510,8 @@ async function cloudSync(config) {
|
|
|
485
510
|
}
|
|
486
511
|
}
|
|
487
512
|
}
|
|
488
|
-
} catch {
|
|
513
|
+
} catch (e) {
|
|
514
|
+
process.stderr.write("[cloud-sync] conflict detection query failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
489
515
|
}
|
|
490
516
|
const stmts = pullResult.records.map((rec) => ({
|
|
491
517
|
sql: `INSERT OR REPLACE INTO memories
|
|
@@ -515,7 +541,8 @@ async function cloudSync(config) {
|
|
|
515
541
|
if (pulled > 0) {
|
|
516
542
|
try {
|
|
517
543
|
await pushToPostgres(pullResult.records);
|
|
518
|
-
} catch {
|
|
544
|
+
} catch (e) {
|
|
545
|
+
process.stderr.write("[cloud-sync] Postgres push of pulled records failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
519
546
|
}
|
|
520
547
|
}
|
|
521
548
|
if (pullResult.maxVersion > lastPullVersion) {
|
|
@@ -562,7 +589,8 @@ async function cloudSync(config) {
|
|
|
562
589
|
if (!pushOk) break;
|
|
563
590
|
try {
|
|
564
591
|
await pushToPostgres(records);
|
|
565
|
-
} catch {
|
|
592
|
+
} catch (e) {
|
|
593
|
+
process.stderr.write("[cloud-sync] Postgres push of local records failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
566
594
|
}
|
|
567
595
|
await client.execute({
|
|
568
596
|
sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES ('last_cloud_push_version', ?)",
|
|
@@ -595,7 +623,8 @@ async function cloudSync(config) {
|
|
|
595
623
|
const countRows = async (sql) => {
|
|
596
624
|
try {
|
|
597
625
|
return Number((await client.execute(sql)).rows[0]?.cnt ?? 0);
|
|
598
|
-
} catch {
|
|
626
|
+
} catch (e) {
|
|
627
|
+
process.stderr.write("[cloud-sync] countRows failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
599
628
|
return 0;
|
|
600
629
|
}
|
|
601
630
|
};
|
|
@@ -672,11 +701,12 @@ async function cloudSync(config) {
|
|
|
672
701
|
if (existsSync(idDir)) {
|
|
673
702
|
rosterResult.identities = readdirSync(idDir).filter((f) => f.endsWith(".md")).length;
|
|
674
703
|
}
|
|
675
|
-
} catch {
|
|
704
|
+
} catch (e) {
|
|
705
|
+
process.stderr.write("[cloud-sync] roster count failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
676
706
|
}
|
|
677
707
|
const totalMemories = await countRows("SELECT COUNT(*) as cnt FROM memories WHERE status = 'active' OR status IS NULL");
|
|
678
708
|
try {
|
|
679
|
-
const { getLatestBackup } = await import("./db-backup-
|
|
709
|
+
const { getLatestBackup } = await import("./db-backup-RZA3JICI.js");
|
|
680
710
|
const latestBackup = getLatestBackup();
|
|
681
711
|
if (latestBackup) {
|
|
682
712
|
const backupSize = statSync(latestBackup).size;
|
|
@@ -734,7 +764,8 @@ function recordRosterDeletion(name) {
|
|
|
734
764
|
if (existsSync(ROSTER_DELETIONS_PATH)) {
|
|
735
765
|
deletions = JSON.parse(readFileSync(ROSTER_DELETIONS_PATH, "utf-8"));
|
|
736
766
|
}
|
|
737
|
-
} catch {
|
|
767
|
+
} catch (e) {
|
|
768
|
+
process.stderr.write("[cloud-sync] roster-deletions.json read failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
738
769
|
}
|
|
739
770
|
if (!deletions.includes(name)) deletions.push(name);
|
|
740
771
|
writeFileSync(ROSTER_DELETIONS_PATH, JSON.stringify(deletions));
|
|
@@ -745,7 +776,8 @@ function consumeRosterDeletions() {
|
|
|
745
776
|
const deletions = JSON.parse(readFileSync(ROSTER_DELETIONS_PATH, "utf-8"));
|
|
746
777
|
writeFileSync(ROSTER_DELETIONS_PATH, "[]");
|
|
747
778
|
return deletions;
|
|
748
|
-
} catch {
|
|
779
|
+
} catch (e) {
|
|
780
|
+
process.stderr.write("[cloud-sync] consumeRosterDeletions failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
749
781
|
return [];
|
|
750
782
|
}
|
|
751
783
|
}
|
|
@@ -757,7 +789,8 @@ function buildRosterBlob(paths) {
|
|
|
757
789
|
if (existsSync(rosterPath)) {
|
|
758
790
|
try {
|
|
759
791
|
roster = JSON.parse(readFileSync(rosterPath, "utf-8"));
|
|
760
|
-
} catch {
|
|
792
|
+
} catch (e) {
|
|
793
|
+
process.stderr.write("[cloud-sync] roster file parse failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
761
794
|
}
|
|
762
795
|
}
|
|
763
796
|
const identities = {};
|
|
@@ -765,7 +798,8 @@ function buildRosterBlob(paths) {
|
|
|
765
798
|
for (const file of readdirSync(identityDir).filter((f) => f.endsWith(".md"))) {
|
|
766
799
|
try {
|
|
767
800
|
identities[file] = readFileSync(path.join(identityDir, file), "utf-8");
|
|
768
|
-
} catch {
|
|
801
|
+
} catch (e) {
|
|
802
|
+
process.stderr.write("[cloud-sync] identity file read failed (" + file + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
769
803
|
}
|
|
770
804
|
}
|
|
771
805
|
}
|
|
@@ -773,7 +807,8 @@ function buildRosterBlob(paths) {
|
|
|
773
807
|
if (existsSync(configPath)) {
|
|
774
808
|
try {
|
|
775
809
|
config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
776
|
-
} catch {
|
|
810
|
+
} catch (e) {
|
|
811
|
+
process.stderr.write("[cloud-sync] config.json read failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
777
812
|
}
|
|
778
813
|
}
|
|
779
814
|
let agentConfig;
|
|
@@ -781,7 +816,8 @@ function buildRosterBlob(paths) {
|
|
|
781
816
|
if (existsSync(agentConfigPath)) {
|
|
782
817
|
try {
|
|
783
818
|
agentConfig = JSON.parse(readFileSync(agentConfigPath, "utf-8"));
|
|
784
|
-
} catch {
|
|
819
|
+
} catch (e) {
|
|
820
|
+
process.stderr.write("[cloud-sync] agent-config.json read failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
785
821
|
}
|
|
786
822
|
}
|
|
787
823
|
const deletedNames = consumeRosterDeletions();
|
|
@@ -800,7 +836,8 @@ async function cloudPushRoster(config) {
|
|
|
800
836
|
);
|
|
801
837
|
const lastVersion = meta.rows.length > 0 ? Number(meta.rows[0].value) : 0;
|
|
802
838
|
if (blob.version === lastVersion) return true;
|
|
803
|
-
} catch {
|
|
839
|
+
} catch (e) {
|
|
840
|
+
process.stderr.write("[cloud-sync] roster push version check failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
804
841
|
}
|
|
805
842
|
try {
|
|
806
843
|
const json = JSON.stringify(blob);
|
|
@@ -822,7 +859,8 @@ async function cloudPushRoster(config) {
|
|
|
822
859
|
sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES ('last_roster_push_version', ?)",
|
|
823
860
|
args: [String(blob.version)]
|
|
824
861
|
});
|
|
825
|
-
} catch {
|
|
862
|
+
} catch (e) {
|
|
863
|
+
process.stderr.write("[cloud-sync] roster push version update failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
826
864
|
}
|
|
827
865
|
}
|
|
828
866
|
return resp.ok;
|
|
@@ -861,7 +899,8 @@ function mergeConfig(remoteConfig, configPath) {
|
|
|
861
899
|
if (existsSync(cfgPath)) {
|
|
862
900
|
try {
|
|
863
901
|
local = JSON.parse(readFileSync(cfgPath, "utf-8"));
|
|
864
|
-
} catch {
|
|
902
|
+
} catch (e) {
|
|
903
|
+
process.stderr.write("[cloud-sync] mergeConfig local config parse failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
865
904
|
}
|
|
866
905
|
}
|
|
867
906
|
const merged = { ...remoteConfig, ...local };
|
|
@@ -885,7 +924,8 @@ async function mergeRosterFromRemote(remote, paths) {
|
|
|
885
924
|
added++;
|
|
886
925
|
try {
|
|
887
926
|
registerBinSymlinks(remoteEmp.name);
|
|
888
|
-
} catch {
|
|
927
|
+
} catch (e) {
|
|
928
|
+
process.stderr.write("[cloud-sync] bin symlink registration failed for " + remoteEmp.name + ": " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
889
929
|
}
|
|
890
930
|
}
|
|
891
931
|
const lookupKey = `${remoteEmp.name}.md`;
|
|
@@ -899,7 +939,8 @@ async function mergeRosterFromRemote(remote, paths) {
|
|
|
899
939
|
let localIdentity = null;
|
|
900
940
|
try {
|
|
901
941
|
localIdentity = existsSync(idPath) ? readFileSync(idPath, "utf-8") : null;
|
|
902
|
-
} catch {
|
|
942
|
+
} catch (e) {
|
|
943
|
+
process.stderr.write("[cloud-sync] local identity file read failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
903
944
|
}
|
|
904
945
|
if (localIdentity !== remoteIdentity) {
|
|
905
946
|
writeFileSync(idPath, remoteIdentity, "utf-8");
|
|
@@ -923,7 +964,8 @@ async function mergeRosterFromRemote(remote, paths) {
|
|
|
923
964
|
if (remote.config && Object.keys(remote.config).length > 0) {
|
|
924
965
|
try {
|
|
925
966
|
mergeConfig(remote.config, paths?.configPath);
|
|
926
|
-
} catch {
|
|
967
|
+
} catch (e) {
|
|
968
|
+
process.stderr.write("[cloud-sync] config merge failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
927
969
|
}
|
|
928
970
|
}
|
|
929
971
|
if (remote.agentConfig && Object.keys(remote.agentConfig).length > 0) {
|
|
@@ -933,14 +975,16 @@ async function mergeRosterFromRemote(remote, paths) {
|
|
|
933
975
|
if (existsSync(agentConfigPath)) {
|
|
934
976
|
try {
|
|
935
977
|
local = JSON.parse(readFileSync(agentConfigPath, "utf-8"));
|
|
936
|
-
} catch {
|
|
978
|
+
} catch (e) {
|
|
979
|
+
process.stderr.write("[cloud-sync] agent-config.json parse failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
937
980
|
}
|
|
938
981
|
}
|
|
939
982
|
const merged = { ...remote.agentConfig, ...local };
|
|
940
983
|
ensurePrivateDirSync(path.dirname(agentConfigPath));
|
|
941
984
|
writeFileSync(agentConfigPath, JSON.stringify(merged, null, 2) + "\n", "utf-8");
|
|
942
985
|
enforcePrivateFileSync(agentConfigPath);
|
|
943
|
-
} catch {
|
|
986
|
+
} catch (e) {
|
|
987
|
+
process.stderr.write("[cloud-sync] agent-config merge failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
944
988
|
}
|
|
945
989
|
}
|
|
946
990
|
return { added, identitiesUpdated };
|
|
@@ -959,7 +1003,8 @@ async function cloudPushBlob(route, data, metaKey, config) {
|
|
|
959
1003
|
});
|
|
960
1004
|
const lastVersion = meta.rows.length > 0 ? Number(meta.rows[0].value) : 0;
|
|
961
1005
|
if (version === lastVersion) return { ok: true };
|
|
962
|
-
} catch {
|
|
1006
|
+
} catch (e) {
|
|
1007
|
+
process.stderr.write("[cloud-sync] pushBlob version check failed (" + metaKey + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
963
1008
|
}
|
|
964
1009
|
try {
|
|
965
1010
|
const compressed = compress(Buffer.from(json, "utf8"));
|
|
@@ -980,7 +1025,8 @@ async function cloudPushBlob(route, data, metaKey, config) {
|
|
|
980
1025
|
sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)",
|
|
981
1026
|
args: [metaKey, String(version)]
|
|
982
1027
|
});
|
|
983
|
-
} catch {
|
|
1028
|
+
} catch (e) {
|
|
1029
|
+
process.stderr.write("[cloud-sync] pushBlob version update failed (" + metaKey + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
984
1030
|
}
|
|
985
1031
|
}
|
|
986
1032
|
return { ok: resp.ok };
|
|
@@ -1233,8 +1279,8 @@ async function cloudPullTasks(config) {
|
|
|
1233
1279
|
const stmts = remoteTasks.map((t) => ({
|
|
1234
1280
|
sql: `INSERT OR IGNORE INTO tasks
|
|
1235
1281
|
(id, title, assigned_to, assigned_by, project_name, priority, status, task_file, created_at, updated_at,
|
|
1236
|
-
blocked_by, parent_task_id, budget_tokens, budget_fallback_model, tokens_used, tokens_warned_at
|
|
1237
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
1282
|
+
blocked_by, parent_task_id, budget_tokens, budget_fallback_model, tokens_used, tokens_warned_at)
|
|
1283
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
1238
1284
|
args: [
|
|
1239
1285
|
sqlSafe(t.id),
|
|
1240
1286
|
sqlSafe(t.title),
|
|
@@ -1251,8 +1297,7 @@ async function cloudPullTasks(config) {
|
|
|
1251
1297
|
sqlSafe(t.budget_tokens),
|
|
1252
1298
|
sqlSafe(t.budget_fallback_model),
|
|
1253
1299
|
sqlSafe(t.tokens_used ?? 0),
|
|
1254
|
-
sqlSafe(t.tokens_warned_at)
|
|
1255
|
-
sqlSafe(t.device_id)
|
|
1300
|
+
sqlSafe(t.tokens_warned_at)
|
|
1256
1301
|
]
|
|
1257
1302
|
}));
|
|
1258
1303
|
await client.batch(stmts, "write");
|
|
@@ -1377,7 +1422,8 @@ async function cloudPushCodeContext(config) {
|
|
|
1377
1422
|
if (existsSync(metaPath)) {
|
|
1378
1423
|
try {
|
|
1379
1424
|
syncMeta = JSON.parse(readFileSync(metaPath, "utf-8"));
|
|
1380
|
-
} catch {
|
|
1425
|
+
} catch (e) {
|
|
1426
|
+
process.stderr.write("[cloud-sync] code-context sync-meta parse failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
1381
1427
|
}
|
|
1382
1428
|
}
|
|
1383
1429
|
let pushed = 0;
|
|
@@ -1405,13 +1451,15 @@ async function cloudPushCodeContext(config) {
|
|
|
1405
1451
|
syncMeta[file] = stat.mtimeMs;
|
|
1406
1452
|
pushed++;
|
|
1407
1453
|
}
|
|
1408
|
-
} catch {
|
|
1454
|
+
} catch (e) {
|
|
1455
|
+
process.stderr.write("[cloud-sync] code-context push failed (" + file + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
1409
1456
|
}
|
|
1410
1457
|
}
|
|
1411
1458
|
if (pushed > 0) {
|
|
1412
1459
|
try {
|
|
1413
1460
|
writeFileSync(metaPath, JSON.stringify(syncMeta));
|
|
1414
|
-
} catch {
|
|
1461
|
+
} catch (e) {
|
|
1462
|
+
process.stderr.write("[cloud-sync] code-context sync-meta write failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
1415
1463
|
}
|
|
1416
1464
|
}
|
|
1417
1465
|
return pushed;
|
|
@@ -1447,7 +1495,8 @@ async function cloudPullCodeContext(config) {
|
|
|
1447
1495
|
pulled++;
|
|
1448
1496
|
}
|
|
1449
1497
|
}
|
|
1450
|
-
} catch {
|
|
1498
|
+
} catch (e) {
|
|
1499
|
+
process.stderr.write("[cloud-sync] code-context pull failed (" + key + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
1451
1500
|
}
|
|
1452
1501
|
}
|
|
1453
1502
|
return pulled;
|
|
@@ -1468,6 +1517,8 @@ export {
|
|
|
1468
1517
|
CLOUD_REUPLOAD_REQUIRED_MESSAGE,
|
|
1469
1518
|
getCloudReuploadRequired,
|
|
1470
1519
|
clearCloudReuploadRequired,
|
|
1520
|
+
getCloudRelinkRequired,
|
|
1521
|
+
clearCloudRelinkRequired,
|
|
1471
1522
|
markCloudReuploadRequired,
|
|
1472
1523
|
cloudSync,
|
|
1473
1524
|
recordRosterDeletion,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MultiAgentOrchestrator
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IMZM3H6N.js";
|
|
4
4
|
import {
|
|
5
5
|
createQuietRenderer,
|
|
6
6
|
createTerminalRenderer,
|
|
@@ -211,7 +211,7 @@ function createExeOSHooks(config) {
|
|
|
211
211
|
);
|
|
212
212
|
}
|
|
213
213
|
try {
|
|
214
|
-
const { listBehaviors } = await import("./behaviors-
|
|
214
|
+
const { listBehaviors } = await import("./behaviors-PPFGGHYD.js");
|
|
215
215
|
const behaviors = await listBehaviors(config.agentId, config.projectName, 12);
|
|
216
216
|
if (behaviors.length > 0) {
|
|
217
217
|
process.stderr.write(
|
|
@@ -332,7 +332,7 @@ function createExeOSHooks(config) {
|
|
|
332
332
|
async onSubagentStop(_reason) {
|
|
333
333
|
try {
|
|
334
334
|
const { getClient } = await import("./lib/database.js");
|
|
335
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
335
|
+
const { sessionScopeFilter } = await import("./task-scope-7XCYEZAG.js");
|
|
336
336
|
const client = getClient();
|
|
337
337
|
const ehScope = sessionScopeFilter();
|
|
338
338
|
const tasks = await client.execute({
|
|
@@ -424,7 +424,7 @@ function createExeOSHooks(config) {
|
|
|
424
424
|
try {
|
|
425
425
|
const { writeMemory, flushBatch } = await import("./lib/store.js");
|
|
426
426
|
const { getClient } = await import("./lib/database.js");
|
|
427
|
-
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-
|
|
427
|
+
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-7XCYEZAG.js");
|
|
428
428
|
const client = getClient();
|
|
429
429
|
const cpScope = cpScopeFilter();
|
|
430
430
|
const tasks = await client.execute({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
enqueueMemory
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2CKP7O4F.js";
|
|
4
4
|
import {
|
|
5
5
|
init_exe_daemon_client,
|
|
6
6
|
isClientConnected,
|
|
7
7
|
sendDaemonRequest
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KDM3GZ6T.js";
|
|
9
9
|
|
|
10
10
|
// src/lib/memory-queue-client.ts
|
|
11
11
|
init_exe_daemon_client();
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
resolveExeSession,
|
|
7
7
|
sendIntercom,
|
|
8
8
|
strictSessionScopeFilter
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CTEENZVZ.js";
|
|
10
10
|
import {
|
|
11
11
|
getClient,
|
|
12
12
|
init_database
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ZJ7N6BNZ.js";
|
|
14
14
|
|
|
15
15
|
// src/lib/messaging.ts
|
|
16
16
|
init_database();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_session_kill_telemetry,
|
|
3
3
|
session_kill_telemetry_exports
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ARQQ4T47.js";
|
|
5
5
|
import {
|
|
6
6
|
init_tmux_status,
|
|
7
7
|
tmux_status_exports
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
notifications_exports,
|
|
15
15
|
sessionScopeFilter,
|
|
16
16
|
tmux_routing_exports
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-CTEENZVZ.js";
|
|
18
18
|
import {
|
|
19
19
|
init_intercom_queue,
|
|
20
20
|
intercom_queue_exports
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
employees_exports,
|
|
32
32
|
init_employees,
|
|
33
33
|
isCoordinatorName
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-ZKYHW6KY.js";
|
|
35
35
|
import {
|
|
36
36
|
__esm,
|
|
37
37
|
__export,
|
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
getEmployee,
|
|
13
13
|
init_employees,
|
|
14
14
|
loadEmployeesSync
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZKYHW6KY.js";
|
|
16
16
|
import {
|
|
17
17
|
EXE_AI_DIR,
|
|
18
18
|
init_config
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ISRQKXHM.js";
|
|
20
20
|
|
|
21
21
|
// src/lib/active-agent.ts
|
|
22
22
|
init_config();
|