@jingyi0605/codingns 0.7.4 → 0.8.1

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 (599) hide show
  1. package/README.md +6 -0
  2. package/bin/codingns.mjs +747 -28
  3. package/bin/office-mcp-server.mjs +620 -0
  4. package/dist/public/assets/{AdaptiveButlerPage-CgBX49t-.js → AdaptiveButlerPage-b7s6F_sd.js} +1 -1
  5. package/dist/public/assets/{App-tXOqoHNl.js → App-B0q8uDA-.js} +3 -3
  6. package/dist/public/assets/{BootstrapPage-DoRMz87R.js → BootstrapPage-jFfl7KNK.js} +1 -1
  7. package/dist/public/assets/{ConversationPage-DXR6Hp4O.js → ConversationPage-sj_rn4q0.js} +6 -6
  8. package/dist/public/assets/{DesktopDetachPreviewPage-Cyk-ZYCk.js → DesktopDetachPreviewPage-C5c88SOX.js} +1 -1
  9. package/dist/public/assets/{DesktopWindowPage-DNVNK3hs.js → DesktopWindowPage-BdKUZrKG.js} +1 -1
  10. package/dist/public/assets/FileContextPanel-lM5mBcfn.js +1 -0
  11. package/dist/public/assets/{GitSidebar-Cr3Z9OUI.js → GitSidebar-CmXAhyjo.js} +2 -2
  12. package/dist/public/assets/{MobileCreateSessionSheet-DMW0V6GJ.js → MobileCreateSessionSheet-CceV0-AH.js} +1 -1
  13. package/dist/public/assets/{MobileTopHeaderFrame-CkdnZ_MU.js → MobileTopHeaderFrame-_I0t7cC_.js} +1 -1
  14. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-KIbqBYJN.js → MobileWorkspaceSwitcherHeader-DhaM9fgx.js} +1 -1
  15. package/dist/public/assets/{RelayConnectEntryPage-DIRBH3hw.js → RelayConnectEntryPage-CMtDWyGS.js} +1 -1
  16. package/dist/public/assets/{ServerSettingsModal-C-9RxdWP.js → ServerSettingsModal-Rkgn3jft.js} +1 -1
  17. package/dist/public/assets/{SessionIndexPage-bRlIydRA.js → SessionIndexPage-BOumP3ij.js} +1 -1
  18. package/dist/public/assets/{SettingsPage-CMEt4ua9.js → SettingsPage-vx_c-00-.js} +2 -2
  19. package/dist/public/assets/{TerminalManagerPanel-2bi9wVhT.js → TerminalManagerPanel-D9JHCS6d.js} +1 -1
  20. package/dist/public/assets/{TerminalPage-DayZz2Tf.js → TerminalPage-CBIKHI33.js} +1 -1
  21. package/dist/public/assets/{TerminalRuntimeFallbackModal-DgwYcp-Y.js → TerminalRuntimeFallbackModal-W5NjqFEz.js} +1 -1
  22. package/dist/public/assets/{ToolFilesPage-YvnP_FXW.js → ToolFilesPage-DWtpaN_7.js} +1 -1
  23. package/dist/public/assets/{ToolGitPage-GMcQKtV9.js → ToolGitPage-MpGXsw4_.js} +1 -1
  24. package/dist/public/assets/{ToolProcessesPage-DFIQ7BCd.js → ToolProcessesPage-B1jHQKhZ.js} +1 -1
  25. package/dist/public/assets/{ToolsHomePage-CSilFzXR.js → ToolsHomePage-CJrn8ZFl.js} +1 -1
  26. package/dist/public/assets/{WorkbenchLandingPage-1VtToSz9.js → WorkbenchLandingPage-CJQ1V5U-.js} +1 -1
  27. package/dist/public/assets/WorkbenchLayout-D48i71PU.js +244 -0
  28. package/dist/public/assets/{WorkbenchModal-BWXYSXmC.js → WorkbenchModal-BYNuMIoV.js} +1 -1
  29. package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +1 -0
  30. package/dist/public/assets/WorkbenchShellRoute-CGKjy4J-.js +1 -0
  31. package/dist/public/assets/{WorkspaceDebugDetailPage-Ux8_Q7la.js → WorkspaceDebugDetailPage-DCAYgays.js} +1 -1
  32. package/dist/public/assets/{WorkspaceDetailPage-B402p99m.js → WorkspaceDetailPage-D5v-nUIi.js} +1 -1
  33. package/dist/public/assets/{WorkspaceHomePage-D2pob6HI.js → WorkspaceHomePage-I5G1p5SR.js} +1 -1
  34. package/dist/public/assets/{client-runtime-manager-C5D76ewj.js → client-runtime-manager-CdJP7nUp.js} +1 -1
  35. package/dist/public/assets/file-tree-icon-BFwaPxKs.js +590 -0
  36. package/dist/public/assets/index-CjewzOUG.js +42 -0
  37. package/dist/public/assets/index-VVxfF0s5.css +1 -0
  38. package/dist/public/assets/{login-direct-candidate-resolver-wXSaB0i7.js → login-direct-candidate-resolver-C-mo698r.js} +1 -1
  39. package/dist/public/assets/{model-switch-api-CPtou49j.js → model-switch-api-Br0ivfe5.js} +1 -1
  40. package/dist/public/assets/{preferences-service-CdaK7zA8.js → preferences-service-CnaTvZq2.js} +1 -1
  41. package/dist/public/assets/{realtime-client-BjQazYsK.js → realtime-client-BlQRqVmm.js} +1 -1
  42. package/dist/public/assets/{relay-entry-BwE5nw0l.js → relay-entry-D7OgZZN-.js} +1 -1
  43. package/dist/public/assets/{terminal-runtime-meta-C-Lbyx2i.js → terminal-runtime-meta-BCtAYB0E.js} +1 -1
  44. package/dist/public/assets/{useRegisteredDebugTemplates-BM7-c-gx.js → useRegisteredDebugTemplates-CXmxu69X.js} +1 -1
  45. package/dist/public/index.html +2 -2
  46. package/dist/server/config/env.d.ts +3 -0
  47. package/dist/server/config/env.js +67 -1
  48. package/dist/server/config/env.js.map +1 -1
  49. package/dist/server/config/opencode-base-url-resolver.d.ts +3 -2
  50. package/dist/server/config/opencode-base-url-resolver.js +64 -24
  51. package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
  52. package/dist/server/main.js +2 -0
  53. package/dist/server/main.js.map +1 -1
  54. package/dist/server/middlewares/auth-guard.js +4 -0
  55. package/dist/server/middlewares/auth-guard.js.map +1 -1
  56. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +169 -1
  57. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +206 -4
  58. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  59. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +297 -2
  60. package/dist/server/modules/assistant-capability/assistant-capability-service.js +873 -3
  61. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  62. package/dist/server/modules/auth/auth-service.d.ts +21 -1
  63. package/dist/server/modules/auth/auth-service.js +64 -0
  64. package/dist/server/modules/auth/auth-service.js.map +1 -1
  65. package/dist/server/modules/browser-runtime/browser-profile-service.d.ts +26 -0
  66. package/dist/server/modules/browser-runtime/browser-profile-service.js +85 -0
  67. package/dist/server/modules/browser-runtime/browser-profile-service.js.map +1 -0
  68. package/dist/server/modules/browser-runtime/browser-runtime-controller.d.ts +70 -0
  69. package/dist/server/modules/browser-runtime/browser-runtime-controller.js +84 -0
  70. package/dist/server/modules/browser-runtime/browser-runtime-controller.js.map +1 -0
  71. package/dist/server/modules/browser-runtime/browser-runtime-service.d.ts +59 -0
  72. package/dist/server/modules/browser-runtime/browser-runtime-service.js +255 -0
  73. package/dist/server/modules/browser-runtime/browser-runtime-service.js.map +1 -0
  74. package/dist/server/modules/browser-runtime/browser-task-execution-support.d.ts +65 -0
  75. package/dist/server/modules/browser-runtime/browser-task-execution-support.js +432 -0
  76. package/dist/server/modules/browser-runtime/browser-task-execution-support.js.map +1 -0
  77. package/dist/server/modules/browser-runtime/browser-task-executor-registry.d.ts +7 -0
  78. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js +21 -0
  79. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js.map +1 -0
  80. package/dist/server/modules/browser-runtime/browser-task-executor.d.ts +55 -0
  81. package/dist/server/modules/browser-runtime/browser-task-executor.js +2 -0
  82. package/dist/server/modules/browser-runtime/browser-task-executor.js.map +1 -0
  83. package/dist/server/modules/browser-runtime/browser-task-payload.d.ts +33 -0
  84. package/dist/server/modules/browser-runtime/browser-task-payload.js +55 -0
  85. package/dist/server/modules/browser-runtime/browser-task-payload.js.map +1 -0
  86. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +19 -0
  87. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +219 -0
  88. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -0
  89. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.d.ts +15 -0
  90. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js +33 -0
  91. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js.map +1 -0
  92. package/dist/server/modules/browser-runtime/playwright-browser-executor.d.ts +16 -0
  93. package/dist/server/modules/browser-runtime/playwright-browser-executor.js +272 -0
  94. package/dist/server/modules/browser-runtime/playwright-browser-executor.js.map +1 -0
  95. package/dist/server/modules/butler/butler-auth-service.js +4 -0
  96. package/dist/server/modules/butler/butler-auth-service.js.map +1 -1
  97. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +1 -0
  98. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -1
  99. package/dist/server/modules/butler/butler-session-summary-service.d.ts +1 -0
  100. package/dist/server/modules/butler/butler-session-summary-service.js +5 -3
  101. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  102. package/dist/server/modules/butler/butler-workspace-context.js +23 -0
  103. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  104. package/dist/server/modules/debug-target/debug-target-service.d.ts +2 -0
  105. package/dist/server/modules/debug-target/debug-target-service.js +14 -0
  106. package/dist/server/modules/debug-target/debug-target-service.js.map +1 -1
  107. package/dist/server/modules/document-runtime/document-docx-fallback-renderer.py +139 -0
  108. package/dist/server/modules/document-runtime/document-export-executor.d.ts +50 -0
  109. package/dist/server/modules/document-runtime/document-export-executor.js +827 -0
  110. package/dist/server/modules/document-runtime/document-export-executor.js.map +1 -0
  111. package/dist/server/modules/document-runtime/document-runtime-controller.d.ts +127 -0
  112. package/dist/server/modules/document-runtime/document-runtime-controller.js +131 -0
  113. package/dist/server/modules/document-runtime/document-runtime-controller.js.map +1 -0
  114. package/dist/server/modules/document-runtime/document-runtime-service.d.ts +125 -0
  115. package/dist/server/modules/document-runtime/document-runtime-service.js +706 -0
  116. package/dist/server/modules/document-runtime/document-runtime-service.js.map +1 -0
  117. package/dist/server/modules/git/git-command-helper-process.js +0 -18
  118. package/dist/server/modules/git/git-command-helper-process.js.map +1 -1
  119. package/dist/server/modules/git/git-command-runner.js +0 -18
  120. package/dist/server/modules/git/git-command-runner.js.map +1 -1
  121. package/dist/server/modules/office/office-controller.d.ts +77 -0
  122. package/dist/server/modules/office/office-controller.js +174 -0
  123. package/dist/server/modules/office/office-controller.js.map +1 -0
  124. package/dist/server/modules/office/office-preview-link-service.d.ts +27 -0
  125. package/dist/server/modules/office/office-preview-link-service.js +121 -0
  126. package/dist/server/modules/office/office-preview-link-service.js.map +1 -0
  127. package/dist/server/modules/office/office-service.d.ts +67 -0
  128. package/dist/server/modules/office/office-service.js +359 -0
  129. package/dist/server/modules/office/office-service.js.map +1 -0
  130. package/dist/server/modules/opencli/opencli-bridge-skill-service.js +38 -14
  131. package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -1
  132. package/dist/server/modules/opencli/opencli-install-discovery.d.ts +4 -0
  133. package/dist/server/modules/opencli/opencli-install-discovery.js +94 -0
  134. package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -1
  135. package/dist/server/modules/opencli/opencli-runtime-builder.js +29 -0
  136. package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -1
  137. package/dist/server/modules/opencli/opencli-runtime-guard.d.ts +2 -0
  138. package/dist/server/modules/opencli/opencli-runtime-guard.js +5 -0
  139. package/dist/server/modules/opencli/opencli-runtime-guard.js.map +1 -0
  140. package/dist/server/modules/ops-runtime/ops-runtime-controller.d.ts +70 -0
  141. package/dist/server/modules/ops-runtime/ops-runtime-controller.js +83 -0
  142. package/dist/server/modules/ops-runtime/ops-runtime-controller.js.map +1 -0
  143. package/dist/server/modules/ops-runtime/ops-runtime-service.d.ts +80 -0
  144. package/dist/server/modules/ops-runtime/ops-runtime-service.js +327 -0
  145. package/dist/server/modules/ops-runtime/ops-runtime-service.js.map +1 -0
  146. package/dist/server/modules/ops-runtime/ssh-ops-executor.d.ts +41 -0
  147. package/dist/server/modules/ops-runtime/ssh-ops-executor.js +478 -0
  148. package/dist/server/modules/ops-runtime/ssh-ops-executor.js.map +1 -0
  149. package/dist/server/modules/presentation/presentation-controller.d.ts +22 -0
  150. package/dist/server/modules/presentation/presentation-controller.js +59 -0
  151. package/dist/server/modules/presentation/presentation-controller.js.map +1 -0
  152. package/dist/server/modules/presentation/presentation-export-task-service.d.ts +24 -0
  153. package/dist/server/modules/presentation/presentation-export-task-service.js +137 -0
  154. package/dist/server/modules/presentation/presentation-export-task-service.js.map +1 -0
  155. package/dist/server/modules/presentation/presentation-export-types.d.ts +12 -0
  156. package/dist/server/modules/presentation/presentation-export-types.js +2 -0
  157. package/dist/server/modules/presentation/presentation-export-types.js.map +1 -0
  158. package/dist/server/modules/presentation/presentation-pdf-export-service.d.ts +20 -0
  159. package/dist/server/modules/presentation/presentation-pdf-export-service.js +29 -0
  160. package/dist/server/modules/presentation/presentation-pdf-export-service.js.map +1 -0
  161. package/dist/server/modules/presentation/presentation-pptx-export-service.d.ts +20 -0
  162. package/dist/server/modules/presentation/presentation-pptx-export-service.js +64 -0
  163. package/dist/server/modules/presentation/presentation-pptx-export-service.js.map +1 -0
  164. package/dist/server/modules/presentation/presentation-renderer.d.ts +21 -0
  165. package/dist/server/modules/presentation/presentation-renderer.js +208 -0
  166. package/dist/server/modules/presentation/presentation-renderer.js.map +1 -0
  167. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js +3 -3
  168. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js.map +1 -1
  169. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js +6 -1
  170. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js.map +1 -1
  171. package/dist/server/modules/sessions/codex-app-server-helper-process.js +2 -1
  172. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  173. package/dist/server/modules/sessions/session-controller.d.ts +1 -0
  174. package/dist/server/modules/sessions/session-controller.js +59 -4
  175. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  176. package/dist/server/modules/sessions/session-history-service.js +17 -5
  177. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  178. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +5 -1
  179. package/dist/server/modules/sessions/session-live-runtime-service.js +129 -8
  180. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  181. package/dist/server/modules/sessions/session-provider-config-service.d.ts +25 -1
  182. package/dist/server/modules/sessions/session-provider-config-service.js +54 -5
  183. package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
  184. package/dist/server/modules/sessions/workspace-office-mcp-config.d.ts +14 -0
  185. package/dist/server/modules/sessions/workspace-office-mcp-config.js +54 -0
  186. package/dist/server/modules/sessions/workspace-office-mcp-config.js.map +1 -0
  187. package/dist/server/modules/sessions/workspace-session-auth-service.d.ts +27 -0
  188. package/dist/server/modules/sessions/workspace-session-auth-service.js +109 -0
  189. package/dist/server/modules/sessions/workspace-session-auth-service.js.map +1 -0
  190. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +51 -0
  191. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +341 -0
  192. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -0
  193. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js +5 -0
  194. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js.map +1 -1
  195. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/SKILL.md +67 -0
  196. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/agents/openai.yaml +4 -0
  197. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/references/cli-workflow.md +133 -0
  198. package/dist/server/modules/skills/skill-controller.d.ts +7 -0
  199. package/dist/server/modules/skills/skill-controller.js +7 -0
  200. package/dist/server/modules/skills/skill-controller.js.map +1 -1
  201. package/dist/server/modules/skills/skill-manager-service.d.ts +61 -0
  202. package/dist/server/modules/skills/skill-manager-service.js +218 -0
  203. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  204. package/dist/server/modules/skills/skill-name-policy.js +2 -1
  205. package/dist/server/modules/skills/skill-name-policy.js.map +1 -1
  206. package/dist/server/modules/tasks/task-helper-client.d.ts +1 -0
  207. package/dist/server/modules/tasks/task-helper-client.js +45 -9
  208. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  209. package/dist/server/modules/tasks/task-types.d.ts +5 -0
  210. package/dist/server/modules/tasks/task-types.js +6 -1
  211. package/dist/server/modules/tasks/task-types.js.map +1 -1
  212. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js +2 -1
  213. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js.map +1 -1
  214. package/dist/server/modules/terminal/runtime/node-pty-loader.d.ts +5 -0
  215. package/dist/server/modules/terminal/runtime/node-pty-loader.js +68 -0
  216. package/dist/server/modules/terminal/runtime/node-pty-loader.js.map +1 -0
  217. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js +2 -1
  218. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js.map +1 -1
  219. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js +6 -9
  220. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js.map +1 -1
  221. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js +6 -9
  222. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js.map +1 -1
  223. package/dist/server/routes/assistant.d.ts +2 -1
  224. package/dist/server/routes/assistant.js +20 -1
  225. package/dist/server/routes/assistant.js.map +1 -1
  226. package/dist/server/routes/browser-runtime.d.ts +3 -0
  227. package/dist/server/routes/browser-runtime.js +14 -0
  228. package/dist/server/routes/browser-runtime.js.map +1 -0
  229. package/dist/server/routes/document-runtime.d.ts +3 -0
  230. package/dist/server/routes/document-runtime.js +18 -0
  231. package/dist/server/routes/document-runtime.js.map +1 -0
  232. package/dist/server/routes/office.d.ts +3 -0
  233. package/dist/server/routes/office.js +16 -0
  234. package/dist/server/routes/office.js.map +1 -0
  235. package/dist/server/routes/ops-runtime.d.ts +3 -0
  236. package/dist/server/routes/ops-runtime.js +13 -0
  237. package/dist/server/routes/ops-runtime.js.map +1 -0
  238. package/dist/server/routes/presentation.d.ts +3 -0
  239. package/dist/server/routes/presentation.js +5 -0
  240. package/dist/server/routes/presentation.js.map +1 -0
  241. package/dist/server/routes/skills.js +1 -0
  242. package/dist/server/routes/skills.js.map +1 -1
  243. package/dist/server/server/create-server.d.ts +36 -0
  244. package/dist/server/server/create-server.js +215 -4
  245. package/dist/server/server/create-server.js.map +1 -1
  246. package/dist/server/server/release-manifest-sync.d.ts +1 -0
  247. package/dist/server/server/release-manifest-sync.js +2 -2
  248. package/dist/server/server/release-manifest-sync.js.map +1 -1
  249. package/dist/server/server/start-host.js +1 -1
  250. package/dist/server/server/start-host.js.map +1 -1
  251. package/dist/server/shared/http/error-handler.js +53 -19
  252. package/dist/server/shared/http/error-handler.js.map +1 -1
  253. package/dist/server/shared/utils/install-console-timestamp-prefix.d.ts +1 -0
  254. package/dist/server/shared/utils/install-console-timestamp-prefix.js +28 -0
  255. package/dist/server/shared/utils/install-console-timestamp-prefix.js.map +1 -0
  256. package/dist/server/storage/repositories/auth-token-repository.js +22 -6
  257. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
  258. package/dist/server/storage/repositories/browser-profile-repository.d.ts +18 -0
  259. package/dist/server/storage/repositories/browser-profile-repository.js +134 -0
  260. package/dist/server/storage/repositories/browser-profile-repository.js.map +1 -0
  261. package/dist/server/storage/repositories/document-comment-repository.d.ts +10 -0
  262. package/dist/server/storage/repositories/document-comment-repository.js +118 -0
  263. package/dist/server/storage/repositories/document-comment-repository.js.map +1 -0
  264. package/dist/server/storage/repositories/document-repository.d.ts +16 -0
  265. package/dist/server/storage/repositories/document-repository.js +109 -0
  266. package/dist/server/storage/repositories/document-repository.js.map +1 -0
  267. package/dist/server/storage/repositories/document-revision-repository.d.ts +10 -0
  268. package/dist/server/storage/repositories/document-revision-repository.js +79 -0
  269. package/dist/server/storage/repositories/document-revision-repository.js.map +1 -0
  270. package/dist/server/storage/repositories/document-template-repository.d.ts +13 -0
  271. package/dist/server/storage/repositories/document-template-repository.js +244 -0
  272. package/dist/server/storage/repositories/document-template-repository.js.map +1 -0
  273. package/dist/server/storage/repositories/office-approval-repository.d.ts +11 -0
  274. package/dist/server/storage/repositories/office-approval-repository.js +109 -0
  275. package/dist/server/storage/repositories/office-approval-repository.js.map +1 -0
  276. package/dist/server/storage/repositories/office-artifact-repository.d.ts +10 -0
  277. package/dist/server/storage/repositories/office-artifact-repository.js +89 -0
  278. package/dist/server/storage/repositories/office-artifact-repository.js.map +1 -0
  279. package/dist/server/storage/repositories/office-audit-event-repository.d.ts +8 -0
  280. package/dist/server/storage/repositories/office-audit-event-repository.js +54 -0
  281. package/dist/server/storage/repositories/office-audit-event-repository.js.map +1 -0
  282. package/dist/server/storage/repositories/office-connector-repository.d.ts +10 -0
  283. package/dist/server/storage/repositories/office-connector-repository.js +97 -0
  284. package/dist/server/storage/repositories/office-connector-repository.js.map +1 -0
  285. package/dist/server/storage/repositories/office-receipt-repository.d.ts +8 -0
  286. package/dist/server/storage/repositories/office-receipt-repository.js +48 -0
  287. package/dist/server/storage/repositories/office-receipt-repository.js.map +1 -0
  288. package/dist/server/storage/repositories/office-rollback-record-repository.d.ts +8 -0
  289. package/dist/server/storage/repositories/office-rollback-record-repository.js +60 -0
  290. package/dist/server/storage/repositories/office-rollback-record-repository.js.map +1 -0
  291. package/dist/server/storage/repositories/office-task-repository.d.ts +19 -0
  292. package/dist/server/storage/repositories/office-task-repository.js +199 -0
  293. package/dist/server/storage/repositories/office-task-repository.js.map +1 -0
  294. package/dist/server/storage/repositories/office-task-step-repository.d.ts +10 -0
  295. package/dist/server/storage/repositories/office-task-step-repository.js +110 -0
  296. package/dist/server/storage/repositories/office-task-step-repository.js.map +1 -0
  297. package/dist/server/storage/repositories/ops-target-repository.d.ts +16 -0
  298. package/dist/server/storage/repositories/ops-target-repository.js +119 -0
  299. package/dist/server/storage/repositories/ops-target-repository.js.map +1 -0
  300. package/dist/server/storage/repositories/session-binding-repository.d.ts +4 -0
  301. package/dist/server/storage/repositories/session-binding-repository.js +70 -69
  302. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
  303. package/dist/server/storage/repositories/session-changed-file-repository.d.ts +6 -0
  304. package/dist/server/storage/repositories/session-changed-file-repository.js +44 -43
  305. package/dist/server/storage/repositories/session-changed-file-repository.js.map +1 -1
  306. package/dist/server/storage/repositories/session-fork-repository.d.ts +2 -0
  307. package/dist/server/storage/repositories/session-fork-repository.js +42 -41
  308. package/dist/server/storage/repositories/session-fork-repository.js.map +1 -1
  309. package/dist/server/storage/repositories/session-index-repository.d.ts +5 -0
  310. package/dist/server/storage/repositories/session-index-repository.js +153 -152
  311. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  312. package/dist/server/storage/repositories/session-message-attachment-repository.d.ts +7 -0
  313. package/dist/server/storage/repositories/session-message-attachment-repository.js +91 -90
  314. package/dist/server/storage/repositories/session-message-attachment-repository.js.map +1 -1
  315. package/dist/server/storage/repositories/session-message-origin-repository.d.ts +2 -0
  316. package/dist/server/storage/repositories/session-message-origin-repository.js +25 -24
  317. package/dist/server/storage/repositories/session-message-origin-repository.js.map +1 -1
  318. package/dist/server/storage/repositories/session-state-repository.d.ts +2 -0
  319. package/dist/server/storage/repositories/session-state-repository.js +35 -34
  320. package/dist/server/storage/repositories/session-state-repository.js.map +1 -1
  321. package/dist/server/storage/repositories/session-status-snapshot-repository.d.ts +2 -0
  322. package/dist/server/storage/repositories/session-status-snapshot-repository.js +25 -24
  323. package/dist/server/storage/repositories/session-status-snapshot-repository.js.map +1 -1
  324. package/dist/server/storage/sqlite/client.js +123 -1
  325. package/dist/server/storage/sqlite/client.js.map +1 -1
  326. package/dist/server/storage/sqlite/schema.sql +300 -1
  327. package/dist/server/types/domain.d.ts +205 -1
  328. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +3 -2
  329. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +26 -19
  330. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
  331. package/package.json +17 -8
  332. package/scripts/postinstall.mjs +159 -7
  333. package/vendor/node-pty-fork/LICENSE +69 -0
  334. package/vendor/node-pty-fork/README.md +91 -0
  335. package/vendor/node-pty-fork/binding.gyp +117 -0
  336. package/vendor/node-pty-fork/deps/.editorconfig +2 -0
  337. package/vendor/node-pty-fork/deps/winpty/.drone.yml +17 -0
  338. package/vendor/node-pty-fork/deps/winpty/.gitattributes +19 -0
  339. package/vendor/node-pty-fork/deps/winpty/LICENSE +21 -0
  340. package/vendor/node-pty-fork/deps/winpty/Makefile +166 -0
  341. package/vendor/node-pty-fork/deps/winpty/README.md +151 -0
  342. package/vendor/node-pty-fork/deps/winpty/RELEASES.md +280 -0
  343. package/vendor/node-pty-fork/deps/winpty/VERSION.txt +1 -0
  344. package/vendor/node-pty-fork/deps/winpty/configure +167 -0
  345. package/vendor/node-pty-fork/deps/winpty/misc/BufferResizeTests.cc +90 -0
  346. package/vendor/node-pty-fork/deps/winpty/misc/ChangeScreenBuffer.cc +53 -0
  347. package/vendor/node-pty-fork/deps/winpty/misc/ClearConsole.cc +72 -0
  348. package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.cc +117 -0
  349. package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.ps1 +116 -0
  350. package/vendor/node-pty-fork/deps/winpty/misc/ConoutMode.cc +113 -0
  351. package/vendor/node-pty-fork/deps/winpty/misc/DebugClient.py +42 -0
  352. package/vendor/node-pty-fork/deps/winpty/misc/DebugServer.py +63 -0
  353. package/vendor/node-pty-fork/deps/winpty/misc/DumpLines.py +5 -0
  354. package/vendor/node-pty-fork/deps/winpty/misc/EnableExtendedFlags.txt +46 -0
  355. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +528 -0
  356. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +633 -0
  357. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP932.txt +630 -0
  358. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP936.txt +630 -0
  359. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP949.txt +630 -0
  360. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP950.txt +630 -0
  361. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +16 -0
  362. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Results.txt +4 -0
  363. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +144 -0
  364. package/vendor/node-pty-fork/deps/winpty/misc/FontSurvey.cc +100 -0
  365. package/vendor/node-pty-fork/deps/winpty/misc/FormatChar.h +21 -0
  366. package/vendor/node-pty-fork/deps/winpty/misc/FreezePerfTest.cc +62 -0
  367. package/vendor/node-pty-fork/deps/winpty/misc/GetCh.cc +20 -0
  368. package/vendor/node-pty-fork/deps/winpty/misc/GetConsolePos.cc +41 -0
  369. package/vendor/node-pty-fork/deps/winpty/misc/GetFont.cc +261 -0
  370. package/vendor/node-pty-fork/deps/winpty/misc/IdentifyConsoleWindow.ps1 +51 -0
  371. package/vendor/node-pty-fork/deps/winpty/misc/IsNewConsole.cc +87 -0
  372. package/vendor/node-pty-fork/deps/winpty/misc/MouseInputNotes.txt +90 -0
  373. package/vendor/node-pty-fork/deps/winpty/misc/MoveConsoleWindow.cc +34 -0
  374. package/vendor/node-pty-fork/deps/winpty/misc/Notes.txt +219 -0
  375. package/vendor/node-pty-fork/deps/winpty/misc/OSVersion.cc +27 -0
  376. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferFreezeInactive.cc +101 -0
  377. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest.cc +671 -0
  378. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest2.cc +151 -0
  379. package/vendor/node-pty-fork/deps/winpty/misc/SelectAllTest.cc +45 -0
  380. package/vendor/node-pty-fork/deps/winpty/misc/SetBufferSize.cc +32 -0
  381. package/vendor/node-pty-fork/deps/winpty/misc/SetCursorPos.cc +10 -0
  382. package/vendor/node-pty-fork/deps/winpty/misc/SetFont.cc +145 -0
  383. package/vendor/node-pty-fork/deps/winpty/misc/SetWindowRect.cc +36 -0
  384. package/vendor/node-pty-fork/deps/winpty/misc/ShowArgv.cc +12 -0
  385. package/vendor/node-pty-fork/deps/winpty/misc/ShowConsoleInput.cc +40 -0
  386. package/vendor/node-pty-fork/deps/winpty/misc/Spew.py +5 -0
  387. package/vendor/node-pty-fork/deps/winpty/misc/TestUtil.cc +172 -0
  388. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeDoubleWidthTest.cc +102 -0
  389. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest1.cc +246 -0
  390. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest2.cc +130 -0
  391. package/vendor/node-pty-fork/deps/winpty/misc/UnixEcho.cc +89 -0
  392. package/vendor/node-pty-fork/deps/winpty/misc/Utf16Echo.cc +46 -0
  393. package/vendor/node-pty-fork/deps/winpty/misc/VeryLargeRead.cc +122 -0
  394. package/vendor/node-pty-fork/deps/winpty/misc/VkEscapeTest.cc +56 -0
  395. package/vendor/node-pty-fork/deps/winpty/misc/Win10ResizeWhileFrozen.cc +52 -0
  396. package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest1.cc +57 -0
  397. package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest2.cc +30 -0
  398. package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo1.cc +26 -0
  399. package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo2.cc +19 -0
  400. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test1.cc +46 -0
  401. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test2.cc +70 -0
  402. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test3.cc +78 -0
  403. package/vendor/node-pty-fork/deps/winpty/misc/Win32Write1.cc +44 -0
  404. package/vendor/node-pty-fork/deps/winpty/misc/WindowsBugCrashReader.cc +27 -0
  405. package/vendor/node-pty-fork/deps/winpty/misc/WriteConsole.cc +106 -0
  406. package/vendor/node-pty-fork/deps/winpty/misc/build32.sh +9 -0
  407. package/vendor/node-pty-fork/deps/winpty/misc/build64.sh +9 -0
  408. package/vendor/node-pty-fork/deps/winpty/misc/color-test.sh +212 -0
  409. package/vendor/node-pty-fork/deps/winpty/misc/font-notes.txt +300 -0
  410. package/vendor/node-pty-fork/deps/winpty/misc/winbug-15048.cc +201 -0
  411. package/vendor/node-pty-fork/deps/winpty/ship/build-pty4j-libpty.bat +36 -0
  412. package/vendor/node-pty-fork/deps/winpty/ship/common_ship.py +53 -0
  413. package/vendor/node-pty-fork/deps/winpty/ship/make_msvc_package.py +165 -0
  414. package/vendor/node-pty-fork/deps/winpty/ship/ship.py +108 -0
  415. package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.cc +605 -0
  416. package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.h +103 -0
  417. package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.cc +84 -0
  418. package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.h +28 -0
  419. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.cc +632 -0
  420. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.h +28 -0
  421. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.cc +852 -0
  422. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.h +109 -0
  423. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.cc +121 -0
  424. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.h +36 -0
  425. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.cc +152 -0
  426. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.h +41 -0
  427. package/vendor/node-pty-fork/deps/winpty/src/agent/Coord.h +87 -0
  428. package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.cc +239 -0
  429. package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.h +32 -0
  430. package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.cc +422 -0
  431. package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.h +28 -0
  432. package/vendor/node-pty-fork/deps/winpty/src/agent/DsrSender.h +30 -0
  433. package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.cc +99 -0
  434. package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.h +47 -0
  435. package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.cc +246 -0
  436. package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.h +114 -0
  437. package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.cc +71 -0
  438. package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.h +68 -0
  439. package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.cc +378 -0
  440. package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.h +125 -0
  441. package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.cc +699 -0
  442. package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.h +103 -0
  443. package/vendor/node-pty-fork/deps/winpty/src/agent/SimplePool.h +75 -0
  444. package/vendor/node-pty-fork/deps/winpty/src/agent/SmallRect.h +143 -0
  445. package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.cc +535 -0
  446. package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.h +69 -0
  447. package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncoding.h +157 -0
  448. package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncodingTest.cc +189 -0
  449. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.cc +107 -0
  450. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.h +67 -0
  451. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.cc +193 -0
  452. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.h +99 -0
  453. package/vendor/node-pty-fork/deps/winpty/src/agent/main.cc +114 -0
  454. package/vendor/node-pty-fork/deps/winpty/src/agent/subdir.mk +61 -0
  455. package/vendor/node-pty-fork/deps/winpty/src/configurations.gypi +60 -0
  456. package/vendor/node-pty-fork/deps/winpty/src/debugserver/DebugServer.cc +117 -0
  457. package/vendor/node-pty-fork/deps/winpty/src/debugserver/subdir.mk +41 -0
  458. package/vendor/node-pty-fork/deps/winpty/src/include/winpty.h +242 -0
  459. package/vendor/node-pty-fork/deps/winpty/src/include/winpty_constants.h +131 -0
  460. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.cc +75 -0
  461. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.h +28 -0
  462. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/LibWinptyException.h +54 -0
  463. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/WinptyInternal.h +72 -0
  464. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/subdir.mk +46 -0
  465. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/winpty.cc +970 -0
  466. package/vendor/node-pty-fork/deps/winpty/src/shared/AgentMsg.h +38 -0
  467. package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.cc +122 -0
  468. package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.h +73 -0
  469. package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.cc +103 -0
  470. package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.h +102 -0
  471. package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.cc +187 -0
  472. package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.h +38 -0
  473. package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.cc +138 -0
  474. package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.h +55 -0
  475. package/vendor/node-pty-fork/deps/winpty/src/shared/GetCommitHash.bat +13 -0
  476. package/vendor/node-pty-fork/deps/winpty/src/shared/Mutex.h +54 -0
  477. package/vendor/node-pty-fork/deps/winpty/src/shared/OsModule.h +63 -0
  478. package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.cc +36 -0
  479. package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.h +45 -0
  480. package/vendor/node-pty-fork/deps/winpty/src/shared/PrecompiledHeader.h +43 -0
  481. package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilder.h +227 -0
  482. package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilderTest.cc +114 -0
  483. package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.cc +55 -0
  484. package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.h +80 -0
  485. package/vendor/node-pty-fork/deps/winpty/src/shared/TimeMeasurement.h +63 -0
  486. package/vendor/node-pty-fork/deps/winpty/src/shared/UnixCtrlChars.h +45 -0
  487. package/vendor/node-pty-fork/deps/winpty/src/shared/UpdateGenVersion.bat +20 -0
  488. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.cc +460 -0
  489. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.h +104 -0
  490. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.cc +252 -0
  491. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.h +29 -0
  492. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.cc +55 -0
  493. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.h +64 -0
  494. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.cc +57 -0
  495. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.h +43 -0
  496. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.cc +42 -0
  497. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.h +27 -0
  498. package/vendor/node-pty-fork/deps/winpty/src/shared/winpty_snprintf.h +99 -0
  499. package/vendor/node-pty-fork/deps/winpty/src/subdir.mk +5 -0
  500. package/vendor/node-pty-fork/deps/winpty/src/tests/subdir.mk +28 -0
  501. package/vendor/node-pty-fork/deps/winpty/src/tests/trivial_test.cc +158 -0
  502. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.cc +114 -0
  503. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.h +56 -0
  504. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.cc +80 -0
  505. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.h +53 -0
  506. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.cc +86 -0
  507. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.h +31 -0
  508. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.cc +70 -0
  509. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.h +42 -0
  510. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/main.cc +729 -0
  511. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/subdir.mk +41 -0
  512. package/vendor/node-pty-fork/deps/winpty/src/winpty.gyp +206 -0
  513. package/vendor/node-pty-fork/deps/winpty/vcbuild.bat +83 -0
  514. package/vendor/node-pty-fork/lib/conpty_console_list_agent.js +20 -0
  515. package/vendor/node-pty-fork/lib/conpty_console_list_agent.js.map +1 -0
  516. package/vendor/node-pty-fork/lib/eventEmitter2.js +47 -0
  517. package/vendor/node-pty-fork/lib/eventEmitter2.js.map +1 -0
  518. package/vendor/node-pty-fork/lib/eventEmitter2.test.js +30 -0
  519. package/vendor/node-pty-fork/lib/eventEmitter2.test.js.map +1 -0
  520. package/vendor/node-pty-fork/lib/index.js +51 -0
  521. package/vendor/node-pty-fork/lib/index.js.map +1 -0
  522. package/vendor/node-pty-fork/lib/interfaces.js +7 -0
  523. package/vendor/node-pty-fork/lib/interfaces.js.map +1 -0
  524. package/vendor/node-pty-fork/lib/shared/conout.js +11 -0
  525. package/vendor/node-pty-fork/lib/shared/conout.js.map +1 -0
  526. package/vendor/node-pty-fork/lib/terminal.js +190 -0
  527. package/vendor/node-pty-fork/lib/terminal.js.map +1 -0
  528. package/vendor/node-pty-fork/lib/terminal.test.js +139 -0
  529. package/vendor/node-pty-fork/lib/terminal.test.js.map +1 -0
  530. package/vendor/node-pty-fork/lib/testUtils.test.js +28 -0
  531. package/vendor/node-pty-fork/lib/testUtils.test.js.map +1 -0
  532. package/vendor/node-pty-fork/lib/types.js +7 -0
  533. package/vendor/node-pty-fork/lib/types.js.map +1 -0
  534. package/vendor/node-pty-fork/lib/unixTerminal.js +304 -0
  535. package/vendor/node-pty-fork/lib/unixTerminal.js.map +1 -0
  536. package/vendor/node-pty-fork/lib/unixTerminal.test.js +330 -0
  537. package/vendor/node-pty-fork/lib/unixTerminal.test.js.map +1 -0
  538. package/vendor/node-pty-fork/lib/utils.js +17 -0
  539. package/vendor/node-pty-fork/lib/utils.js.map +1 -0
  540. package/vendor/node-pty-fork/lib/windowsConoutConnection.js +122 -0
  541. package/vendor/node-pty-fork/lib/windowsConoutConnection.js.map +1 -0
  542. package/vendor/node-pty-fork/lib/windowsPtyAgent.js +324 -0
  543. package/vendor/node-pty-fork/lib/windowsPtyAgent.js.map +1 -0
  544. package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js +90 -0
  545. package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js.map +1 -0
  546. package/vendor/node-pty-fork/lib/windowsTerminal.js +201 -0
  547. package/vendor/node-pty-fork/lib/windowsTerminal.js.map +1 -0
  548. package/vendor/node-pty-fork/lib/windowsTerminal.test.js +203 -0
  549. package/vendor/node-pty-fork/lib/windowsTerminal.test.js.map +1 -0
  550. package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js +22 -0
  551. package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js.map +1 -0
  552. package/vendor/node-pty-fork/package.json +35 -0
  553. package/vendor/node-pty-fork/scripts/apply-patches.mjs +341 -0
  554. package/vendor/node-pty-fork/scripts/fetch-upstream.mjs +41 -0
  555. package/vendor/node-pty-fork/scripts/install-smoke.cjs +59 -0
  556. package/vendor/node-pty-fork/scripts/smoke-load.cjs +10 -0
  557. package/vendor/node-pty-fork/scripts/sync-upstream.mjs +29 -0
  558. package/vendor/node-pty-fork/scripts/verify-runtime.cjs +54 -0
  559. package/vendor/node-pty-fork/scripts/verify-runtime.test.cjs +22 -0
  560. package/vendor/node-pty-fork/scripts/verify-tarball.cjs +80 -0
  561. package/vendor/node-pty-fork/src/conpty_console_list_agent.ts +19 -0
  562. package/vendor/node-pty-fork/src/eventEmitter2.test.ts +30 -0
  563. package/vendor/node-pty-fork/src/eventEmitter2.ts +48 -0
  564. package/vendor/node-pty-fork/src/index.ts +51 -0
  565. package/vendor/node-pty-fork/src/interfaces.ts +129 -0
  566. package/vendor/node-pty-fork/src/native.d.ts +56 -0
  567. package/vendor/node-pty-fork/src/shared/conout.ts +15 -0
  568. package/vendor/node-pty-fork/src/terminal.test.ts +119 -0
  569. package/vendor/node-pty-fork/src/terminal.ts +211 -0
  570. package/vendor/node-pty-fork/src/testUtils.test.ts +23 -0
  571. package/vendor/node-pty-fork/src/tsconfig.json +22 -0
  572. package/vendor/node-pty-fork/src/types.ts +15 -0
  573. package/vendor/node-pty-fork/src/unix/pty.cc +826 -0
  574. package/vendor/node-pty-fork/src/unix/spawn-helper.cc +23 -0
  575. package/vendor/node-pty-fork/src/unixTerminal.test.ts +335 -0
  576. package/vendor/node-pty-fork/src/unixTerminal.ts +320 -0
  577. package/vendor/node-pty-fork/src/utils.ts +9 -0
  578. package/vendor/node-pty-fork/src/win/conpty.cc +500 -0
  579. package/vendor/node-pty-fork/src/win/conpty_console_list.cc +43 -0
  580. package/vendor/node-pty-fork/src/win/path_util.cc +73 -0
  581. package/vendor/node-pty-fork/src/win/path_util.h +22 -0
  582. package/vendor/node-pty-fork/src/win/winpty.cc +322 -0
  583. package/vendor/node-pty-fork/src/windowsConoutConnection.ts +79 -0
  584. package/vendor/node-pty-fork/src/windowsPtyAgent.test.ts +94 -0
  585. package/vendor/node-pty-fork/src/windowsPtyAgent.ts +323 -0
  586. package/vendor/node-pty-fork/src/windowsTerminal.test.ts +214 -0
  587. package/vendor/node-pty-fork/src/windowsTerminal.ts +208 -0
  588. package/vendor/node-pty-fork/src/worker/conoutSocketWorker.ts +22 -0
  589. package/vendor/node-pty-fork/typings/node-pty.d.ts +203 -0
  590. package/dist/public/assets/FileContextPanel-xGTYDclT.js +0 -1
  591. package/dist/public/assets/WorkbenchLayout-DScHaza9.js +0 -244
  592. package/dist/public/assets/WorkbenchShellRoute-DN6LdrqC.js +0 -1
  593. package/dist/public/assets/WorkbenchShellRoute-DhQo_0vu.css +0 -1
  594. package/dist/public/assets/file-tree-icon-lfU9Ag77.js +0 -3
  595. package/dist/public/assets/index-CFYXCsyx.css +0 -1
  596. package/dist/public/assets/index-NGxWr8Ix.js +0 -42
  597. package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
  598. package/dist/server/modules/channels/wechat-claw-client.js +0 -245
  599. package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
