@raidiant/notifai 11.7.1 → 12.0.0-beta.13

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 +57 -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 +0,0 @@
1
- {"version":3,"file":"openclaw-plugin.js","sourceRoot":"","sources":["../src/openclaw-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * A stable sessionKey alone is insufficient: /new and /reset can reuse it.
3
- * The generated plugin places the generation observed by resolve_exec_env in
4
- * the tool's environment, and this check compares it with fresh CLI-owned state.
5
- */
6
- export declare function activeOpenclawGeneration(sessionKey: string, env: NodeJS.ProcessEnv, cwd?: string): string | null;
7
- /** A pointer may reveal User text only to the active generation that owns it. */
8
- export declare function openclawOwnsReply(sessionKey: string, requestId: string, env: NodeJS.ProcessEnv, cwd?: string): boolean;
9
- /** A Session Message belongs to the generation that accepted its acknowledgement debt. */
10
- export declare function openclawOwnsMessage(sessionKey: string, messageId: string, env: NodeJS.ProcessEnv, cwd?: string): boolean;
11
- /** Record ownership as soon as a foreground submission returns its request ID. */
12
- export declare function recordOpenclawForegroundReply(sessionKey: string, requestId: string, generation: string, env: NodeJS.ProcessEnv, cwd: string): boolean;
@@ -1,79 +0,0 @@
1
- /** Exact-generation access to OpenClaw reply pointers in agent tool subprocesses. */
2
- import { readSessionIncarnation, readSessionState, sessionHasEnded, updateSessionState } from './hook-session-state.js';
3
- import { openclawGenerationLockPath, readOpenclawGeneration } from './openclaw-generation.js';
4
- import { withFileLock } from './file-lock.js';
5
- import { loadConfig } from './config.js';
6
- import { projectBinding, projectEnabled } from './project-enablement.js';
7
- /**
8
- * A stable sessionKey alone is insufficient: /new and /reset can reuse it.
9
- * The generated plugin places the generation observed by resolve_exec_env in
10
- * the tool's environment, and this check compares it with fresh CLI-owned state.
11
- */
12
- export function activeOpenclawGeneration(sessionKey, env, cwd) {
13
- if (env['NOTIFAI_ACTIVE_HARNESS'] !== 'openclaw' ||
14
- env['NOTIFAI_ACTIVE_SESSION_ID'] !== sessionKey)
15
- return null;
16
- const marker = env['NOTIFAI_ACTIVE_OPENCLAW_GENERATION'];
17
- if (marker === undefined || marker === '')
18
- return null;
19
- const generation = readOpenclawGeneration(sessionKey, env);
20
- const incarnation = readSessionIncarnation(sessionKey, env);
21
- if (generation === null || incarnation === null || generation.ended ||
22
- !generation.activated || sessionHasEnded(sessionKey, env) ||
23
- generation.id !== marker || incarnation.openclaw_generation !== marker)
24
- return null;
25
- if (cwd !== undefined) {
26
- try {
27
- const config = loadConfig({ cwd, env, sessionId: sessionKey });
28
- if (!projectEnabled(projectBinding(cwd, env, config.project.value)))
29
- return null;
30
- }
31
- catch {
32
- return null;
33
- }
34
- }
35
- return marker;
36
- }
37
- /** A pointer may reveal User text only to the active generation that owns it. */
38
- export function openclawOwnsReply(sessionKey, requestId, env, cwd) {
39
- return withFileLock(openclawGenerationLockPath(sessionKey, env), () => {
40
- const generation = activeOpenclawGeneration(sessionKey, env, cwd);
41
- if (generation === null)
42
- return false;
43
- const state = readSessionState(sessionKey, env);
44
- return (state.pending ?? []).some((entry) => entry.request_id === requestId) ||
45
- (state.delivered_answers ?? []).some((entry) => entry.pending.request_id === requestId) ||
46
- (state.acknowledgement_due ?? []).some((entry) => entry.request_id === requestId) ||
47
- (state.accepted?.answers ?? []).some((entry) => entry.pending.request_id === requestId) ||
48
- (state.openclaw_foreground_replies ?? []).some((entry) => entry.request_id === requestId && entry.generation === generation);
49
- });
50
- }
51
- /** A Session Message belongs to the generation that accepted its acknowledgement debt. */
52
- export function openclawOwnsMessage(sessionKey, messageId, env, cwd) {
53
- return withFileLock(openclawGenerationLockPath(sessionKey, env), () => {
54
- const generation = activeOpenclawGeneration(sessionKey, env, cwd);
55
- if (generation === null)
56
- return false;
57
- return (readSessionState(sessionKey, env).message_acknowledgement_due ?? [])
58
- .some((entry) => entry.message_id === messageId && entry.openclaw_generation === generation);
59
- });
60
- }
61
- /** Record ownership as soon as a foreground submission returns its request ID. */
62
- export function recordOpenclawForegroundReply(sessionKey, requestId, generation, env, cwd) {
63
- return withFileLock(openclawGenerationLockPath(sessionKey, env), () => {
64
- if (activeOpenclawGeneration(sessionKey, env, cwd) !== generation)
65
- return false;
66
- let recorded = false;
67
- updateSessionState(sessionKey, env, (state) => {
68
- recorded = true;
69
- const entries = state.openclaw_foreground_replies ?? [];
70
- return entries.some((entry) => entry.request_id === requestId && entry.generation === generation)
71
- ? state
72
- : { ...state, openclaw_foreground_replies: [
73
- ...entries, { request_id: requestId, generation },
74
- ] };
75
- });
76
- return recorded;
77
- });
78
- }
79
- //# sourceMappingURL=openclaw-session-access.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw-session-access.js","sourceRoot":"","sources":["../src/openclaw-session-access.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- import { type HookHostPlatform } from './hook-adapter.js';
2
- /**
3
- * The OpenCode adapter.
4
- *
5
- * OpenCode's extension point is a TypeScript/JavaScript plugin module, not a
6
- * command hook, so it needs a different adapter rather than a different path
7
- * through the existing one. What it is *not* is different logic: the generated
8
- * plugin shells out to the same `notifai hook <event>` commands Claude Code and
9
- * Codex invoke, and every decision — presence, the grace window, the reply
10
- * wait, retirement — stays in one place.
11
- *
12
- * The three lifecycle joints map onto the same three events. OpenCode exposes
13
- * `chat.message` as a direct hook, while session lifecycle notifications arrive
14
- * through its generic `event` hook:
15
- *
16
- * chat.message -> user-prompt-submit (the user is at the keyboard)
17
- * session.idle -> stop (the turn ended; escalate)
18
- * session.deleted -> session-end (retire local session state)
19
- *
20
- * Permission prompts deliberately stay in OpenCode. The CLI question flow
21
- * only escalates questions explicitly registered with `notifai ask`.
22
- */
23
- /** Marker line; also how an install from another checkout is recognised. */
24
- export declare const OPENCODE_PLUGIN_MARKER = "// notifai managed opencode plugin";
25
- /** Filename we own inside whichever plugins directory is being written. */
26
- export declare const OPENCODE_PLUGIN_FILENAME = "notifai.js";
27
- /**
28
- * OpenCode's global config directory for the running installation.
29
- *
30
- * OpenCode resolves that directory through `xdg-basedir` (`Global.Path.config`
31
- * = `$XDG_CONFIG_HOME/opencode`, defaulting to `~/.config/opencode`).
32
- * `OPENCODE_CONFIG_DIR` remains the explicit override and wins, matching the
33
- * precedence this installer already gave that variable.
34
- */
35
- export declare function opencodeConfigDir(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform | HookHostPlatform): string;
36
- export declare function opencodePluginDir(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform | HookHostPlatform): string;
37
- export declare function opencodePluginPath(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform | HookHostPlatform): string;
38
- export interface OpencodePluginOptions {
39
- /** The same stable user-level adapter every command-hook harness invokes. */
40
- adapterPath: string;
41
- /** Child-process lifetime; covers grace, reply wait, and teardown headroom. */
42
- timeoutSeconds: number;
43
- platform?: NodeJS.Platform | HookHostPlatform;
44
- /** Registered Node used to interpret the Windows adapter. Ignored on POSIX. */
45
- nodePath?: string;
46
- }
47
- /**
48
- * The generated module.
49
- *
50
- * Written as a string rather than compiled from a source file because OpenCode
51
- * loads a plugin module rather than a command definition. It embeds only the
52
- * stable user-level adapter path; mutable runtime and CLI targets live behind
53
- * that adapter exactly as they do for every other harness.
54
- *
55
- * Everything it does is build the hook envelope OpenCode's event gives it and
56
- * hand that to the CLI on stdin. It deliberately fails open: an adapter error
57
- * never changes OpenCode's own behavior.
58
- */
59
- /**
60
- * The plugin body, which is the same on every platform except for how it
61
- * reaches the adapter.
62
- *
63
- * It was two near-identical copies — about a hundred and twenty lines each,
64
- * differing only in the spawn call — so every fix to the plugin had to be made
65
- * twice or silently apply to one platform.
66
- */
67
- export declare function opencodePluginSource(options: OpencodePluginOptions): string;
68
- /** True when a plugin file on disk is one of ours, whoever installed it. */
69
- export declare function isOurOpencodePlugin(contents: string): boolean;
70
- /**
71
- * The interpreter and script a generated plugin will actually run.
72
- *
73
- * A plugin is a module rather than a command line, so which *build* it invokes
74
- * is not visible in the way it is for a settings-file handler — it is baked
75
- * into the two constants at the top. `doctor` needs it to answer the question
76
- * it exists to answer ("are two checkouts both installed?"), and without it
77
- * the plugin's own path stands in for the build and every OpenCode install
78
- * looks like a second one.
79
- *
80
- * Returns null for a plugin we did not generate, or one whose constants have
81
- * been edited out of recognisable shape.
82
- */
83
- export declare function opencodePluginTarget(contents: string): {
84
- adapter: string;
85
- current: boolean;
86
- timeoutSeconds?: number;
87
- nodePath?: string;
88
- } | null;
@@ -1,286 +0,0 @@
1
- import path from 'node:path';
2
- import { hookHostPlatform } from './hook-adapter.js';
3
- import { harnessAccountHome } from './install-hooks.js';
4
- import { MISSING_LIFECYCLE_GUIDANCE_CONTEXT, WORKER_ACTIVATION_CONTEXT, } from './session-activation.js';
5
- /**
6
- * The OpenCode adapter.
7
- *
8
- * OpenCode's extension point is a TypeScript/JavaScript plugin module, not a
9
- * command hook, so it needs a different adapter rather than a different path
10
- * through the existing one. What it is *not* is different logic: the generated
11
- * plugin shells out to the same `notifai hook <event>` commands Claude Code and
12
- * Codex invoke, and every decision — presence, the grace window, the reply
13
- * wait, retirement — stays in one place.
14
- *
15
- * The three lifecycle joints map onto the same three events. OpenCode exposes
16
- * `chat.message` as a direct hook, while session lifecycle notifications arrive
17
- * through its generic `event` hook:
18
- *
19
- * chat.message -> user-prompt-submit (the user is at the keyboard)
20
- * session.idle -> stop (the turn ended; escalate)
21
- * session.deleted -> session-end (retire local session state)
22
- *
23
- * Permission prompts deliberately stay in OpenCode. The CLI question flow
24
- * only escalates questions explicitly registered with `notifai ask`.
25
- */
26
- /** Marker line; also how an install from another checkout is recognised. */
27
- export const OPENCODE_PLUGIN_MARKER = '// notifai managed opencode plugin';
28
- /** Filename we own inside whichever plugins directory is being written. */
29
- export const OPENCODE_PLUGIN_FILENAME = 'notifai.js';
30
- /** Bump when an installed generated file must be rewritten to remain functional. */
31
- const OPENCODE_ADAPTER_VERSION = 13;
32
- /**
33
- * OpenCode's global config directory for the running installation.
34
- *
35
- * OpenCode resolves that directory through `xdg-basedir` (`Global.Path.config`
36
- * = `$XDG_CONFIG_HOME/opencode`, defaulting to `~/.config/opencode`).
37
- * `OPENCODE_CONFIG_DIR` remains the explicit override and wins, matching the
38
- * precedence this installer already gave that variable.
39
- */
40
- export function opencodeConfigDir(env = process.env, platform = process.platform) {
41
- const override = env['OPENCODE_CONFIG_DIR'];
42
- if (override !== undefined && override !== '')
43
- return override;
44
- const xdg = env['XDG_CONFIG_HOME'];
45
- if (typeof xdg === 'string' && xdg !== '')
46
- return path.join(xdg, 'opencode');
47
- return path.join(harnessAccountHome(env, platform), '.config', 'opencode');
48
- }
49
- export function opencodePluginDir(env = process.env, platform = process.platform) {
50
- return path.join(opencodeConfigDir(env, platform), 'plugins');
51
- }
52
- export function opencodePluginPath(env = process.env, platform = process.platform) {
53
- return path.join(opencodePluginDir(env, platform), OPENCODE_PLUGIN_FILENAME);
54
- }
55
- /**
56
- * The generated module.
57
- *
58
- * Written as a string rather than compiled from a source file because OpenCode
59
- * loads a plugin module rather than a command definition. It embeds only the
60
- * stable user-level adapter path; mutable runtime and CLI targets live behind
61
- * that adapter exactly as they do for every other harness.
62
- *
63
- * Everything it does is build the hook envelope OpenCode's event gives it and
64
- * hand that to the CLI on stdin. It deliberately fails open: an adapter error
65
- * never changes OpenCode's own behavior.
66
- */
67
- /**
68
- * The plugin body, which is the same on every platform except for how it
69
- * reaches the adapter.
70
- *
71
- * It was two near-identical copies — about a hundred and twenty lines each,
72
- * differing only in the spawn call — so every fix to the plugin had to be made
73
- * twice or silently apply to one platform.
74
- */
75
- export function opencodePluginSource(options) {
76
- const { adapterPath, timeoutSeconds } = options;
77
- // Windows cannot execute the adapter script directly, so it goes through the
78
- // registered Node executable and the console window is suppressed.
79
- const win32 = hookHostPlatform(options.platform) === 'win32';
80
- const nodeConstant = win32
81
- ? `const NODE = ${JSON.stringify(options.nodePath ?? process.execPath)}\n`
82
- : '';
83
- const spawnArguments = win32
84
- ? 'NODE, [ADAPTER, "hook", event, "--owner", "notifai", "--harness", "opencode"]'
85
- : 'ADAPTER, ["hook", event, "--owner", "notifai", "--harness", "opencode"]';
86
- const windowsHide = win32 ? '\n windowsHide: true,' : '';
87
- return `${OPENCODE_PLUGIN_MARKER}
88
- // Generated by \`notifai hooks install --harness opencode\`. Edits are lost on
89
- // the next install; change the CLI instead, which is where the logic lives.
90
- import { spawn } from "node:child_process"
91
-
92
- ${nodeConstant}const ADAPTER = ${JSON.stringify(adapterPath)}
93
- const TIMEOUT_MS = ${timeoutSeconds * 1000}
94
- const ADAPTER_VERSION = ${OPENCODE_ADAPTER_VERSION}
95
- const MISSING_LIFECYCLE_GUIDANCE_CONTEXT = ${JSON.stringify(MISSING_LIFECYCLE_GUIDANCE_CONTEXT)}
96
- const WORKER_ACTIVATION_CONTEXT = ${JSON.stringify(WORKER_ACTIVATION_CONTEXT)}
97
- const PENDING_SESSION_TITLE =
98
- /^New session(?: *- *[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:[.][0-9]+)?Z)?$/i
99
-
100
- /**
101
- * Runs \`notifai hook <event>\`, feeding it the same JSON envelope the other
102
- * harnesses send. Resolves to stdout, or null if anything at all went wrong.
103
- */
104
- function runHook(event, envelope) {
105
- return new Promise((resolve) => {
106
- let child
107
- try {
108
- child = spawn(${spawnArguments}, {
109
- env: process.env,
110
- shell: false,${windowsHide}
111
- stdio: ["pipe", "pipe", "pipe"],
112
- })
113
- } catch {
114
- resolve(null)
115
- return
116
- }
117
-
118
- let stdout = ""
119
- let settled = false
120
- const finish = (value) => {
121
- if (settled) return
122
- settled = true
123
- clearTimeout(timer)
124
- resolve(value)
125
- }
126
- const timer = setTimeout(() => {
127
- child.kill("SIGTERM")
128
- finish(null)
129
- }, TIMEOUT_MS)
130
-
131
- child.stdout?.setEncoding("utf-8")
132
- child.stdout?.on("data", (chunk) => {
133
- stdout += chunk
134
- })
135
- // Hook stderr is diagnostics, not plugin output; discard it here.
136
- child.stderr?.resume()
137
- child.on("error", () => finish(null))
138
- child.on("close", (code) => finish(code === 0 ? stdout : null))
139
-
140
- try {
141
- child.stdin?.end(JSON.stringify(envelope))
142
- } catch {
143
- finish(null)
144
- }
145
- })
146
- }
147
-
148
- export const NotifAIPlugin = async ({ directory, client }) => {
149
- const cwd = typeof directory === "string" && directory.length > 0 ? directory : process.cwd()
150
-
151
- return {
152
- /** Model-visible activation, independent of CLI setup and delivery state. */
153
- "experimental.chat.system.transform": async (input, output) => {
154
- const sessionID = input?.sessionID
155
- if (typeof sessionID !== "string" || sessionID.length === 0) return
156
- // OpenCode represents delegated work as child sessions. Missing or
157
- // malformed relationship data must fail closed as worker context: it is
158
- // safe to suppress a notification, never safe to let a child duplicate
159
- // its parent's User-visible request.
160
- let worker = true
161
- try {
162
- const response = await client.session.get({ path: { id: sessionID } })
163
- const session = response?.data
164
- if (session !== null && typeof session === "object") {
165
- worker = typeof session.parentID === "string" && session.parentID.length > 0
166
- }
167
- } catch {
168
- // Keep the safe worker classification.
169
- }
170
- const hookEventName = worker ? "SubagentStart" : "SessionStart"
171
- const resolved = await runHook(worker ? "subagent-start" : "session-start", {
172
- session_id: sessionID,
173
- cwd,
174
- hook_event_name: hookEventName,
175
- })
176
- // Successful empty output is the runtime's deliberate disabled-Project
177
- // no-op. Recheck on every request so later enablement takes effect.
178
- if (resolved !== null && resolved.trim().length === 0) return
179
- const context = typeof resolved === "string" && resolved.trim().length > 0
180
- ? resolved.trim()
181
- : worker ? WORKER_ACTIVATION_CONTEXT : MISSING_LIFECYCLE_GUIDANCE_CONTEXT
182
- // OpenCode rebuilds system[] per model request. Do not latch activation
183
- // per session; only deduplicate callbacks sharing this same array.
184
- if (output.system.some((part) => part.includes(context))) return
185
- if (output.system.length === 0) {
186
- output.system.push(context)
187
- } else {
188
- output.system[0] = output.system[0] + "\\n\\n" + context
189
- }
190
- },
191
-
192
- /** Exact active-harness identity and first-party title for agent shell commands. */
193
- "shell.env": async (input, output) => {
194
- output.env.NOTIFAI_ACTIVE_HARNESS = "opencode"
195
- const sessionID = input?.sessionID
196
- if (typeof sessionID === "string" && sessionID.length > 0) {
197
- output.env.NOTIFAI_ACTIVE_SESSION_ID = sessionID
198
- try {
199
- const response = await client.session.get({ path: { id: sessionID } })
200
- const title = response?.data?.title
201
- if (typeof title === "string" && title.trim().length > 0) {
202
- if (PENDING_SESSION_TITLE.test(title.trim())) {
203
- output.env.NOTIFAI_ACTIVE_SESSION_LABEL_PENDING = "1"
204
- } else {
205
- output.env.NOTIFAI_ACTIVE_SESSION_LABEL = title
206
- }
207
- }
208
- } catch {
209
- // Identity remains useful when this OpenCode build cannot expose a title.
210
- }
211
- }
212
- },
213
-
214
- /**
215
- * Presence. The user typing is the signal every harness shares, and it is
216
- * also what publishes the project -> session pointer \`notifai ask\` reads.
217
- */
218
- /** Publishes the session pointer; the CLI returns no content to inject. */
219
- "chat.message": async (input) => {
220
- await runHook("user-prompt-submit", {
221
- session_id: input?.sessionID ?? input?.info?.sessionID,
222
- cwd,
223
- hook_event_name: "UserPromptSubmit",
224
- })
225
- },
226
-
227
- /** Session lifecycle events are delivered through OpenCode's event bus. */
228
- event: async ({ event }) => {
229
- if (event?.type === "session.idle") {
230
- await runHook("stop", {
231
- session_id: event?.properties?.sessionID,
232
- cwd,
233
- hook_event_name: "Stop",
234
- })
235
- } else if (event?.type === "session.deleted") {
236
- await runHook("session-end", {
237
- session_id: event?.properties?.info?.id,
238
- cwd,
239
- hook_event_name: "SessionEnd",
240
- })
241
- }
242
- },
243
- }
244
- }
245
- `;
246
- }
247
- /** True when a plugin file on disk is one of ours, whoever installed it. */
248
- export function isOurOpencodePlugin(contents) {
249
- return contents.includes(OPENCODE_PLUGIN_MARKER);
250
- }
251
- /**
252
- * The interpreter and script a generated plugin will actually run.
253
- *
254
- * A plugin is a module rather than a command line, so which *build* it invokes
255
- * is not visible in the way it is for a settings-file handler — it is baked
256
- * into the two constants at the top. `doctor` needs it to answer the question
257
- * it exists to answer ("are two checkouts both installed?"), and without it
258
- * the plugin's own path stands in for the build and every OpenCode install
259
- * looks like a second one.
260
- *
261
- * Returns null for a plugin we did not generate, or one whose constants have
262
- * been edited out of recognisable shape.
263
- */
264
- export function opencodePluginTarget(contents) {
265
- if (!isOurOpencodePlugin(contents))
266
- return null;
267
- const adapter = /^const ADAPTER = (".*")$/m.exec(contents)?.[1];
268
- const legacyScript = /^const SCRIPT = (".*")$/m.exec(contents)?.[1];
269
- const node = /^const NODE = (".*")$/m.exec(contents)?.[1];
270
- const version = Number(/^const ADAPTER_VERSION = (\d+)$/m.exec(contents)?.[1] ?? 1);
271
- const timeoutMs = Number(/^const TIMEOUT_MS = (\d+)$/m.exec(contents)?.[1] ?? Number.NaN);
272
- if (adapter === undefined && legacyScript === undefined)
273
- return null;
274
- try {
275
- return {
276
- adapter: JSON.parse(adapter ?? legacyScript),
277
- current: version === OPENCODE_ADAPTER_VERSION,
278
- ...(Number.isFinite(timeoutMs) ? { timeoutSeconds: timeoutMs / 1000 } : {}),
279
- ...(node === undefined ? {} : { nodePath: JSON.parse(node) }),
280
- };
281
- }
282
- catch {
283
- return null;
284
- }
285
- }
286
- //# sourceMappingURL=opencode-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode-plugin.js","sourceRoot":"","sources":["../src/opencode-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export type OrcaSessionTitleLookup = (env: NodeJS.ProcessEnv) => string | undefined;
2
- export type OrcaCommand = (executable: string, args: readonly string[]) => string | null;
3
- /**
4
- * Read the User-facing task name assigned to this exact Orca Agent Session.
5
- *
6
- * The environment contributes only opaque selectors. Orca must return the
7
- * exact worktree id and path plus the exact pane before its task title becomes
8
- * trusted; Project, branch, path, worktree, and pane strings are never
9
- * promoted into an Agent Session label.
10
- */
11
- export declare function readOrcaSessionTitle(env: NodeJS.ProcessEnv, command?: OrcaCommand): string | undefined;
@@ -1,111 +0,0 @@
1
- import { execFileSync } from 'node:child_process';
2
- import path from 'node:path';
3
- const runOrcaCommand = (executable, args) => {
4
- try {
5
- return execFileSync(executable, args, {
6
- encoding: 'utf8',
7
- stdio: ['ignore', 'pipe', 'ignore'],
8
- timeout: 2_000,
9
- maxBuffer: 512 * 1024,
10
- windowsHide: true,
11
- }).trim();
12
- }
13
- catch {
14
- return null;
15
- }
16
- };
17
- function containsControlCharacter(value) {
18
- return Array.from(value).some((character) => {
19
- const codePoint = character.codePointAt(0) ?? 0;
20
- return codePoint < 32 || codePoint === 127;
21
- });
22
- }
23
- function worktreePathFromId(value) {
24
- if (value.length === 0 || value.length > 4_096 || containsControlCharacter(value))
25
- return null;
26
- const separator = value.indexOf('::');
27
- if (separator <= 0)
28
- return null;
29
- const repoId = value.slice(0, separator);
30
- const worktreePath = value.slice(separator + 2);
31
- if (!/^[A-Za-z0-9._-]+$/u.test(repoId) || worktreePath.length === 0)
32
- return null;
33
- return path.posix.isAbsolute(worktreePath) || path.win32.isAbsolute(worktreePath)
34
- ? worktreePath
35
- : null;
36
- }
37
- function opaqueSelector(value) {
38
- if (value === undefined ||
39
- value.length === 0 ||
40
- value.length > 1_024 ||
41
- containsControlCharacter(value)) {
42
- return null;
43
- }
44
- return value;
45
- }
46
- function orcaExecutable(env) {
47
- const configured = env['ORCA_CLI_COMMAND']?.trim();
48
- if (configured !== undefined && configured.length > 0) {
49
- return containsControlCharacter(configured) ? null : configured;
50
- }
51
- return env['ORCA_DEV_REPO_ROOT'] === undefined ? 'orca' : 'orca-dev';
52
- }
53
- /**
54
- * Read the User-facing task name assigned to this exact Orca Agent Session.
55
- *
56
- * The environment contributes only opaque selectors. Orca must return the
57
- * exact worktree id and path plus the exact pane before its task title becomes
58
- * trusted; Project, branch, path, worktree, and pane strings are never
59
- * promoted into an Agent Session label.
60
- */
61
- export function readOrcaSessionTitle(env, command = runOrcaCommand) {
62
- if (env['TERM_PROGRAM'] !== 'Orca')
63
- return undefined;
64
- const worktreeId = env['ORCA_WORKTREE_ID'];
65
- if (worktreeId === undefined)
66
- return undefined;
67
- const expectedPath = worktreePathFromId(worktreeId);
68
- if (expectedPath === null)
69
- return undefined;
70
- const paneKey = opaqueSelector(env['ORCA_PANE_KEY']);
71
- if (paneKey === null)
72
- return undefined;
73
- const executable = orcaExecutable(env);
74
- if (executable === null)
75
- return undefined;
76
- let output;
77
- try {
78
- output = command(executable, ['worktree', 'ps', '--json']);
79
- }
80
- catch {
81
- return undefined;
82
- }
83
- if (output === null || output === '')
84
- return undefined;
85
- let parsed;
86
- try {
87
- parsed = JSON.parse(output);
88
- }
89
- catch {
90
- return undefined;
91
- }
92
- if (typeof parsed !== 'object' || parsed === null)
93
- return undefined;
94
- const response = parsed;
95
- if (response.ok !== true || !Array.isArray(response.result?.worktrees))
96
- return undefined;
97
- const worktrees = response.result.worktrees.filter((candidate) => typeof candidate === 'object' &&
98
- candidate !== null &&
99
- candidate.worktreeId === worktreeId &&
100
- candidate.path === expectedPath);
101
- if (worktrees.length !== 1 || !Array.isArray(worktrees[0].agents))
102
- return undefined;
103
- const agents = worktrees[0].agents.filter((candidate) => typeof candidate === 'object' &&
104
- candidate !== null &&
105
- candidate.paneKey === paneKey);
106
- if (agents.length !== 1)
107
- return undefined;
108
- const taskTitle = agents[0].taskTitle;
109
- return typeof taskTitle === 'string' && taskTitle.trim().length > 0 ? taskTitle : undefined;
110
- }
111
- //# sourceMappingURL=orca-session-title.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orca-session-title.js","sourceRoot":"","sources":["../src/orca-session-title.ts"],"names":[],"mappings":"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"}