@raidiant/notifai 11.7.1 → 12.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/NOTICE +16 -0
  3. package/THIRD_PARTY_NOTICES +725 -0
  4. package/bin/notifai.mjs +11420 -0
  5. package/data/install.ps1 +318 -0
  6. package/data/release.json +1 -0
  7. package/inventory.json +1 -0
  8. package/npm-adapter-files.json +52 -0
  9. package/package.json +14 -44
  10. package/README.md +0 -168
  11. package/dist/agent-update-notice.d.ts +0 -7
  12. package/dist/agent-update-notice.js +0 -77
  13. package/dist/agent-update-notice.js.map +0 -1
  14. package/dist/atomic-file.d.ts +0 -30
  15. package/dist/atomic-file.js +0 -148
  16. package/dist/atomic-file.js.map +0 -1
  17. package/dist/attendant-update.d.ts +0 -15
  18. package/dist/attendant-update.js +0 -96
  19. package/dist/attendant-update.js.map +0 -1
  20. package/dist/claude-wake.d.ts +0 -108
  21. package/dist/claude-wake.js +0 -369
  22. package/dist/claude-wake.js.map +0 -1
  23. package/dist/cli-bin.d.ts +0 -26
  24. package/dist/cli-bin.js +0 -220
  25. package/dist/cli-bin.js.map +0 -1
  26. package/dist/cli-contract.d.ts +0 -16
  27. package/dist/cli-contract.js +0 -27
  28. package/dist/cli-contract.js.map +0 -1
  29. package/dist/cli-release.d.ts +0 -36
  30. package/dist/cli-release.js +0 -85
  31. package/dist/cli-release.js.map +0 -1
  32. package/dist/client.d.ts +0 -109
  33. package/dist/client.js +0 -217
  34. package/dist/client.js.map +0 -1
  35. package/dist/codex-answer-control.d.ts +0 -14
  36. package/dist/codex-answer-control.js +0 -41
  37. package/dist/codex-answer-control.js.map +0 -1
  38. package/dist/codex-answer-presentation.d.ts +0 -18
  39. package/dist/codex-answer-presentation.js +0 -113
  40. package/dist/codex-answer-presentation.js.map +0 -1
  41. package/dist/codex-input-lifecycle.d.ts +0 -10
  42. package/dist/codex-input-lifecycle.js +0 -63
  43. package/dist/codex-input-lifecycle.js.map +0 -1
  44. package/dist/codex-native-control.d.ts +0 -13
  45. package/dist/codex-native-control.js +0 -120
  46. package/dist/codex-native-control.js.map +0 -1
  47. package/dist/codex-native-turn.d.ts +0 -37
  48. package/dist/codex-native-turn.js +0 -155
  49. package/dist/codex-native-turn.js.map +0 -1
  50. package/dist/codex-question-bindings.d.ts +0 -76
  51. package/dist/codex-question-bindings.js +0 -151
  52. package/dist/codex-question-bindings.js.map +0 -1
  53. package/dist/codex-queue-control.d.ts +0 -21
  54. package/dist/codex-queue-control.js +0 -59
  55. package/dist/codex-queue-control.js.map +0 -1
  56. package/dist/codex-tool-messages.d.ts +0 -7
  57. package/dist/codex-tool-messages.js +0 -126
  58. package/dist/codex-tool-messages.js.map +0 -1
  59. package/dist/codex-wake.d.ts +0 -58
  60. package/dist/codex-wake.js +0 -135
  61. package/dist/codex-wake.js.map +0 -1
  62. package/dist/command-session.d.ts +0 -14
  63. package/dist/command-session.js +0 -31
  64. package/dist/command-session.js.map +0 -1
  65. package/dist/commands-acknowledge.d.ts +0 -13
  66. package/dist/commands-acknowledge.js +0 -116
  67. package/dist/commands-acknowledge.js.map +0 -1
  68. package/dist/commands-agent-sessions.d.ts +0 -6
  69. package/dist/commands-agent-sessions.js +0 -51
  70. package/dist/commands-agent-sessions.js.map +0 -1
  71. package/dist/commands-ask.d.ts +0 -62
  72. package/dist/commands-ask.js +0 -503
  73. package/dist/commands-ask.js.map +0 -1
  74. package/dist/commands-auth.d.ts +0 -76
  75. package/dist/commands-auth.js +0 -421
  76. package/dist/commands-auth.js.map +0 -1
  77. package/dist/commands-close.d.ts +0 -6
  78. package/dist/commands-close.js +0 -273
  79. package/dist/commands-close.js.map +0 -1
  80. package/dist/commands-config.d.ts +0 -31
  81. package/dist/commands-config.js +0 -272
  82. package/dist/commands-config.js.map +0 -1
  83. package/dist/commands-core.d.ts +0 -145
  84. package/dist/commands-core.js +0 -190
  85. package/dist/commands-core.js.map +0 -1
  86. package/dist/commands-devices.d.ts +0 -41
  87. package/dist/commands-devices.js +0 -144
  88. package/dist/commands-devices.js.map +0 -1
  89. package/dist/commands-doctor.d.ts +0 -25
  90. package/dist/commands-doctor.js +0 -1553
  91. package/dist/commands-doctor.js.map +0 -1
  92. package/dist/commands-guidance.d.ts +0 -27
  93. package/dist/commands-guidance.js +0 -150
  94. package/dist/commands-guidance.js.map +0 -1
  95. package/dist/commands-harness-context.d.ts +0 -57
  96. package/dist/commands-harness-context.js +0 -102
  97. package/dist/commands-harness-context.js.map +0 -1
  98. package/dist/commands-hook-attend.d.ts +0 -70
  99. package/dist/commands-hook-attend.js +0 -655
  100. package/dist/commands-hook-attend.js.map +0 -1
  101. package/dist/commands-hook-diagnostics.d.ts +0 -37
  102. package/dist/commands-hook-diagnostics.js +0 -136
  103. package/dist/commands-hook-diagnostics.js.map +0 -1
  104. package/dist/commands-hook-install.d.ts +0 -26
  105. package/dist/commands-hook-install.js +0 -784
  106. package/dist/commands-hook-install.js.map +0 -1
  107. package/dist/commands-hook-run.d.ts +0 -29
  108. package/dist/commands-hook-run.js +0 -933
  109. package/dist/commands-hook-run.js.map +0 -1
  110. package/dist/commands-hook-shape.d.ts +0 -19
  111. package/dist/commands-hook-shape.js +0 -48
  112. package/dist/commands-hook-shape.js.map +0 -1
  113. package/dist/commands-init.d.ts +0 -42
  114. package/dist/commands-init.js +0 -901
  115. package/dist/commands-init.js.map +0 -1
  116. package/dist/commands-io.d.ts +0 -2
  117. package/dist/commands-io.js +0 -117
  118. package/dist/commands-io.js.map +0 -1
  119. package/dist/commands-logs.d.ts +0 -30
  120. package/dist/commands-logs.js +0 -201
  121. package/dist/commands-logs.js.map +0 -1
  122. package/dist/commands-native-acknowledge.d.ts +0 -8
  123. package/dist/commands-native-acknowledge.js +0 -114
  124. package/dist/commands-native-acknowledge.js.map +0 -1
  125. package/dist/commands-project.d.ts +0 -4
  126. package/dist/commands-project.js +0 -41
  127. package/dist/commands-project.js.map +0 -1
  128. package/dist/commands-receive.d.ts +0 -3
  129. package/dist/commands-receive.js +0 -59
  130. package/dist/commands-receive.js.map +0 -1
  131. package/dist/commands-send-support.d.ts +0 -59
  132. package/dist/commands-send-support.js +0 -258
  133. package/dist/commands-send-support.js.map +0 -1
  134. package/dist/commands-send.d.ts +0 -34
  135. package/dist/commands-send.js +0 -900
  136. package/dist/commands-send.js.map +0 -1
  137. package/dist/commands-setup-proof.d.ts +0 -43
  138. package/dist/commands-setup-proof.js +0 -134
  139. package/dist/commands-setup-proof.js.map +0 -1
  140. package/dist/commands-skill.d.ts +0 -21
  141. package/dist/commands-skill.js +0 -199
  142. package/dist/commands-skill.js.map +0 -1
  143. package/dist/commands-sounds.d.ts +0 -12
  144. package/dist/commands-sounds.js +0 -35
  145. package/dist/commands-sounds.js.map +0 -1
  146. package/dist/commands-update-check.d.ts +0 -6
  147. package/dist/commands-update-check.js +0 -102
  148. package/dist/commands-update-check.js.map +0 -1
  149. package/dist/commands-update-resume.d.ts +0 -7
  150. package/dist/commands-update-resume.js +0 -143
  151. package/dist/commands-update-resume.js.map +0 -1
  152. package/dist/commands-update-skill.d.ts +0 -5
  153. package/dist/commands-update-skill.js +0 -36
  154. package/dist/commands-update-skill.js.map +0 -1
  155. package/dist/commands-update.d.ts +0 -11
  156. package/dist/commands-update.js +0 -286
  157. package/dist/commands-update.js.map +0 -1
  158. package/dist/commands.d.ts +0 -26
  159. package/dist/commands.js +0 -27
  160. package/dist/commands.js.map +0 -1
  161. package/dist/config-schema.d.ts +0 -62
  162. package/dist/config-schema.js +0 -302
  163. package/dist/config-schema.js.map +0 -1
  164. package/dist/config.d.ts +0 -181
  165. package/dist/config.js +0 -357
  166. package/dist/config.js.map +0 -1
  167. package/dist/credentials.d.ts +0 -96
  168. package/dist/credentials.js +0 -342
  169. package/dist/credentials.js.map +0 -1
  170. package/dist/file-lock.d.ts +0 -34
  171. package/dist/file-lock.js +0 -367
  172. package/dist/file-lock.js.map +0 -1
  173. package/dist/generated-session-label.d.ts +0 -2
  174. package/dist/generated-session-label.js +0 -152
  175. package/dist/generated-session-label.js.map +0 -1
  176. package/dist/guidance-content.d.ts +0 -53
  177. package/dist/guidance-content.js +0 -248
  178. package/dist/guidance-content.js.map +0 -1
  179. package/dist/guidance-render.d.ts +0 -25
  180. package/dist/guidance-render.js +0 -47
  181. package/dist/guidance-render.js.map +0 -1
  182. package/dist/guidance.d.ts +0 -69
  183. package/dist/guidance.js +0 -173
  184. package/dist/guidance.js.map +0 -1
  185. package/dist/harness-session-title.d.ts +0 -22
  186. package/dist/harness-session-title.js +0 -74
  187. package/dist/harness-session-title.js.map +0 -1
  188. package/dist/harnesses.d.ts +0 -65
  189. package/dist/harnesses.js +0 -159
  190. package/dist/harnesses.js.map +0 -1
  191. package/dist/hermes-attendant.d.ts +0 -38
  192. package/dist/hermes-attendant.js +0 -337
  193. package/dist/hermes-attendant.js.map +0 -1
  194. package/dist/hermes-plugin.d.ts +0 -11
  195. package/dist/hermes-plugin.js +0 -299
  196. package/dist/hermes-plugin.js.map +0 -1
  197. package/dist/hook-acknowledgements.d.ts +0 -70
  198. package/dist/hook-acknowledgements.js +0 -490
  199. package/dist/hook-acknowledgements.js.map +0 -1
  200. package/dist/hook-adapter.d.ts +0 -48
  201. package/dist/hook-adapter.js +0 -419
  202. package/dist/hook-adapter.js.map +0 -1
  203. package/dist/hook-events.d.ts +0 -105
  204. package/dist/hook-events.js +0 -130
  205. package/dist/hook-events.js.map +0 -1
  206. package/dist/hook-gates.d.ts +0 -7
  207. package/dist/hook-gates.js +0 -20
  208. package/dist/hook-gates.js.map +0 -1
  209. package/dist/hook-input.d.ts +0 -10
  210. package/dist/hook-input.js +0 -64
  211. package/dist/hook-input.js.map +0 -1
  212. package/dist/hook-lifecycle.d.ts +0 -112
  213. package/dist/hook-lifecycle.js +0 -2031
  214. package/dist/hook-lifecycle.js.map +0 -1
  215. package/dist/hook-project-sessions.d.ts +0 -28
  216. package/dist/hook-project-sessions.js +0 -141
  217. package/dist/hook-project-sessions.js.map +0 -1
  218. package/dist/hook-question-lock.d.ts +0 -29
  219. package/dist/hook-question-lock.js +0 -217
  220. package/dist/hook-question-lock.js.map +0 -1
  221. package/dist/hook-question-retirement.d.ts +0 -74
  222. package/dist/hook-question-retirement.js +0 -314
  223. package/dist/hook-question-retirement.js.map +0 -1
  224. package/dist/hook-question-state.d.ts +0 -58
  225. package/dist/hook-question-state.js +0 -239
  226. package/dist/hook-question-state.js.map +0 -1
  227. package/dist/hook-session-state.d.ts +0 -127
  228. package/dist/hook-session-state.js +0 -488
  229. package/dist/hook-session-state.js.map +0 -1
  230. package/dist/hook-types.d.ts +0 -476
  231. package/dist/hook-types.js +0 -4
  232. package/dist/hook-types.js.map +0 -1
  233. package/dist/injection-render.d.ts +0 -36
  234. package/dist/injection-render.js +0 -61
  235. package/dist/injection-render.js.map +0 -1
  236. package/dist/install-hooks.d.ts +0 -470
  237. package/dist/install-hooks.js +0 -1622
  238. package/dist/install-hooks.js.map +0 -1
  239. package/dist/integration-health.d.ts +0 -26
  240. package/dist/integration-health.js +0 -133
  241. package/dist/integration-health.js.map +0 -1
  242. package/dist/interactive.d.ts +0 -22
  243. package/dist/interactive.js +0 -644
  244. package/dist/interactive.js.map +0 -1
  245. package/dist/invocation-context.d.ts +0 -47
  246. package/dist/invocation-context.js +0 -164
  247. package/dist/invocation-context.js.map +0 -1
  248. package/dist/local-path.d.ts +0 -7
  249. package/dist/local-path.js +0 -27
  250. package/dist/local-path.js.map +0 -1
  251. package/dist/logging.d.ts +0 -157
  252. package/dist/logging.js +0 -599
  253. package/dist/logging.js.map +0 -1
  254. package/dist/main-run.d.ts +0 -1
  255. package/dist/main-run.js +0 -42
  256. package/dist/main-run.js.map +0 -1
  257. package/dist/main.d.ts +0 -2
  258. package/dist/main.js +0 -12
  259. package/dist/main.js.map +0 -1
  260. package/dist/native-answer-operation.d.ts +0 -70
  261. package/dist/native-answer-operation.js +0 -247
  262. package/dist/native-answer-operation.js.map +0 -1
  263. package/dist/native-skills.d.ts +0 -64
  264. package/dist/native-skills.js +0 -167
  265. package/dist/native-skills.js.map +0 -1
  266. package/dist/node-floor.d.ts +0 -19
  267. package/dist/node-floor.js +0 -32
  268. package/dist/node-floor.js.map +0 -1
  269. package/dist/npm-invocation.d.ts +0 -34
  270. package/dist/npm-invocation.js +0 -53
  271. package/dist/npm-invocation.js.map +0 -1
  272. package/dist/openclaw-continuation-bridge.d.ts +0 -7
  273. package/dist/openclaw-continuation-bridge.js +0 -64
  274. package/dist/openclaw-continuation-bridge.js.map +0 -1
  275. package/dist/openclaw-gateway-readiness.d.ts +0 -1
  276. package/dist/openclaw-gateway-readiness.js +0 -24
  277. package/dist/openclaw-gateway-readiness.js.map +0 -1
  278. package/dist/openclaw-generation.d.ts +0 -21
  279. package/dist/openclaw-generation.js +0 -115
  280. package/dist/openclaw-generation.js.map +0 -1
  281. package/dist/openclaw-message-bridge.d.ts +0 -8
  282. package/dist/openclaw-message-bridge.js +0 -93
  283. package/dist/openclaw-message-bridge.js.map +0 -1
  284. package/dist/openclaw-pending.d.ts +0 -8
  285. package/dist/openclaw-pending.js +0 -47
  286. package/dist/openclaw-pending.js.map +0 -1
  287. package/dist/openclaw-plugin.d.ts +0 -75
  288. package/dist/openclaw-plugin.js +0 -1353
  289. package/dist/openclaw-plugin.js.map +0 -1
  290. package/dist/openclaw-session-access.d.ts +0 -12
  291. package/dist/openclaw-session-access.js +0 -79
  292. package/dist/openclaw-session-access.js.map +0 -1
  293. package/dist/opencode-plugin.d.ts +0 -88
  294. package/dist/opencode-plugin.js +0 -286
  295. package/dist/opencode-plugin.js.map +0 -1
  296. package/dist/orca-session-title.d.ts +0 -11
  297. package/dist/orca-session-title.js +0 -111
  298. package/dist/orca-session-title.js.map +0 -1
  299. package/dist/pack-feedback-slice.d.ts +0 -35
  300. package/dist/pack-feedback-slice.js +0 -126
  301. package/dist/pack-feedback-slice.js.map +0 -1
  302. package/dist/pairing-qr.d.ts +0 -5
  303. package/dist/pairing-qr.js +0 -24
  304. package/dist/pairing-qr.js.map +0 -1
  305. package/dist/pending-pairing.d.ts +0 -38
  306. package/dist/pending-pairing.js +0 -70
  307. package/dist/pending-pairing.js.map +0 -1
  308. package/dist/platform.d.ts +0 -67
  309. package/dist/platform.js +0 -140
  310. package/dist/platform.js.map +0 -1
  311. package/dist/process-identity.d.ts +0 -26
  312. package/dist/process-identity.js +0 -82
  313. package/dist/process-identity.js.map +0 -1
  314. package/dist/program.d.ts +0 -59
  315. package/dist/program.js +0 -691
  316. package/dist/program.js.map +0 -1
  317. package/dist/project-enablement.d.ts +0 -21
  318. package/dist/project-enablement.js +0 -71
  319. package/dist/project-enablement.js.map +0 -1
  320. package/dist/question-settlement-process.d.ts +0 -17
  321. package/dist/question-settlement-process.js +0 -35
  322. package/dist/question-settlement-process.js.map +0 -1
  323. package/dist/question-timing.d.ts +0 -46
  324. package/dist/question-timing.js +0 -48
  325. package/dist/question-timing.js.map +0 -1
  326. package/dist/readiness.d.ts +0 -153
  327. package/dist/readiness.js +0 -149
  328. package/dist/readiness.js.map +0 -1
  329. package/dist/release.d.ts +0 -31
  330. package/dist/release.js +0 -52
  331. package/dist/release.js.map +0 -1
  332. package/dist/send-attempts.d.ts +0 -26
  333. package/dist/send-attempts.js +0 -139
  334. package/dist/send-attempts.js.map +0 -1
  335. package/dist/send.d.ts +0 -115
  336. package/dist/send.js +0 -421
  337. package/dist/send.js.map +0 -1
  338. package/dist/session-activation.d.ts +0 -13
  339. package/dist/session-activation.js +0 -64
  340. package/dist/session-activation.js.map +0 -1
  341. package/dist/session-attendant-probe.d.ts +0 -85
  342. package/dist/session-attendant-probe.js +0 -173
  343. package/dist/session-attendant-probe.js.map +0 -1
  344. package/dist/session-attendant-state.d.ts +0 -70
  345. package/dist/session-attendant-state.js +0 -256
  346. package/dist/session-attendant-state.js.map +0 -1
  347. package/dist/session-attendant.d.ts +0 -143
  348. package/dist/session-attendant.js +0 -520
  349. package/dist/session-attendant.js.map +0 -1
  350. package/dist/session-delivery.d.ts +0 -249
  351. package/dist/session-delivery.js +0 -576
  352. package/dist/session-delivery.js.map +0 -1
  353. package/dist/session-handoff.d.ts +0 -98
  354. package/dist/session-handoff.js +0 -118
  355. package/dist/session-handoff.js.map +0 -1
  356. package/dist/session-input-wakes.d.ts +0 -78
  357. package/dist/session-input-wakes.js +0 -239
  358. package/dist/session-input-wakes.js.map +0 -1
  359. package/dist/session-inputs.d.ts +0 -57
  360. package/dist/session-inputs.js +0 -434
  361. package/dist/session-inputs.js.map +0 -1
  362. package/dist/session-labels.d.ts +0 -56
  363. package/dist/session-labels.js +0 -396
  364. package/dist/session-labels.js.map +0 -1
  365. package/dist/session-message-handoff.d.ts +0 -39
  366. package/dist/session-message-handoff.js +0 -107
  367. package/dist/session-message-handoff.js.map +0 -1
  368. package/dist/setup-destinations.d.ts +0 -23
  369. package/dist/setup-destinations.js +0 -44
  370. package/dist/setup-destinations.js.map +0 -1
  371. package/dist/skill-integrity.d.ts +0 -54
  372. package/dist/skill-integrity.js +0 -164
  373. package/dist/skill-integrity.js.map +0 -1
  374. package/dist/skill-source/manifest.json +0 -40
  375. package/dist/skill-source/notifai/SKILL.md +0 -350
  376. package/dist/skill-source/notifai/references/diagnostics.md +0 -36
  377. package/dist/skill-source/notifai/references/harness-setup.md +0 -384
  378. package/dist/skill-source/notifai/references/native-questions.md +0 -51
  379. package/dist/skill-source/notifai/references/notes-and-edits.md +0 -54
  380. package/dist/skill-source/notifai/references/send-details.md +0 -14
  381. package/dist/skill-source/notifai/references/updates.md +0 -116
  382. package/dist/skill-source/notifai/references/writing-examples.md +0 -56
  383. package/dist/sound-ref.d.ts +0 -23
  384. package/dist/sound-ref.js +0 -28
  385. package/dist/sound-ref.js.map +0 -1
  386. package/dist/ui/banner.d.ts +0 -22
  387. package/dist/ui/banner.js +0 -87
  388. package/dist/ui/banner.js.map +0 -1
  389. package/dist/ui/config-view.d.ts +0 -30
  390. package/dist/ui/config-view.js +0 -108
  391. package/dist/ui/config-view.js.map +0 -1
  392. package/dist/ui/help.d.ts +0 -44
  393. package/dist/ui/help.js +0 -107
  394. package/dist/ui/help.js.map +0 -1
  395. package/dist/ui/theme.d.ts +0 -90
  396. package/dist/ui/theme.js +0 -244
  397. package/dist/ui/theme.js.map +0 -1
  398. package/dist/update-handoff.d.ts +0 -29
  399. package/dist/update-handoff.js +0 -69
  400. package/dist/update-handoff.js.map +0 -1
  401. package/dist/url-policy.d.ts +0 -85
  402. package/dist/url-policy.js +0 -369
  403. package/dist/url-policy.js.map +0 -1
  404. package/dist/version.d.ts +0 -40
  405. package/dist/version.js +0 -132
  406. package/dist/version.js.map +0 -1
  407. package/dist/wake-support.d.ts +0 -40
  408. package/dist/wake-support.js +0 -95
  409. package/dist/wake-support.js.map +0 -1