@@ -0,0 +1,826 @@
1
+ /**
2
+ * Copyright (c) 2012-2015, Christopher Jeffrey (MIT License)
3
+ * Copyright (c) 2017, Daniel Imms (MIT License)
4
+ *
5
+ * pty.cc:
6
+ * This file is responsible for starting processes
7
+ * with pseudo-terminal file descriptors.
8
+ *
9
+ * See:
10
+ * man pty
11
+ * man tty_ioctl
12
+ * man termios
13
+ * man forkpty
14
+ */
15
+
16
+ /**
17
+ * Includes
18
+ */
19
+
20
+ #include <nan.h>
21
+ #include <errno.h>
22
+ #include <string.h>
23
+ #include <stdlib.h>
24
+ #include <unistd.h>
25
+
26
+ #include <sys/types.h>
27
+ #include <sys/stat.h>
28
+ #include <sys/ioctl.h>
29
+ #include <sys/wait.h>
30
+ #include <fcntl.h>
31
+ #include <signal.h>
32
+
33
+ /* forkpty */
34
+ /* http://www.gnu.org/software/gnulib/manual/html_node/forkpty.html */
35
+ #if defined(__linux__)
36
+ #include <pty.h>
37
+ #elif defined(__APPLE__)
38
+ #include <util.h>
39
+ #elif defined(__FreeBSD__)
40
+ #include <libutil.h>
41
+ #endif
42
+
43
+ /* Some platforms name VWERASE and VDISCARD differently */
44
+ #if !defined(VWERASE) && defined(VWERSE)
45
+ #define VWERASE VWERSE
46
+ #endif
47
+ #if !defined(VDISCARD) && defined(VDISCRD)
48
+ #define VDISCARD VDISCRD
49
+ #endif
50
+
51
+ /* for pty_getproc */
52
+ #if defined(__linux__)
53
+ #include <stdio.h>
54
+ #include <stdint.h>
55
+ #elif defined(__APPLE__)
56
+ #include <libproc.h>
57
+ #include <os/availability.h>
58
+ #include <paths.h>
59
+ #include <spawn.h>
60
+ #include <sys/event.h>
61
+ #include <termios.h>
62
+ #endif
63
+
64
+ /* NSIG - macro for highest signal + 1, should be defined */
65
+ #ifndef NSIG
66
+ #define NSIG 32
67
+ #endif
68
+
69
+ /* macOS 10.14 back does not define this constant */
70
+ #ifndef POSIX_SPAWN_SETSID
71
+ #define POSIX_SPAWN_SETSID 1024
72
+ #endif
73
+
74
+ /* environ for execvpe */
75
+ /* node/src/node_child_process.cc */
76
+ #if !defined(__APPLE__)
77
+ extern char **environ;
78
+ #endif
79
+
80
+ #if defined(__APPLE__)
81
+ extern "C" {
82
+ // Changes the current thread's directory to a path or directory file
83
+ // descriptor. libpthread only exposes a syscall wrapper starting in
84
+ // macOS 10.12, but the system call dates back to macOS 10.5. On older OSes,
85
+ // the syscall is issued directly.
86
+ int pthread_chdir_np(const char* dir) API_AVAILABLE(macosx(10.12));
87
+ int pthread_fchdir_np(int fd) API_AVAILABLE(macosx(10.12));
88
+ }
89
+
90
+ #define HANDLE_EINTR(x) ({ \
91
+ int eintr_wrapper_counter = 0; \
92
+ decltype(x) eintr_wrapper_result; \
93
+ do { \
94
+ eintr_wrapper_result = (x); \
95
+ } while (eintr_wrapper_result == -1 && errno == EINTR && \
96
+ eintr_wrapper_counter++ < 100); \
97
+ eintr_wrapper_result; \
98
+ })
99
+ #endif
100
+
101
+ /**
102
+ * Structs
103
+ */
104
+
105
+ struct pty_baton {
106
+ Nan::Persistent<v8::Function> cb;
107
+ int exit_code;
108
+ int signal_code;
109
+ pid_t pid;
110
+ uv_async_t async;
111
+ uv_thread_t tid;
112
+ };
113
+
114
+ /**
115
+ * Methods
116
+ */
117
+
118
+ NAN_METHOD(PtyFork);
119
+ NAN_METHOD(PtyOpen);
120
+ NAN_METHOD(PtyResize);
121
+ NAN_METHOD(PtyGetProc);
122
+
123
+ /**
124
+ * Functions
125
+ */
126
+
127
+ static int
128
+ pty_nonblock(int);
129
+
130
+ #if defined(__APPLE__)
131
+ static char *
132
+ pty_getproc(int);
133
+ #else
134
+ static char *
135
+ pty_getproc(int, char *);
136
+ #endif
137
+
138
+ static void
139
+ pty_waitpid(void *);
140
+
141
+ static void
142
+ pty_after_waitpid(uv_async_t *);
143
+
144
+ static void
145
+ pty_after_close(uv_handle_t *);
146
+
147
+ #if defined(__APPLE__) || defined(__OpenBSD__)
148
+ static void
149
+ pty_posix_spawn(char** argv, char** env,
150
+ const struct termios *termp,
151
+ const struct winsize *winp,
152
+ int* master,
153
+ pid_t* pid,
154
+ int* err);
155
+ #endif
156
+
157
+ NAN_METHOD(PtyFork) {
158
+ Nan::HandleScope scope;
159
+
160
+ if (info.Length() != 11 ||
161
+ !info[0]->IsString() ||
162
+ !info[1]->IsArray() ||
163
+ !info[2]->IsArray() ||
164
+ !info[3]->IsString() ||
165
+ !info[4]->IsNumber() ||
166
+ !info[5]->IsNumber() ||
167
+ !info[6]->IsNumber() ||
168
+ !info[7]->IsNumber() ||
169
+ !info[8]->IsBoolean() ||
170
+ !info[9]->IsString() ||
171
+ !info[10]->IsFunction()) {
172
+ return Nan::ThrowError(
173
+ "Usage: pty.fork(file, args, env, cwd, cols, rows, uid, gid, utf8, helperPath, onexit)");
174
+ }
175
+
176
+ // file
177
+ Nan::Utf8String file(info[0]);
178
+
179
+ // args
180
+ v8::Local<v8::Array> argv_ = v8::Local<v8::Array>::Cast(info[1]);
181
+
182
+ // env
183
+ v8::Local<v8::Array> env_ = v8::Local<v8::Array>::Cast(info[2]);
184
+ int envc = env_->Length();
185
+ char **env = new char*[envc+1];
186
+ env[envc] = NULL;
187
+ for (int i = 0; i < envc; i++) {
188
+ Nan::Utf8String pair(Nan::Get(env_, i).ToLocalChecked());
189
+ env[i] = strdup(*pair);
190
+ }
191
+
192
+ // cwd
193
+ Nan::Utf8String cwd_(info[3]);
194
+
195
+ // size
196
+ struct winsize winp;
197
+ winp.ws_col = info[4]->IntegerValue(Nan::GetCurrentContext()).FromJust();
198
+ winp.ws_row = info[5]->IntegerValue(Nan::GetCurrentContext()).FromJust();
199
+ winp.ws_xpixel = 0;
200
+ winp.ws_ypixel = 0;
201
+
202
+ #if !defined(__APPLE__)
203
+ // uid / gid
204
+ int uid = info[6]->IntegerValue(Nan::GetCurrentContext()).FromJust();
205
+ int gid = info[7]->IntegerValue(Nan::GetCurrentContext()).FromJust();
206
+ #endif
207
+
208
+ // termios
209
+ struct termios t = termios();
210
+ struct termios *term = &t;
211
+ term->c_iflag = ICRNL | IXON | IXANY | IMAXBEL | BRKINT;
212
+ if (Nan::To<bool>(info[8]).FromJust()) {
213
+ #if defined(IUTF8)
214
+ term->c_iflag |= IUTF8;
215
+ #endif
216
+ }
217
+ term->c_oflag = OPOST | ONLCR;
218
+ term->c_cflag = CREAD | CS8 | HUPCL;
219
+ term->c_lflag = ICANON | ISIG | IEXTEN | ECHO | ECHOE | ECHOK | ECHOKE | ECHOCTL;
220
+
221
+ term->c_cc[VEOF] = 4;
222
+ term->c_cc[VEOL] = -1;
223
+ term->c_cc[VEOL2] = -1;
224
+ term->c_cc[VERASE] = 0x7f;
225
+ term->c_cc[VWERASE] = 23;
226
+ term->c_cc[VKILL] = 21;
227
+ term->c_cc[VREPRINT] = 18;
228
+ term->c_cc[VINTR] = 3;
229
+ term->c_cc[VQUIT] = 0x1c;
230
+ term->c_cc[VSUSP] = 26;
231
+ term->c_cc[VSTART] = 17;
232
+ term->c_cc[VSTOP] = 19;
233
+ term->c_cc[VLNEXT] = 22;
234
+ term->c_cc[VDISCARD] = 15;
235
+ term->c_cc[VMIN] = 1;
236
+ term->c_cc[VTIME] = 0;
237
+
238
+ #if (__APPLE__)
239
+ term->c_cc[VDSUSP] = 25;
240
+ term->c_cc[VSTATUS] = 20;
241
+ #endif
242
+
243
+ cfsetispeed(term, B38400);
244
+ cfsetospeed(term, B38400);
245
+
246
+ // helperPath
247
+ Nan::Utf8String helper_path(info[9]);
248
+
249
+ pid_t pid;
250
+ int master;
251
+ #if defined(__APPLE__)
252
+ int argc = argv_->Length();
253
+ int argl = argc + 4;
254
+ char **argv = new char*[argl];
255
+ argv[0] = strdup(*helper_path);
256
+ argv[1] = strdup(*cwd_);
257
+ argv[2] = strdup(*file);
258
+ argv[argl - 1] = NULL;
259
+ for (int i = 0; i < argc; i++) {
260
+ Nan::Utf8String arg(Nan::Get(argv_, i).ToLocalChecked());
261
+ argv[i + 3] = strdup(*arg);
262
+ }
263
+
264
+ int err = -1;
265
+ pty_posix_spawn(argv, env, term, &winp, &master, &pid, &err);
266
+ if (err != 0) {
267
+ Nan::ThrowError("posix_spawnp failed.");
268
+ goto done;
269
+ }
270
+ if (pty_nonblock(master) == -1) {
271
+ Nan::ThrowError("Could not set master fd to nonblocking.");
272
+ goto done;
273
+ }
274
+ #else
275
+ int argc = argv_->Length();
276
+ int argl = argc + 2;
277
+ char **argv = new char*[argl];
278
+ argv[0] = strdup(*file);
279
+ argv[argl - 1] = NULL;
280
+ for (int i = 0; i < argc; i++) {
281
+ Nan::Utf8String arg(Nan::Get(argv_, i).ToLocalChecked());
282
+ argv[i + 1] = strdup(*arg);
283
+ }
284
+
285
+ char* cwd = strdup(*cwd_);
286
+ sigset_t newmask, oldmask;
287
+ struct sigaction sig_action;
288
+ // temporarily block all signals
289
+ // this is needed due to a race condition in openpty
290
+ // and to avoid running signal handlers in the child
291
+ // before exec* happened
292
+ sigfillset(&newmask);
293
+ pthread_sigmask(SIG_SETMASK, &newmask, &oldmask);
294
+
295
+ pid = forkpty(&master, nullptr, static_cast<termios*>(term), static_cast<winsize*>(&winp));
296
+
297
+ if (!pid) {
298
+ // remove all signal handler from child
299
+ sig_action.sa_handler = SIG_DFL;
300
+ sig_action.sa_flags = 0;
301
+ sigemptyset(&sig_action.sa_mask);
302
+ for (int i = 0 ; i < NSIG ; i++) { // NSIG is a macro for all signals + 1
303
+ sigaction(i, &sig_action, NULL);
304
+ }
305
+ } else {
306
+ for (int i = 0; i < argl; i++) free(argv[i]);
307
+ delete[] argv;
308
+
309
+ for (int i = 0; i < envc; i++) free(env[i]);
310
+ delete[] env;
311
+
312
+ free(cwd);
313
+ }
314
+
315
+ // reenable signals
316
+ pthread_sigmask(SIG_SETMASK, &oldmask, NULL);
317
+
318
+ switch (pid) {
319
+ case -1:
320
+ Nan::ThrowError("forkpty(3) failed.");
321
+ goto done;
322
+ case 0:
323
+ if (strlen(cwd)) {
324
+ if (chdir(cwd) == -1) {
325
+ perror("chdir(2) failed.");
326
+ _exit(1);
327
+ }
328
+ }
329
+
330
+ if (uid != -1 && gid != -1) {
331
+ if (setgid(gid) == -1) {
332
+ perror("setgid(2) failed.");
333
+ _exit(1);
334
+ }
335
+ if (setuid(uid) == -1) {
336
+ perror("setuid(2) failed.");
337
+ _exit(1);
338
+ }
339
+ }
340
+
341
+ {
342
+ char **old = environ;
343
+ environ = env;
344
+ execvp(argv[0], argv);
345
+ environ = old;
346
+ perror("execvp(3) failed.");
347
+ _exit(1);
348
+ }
349
+ default:
350
+ if (pty_nonblock(master) == -1) {
351
+ Nan::ThrowError("Could not set master fd to nonblocking.");
352
+ goto done;
353
+ }
354
+ }
355
+ #endif
356
+
357
+ {
358
+ v8::Local<v8::Object> obj = Nan::New<v8::Object>();
359
+ Nan::Set(obj,
360
+ Nan::New<v8::String>("fd").ToLocalChecked(),
361
+ Nan::New<v8::Number>(master));
362
+ Nan::Set(obj,
363
+ Nan::New<v8::String>("pid").ToLocalChecked(),
364
+ Nan::New<v8::Number>(pid));
365
+ Nan::Set(obj,
366
+ Nan::New<v8::String>("pty").ToLocalChecked(),
367
+ Nan::New<v8::String>(ptsname(master)).ToLocalChecked());
368
+
369
+ pty_baton *baton = new pty_baton();
370
+ baton->exit_code = 0;
371
+ baton->signal_code = 0;
372
+ baton->cb.Reset(v8::Local<v8::Function>::Cast(info[10]));
373
+ baton->pid = pid;
374
+ baton->async.data = baton;
375
+
376
+ uv_async_init(uv_default_loop(), &baton->async, pty_after_waitpid);
377
+
378
+ uv_thread_create(&baton->tid, pty_waitpid, static_cast<void*>(baton));
379
+
380
+ return info.GetReturnValue().Set(obj);
381
+ }
382
+
383
+ done:
384
+ #if defined(__APPLE__)
385
+ for (int i = 0; i < argl; i++) free(argv[i]);
386
+ delete[] argv;
387
+
388
+ for (int i = 0; i < envc; i++) free(env[i]);
389
+ delete[] env;
390
+ #endif
391
+ return info.GetReturnValue().SetUndefined();
392
+ }
393
+
394
+ NAN_METHOD(PtyOpen) {
395
+ Nan::HandleScope scope;
396
+
397
+ if (info.Length() != 2 ||
398
+ !info[0]->IsNumber() ||
399
+ !info[1]->IsNumber()) {
400
+ return Nan::ThrowError("Usage: pty.open(cols, rows)");
401
+ }
402
+
403
+ // size
404
+ struct winsize winp;
405
+ winp.ws_col = info[0]->IntegerValue(Nan::GetCurrentContext()).FromJust();
406
+ winp.ws_row = info[1]->IntegerValue(Nan::GetCurrentContext()).FromJust();
407
+ winp.ws_xpixel = 0;
408
+ winp.ws_ypixel = 0;
409
+
410
+ // pty
411
+ int master, slave;
412
+ int ret = openpty(&master, &slave, nullptr, NULL, static_cast<winsize*>(&winp));
413
+
414
+ if (ret == -1) {
415
+ return Nan::ThrowError("openpty(3) failed.");
416
+ }
417
+
418
+ if (pty_nonblock(master) == -1) {
419
+ return Nan::ThrowError("Could not set master fd to nonblocking.");
420
+ }
421
+
422
+ if (pty_nonblock(slave) == -1) {
423
+ return Nan::ThrowError("Could not set slave fd to nonblocking.");
424
+ }
425
+
426
+ v8::Local<v8::Object> obj = Nan::New<v8::Object>();
427
+ Nan::Set(obj,
428
+ Nan::New<v8::String>("master").ToLocalChecked(),
429
+ Nan::New<v8::Number>(master));
430
+ Nan::Set(obj,
431
+ Nan::New<v8::String>("slave").ToLocalChecked(),
432
+ Nan::New<v8::Number>(slave));
433
+ Nan::Set(obj,
434
+ Nan::New<v8::String>("pty").ToLocalChecked(),
435
+ Nan::New<v8::String>(ptsname(master)).ToLocalChecked());
436
+
437
+ return info.GetReturnValue().Set(obj);
438
+ }
439
+
440
+ NAN_METHOD(PtyResize) {
441
+ Nan::HandleScope scope;
442
+
443
+ if (info.Length() != 3 ||
444
+ !info[0]->IsNumber() ||
445
+ !info[1]->IsNumber() ||
446
+ !info[2]->IsNumber()) {
447
+ return Nan::ThrowError("Usage: pty.resize(fd, cols, rows)");
448
+ }
449
+
450
+ int fd = info[0]->IntegerValue(Nan::GetCurrentContext()).FromJust();
451
+
452
+ struct winsize winp;
453
+ winp.ws_col = info[1]->IntegerValue(Nan::GetCurrentContext()).FromJust();
454
+ winp.ws_row = info[2]->IntegerValue(Nan::GetCurrentContext()).FromJust();
455
+ winp.ws_xpixel = 0;
456
+ winp.ws_ypixel = 0;
457
+
458
+ if (ioctl(fd, TIOCSWINSZ, &winp) == -1) {
459
+ switch (errno) {
460
+ case EBADF: return Nan::ThrowError("ioctl(2) failed, EBADF");
461
+ case EFAULT: return Nan::ThrowError("ioctl(2) failed, EFAULT");
462
+ case EINVAL: return Nan::ThrowError("ioctl(2) failed, EINVAL");
463
+ case ENOTTY: return Nan::ThrowError("ioctl(2) failed, ENOTTY");
464
+ }
465
+ return Nan::ThrowError("ioctl(2) failed");
466
+ }
467
+
468
+ return info.GetReturnValue().SetUndefined();
469
+ }
470
+
471
+ /**
472
+ * Foreground Process Name
473
+ */
474
+ NAN_METHOD(PtyGetProc) {
475
+ Nan::HandleScope scope;
476
+
477
+ #if defined(__APPLE__)
478
+ if (info.Length() != 1 ||
479
+ !info[0]->IsNumber()) {
480
+ return Nan::ThrowError("Usage: pty.process(pid)");
481
+ }
482
+
483
+ int pid = info[0]->IntegerValue(Nan::GetCurrentContext()).FromJust();
484
+ char *name = pty_getproc(pid);
485
+ #else
486
+ if (info.Length() != 2 ||
487
+ !info[0]->IsNumber() ||
488
+ !info[1]->IsString()) {
489
+ return Nan::ThrowError("Usage: pty.process(fd, tty)");
490
+ }
491
+
492
+ int fd = info[0]->IntegerValue(Nan::GetCurrentContext()).FromJust();
493
+
494
+ Nan::Utf8String tty_(info[1]);
495
+ char *tty = strdup(*tty_);
496
+ char *name = pty_getproc(fd, tty);
497
+ free(tty);
498
+ #endif
499
+
500
+ if (name == NULL) {
501
+ return info.GetReturnValue().SetUndefined();
502
+ }
503
+
504
+ v8::Local<v8::String> name_ = Nan::New<v8::String>(name).ToLocalChecked();
505
+ free(name);
506
+ return info.GetReturnValue().Set(name_);
507
+ }
508
+
509
+ /**
510
+ * Nonblocking FD
511
+ */
512
+
513
+ static int
514
+ pty_nonblock(int fd) {
515
+ int flags = fcntl(fd, F_GETFL, 0);
516
+ if (flags == -1) return -1;
517
+ return fcntl(fd, F_SETFL, flags | O_NONBLOCK);
518
+ }
519
+
520
+ /**
521
+ * pty_waitpid
522
+ * Wait for SIGCHLD to read exit status.
523
+ */
524
+
525
+ static void
526
+ pty_waitpid(void *data) {
527
+ int ret;
528
+ int stat_loc;
529
+ pty_baton *baton = static_cast<pty_baton*>(data);
530
+ errno = 0;
531
+ #if defined(__APPLE__)
532
+ // Based on
533
+ // https://source.chromium.org/chromium/chromium/src/+/main:base/process/kill_mac.cc;l=35-69?
534
+ int kq = HANDLE_EINTR(kqueue());
535
+ struct kevent change = {0};
536
+ EV_SET(&change, baton->pid, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, NULL);
537
+ ret = HANDLE_EINTR(kevent(kq, &change, 1, NULL, 0, NULL));
538
+ if (ret == -1) {
539
+ if (errno == ESRCH) {
540
+ // At this point, one of the following has occurred:
541
+ // 1. The process has died but has not yet been reaped.
542
+ // 2. The process has died and has already been reaped.
543
+ // 3. The process is in the process of dying. It's no longer
544
+ // kqueueable, but it may not be waitable yet either. Mark calls
545
+ // this case the "zombie death race".
546
+ ret = HANDLE_EINTR(waitpid(baton->pid, &stat_loc, WNOHANG));
547
+ if (ret == 0) {
548
+ ret = kill(baton->pid, SIGKILL);
549
+ if (ret != -1) {
550
+ HANDLE_EINTR(waitpid(baton->pid, &stat_loc, 0));
551
+ }
552
+ }
553
+ }
554
+ } else {
555
+ struct kevent event = {0};
556
+ ret = HANDLE_EINTR(kevent(kq, NULL, 0, &event, 1, NULL));
557
+ if (ret == 1) {
558
+ if ((event.fflags & NOTE_EXIT) &&
559
+ (event.ident == static_cast<uintptr_t>(baton->pid))) {
560
+ // The process is dead or dying. This won't block for long, if at
561
+ // all.
562
+ HANDLE_EINTR(waitpid(baton->pid, &stat_loc, 0));
563
+ }
564
+ }
565
+ }
566
+ #else
567
+ if ((ret = waitpid(baton->pid, &stat_loc, 0)) != baton->pid) {
568
+ if (ret == -1 && errno == EINTR) {
569
+ return pty_waitpid(baton);
570
+ }
571
+ if (ret == -1 && errno == ECHILD) {
572
+ // XXX node v0.8.x seems to have this problem.
573
+ // waitpid is already handled elsewhere.
574
+ ;
575
+ } else {
576
+ assert(false);
577
+ }
578
+ }
579
+ #endif
580
+
581
+ if (WIFEXITED(stat_loc)) {
582
+ baton->exit_code = WEXITSTATUS(stat_loc); // errno?
583
+ }
584
+
585
+ if (WIFSIGNALED(stat_loc)) {
586
+ baton->signal_code = WTERMSIG(stat_loc);
587
+ }
588
+
589
+ uv_async_send(&baton->async);
590
+ }
591
+
592
+ /**
593
+ * pty_after_waitpid
594
+ * Callback after exit status has been read.
595
+ */
596
+
597
+ static void
598
+ pty_after_waitpid(uv_async_t *async) {
599
+ Nan::HandleScope scope;
600
+ pty_baton *baton = static_cast<pty_baton*>(async->data);
601
+
602
+ v8::Local<v8::Value> argv[] = {
603
+ Nan::New<v8::Integer>(baton->exit_code),
604
+ Nan::New<v8::Integer>(baton->signal_code),
605
+ };
606
+
607
+ v8::Local<v8::Function> cb = Nan::New<v8::Function>(baton->cb);
608
+ baton->cb.Reset();
609
+ memset(&baton->cb, -1, sizeof(baton->cb));
610
+ Nan::AsyncResource resource("pty_after_waitpid");
611
+ resource.runInAsyncScope(Nan::GetCurrentContext()->Global(), cb, 2, argv);
612
+
613
+ uv_close((uv_handle_t *)async, pty_after_close);
614
+ }
615
+
616
+ /**
617
+ * pty_after_close
618
+ * uv_close() callback - free handle data
619
+ */
620
+
621
+ static void
622
+ pty_after_close(uv_handle_t *handle) {
623
+ uv_async_t *async = (uv_async_t *)handle;
624
+ pty_baton *baton = static_cast<pty_baton*>(async->data);
625
+ delete baton;
626
+ }
627
+
628
+ /**
629
+ * pty_getproc
630
+ * Taken from tmux.
631
+ */
632
+
633
+ // Taken from: tmux (http://tmux.sourceforge.net/)
634
+ // Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
635
+ // Copyright (c) 2009 Joshua Elsasser <josh@elsasser.org>
636
+ // Copyright (c) 2009 Todd Carson <toc@daybefore.net>
637
+ //
638
+ // Permission to use, copy, modify, and distribute this software for any
639
+ // purpose with or without fee is hereby granted, provided that the above
640
+ // copyright notice and this permission notice appear in all copies.
641
+ //
642
+ // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
643
+ // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
644
+ // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
645
+ // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
646
+ // WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
647
+ // IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
648
+ // OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
649
+
650
+ #if defined(__linux__)
651
+
652
+ static char *
653
+ pty_getproc(int fd, char *tty) {
654
+ FILE *f;
655
+ char *path, *buf;
656
+ size_t len;
657
+ int ch;
658
+ pid_t pgrp;
659
+ int r;
660
+
661
+ if ((pgrp = tcgetpgrp(fd)) == -1) {
662
+ return NULL;
663
+ }
664
+
665
+ r = asprintf(&path, "/proc/%lld/cmdline", (long long)pgrp);
666
+ if (r == -1 || path == NULL) return NULL;
667
+
668
+ if ((f = fopen(path, "r")) == NULL) {
669
+ free(path);
670
+ return NULL;
671
+ }
672
+
673
+ free(path);
674
+
675
+ len = 0;
676
+ buf = NULL;
677
+ while ((ch = fgetc(f)) != EOF) {
678
+ if (ch == '\0') break;
679
+ buf = (char *)realloc(buf, len + 2);
680
+ if (buf == NULL) return NULL;
681
+ buf[len++] = ch;
682
+ }
683
+
684
+ if (buf != NULL) {
685
+ buf[len] = '\0';
686
+ }
687
+
688
+ fclose(f);
689
+ return buf;
690
+ }
691
+
692
+ #elif defined(__APPLE__)
693
+
694
+ static char *
695
+ pty_getproc(int pid) {
696
+ char pname[MAXCOMLEN + 1];
697
+ if (!proc_name(pid, pname, sizeof(pname))) {
698
+ return NULL;
699
+ }
700
+
701
+ return strdup(pname);
702
+ }
703
+
704
+ #else
705
+
706
+ static char *
707
+ pty_getproc(int fd, char *tty) {
708
+ return NULL;
709
+ }
710
+
711
+ #endif
712
+
713
+ #if defined(__APPLE__)
714
+ static void
715
+ pty_posix_spawn(char** argv, char** env,
716
+ const struct termios *termp,
717
+ const struct winsize *winp,
718
+ int* master,
719
+ pid_t* pid,
720
+ int* err) {
721
+ int low_fds[3];
722
+ size_t count = 0;
723
+
724
+ for (; count < 3; count++) {
725
+ low_fds[count] = posix_openpt(O_RDWR);
726
+ if (low_fds[count] >= STDERR_FILENO)
727
+ break;
728
+ }
729
+
730
+ int flags = POSIX_SPAWN_CLOEXEC_DEFAULT |
731
+ POSIX_SPAWN_SETSIGDEF |
732
+ POSIX_SPAWN_SETSIGMASK |
733
+ POSIX_SPAWN_SETSID;
734
+ *master = posix_openpt(O_RDWR);
735
+ if (*master == -1) {
736
+ return;
737
+ }
738
+
739
+ int res = grantpt(*master) || unlockpt(*master);
740
+ if (res == -1) {
741
+ return;
742
+ }
743
+
744
+ // Use TIOCPTYGNAME instead of ptsname() to avoid threading problems.
745
+ int slave;
746
+ char slave_pty_name[128];
747
+ res = ioctl(*master, TIOCPTYGNAME, slave_pty_name);
748
+ if (res == -1) {
749
+ return;
750
+ }
751
+
752
+ slave = open(slave_pty_name, O_RDWR | O_NOCTTY);
753
+ if (slave == -1) {
754
+ return;
755
+ }
756
+
757
+ if (termp) {
758
+ res = tcsetattr(slave, TCSANOW, termp);
759
+ if (res == -1) {
760
+ return;
761
+ };
762
+ }
763
+
764
+ if (winp) {
765
+ res = ioctl(slave, TIOCSWINSZ, winp);
766
+ if (res == -1) {
767
+ return;
768
+ }
769
+ }
770
+
771
+ posix_spawn_file_actions_t acts;
772
+ posix_spawn_file_actions_init(&acts);
773
+ posix_spawn_file_actions_adddup2(&acts, slave, STDIN_FILENO);
774
+ posix_spawn_file_actions_adddup2(&acts, slave, STDOUT_FILENO);
775
+ posix_spawn_file_actions_adddup2(&acts, slave, STDERR_FILENO);
776
+ posix_spawn_file_actions_addclose(&acts, slave);
777
+ posix_spawn_file_actions_addclose(&acts, *master);
778
+
779
+ posix_spawnattr_t attrs;
780
+ posix_spawnattr_init(&attrs);
781
+ *err = posix_spawnattr_setflags(&attrs, flags);
782
+ if (*err != 0) {
783
+ goto done;
784
+ }
785
+
786
+ sigset_t signal_set;
787
+ /* Reset all signal the child to their default behavior */
788
+ sigfillset(&signal_set);
789
+ *err = posix_spawnattr_setsigdefault(&attrs, &signal_set);
790
+ if (*err != 0) {
791
+ goto done;
792
+ }
793
+
794
+ /* Reset the signal mask for all signals */
795
+ sigemptyset(&signal_set);
796
+ *err = posix_spawnattr_setsigmask(&attrs, &signal_set);
797
+ if (*err != 0) {
798
+ goto done;
799
+ }
800
+
801
+ do
802
+ *err = posix_spawn(pid, argv[0], &acts, &attrs, argv, env);
803
+ while (*err == EINTR);
804
+ done:
805
+ posix_spawn_file_actions_destroy(&acts);
806
+ posix_spawnattr_destroy(&attrs);
807
+
808
+ for (; count > 0; count--) {
809
+ close(low_fds[count]);
810
+ }
811
+ }
812
+ #endif
813
+
814
+ /**
815
+ * Init
816
+ */
817
+
818
+ NAN_MODULE_INIT(init) {
819
+ Nan::HandleScope scope;
820
+ Nan::Export(target, "fork", PtyFork);
821
+ Nan::Export(target, "open", PtyOpen);
822
+ Nan::Export(target, "resize", PtyResize);
823
+ Nan::Export(target, "process", PtyGetProc);
824
+ }
825
+
826
+ NODE_MODULE(pty, init)