@@ -1,32 +0,0 @@
1
- /**
2
- * The Node version this CLI needs, asserted before anything else loads.
3
- *
4
- * `engines` in package.json is advisory: npm prints a warning at install time
5
- * and runs the binary anyway. So a reader on an older Node met a parser or
6
- * module error naming a file they did not write, with no mention of Notifai,
7
- * of Node, or of anything to do about it.
8
- *
9
- * This module is deliberately plain — no imports, no syntax newer than the
10
- * floor it is checking — so it can run and report on the runtimes it exists to
11
- * turn away. Everything else is loaded after it passes.
12
- */
13
- import { compareVersions, parseVersion } from './version.js';
14
- export const NODE_MAJOR_FLOOR = 20;
15
- export const NODE_MINOR_FLOOR = 12;
16
- /** The major from a `process.version` string, or null when unrecognisable. */
17
- export function nodeMajor(version) {
18
- return parseVersion(version)?.[0] ?? null;
19
- }
20
- export function belowNodeFloor(version) {
21
- // An unrecognisable version is not evidence of an old runtime, and refusing
22
- // to run on one would strand a reader whose Node is fine.
23
- return compareVersions(version, `${NODE_MAJOR_FLOOR}.${NODE_MINOR_FLOOR}.0`) === 'before';
24
- }
25
- /** One sentence for what is wrong, one for what to do about it. */
26
- export function nodeFloorMessage(version) {
27
- return [
28
- `Notifai needs Node ${NODE_MAJOR_FLOOR}.${NODE_MINOR_FLOOR} or newer; this is Node ${version}.`,
29
- `next: install Node ${NODE_MAJOR_FLOOR}.${NODE_MINOR_FLOOR}+ (https://nodejs.org), then run this again.`,
30
- ];
31
- }
32
- //# sourceMappingURL=node-floor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-floor.js","sourceRoot":"","sources":["../src/node-floor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAElC,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,4EAA4E;IAC5E,0DAA0D;IAC1D,OAAO,eAAe,CACpB,OAAO,EACP,GAAG,gBAAgB,IAAI,gBAAgB,IAAI,CAC5C,KAAK,QAAQ,CAAA;AAChB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO;QACL,sBAAsB,gBAAgB,IAAI,gBAAgB,2BAA2B,OAAO,GAAG;QAC/F,sBAAsB,gBAAgB,IAAI,gBAAgB,8CAA8C;KACzG,CAAA;AACH,CAAC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * @typedef {{
3
- * platform?: NodeJS.Platform,
4
- * env?: NodeJS.ProcessEnv,
5
- * nodeExecutable?: string,
6
- * useActiveNpm?: boolean,
7
- * }} NpmInvocationOptions
8
- */
9
- /**
10
- * The npm JavaScript entry selected by the current npm/npx process, if any.
11
- *
12
- * @param {NodeJS.ProcessEnv} env
13
- * @returns {string | null}
14
- */
15
- export function activeNpmCli(env: NodeJS.ProcessEnv): string | null;
16
- /**
17
- * Resolve npm without making callers reproduce npm.cmd and npm_execpath rules.
18
- *
19
- * @param {readonly string[]} args
20
- * @param {NpmInvocationOptions} [options]
21
- */
22
- export function npmInvocation(args: readonly string[], options?: NpmInvocationOptions): {
23
- file: string;
24
- args: string[];
25
- options: {
26
- windowsHide: boolean;
27
- };
28
- };
29
- export type NpmInvocationOptions = {
30
- platform?: NodeJS.Platform;
31
- env?: NodeJS.ProcessEnv;
32
- nodeExecutable?: string;
33
- useActiveNpm?: boolean;
34
- };
@@ -1,53 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import path from 'node:path';
3
- import process from 'node:process';
4
- /**
5
- * @typedef {{
6
- * platform?: NodeJS.Platform,
7
- * env?: NodeJS.ProcessEnv,
8
- * nodeExecutable?: string,
9
- * useActiveNpm?: boolean,
10
- * }} NpmInvocationOptions
11
- */
12
- /**
13
- * The npm JavaScript entry selected by the current npm/npx process, if any.
14
- *
15
- * @param {NodeJS.ProcessEnv} env
16
- * @returns {string | null}
17
- */
18
- export function activeNpmCli(env) {
19
- const npmCli = env['npm_execpath'];
20
- return typeof npmCli === 'string' && npmCli !== '' ? npmCli : null;
21
- }
22
- /**
23
- * Resolve npm without making callers reproduce npm.cmd and npm_execpath rules.
24
- *
25
- * @param {readonly string[]} args
26
- * @param {NpmInvocationOptions} [options]
27
- */
28
- export function npmInvocation(args, options = {}) {
29
- const platform = options.platform ?? process.platform;
30
- const env = options.env ?? process.env;
31
- const nodeExecutable = options.nodeExecutable ?? process.execPath;
32
- const active = options.useActiveNpm === false ? null : activeNpmCli(env);
33
- if (active !== null) {
34
- return {
35
- file: nodeExecutable,
36
- args: [active, ...args],
37
- options: { windowsHide: true },
38
- };
39
- }
40
- if (platform === 'win32') {
41
- const bundled = path.join(path.dirname(nodeExecutable), 'node_modules', 'npm', 'bin', 'npm-cli.js');
42
- if (existsSync(bundled)) {
43
- return {
44
- file: nodeExecutable,
45
- args: [bundled, ...args],
46
- options: { windowsHide: true },
47
- };
48
- }
49
- return { file: 'npm.cmd', args: [...args], options: { windowsHide: true } };
50
- }
51
- return { file: 'npm', args: [...args], options: { windowsHide: true } };
52
- }
53
- //# sourceMappingURL=npm-invocation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"npm-invocation.js","sourceRoot":"","sources":["../src/npm-invocation.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAG;IAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,CAAA;IAClC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAA;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACtC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAA;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACxE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;YACvB,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;SAC/B,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAC5B,cAAc,EACd,KAAK,EACL,KAAK,EACL,YAAY,CACb,CAAA;QACD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;gBACxB,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aAC/B,CAAA;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAA;IAC7E,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAA;AACzE,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { EscalationDeliveryRoute } from './hook-types.js';
2
- /**
3
- * FDs 3 and 4 are private pipes opened by the generated Gateway service.
4
- * Neither User text nor reply content is written to them: only exact request
5
- * identifiers and the durable service hand-off protocol cross this boundary.
6
- */
7
- export declare function openclawContinuationRoute(sessionKey: string, generation: string): EscalationDeliveryRoute;
@@ -1,64 +0,0 @@
1
- /** Pointer-only hand-off from a CLI answer owner to its Gateway plugin service. */
2
- import { createReadStream, createWriteStream } from 'node:fs';
3
- import { createInterface } from 'node:readline';
4
- const BRIDGE_WAIT_MS = 30_000;
5
- /**
6
- * FDs 3 and 4 are private pipes opened by the generated Gateway service.
7
- * Neither User text nor reply content is written to them: only exact request
8
- * identifiers and the durable service hand-off protocol cross this boundary.
9
- */
10
- export function openclawContinuationRoute(sessionKey, generation) {
11
- return {
12
- kind: 'session-queue',
13
- deliver: async (event) => {
14
- const requestIds = event.request_ids;
15
- const guard = event.writeGuard;
16
- if (requestIds.length === 0 || guard === undefined || !guard.writable()) {
17
- return { acknowledgement: 'held', notes: [] };
18
- }
19
- const output = createWriteStream('', { fd: 3, autoClose: false });
20
- const input = createReadStream('', { fd: 4, autoClose: false });
21
- const lines = createInterface({ input, crlfDelay: Infinity });
22
- const response = new Promise((resolve, reject) => {
23
- const timer = setTimeout(() => reject(new Error('Gateway service hand-off timed out')), BRIDGE_WAIT_MS);
24
- const finish = (value) => {
25
- clearTimeout(timer);
26
- resolve(value);
27
- };
28
- lines.once('line', (line) => {
29
- try {
30
- finish(JSON.parse(line));
31
- }
32
- catch {
33
- reject(new Error('Invalid Gateway service hand-off'));
34
- }
35
- });
36
- lines.once('close', () => reject(new Error('Gateway service hand-off closed')));
37
- });
38
- try {
39
- await new Promise((resolve, reject) => output.write(`${JSON.stringify({
40
- type: 'prepare', session_key: sessionKey, generation,
41
- request_ids: requestIds,
42
- })}\n`, (err) => err ? reject(err) : resolve()));
43
- const reply = await response;
44
- if (typeof reply !== 'object' || reply === null ||
45
- reply['type'] !== 'prepared') {
46
- return { acknowledgement: 'held', notes: [], log: { reason: 'gateway-service-refused' } };
47
- }
48
- if (!guard.writable() || !event.commitDelivery('subprocess')) {
49
- return { acknowledgement: 'held', notes: [], log: { reason: 'generation-fenced' } };
50
- }
51
- output.write(`${JSON.stringify({ type: 'committed' })}\n`);
52
- return {
53
- acknowledgement: 'delivered', notes: [],
54
- log: { route: 'session-queue', stage: 'gateway-service-handoff' },
55
- };
56
- }
57
- finally {
58
- lines.close();
59
- output.end();
60
- }
61
- },
62
- };
63
- }
64
- //# sourceMappingURL=openclaw-continuation-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw-continuation-bridge.js","sourceRoot":"","sources":["../src/openclaw-continuation-bridge.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function openclawGatewayReady(env: NodeJS.ProcessEnv): boolean;
@@ -1,24 +0,0 @@
1
- /** A verified, still-running local Gateway service is required before ask admission. */
2
- import { readFileSync, statSync } from 'node:fs';
3
- import path from 'node:path';
4
- import { openclawStateDir } from './openclaw-plugin.js';
5
- import { processIdentityLiveness } from './process-identity.js';
6
- export function openclawGatewayReady(env) {
7
- try {
8
- const file = path.join(openclawStateDir(env), 'notifai', 'continuation-ready.json');
9
- const raw = JSON.parse(readFileSync(file, 'utf8'));
10
- if (typeof raw !== 'object' || raw === null)
11
- return false;
12
- const value = raw;
13
- if (typeof value['pid'] !== 'number' || typeof value['start'] !== 'string' ||
14
- typeof value['script'] !== 'string' || typeof value['script_mtime'] !== 'number')
15
- return false;
16
- if (processIdentityLiveness({ pid: value['pid'], start: value['start'] }) !== 'alive')
17
- return false;
18
- return statSync(value['script']).mtimeMs === value['script_mtime'];
19
- }
20
- catch {
21
- return false;
22
- }
23
- }
24
- //# sourceMappingURL=openclaw-gateway-readiness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw-gateway-readiness.js","sourceRoot":"","sources":["../src/openclaw-gateway-readiness.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,MAAM,UAAU,oBAAoB,CAAC,GAAsB;IACzD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAA;QACnF,MAAM,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC3D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QACzD,MAAM,KAAK,GAAG,GAA8B,CAAA;QAC5C,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;YACtE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAA;QAClG,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,CAAA;QACnG,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -1,21 +0,0 @@
1
- export interface OpenclawGeneration {
2
- id: string;
3
- sessionId?: string;
4
- /** OpenClaw's native reset identity; sessionId can stay unchanged across /reset. */
5
- lifecycleRevision?: string;
6
- resumedFrom?: string;
7
- startSeen: boolean;
8
- resetPending: boolean;
9
- activated: boolean;
10
- ended: boolean;
11
- /** Transcript IDs replaced under this stable sessionKey; late hooks cannot restore them. */
12
- supersededSessionIds?: string[];
13
- /** Native revisions replaced under a stable sessionKey, including same-ID resets. */
14
- supersededLifecycleRevisions?: string[];
15
- }
16
- export declare function openclawGenerationLockPath(sessionKey: string, env: NodeJS.ProcessEnv): string;
17
- /** Callers hold openclawGenerationLockPath through the complete lifecycle action. */
18
- export declare function readOpenclawGeneration(sessionKey: string, env: NodeJS.ProcessEnv): OpenclawGeneration | null;
19
- export declare function writeOpenclawGeneration(sessionKey: string, env: NodeJS.ProcessEnv, state: OpenclawGeneration): void;
20
- export declare function observeOpenclawStart(current: OpenclawGeneration | null, sessionId?: string, resumedFrom?: string): OpenclawGeneration;
21
- export declare function observeOpenclawPrompt(current: OpenclawGeneration | null, sessionId?: string, lifecycleRevision?: string): OpenclawGeneration;
@@ -1,115 +0,0 @@
1
- /** Durable generation fence shared by OpenClaw's Gateway and agent hook runners. */
2
- import { randomUUID } from 'node:crypto';
3
- import { readFileSync } from 'node:fs';
4
- import path from 'node:path';
5
- import { atomicWriteFileSync } from './atomic-file.js';
6
- import { sanitizeSessionId, stateDir } from './config.js';
7
- function generationPath(sessionKey, env) {
8
- return path.join(stateDir(env), 'sessions', `${sanitizeSessionId(sessionKey)}.openclaw-generation.json`);
9
- }
10
- export function openclawGenerationLockPath(sessionKey, env) {
11
- return `${generationPath(sessionKey, env)}.lock`;
12
- }
13
- /** Callers hold openclawGenerationLockPath through the complete lifecycle action. */
14
- export function readOpenclawGeneration(sessionKey, env) {
15
- try {
16
- const parsed = JSON.parse(readFileSync(generationPath(sessionKey, env), 'utf8'));
17
- if (typeof parsed !== 'object' || parsed === null)
18
- return null;
19
- const state = parsed;
20
- if (typeof state['id'] !== 'string' ||
21
- typeof state['startSeen'] !== 'boolean' ||
22
- typeof state['resetPending'] !== 'boolean' ||
23
- typeof state['activated'] !== 'boolean' ||
24
- typeof state['ended'] !== 'boolean')
25
- return null;
26
- return {
27
- id: state['id'],
28
- ...(typeof state['sessionId'] === 'string' ? { sessionId: state['sessionId'] } : {}),
29
- ...(typeof state['lifecycleRevision'] === 'string' ? { lifecycleRevision: state['lifecycleRevision'] } : {}),
30
- ...(typeof state['resumedFrom'] === 'string' ? { resumedFrom: state['resumedFrom'] } : {}),
31
- startSeen: state['startSeen'],
32
- resetPending: state['resetPending'],
33
- activated: state['activated'],
34
- ended: state['ended'],
35
- ...(Array.isArray(state['supersededSessionIds']) &&
36
- state['supersededSessionIds'].every((id) => typeof id === 'string')
37
- ? { supersededSessionIds: state['supersededSessionIds'] } : {}),
38
- ...(Array.isArray(state['supersededLifecycleRevisions']) &&
39
- state['supersededLifecycleRevisions'].every((id) => typeof id === 'string')
40
- ? { supersededLifecycleRevisions: state['supersededLifecycleRevisions'] } : {}),
41
- };
42
- }
43
- catch {
44
- return null;
45
- }
46
- }
47
- export function writeOpenclawGeneration(sessionKey, env, state) {
48
- atomicWriteFileSync(generationPath(sessionKey, env), `${JSON.stringify(state)}\n`);
49
- }
50
- function fresh(sessionId, resumedFrom, previous, lifecycleRevision) {
51
- const superseded = previous?.supersededSessionIds ?? [];
52
- const priorId = previous?.sessionId;
53
- const supersededSessionIds = priorId !== undefined && priorId !== sessionId &&
54
- !superseded.includes(priorId) ? [...superseded, priorId] : superseded;
55
- const oldRevisions = previous?.supersededLifecycleRevisions ?? [];
56
- const priorRevision = previous?.lifecycleRevision;
57
- const supersededLifecycleRevisions = priorRevision !== undefined && lifecycleRevision !== undefined &&
58
- priorRevision !== lifecycleRevision && !oldRevisions.includes(priorRevision)
59
- ? [...oldRevisions, priorRevision] : oldRevisions;
60
- return {
61
- id: randomUUID(),
62
- ...(sessionId === undefined ? {} : { sessionId }),
63
- ...(lifecycleRevision === undefined ? {} : { lifecycleRevision }),
64
- ...(resumedFrom === undefined ? {} : { resumedFrom }),
65
- startSeen: false,
66
- resetPending: false,
67
- activated: false,
68
- ended: false,
69
- ...(supersededSessionIds.length === 0 ? {} : { supersededSessionIds }),
70
- ...(supersededLifecycleRevisions.length === 0 ? {} : { supersededLifecycleRevisions }),
71
- };
72
- }
73
- function isSuperseded(current, sessionId) {
74
- return sessionId !== undefined && sessionId !== current.sessionId &&
75
- (current.supersededSessionIds?.includes(sessionId) === true ||
76
- current.resumedFrom === sessionId);
77
- }
78
- export function observeOpenclawStart(current, sessionId, resumedFrom) {
79
- if (current !== null && isSuperseded(current, sessionId))
80
- return { ...current };
81
- const next = current === null || current.ended || current.resetPending ||
82
- (sessionId !== undefined && current.sessionId !== undefined && sessionId !== current.sessionId) ||
83
- (current.lifecycleRevision === undefined && current.startSeen &&
84
- resumedFrom !== undefined && current.resumedFrom !== resumedFrom)
85
- ? fresh(sessionId, resumedFrom, current ?? undefined, current?.lifecycleRevision)
86
- : { ...current };
87
- if (next.sessionId === undefined && sessionId !== undefined)
88
- next.sessionId = sessionId;
89
- if (resumedFrom !== undefined)
90
- next.resumedFrom = resumedFrom;
91
- next.startSeen = true;
92
- return next;
93
- }
94
- export function observeOpenclawPrompt(current, sessionId, lifecycleRevision) {
95
- // Hook JSON may come from older generated plugins; malformed null is absence.
96
- const revision = typeof lifecycleRevision === 'string' && lifecycleRevision !== ''
97
- ? lifecycleRevision : undefined;
98
- if (current !== null && isSuperseded(current, sessionId))
99
- return { ...current };
100
- if (current !== null && revision !== undefined &&
101
- current.supersededLifecycleRevisions?.includes(revision))
102
- return { ...current };
103
- const next = current === null || current.ended || current.resetPending ||
104
- (revision !== undefined && current.lifecycleRevision !== undefined &&
105
- revision !== current.lifecycleRevision) ||
106
- (sessionId !== undefined && current.sessionId !== undefined && sessionId !== current.sessionId)
107
- ? fresh(sessionId, undefined, current ?? undefined, revision)
108
- : { ...current };
109
- if (next.sessionId === undefined && sessionId !== undefined)
110
- next.sessionId = sessionId;
111
- if (next.lifecycleRevision === undefined && revision !== undefined)
112
- next.lifecycleRevision = revision;
113
- return next;
114
- }
115
- //# sourceMappingURL=openclaw-generation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw-generation.js","sourceRoot":"","sources":["../src/openclaw-generation.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { SessionWriteResult } from './session-handoff.js';
2
- import type { WriteGuard } from './wake-support.js';
3
- import type { SessionActivity } from '@raidiant/notifai-protocol';
4
- /** A missing Gateway observation is uncertainty, never an idle assertion. */
5
- export declare function openclawBridgeActivity(): SessionActivity | null;
6
- export declare function openclawMessageBridgeAvailable(env: NodeJS.ProcessEnv): boolean;
7
- /** Each attendant owns its pipes; handOffSessionMessages serializes writes. */
8
- export declare function openclawMessageBridge(): (messageId: string, sessionKey: string, generation: string, text: string, begin: () => boolean, guard: WriteGuard) => Promise<SessionWriteResult>;
@@ -1,93 +0,0 @@
1
- /** Session Message text travels through private pipes to the Gateway plugin, never process argv. */
2
- import { fstatSync, createReadStream, createWriteStream } from 'node:fs';
3
- import { createInterface } from 'node:readline';
4
- const RESPONSE_MS = 30_000;
5
- let lastActivity = null;
6
- /** A missing Gateway observation is uncertainty, never an idle assertion. */
7
- export function openclawBridgeActivity() {
8
- return lastActivity !== null && Date.now() - lastActivity.at < 10_000
9
- ? lastActivity.value : null;
10
- }
11
- export function openclawMessageBridgeAvailable(env) {
12
- if (env['NOTIFAI_OPENCLAW_MESSAGE_BRIDGE'] !== '1')
13
- return false;
14
- try {
15
- fstatSync(3);
16
- fstatSync(4);
17
- return true;
18
- }
19
- catch {
20
- return false;
21
- }
22
- }
23
- /** Each attendant owns its pipes; handOffSessionMessages serializes writes. */
24
- export function openclawMessageBridge() {
25
- const output = createWriteStream('', { fd: 3, autoClose: false });
26
- const input = createReadStream('', { fd: 4, autoClose: false });
27
- const lines = createInterface({ input, crlfDelay: Infinity });
28
- let pending = null;
29
- output.on('error', (error) => {
30
- pending?.finish({ status: 'failed', reason: 'Gateway message pipe write failed', error });
31
- });
32
- input.on('error', (error) => {
33
- pending?.finish({ status: 'failed', reason: 'Gateway message pipe read failed', error });
34
- });
35
- lines.on('line', (line) => {
36
- let value;
37
- try {
38
- value = JSON.parse(line);
39
- }
40
- catch {
41
- return;
42
- }
43
- if (value['type'] === 'activity' &&
44
- (value['activity'] === 'working' || value['activity'] === 'idle')) {
45
- lastActivity = { value: value['activity'], at: Date.now() };
46
- }
47
- else if (pending !== null && value['message_id'] === pending.id) {
48
- pending.finish(value['status'] === 'written'
49
- ? { status: 'written', route: 'session-queue' }
50
- : { status: 'failed', reason: 'Gateway message hand-off was unconfirmed', error: value['status'] });
51
- }
52
- });
53
- lines.on('close', () => {
54
- lastActivity = null;
55
- pending?.finish({ status: 'failed', reason: 'Gateway message pipe closed', error: null });
56
- });
57
- return async (messageId, sessionKey, generation, text, begin, guard) => {
58
- if (!guard.writable())
59
- return { status: 'cancelled' };
60
- if (!begin())
61
- return { status: 'cancelled' };
62
- if (!guard.writable())
63
- return { status: 'aborted', reason: 'the claim or lease expired before the Gateway hand-off' };
64
- const remainingMs = guard.remainingMs();
65
- if (!Number.isFinite(remainingMs) || remainingMs <= 0) {
66
- return { status: 'aborted', reason: 'the claim expired before the Gateway hand-off' };
67
- }
68
- const deadlineNs = (process.hrtime.bigint() + BigInt(Math.floor(remainingMs * 1_000_000))).toString();
69
- let timer;
70
- const response = new Promise((resolve) => {
71
- const finish = (result) => {
72
- if (timer !== undefined)
73
- clearTimeout(timer);
74
- pending = null;
75
- resolve(result);
76
- };
77
- pending = { id: messageId, finish };
78
- timer = setTimeout(() => finish({ status: 'failed', reason: 'Gateway message hand-off timed out', error: null }), Math.min(RESPONSE_MS, Math.max(1, remainingMs)));
79
- });
80
- try {
81
- await new Promise((resolve, reject) => output.write(`${JSON.stringify({
82
- type: 'message', message_id: messageId, session_key: sessionKey, generation, text,
83
- deadline_ns: deadlineNs,
84
- })}\n`, (error) => error ? reject(error) : resolve()));
85
- }
86
- catch (error) {
87
- pending?.finish({ status: 'failed', reason: 'Gateway message pipe write failed', error });
88
- return { status: 'failed', reason: 'Gateway message pipe write failed', error };
89
- }
90
- return response;
91
- };
92
- }
93
- //# sourceMappingURL=openclaw-message-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw-message-bridge.js","sourceRoot":"","sources":["../src/openclaw-message-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export interface OpenclawPendingSession {
2
- session_key: string;
3
- cwd: string;
4
- generation: string;
5
- session_id?: string;
6
- }
7
- /** Scan CLI-owned state so a Gateway restart finds every live activated session. */
8
- export declare function listPendingOpenclawSessions(env: NodeJS.ProcessEnv): OpenclawPendingSession[];
@@ -1,47 +0,0 @@
1
- /** Gateway service inventory: only identity and timing, never question text. */
2
- import { existsSync, readFileSync, readdirSync } from 'node:fs';
3
- import path from 'node:path';
4
- import { stateDir, loadConfig } from './config.js';
5
- import { readSessionState, sessionHasEnded, sessionStatePath, readSessionIncarnation } from './hook-session-state.js';
6
- import { readOpenclawGeneration } from './openclaw-generation.js';
7
- import { projectBinding, projectEnabled } from './project-enablement.js';
8
- /** Scan CLI-owned state so a Gateway restart finds every live activated session. */
9
- export function listPendingOpenclawSessions(env) {
10
- const directory = path.join(stateDir(env), 'sessions');
11
- if (!existsSync(directory))
12
- return [];
13
- const sessions = [];
14
- for (const name of readdirSync(directory)) {
15
- if (!name.endsWith('.json'))
16
- continue;
17
- try {
18
- const parsed = JSON.parse(readFileSync(path.join(directory, name), 'utf8'));
19
- if (typeof parsed !== 'object' || parsed === null)
20
- continue;
21
- const raw = parsed;
22
- const sessionKey = raw['session_id'];
23
- if (typeof sessionKey !== 'string' ||
24
- path.basename(sessionStatePath(sessionKey, env)) !== name)
25
- continue;
26
- const state = readSessionState(sessionKey, env);
27
- const cwd = state.activation_cwd;
28
- if (state.harness !== 'openclaw' || typeof cwd !== 'string' ||
29
- !path.isAbsolute(cwd) || sessionHasEnded(sessionKey, env))
30
- continue;
31
- const generation = readOpenclawGeneration(sessionKey, env);
32
- if (generation === null || generation.ended || !generation.activated ||
33
- readSessionIncarnation(sessionKey, env)?.openclaw_generation !== generation.id)
34
- continue;
35
- const config = loadConfig({ cwd, env, sessionId: sessionKey });
36
- if (!projectEnabled(projectBinding(cwd, env, config.project.value)))
37
- continue;
38
- sessions.push({ session_key: sessionKey, cwd, generation: generation.id,
39
- ...(generation.sessionId === undefined ? {} : { session_id: generation.sessionId }) });
40
- }
41
- catch {
42
- // Corrupt or unreadable state never authorizes a continuation.
43
- }
44
- }
45
- return sessions;
46
- }
47
- //# sourceMappingURL=openclaw-pending.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw-pending.js","sourceRoot":"","sources":["../src/openclaw-pending.ts"],"names":[],"mappings":"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"}