@plurnk/plurnk-service 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/SPEC.md +116 -83
  2. package/bin/plurnk-service.ts +132 -0
  3. package/dist/Paths.d.ts +8 -0
  4. package/dist/Paths.d.ts.map +1 -0
  5. package/dist/Paths.js +47 -0
  6. package/dist/Paths.js.map +1 -0
  7. package/dist/content/index.d.ts +9 -0
  8. package/dist/content/index.d.ts.map +1 -0
  9. package/dist/content/index.js +10 -0
  10. package/dist/content/index.js.map +1 -0
  11. package/dist/content/line-marker.d.ts +26 -0
  12. package/dist/content/line-marker.d.ts.map +1 -0
  13. package/dist/content/line-marker.js +323 -0
  14. package/dist/content/line-marker.js.map +1 -0
  15. package/dist/content/matcher.d.ts +15 -0
  16. package/dist/content/matcher.d.ts.map +1 -0
  17. package/dist/content/matcher.js +112 -0
  18. package/dist/content/matcher.js.map +1 -0
  19. package/dist/content/mimetype-binary.d.ts +9 -0
  20. package/dist/content/mimetype-binary.d.ts.map +1 -0
  21. package/dist/content/mimetype-binary.js +86 -0
  22. package/dist/content/mimetype-binary.js.map +1 -0
  23. package/dist/content/path-mimetype.d.ts +6 -0
  24. package/dist/content/path-mimetype.d.ts.map +1 -0
  25. package/dist/content/path-mimetype.js +49 -0
  26. package/dist/content/path-mimetype.js.map +1 -0
  27. package/dist/content/read-resolve.d.ts +20 -0
  28. package/dist/content/read-resolve.d.ts.map +1 -0
  29. package/dist/content/read-resolve.js +60 -0
  30. package/dist/content/read-resolve.js.map +1 -0
  31. package/dist/core/ChannelWrite.d.ts +35 -30
  32. package/dist/core/ChannelWrite.d.ts.map +1 -1
  33. package/dist/core/ChannelWrite.js +49 -41
  34. package/dist/core/ChannelWrite.js.map +1 -1
  35. package/dist/core/Engine.d.ts +16 -10
  36. package/dist/core/Engine.d.ts.map +1 -1
  37. package/dist/core/Engine.js +309 -115
  38. package/dist/core/Engine.js.map +1 -1
  39. package/dist/core/EnvFlags.d.ts +6 -3
  40. package/dist/core/EnvFlags.d.ts.map +1 -1
  41. package/dist/core/EnvFlags.js +62 -60
  42. package/dist/core/EnvFlags.js.map +1 -1
  43. package/dist/core/ExecutorRegistry.d.ts +26 -0
  44. package/dist/core/ExecutorRegistry.d.ts.map +1 -0
  45. package/dist/core/ExecutorRegistry.js +99 -0
  46. package/dist/core/ExecutorRegistry.js.map +1 -0
  47. package/dist/core/PluginLoader.d.ts +6 -3
  48. package/dist/core/PluginLoader.d.ts.map +1 -1
  49. package/dist/core/PluginLoader.js +77 -73
  50. package/dist/core/PluginLoader.js.map +1 -1
  51. package/dist/core/ProviderInstantiate.d.ts +4 -2
  52. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  53. package/dist/core/ProviderInstantiate.js +23 -22
  54. package/dist/core/ProviderInstantiate.js.map +1 -1
  55. package/dist/core/SchemeRegistry.d.ts +1 -1
  56. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  57. package/dist/core/SchemeRegistry.js +3 -3
  58. package/dist/core/SchemeRegistry.js.map +1 -1
  59. package/dist/core/git-membership.d.ts +8 -0
  60. package/dist/core/git-membership.d.ts.map +1 -0
  61. package/dist/core/git-membership.js +125 -0
  62. package/dist/core/git-membership.js.map +1 -0
  63. package/dist/core/packet-wire.d.ts +47 -6
  64. package/dist/core/packet-wire.d.ts.map +1 -1
  65. package/dist/core/packet-wire.js +376 -312
  66. package/dist/core/packet-wire.js.map +1 -1
  67. package/dist/core/resolveForLoop.d.ts +16 -0
  68. package/dist/core/resolveForLoop.d.ts.map +1 -0
  69. package/dist/core/resolveForLoop.js +34 -0
  70. package/dist/core/resolveForLoop.js.map +1 -0
  71. package/dist/core/results.d.ts +40 -0
  72. package/dist/core/results.d.ts.map +1 -0
  73. package/dist/core/results.js +52 -0
  74. package/dist/core/results.js.map +1 -0
  75. package/dist/core/scheme-types.d.ts +7 -4
  76. package/dist/core/scheme-types.d.ts.map +1 -1
  77. package/dist/core/scheme-types.js +4 -4
  78. package/dist/core/scheme-types.js.map +1 -1
  79. package/dist/core/types.d.ts +26 -0
  80. package/dist/core/types.d.ts.map +1 -0
  81. package/dist/core/types.js +17 -0
  82. package/dist/core/types.js.map +1 -0
  83. package/dist/index.d.ts +1 -6
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +4 -43
  86. package/dist/index.js.map +1 -1
  87. package/dist/schemes/EffectPolicy.d.ts +6 -0
  88. package/dist/schemes/EffectPolicy.d.ts.map +1 -0
  89. package/dist/schemes/EffectPolicy.js +18 -0
  90. package/dist/schemes/EffectPolicy.js.map +1 -0
  91. package/dist/schemes/Exec.d.ts +1 -0
  92. package/dist/schemes/Exec.d.ts.map +1 -1
  93. package/dist/schemes/Exec.js +86 -45
  94. package/dist/schemes/Exec.js.map +1 -1
  95. package/dist/schemes/File.d.ts +0 -1
  96. package/dist/schemes/File.d.ts.map +1 -1
  97. package/dist/schemes/File.js +32 -69
  98. package/dist/schemes/File.js.map +1 -1
  99. package/dist/schemes/Known.d.ts.map +1 -1
  100. package/dist/schemes/Known.js +13 -13
  101. package/dist/schemes/Known.js.map +1 -1
  102. package/dist/schemes/Log.d.ts.map +1 -1
  103. package/dist/schemes/Log.js +8 -52
  104. package/dist/schemes/Log.js.map +1 -1
  105. package/dist/schemes/Plurnk.d.ts.map +1 -1
  106. package/dist/schemes/Plurnk.js +13 -13
  107. package/dist/schemes/Plurnk.js.map +1 -1
  108. package/dist/schemes/Skill.d.ts.map +1 -1
  109. package/dist/schemes/Skill.js +13 -13
  110. package/dist/schemes/Skill.js.map +1 -1
  111. package/dist/schemes/Unknown.d.ts.map +1 -1
  112. package/dist/schemes/Unknown.js +13 -13
  113. package/dist/schemes/Unknown.js.map +1 -1
  114. package/dist/schemes/_entry-crud.d.ts +5 -3
  115. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  116. package/dist/schemes/_entry-crud.js +55 -50
  117. package/dist/schemes/_entry-crud.js.map +1 -1
  118. package/dist/schemes/_entry-find.d.ts +10 -3
  119. package/dist/schemes/_entry-find.d.ts.map +1 -1
  120. package/dist/schemes/_entry-find.js +99 -77
  121. package/dist/schemes/_entry-find.js.map +1 -1
  122. package/dist/schemes/_entry-manifest.d.ts +6 -0
  123. package/dist/schemes/_entry-manifest.d.ts.map +1 -0
  124. package/dist/schemes/_entry-manifest.js +45 -0
  125. package/dist/schemes/_entry-manifest.js.map +1 -0
  126. package/dist/schemes/_entry-ops.d.ts +7 -4
  127. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  128. package/dist/schemes/_entry-ops.js +198 -316
  129. package/dist/schemes/_entry-ops.js.map +1 -1
  130. package/dist/schemes/_entry-send.d.ts +4 -1
  131. package/dist/schemes/_entry-send.d.ts.map +1 -1
  132. package/dist/schemes/_entry-send.js +57 -55
  133. package/dist/schemes/_entry-send.js.map +1 -1
  134. package/dist/server/ClientConnection.js +3 -3
  135. package/dist/server/ClientConnection.js.map +1 -1
  136. package/dist/server/Daemon.d.ts +5 -5
  137. package/dist/server/Daemon.d.ts.map +1 -1
  138. package/dist/server/Daemon.js +234 -176
  139. package/dist/server/Daemon.js.map +1 -1
  140. package/dist/server/clientTurn.d.ts +4 -1
  141. package/dist/server/clientTurn.d.ts.map +1 -1
  142. package/dist/server/clientTurn.js +19 -17
  143. package/dist/server/clientTurn.js.map +1 -1
  144. package/dist/server/dsl.d.ts +19 -16
  145. package/dist/server/dsl.d.ts.map +1 -1
  146. package/dist/server/dsl.js +127 -105
  147. package/dist/server/dsl.js.map +1 -1
  148. package/dist/server/envelope.d.ts +22 -19
  149. package/dist/server/envelope.d.ts.map +1 -1
  150. package/dist/server/envelope.js +116 -102
  151. package/dist/server/envelope.js.map +1 -1
  152. package/dist/server/logEntry.d.ts +4 -1
  153. package/dist/server/logEntry.d.ts.map +1 -1
  154. package/dist/server/logEntry.js +41 -39
  155. package/dist/server/logEntry.js.map +1 -1
  156. package/dist/server/methods/_dispatchAsClient.d.ts +3 -1
  157. package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
  158. package/dist/server/methods/_dispatchAsClient.js +31 -29
  159. package/dist/server/methods/_dispatchAsClient.js.map +1 -1
  160. package/dist/server/methods/discover.d.ts +3 -1
  161. package/dist/server/methods/discover.d.ts.map +1 -1
  162. package/dist/server/methods/discover.js +8 -6
  163. package/dist/server/methods/discover.js.map +1 -1
  164. package/dist/server/methods/entry_read.d.ts +4 -1
  165. package/dist/server/methods/entry_read.d.ts.map +1 -1
  166. package/dist/server/methods/entry_read.js +54 -52
  167. package/dist/server/methods/entry_read.js.map +1 -1
  168. package/dist/server/methods/log_read.d.ts +4 -1
  169. package/dist/server/methods/log_read.d.ts.map +1 -1
  170. package/dist/server/methods/log_read.js +38 -36
  171. package/dist/server/methods/log_read.js.map +1 -1
  172. package/dist/server/methods/loop_cancel.d.ts +3 -1
  173. package/dist/server/methods/loop_cancel.d.ts.map +1 -1
  174. package/dist/server/methods/loop_cancel.js +19 -17
  175. package/dist/server/methods/loop_cancel.js.map +1 -1
  176. package/dist/server/methods/loop_resolve.d.ts +3 -1
  177. package/dist/server/methods/loop_resolve.d.ts.map +1 -1
  178. package/dist/server/methods/loop_resolve.js +42 -40
  179. package/dist/server/methods/loop_resolve.js.map +1 -1
  180. package/dist/server/methods/loop_run.d.ts +3 -1
  181. package/dist/server/methods/loop_run.d.ts.map +1 -1
  182. package/dist/server/methods/loop_run.js +104 -102
  183. package/dist/server/methods/loop_run.js.map +1 -1
  184. package/dist/server/methods/op_copy.d.ts +3 -1
  185. package/dist/server/methods/op_copy.d.ts.map +1 -1
  186. package/dist/server/methods/op_copy.js +25 -23
  187. package/dist/server/methods/op_copy.js.map +1 -1
  188. package/dist/server/methods/op_dispatch.d.ts +3 -1
  189. package/dist/server/methods/op_dispatch.d.ts.map +1 -1
  190. package/dist/server/methods/op_dispatch.js +18 -16
  191. package/dist/server/methods/op_dispatch.js.map +1 -1
  192. package/dist/server/methods/op_edit.d.ts +3 -1
  193. package/dist/server/methods/op_edit.d.ts.map +1 -1
  194. package/dist/server/methods/op_edit.js +23 -21
  195. package/dist/server/methods/op_edit.js.map +1 -1
  196. package/dist/server/methods/op_exec.d.ts +3 -1
  197. package/dist/server/methods/op_exec.d.ts.map +1 -1
  198. package/dist/server/methods/op_exec.js +20 -18
  199. package/dist/server/methods/op_exec.js.map +1 -1
  200. package/dist/server/methods/op_find.d.ts +3 -1
  201. package/dist/server/methods/op_find.d.ts.map +1 -1
  202. package/dist/server/methods/op_find.js +23 -21
  203. package/dist/server/methods/op_find.js.map +1 -1
  204. package/dist/server/methods/op_hide.d.ts +3 -1
  205. package/dist/server/methods/op_hide.d.ts.map +1 -1
  206. package/dist/server/methods/op_hide.js +23 -21
  207. package/dist/server/methods/op_hide.js.map +1 -1
  208. package/dist/server/methods/op_move.d.ts +3 -1
  209. package/dist/server/methods/op_move.d.ts.map +1 -1
  210. package/dist/server/methods/op_move.js +23 -21
  211. package/dist/server/methods/op_move.js.map +1 -1
  212. package/dist/server/methods/op_parse.d.ts +3 -1
  213. package/dist/server/methods/op_parse.d.ts.map +1 -1
  214. package/dist/server/methods/op_parse.js +24 -22
  215. package/dist/server/methods/op_parse.js.map +1 -1
  216. package/dist/server/methods/op_read.d.ts +3 -1
  217. package/dist/server/methods/op_read.d.ts.map +1 -1
  218. package/dist/server/methods/op_read.js +23 -21
  219. package/dist/server/methods/op_read.js.map +1 -1
  220. package/dist/server/methods/op_send.d.ts +3 -1
  221. package/dist/server/methods/op_send.d.ts.map +1 -1
  222. package/dist/server/methods/op_send.js +22 -20
  223. package/dist/server/methods/op_send.js.map +1 -1
  224. package/dist/server/methods/op_show.d.ts +3 -1
  225. package/dist/server/methods/op_show.d.ts.map +1 -1
  226. package/dist/server/methods/op_show.js +23 -21
  227. package/dist/server/methods/op_show.js.map +1 -1
  228. package/dist/server/methods/ping.d.ts +3 -1
  229. package/dist/server/methods/ping.d.ts.map +1 -1
  230. package/dist/server/methods/ping.js +8 -6
  231. package/dist/server/methods/ping.js.map +1 -1
  232. package/dist/server/methods/providers_list.d.ts +3 -1
  233. package/dist/server/methods/providers_list.d.ts.map +1 -1
  234. package/dist/server/methods/providers_list.js +19 -17
  235. package/dist/server/methods/providers_list.js.map +1 -1
  236. package/dist/server/methods/session_attach.d.ts +3 -1
  237. package/dist/server/methods/session_attach.d.ts.map +1 -1
  238. package/dist/server/methods/session_attach.js +43 -41
  239. package/dist/server/methods/session_attach.js.map +1 -1
  240. package/dist/server/methods/session_create.d.ts +3 -1
  241. package/dist/server/methods/session_create.d.ts.map +1 -1
  242. package/dist/server/methods/session_create.js +51 -49
  243. package/dist/server/methods/session_create.js.map +1 -1
  244. package/dist/server/methods/session_list.d.ts +3 -1
  245. package/dist/server/methods/session_list.d.ts.map +1 -1
  246. package/dist/server/methods/session_list.js +9 -7
  247. package/dist/server/methods/session_list.js.map +1 -1
  248. package/dist/server/methods/session_runs.d.ts +3 -1
  249. package/dist/server/methods/session_runs.d.ts.map +1 -1
  250. package/dist/server/methods/session_runs.js +19 -17
  251. package/dist/server/methods/session_runs.js.map +1 -1
  252. package/dist/server/methods/session_set_persona.d.ts +3 -1
  253. package/dist/server/methods/session_set_persona.d.ts.map +1 -1
  254. package/dist/server/methods/session_set_persona.js +28 -26
  255. package/dist/server/methods/session_set_persona.js.map +1 -1
  256. package/dist/server/methods/session_set_root.d.ts +3 -1
  257. package/dist/server/methods/session_set_root.d.ts.map +1 -1
  258. package/dist/server/methods/session_set_root.js +31 -29
  259. package/dist/server/methods/session_set_root.js.map +1 -1
  260. package/dist/server/noProposals.d.ts +6 -0
  261. package/dist/server/noProposals.d.ts.map +1 -0
  262. package/dist/server/noProposals.js +37 -0
  263. package/dist/server/noProposals.js.map +1 -0
  264. package/dist/server/yolo.d.ts +3 -1
  265. package/dist/server/yolo.d.ts.map +1 -1
  266. package/dist/server/yolo.js +15 -13
  267. package/dist/server/yolo.js.map +1 -1
  268. package/package.json +71 -32
  269. package/bin/plurnk-service.js +0 -112
  270. /package/migrations/{001_schema.sql → 0000-00-00.01_schema.sql} +0 -0
@@ -1,42 +1,44 @@
1
- import { attachToSession } from "../envelope.js";
2
- export const register = (registry) => {
3
- registry.registerMethod("session.attach", {
4
- handler: async (params, ctx) => {
5
- if (ctx.session !== null) {
6
- throw new Error("connection already has a session attached");
7
- }
8
- const p = (params ?? {});
9
- if (typeof p.id !== "number") {
10
- throw new Error("session.attach requires params.id: number");
11
- }
12
- if (p.runId !== undefined && typeof p.runId !== "number") {
13
- throw new Error("session.attach: runId must be a number");
14
- }
15
- if (p.runName !== undefined && (typeof p.runName !== "string" || p.runName.length === 0)) {
16
- throw new Error("session.attach: runName must be a non-empty string");
17
- }
18
- const persona = p.persona ?? null;
19
- if (persona !== null && typeof persona !== "string") {
20
- throw new Error("session.attach: persona must be a string or null");
21
- }
22
- const envelope = await attachToSession(ctx.db, p.id, { runId: p.runId, runName: p.runName, persona });
23
- ctx.attachSession(envelope);
24
- return {
25
- id: envelope.sessionId,
26
- name: envelope.sessionName,
27
- sessionPersona: envelope.sessionPersona,
28
- runId: envelope.runId,
29
- runName: envelope.runName,
30
- runPersona: envelope.runPersona,
31
- };
32
- },
33
- description: "Attach this connection to an existing session. Optionally resume an existing run by id or name; otherwise creates a fresh run. The persona param sets run-level persona ONLY when a new run is created (reusing an existing run preserves its stored persona; use session.set_persona for session-level changes).",
34
- params: {
35
- id: "number — session id to attach to",
36
- runId: "number?resume the run with this id (must belong to the session)",
37
- runName: "string? — resume the run with this name within the session; create if absent",
38
- persona: "string? — run-level persona (text/markdown); applied to a NEWLY created run only",
39
- },
40
- });
41
- };
1
+ import Envelope from "../envelope.js";
2
+ export default class SessionAttachMethod {
3
+ static register(registry) {
4
+ registry.registerMethod("session.attach", {
5
+ handler: async (params, ctx) => {
6
+ if (ctx.session !== null) {
7
+ throw new Error("connection already has a session attached");
8
+ }
9
+ const p = params;
10
+ if (typeof p.id !== "number") {
11
+ throw new Error("session.attach requires params.id: number");
12
+ }
13
+ if (p.runId !== undefined && typeof p.runId !== "number") {
14
+ throw new Error("session.attach: runId must be a number");
15
+ }
16
+ if (p.runName !== undefined && (typeof p.runName !== "string" || p.runName.length === 0)) {
17
+ throw new Error("session.attach: runName must be a non-empty string");
18
+ }
19
+ const persona = p.persona ?? null;
20
+ if (persona !== null && typeof persona !== "string") {
21
+ throw new Error("session.attach: persona must be a string or null");
22
+ }
23
+ const envelope = await Envelope.attachToSession(ctx.db, p.id, { runId: p.runId, runName: p.runName, persona });
24
+ ctx.attachSession(envelope);
25
+ return {
26
+ id: envelope.sessionId,
27
+ name: envelope.sessionName,
28
+ sessionPersona: envelope.sessionPersona,
29
+ runId: envelope.runId,
30
+ runName: envelope.runName,
31
+ runPersona: envelope.runPersona,
32
+ };
33
+ },
34
+ description: "Attach this connection to an existing session. Optionally resume an existing run by id or name; otherwise creates a fresh run. The persona param sets run-level persona ONLY when a new run is created (reusing an existing run preserves its stored persona; use session.set_persona for session-level changes).",
35
+ params: {
36
+ id: "number — session id to attach to",
37
+ runId: "number? — resume the run with this id (must belong to the session)",
38
+ runName: "string? — resume the run with this name within the session; create if absent",
39
+ persona: "string? — run-level persona (text/markdown); applied to a NEWLY created run only",
40
+ },
41
+ });
42
+ }
43
+ }
42
44
  //# sourceMappingURL=session_attach.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_attach.js","sourceRoot":"","sources":["../../../src/server/methods/session_attach.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;QACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA8E,CAAC;YACtG,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvF,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;YAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACtG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5B,OAAO;gBACH,EAAE,EAAE,QAAQ,CAAC,SAAS;gBACtB,IAAI,EAAE,QAAQ,CAAC,WAAW;gBAC1B,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;aAClC,CAAC;QACN,CAAC;QACD,WAAW,EAAE,mTAAmT;QAChU,MAAM,EAAE;YACJ,EAAE,EAAE,kCAAkC;YACtC,KAAK,EAAE,oEAAoE;YAC3E,OAAO,EAAE,8EAA8E;YACvF,OAAO,EAAE,kFAAkF;SAC9F;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"session_attach.js","sourceRoot":"","sources":["../../../src/server/methods/session_attach.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,CAAC,GAAG,MAAmF,CAAC;gBAC9F,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBACvF,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/G,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO;oBACH,EAAE,EAAE,QAAQ,CAAC,SAAS;oBACtB,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAC1B,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAClC,CAAC;YACN,CAAC;YACD,WAAW,EAAE,mTAAmT;YAChU,MAAM,EAAE;gBACJ,EAAE,EAAE,kCAAkC;gBACtC,KAAK,EAAE,oEAAoE;gBAC3E,OAAO,EAAE,8EAA8E;gBACvF,OAAO,EAAE,kFAAkF;aAC9F;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class SessionCreateMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=session_create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_create.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAkDnD,CAAC"}
1
+ {"version":3,"file":"session_create.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAmDlD"}
@@ -1,53 +1,55 @@
1
1
  import { isAbsolute } from "node:path";
2
- import { createClientEnvelope } from "../envelope.js";
3
- export const register = (registry) => {
4
- registry.registerMethod("session.create", {
5
- handler: async (params, ctx) => {
6
- if (ctx.session !== null) {
7
- throw new Error("connection already has a session attached");
8
- }
9
- const p = (params ?? {});
10
- const projectRoot = p.projectRoot ?? null;
11
- if (projectRoot !== null) {
12
- if (typeof projectRoot !== "string" || projectRoot.length === 0) {
13
- throw new Error("session.create: projectRoot must be a non-empty string or null");
2
+ import Envelope from "../envelope.js";
3
+ export default class SessionCreateMethod {
4
+ static register(registry) {
5
+ registry.registerMethod("session.create", {
6
+ handler: async (params, ctx) => {
7
+ if (ctx.session !== null) {
8
+ throw new Error("connection already has a session attached");
14
9
  }
15
- if (!isAbsolute(projectRoot)) {
16
- throw new Error("session.create: projectRoot must be an absolute path");
10
+ const p = params;
11
+ const projectRoot = p.projectRoot ?? null;
12
+ if (projectRoot !== null) {
13
+ if (typeof projectRoot !== "string" || projectRoot.length === 0) {
14
+ throw new Error("session.create: projectRoot must be a non-empty string or null");
15
+ }
16
+ if (!isAbsolute(projectRoot)) {
17
+ throw new Error("session.create: projectRoot must be an absolute path");
18
+ }
17
19
  }
18
- }
19
- const persona = p.persona ?? null;
20
- if (persona !== null && typeof persona !== "string") {
21
- throw new Error("session.create: persona must be a string or null");
22
- }
23
- const envelope = await createClientEnvelope(ctx.db, { name: p.name, projectRoot, persona });
24
- ctx.attachSession(envelope);
25
- ctx.notify("all", "session/created", {
26
- id: envelope.sessionId,
27
- name: envelope.sessionName,
28
- projectRoot: envelope.projectRoot,
29
- persona: envelope.sessionPersona,
30
- });
31
- return {
32
- id: envelope.sessionId, name: envelope.sessionName,
33
- projectRoot: envelope.projectRoot, persona: envelope.sessionPersona,
34
- };
35
- },
36
- description: "Create a new session and attach this connection to it. Optionally pin the session to a workspace via projectRoot, and/or set a session-level persona (text/markdown injected into packet.system.persona). Per-run and per-loop overrides may further refine the persona.",
37
- params: {
38
- name: "string? — session name (auto-generated if omitted)",
39
- projectRoot: "string? — absolute path to the client's workspace; null/omitted = headless mode (no disk side-effects on file ops)",
40
- persona: "string? — session-level persona (text/markdown); cascades as: loops.persona > runs.persona > sessions.persona > PLURNK_PERSONA file",
41
- },
42
- });
43
- registry.registerNotification("session/created", {
44
- description: "A new session has been created. Broadcast to all connected clients.",
45
- params: {
46
- id: "number — session id",
47
- name: "string — session name",
48
- projectRoot: "string|null — workspace pointer for the session (null = headless)",
49
- persona: "string|null — session-level persona override (null = no override at this level)",
50
- },
51
- });
52
- };
20
+ const persona = p.persona ?? null;
21
+ if (persona !== null && typeof persona !== "string") {
22
+ throw new Error("session.create: persona must be a string or null");
23
+ }
24
+ const envelope = await Envelope.createClientEnvelope(ctx.db, { name: p.name, projectRoot, persona });
25
+ ctx.attachSession(envelope);
26
+ ctx.notify("all", "session/created", {
27
+ id: envelope.sessionId,
28
+ name: envelope.sessionName,
29
+ projectRoot: envelope.projectRoot,
30
+ persona: envelope.sessionPersona,
31
+ });
32
+ return {
33
+ id: envelope.sessionId, name: envelope.sessionName,
34
+ projectRoot: envelope.projectRoot, persona: envelope.sessionPersona,
35
+ };
36
+ },
37
+ description: "Create a new session and attach this connection to it. Optionally pin the session to a workspace via projectRoot, and/or set a session-level persona (text/markdown injected into packet.system.persona). Per-run and per-loop overrides may further refine the persona.",
38
+ params: {
39
+ name: "string? — session name (auto-generated if omitted)",
40
+ projectRoot: "string? — absolute path to the client's workspace; null/omitted = headless mode (no disk side-effects on file ops)",
41
+ persona: "string? — session-level persona (text/markdown); cascades as: loops.persona > runs.persona > sessions.persona > PLURNK_PERSONA file",
42
+ },
43
+ });
44
+ registry.registerNotification("session/created", {
45
+ description: "A new session has been created. Broadcast to all connected clients.",
46
+ params: {
47
+ id: "number — session id",
48
+ name: "string — session name",
49
+ projectRoot: "string|nullworkspace pointer for the session (null = headless)",
50
+ persona: "string|null — session-level persona override (null = no override at this level)",
51
+ },
52
+ });
53
+ }
54
+ }
53
55
  //# sourceMappingURL=session_create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_create.js","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;QACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4E,CAAC;YACpG,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;YAC1C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBACtF,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;YAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5F,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5B,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE;gBACjC,EAAE,EAAE,QAAQ,CAAC,SAAS;gBACtB,IAAI,EAAE,QAAQ,CAAC,WAAW;gBAC1B,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,OAAO,EAAE,QAAQ,CAAC,cAAc;aACnC,CAAC,CAAC;YACH,OAAO;gBACH,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW;gBAClD,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc;aACtE,CAAC;QACN,CAAC;QACD,WAAW,EAAE,0QAA0Q;QACvR,MAAM,EAAE;YACJ,IAAI,EAAE,oDAAoD;YAC1D,WAAW,EAAE,oHAAoH;YACjI,OAAO,EAAE,qIAAqI;SACjJ;KACJ,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,EAAE;QAC7C,WAAW,EAAE,qEAAqE;QAClF,MAAM,EAAE;YACJ,EAAE,EAAE,qBAAqB;YACzB,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,mEAAmE;YAChF,OAAO,EAAE,iFAAiF;SAC7F;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"session_create.js","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,CAAC,GAAG,MAAiF,CAAC;gBAC5F,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAC1C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACvB,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;oBACtF,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;oBAC5E,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5B,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE;oBACjC,EAAE,EAAE,QAAQ,CAAC,SAAS;oBACtB,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAC1B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,OAAO,EAAE,QAAQ,CAAC,cAAc;iBACnC,CAAC,CAAC;gBACH,OAAO;oBACH,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAClD,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc;iBACtE,CAAC;YACN,CAAC;YACD,WAAW,EAAE,0QAA0Q;YACvR,MAAM,EAAE;gBACJ,IAAI,EAAE,oDAAoD;gBAC1D,WAAW,EAAE,oHAAoH;gBACjI,OAAO,EAAE,qIAAqI;aACjJ;SACJ,CAAC,CAAC;QAEH,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,EAAE;YAC7C,WAAW,EAAE,qEAAqE;YAClF,MAAM,EAAE;gBACJ,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,mEAAmE;gBAChF,OAAO,EAAE,iFAAiF;aAC7F;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class SessionListMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=session_list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_list.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAKnD,CAAC"}
1
+ {"version":3,"file":"session_list.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAMlD"}
@@ -1,8 +1,10 @@
1
- import { listSessions } from "../envelope.js";
2
- export const register = (registry) => {
3
- registry.registerMethod("session.list", {
4
- handler: async (_params, ctx) => ({ sessions: await listSessions(ctx.db) }),
5
- description: "List all sessions, most recent first.",
6
- });
7
- };
1
+ import Envelope from "../envelope.js";
2
+ export default class SessionListMethod {
3
+ static register(registry) {
4
+ registry.registerMethod("session.list", {
5
+ handler: async (_params, ctx) => ({ sessions: await Envelope.listSessions(ctx.db) }),
6
+ description: "List all sessions, most recent first.",
7
+ });
8
+ }
9
+ }
8
10
  //# sourceMappingURL=session_list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_list.js","sourceRoot":"","sources":["../../../src/server/methods/session_list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE;QACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3E,WAAW,EAAE,uCAAuC;KACvD,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"session_list.js","sourceRoot":"","sources":["../../../src/server/methods/session_list.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE;YACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACpF,WAAW,EAAE,uCAAuC;SACvD,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class SessionRunsMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=session_runs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_runs.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAenD,CAAC"}
1
+ {"version":3,"file":"session_runs.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAgBlD"}
@@ -1,18 +1,20 @@
1
- import { listRunsForSession } from "../envelope.js";
2
- export const register = (registry) => {
3
- registry.registerMethod("session.runs", {
4
- handler: async (params, ctx) => {
5
- const p = (params ?? {});
6
- const sessionId = p.id ?? ctx.session?.sessionId;
7
- if (typeof sessionId !== "number") {
8
- throw new Error("session.runs requires params.id: number (or an attached session)");
9
- }
10
- return { runs: await listRunsForSession(ctx.db, sessionId) };
11
- },
12
- description: "List runs in a session, most recent first.",
13
- params: {
14
- id: "number? — session id; defaults to the attached session",
15
- },
16
- });
17
- };
1
+ import Envelope from "../envelope.js";
2
+ export default class SessionRunsMethod {
3
+ static register(registry) {
4
+ registry.registerMethod("session.runs", {
5
+ handler: async (params, ctx) => {
6
+ const p = params;
7
+ const sessionId = p.id ?? ctx.session?.sessionId;
8
+ if (typeof sessionId !== "number") {
9
+ throw new Error("session.runs requires params.id: number (or an attached session)");
10
+ }
11
+ return { runs: await Envelope.listRunsForSession(ctx.db, sessionId) };
12
+ },
13
+ description: "List runs in a session, most recent first.",
14
+ params: {
15
+ id: "number? — session id; defaults to the attached session",
16
+ },
17
+ });
18
+ }
19
+ }
18
20
  //# sourceMappingURL=session_runs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_runs.js","sourceRoot":"","sources":["../../../src/server/methods/session_runs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE;QACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAoB,CAAC;YAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;YACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,WAAW,EAAE,4CAA4C;QACzD,MAAM,EAAE;YACJ,EAAE,EAAE,wDAAwD;SAC/D;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"session_runs.js","sourceRoot":"","sources":["../../../src/server/methods/session_runs.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE;YACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAyB,CAAC;gBACpC,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;gBACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;YAC1E,CAAC;YACD,WAAW,EAAE,4CAA4C;YACzD,MAAM,EAAE;gBACJ,EAAE,EAAE,wDAAwD;aAC/D;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class SessionSetPersonaMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=session_set_persona.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_set_persona.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_set_persona.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAwBnD,CAAC"}
1
+ {"version":3,"file":"session_set_persona.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_set_persona.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACxC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAyBlD"}
@@ -1,27 +1,29 @@
1
- import { updateSessionPersona } from "../envelope.js";
2
- export const register = (registry) => {
3
- registry.registerMethod("session.set_persona", {
4
- handler: async (params, ctx) => {
5
- if (ctx.session === null) {
6
- throw new Error("session.set_persona requires an attached session");
7
- }
8
- const p = (params ?? {});
9
- const persona = p.persona ?? null;
10
- if (persona !== null && typeof persona !== "string") {
11
- throw new Error("session.set_persona: persona must be a string or null");
12
- }
13
- const updated = await updateSessionPersona(ctx.db, ctx.session.sessionId, persona);
14
- // Mutate the attached envelope so subsequent handler invocations
15
- // on this connection observe the new value. ctx.session is the
16
- // same object reference held in ClientConnection.#session.
17
- ctx.session.sessionPersona = updated;
18
- return { id: ctx.session.sessionId, persona: updated };
19
- },
20
- description: "Update the session-level persona (text/markdown injected into packet.system.persona when no per-run or per-loop override exists). Pass null to clear the override and fall through to PLURNK_PERSONA file.",
21
- params: {
22
- persona: "string|null — session-level persona content; null clears the override",
23
- },
24
- requiresInit: true,
25
- });
26
- };
1
+ import Envelope from "../envelope.js";
2
+ export default class SessionSetPersonaMethod {
3
+ static register(registry) {
4
+ registry.registerMethod("session.set_persona", {
5
+ handler: async (params, ctx) => {
6
+ if (ctx.session === null) {
7
+ throw new Error("session.set_persona requires an attached session");
8
+ }
9
+ const p = params;
10
+ const persona = p.persona ?? null;
11
+ if (persona !== null && typeof persona !== "string") {
12
+ throw new Error("session.set_persona: persona must be a string or null");
13
+ }
14
+ const updated = await Envelope.updateSessionPersona(ctx.db, ctx.session.sessionId, persona);
15
+ // Mutate the attached envelope so subsequent handler invocations
16
+ // on this connection observe the new value. ctx.session is the
17
+ // same object reference held in ClientConnection.#session.
18
+ ctx.session.sessionPersona = updated;
19
+ return { id: ctx.session.sessionId, persona: updated };
20
+ },
21
+ description: "Update the session-level persona (text/markdown injected into packet.system.persona when no per-run or per-loop override exists). Pass null to clear the override and fall through to PLURNK_PERSONA file.",
22
+ params: {
23
+ persona: "string|null — session-level persona content; null clears the override",
24
+ },
25
+ requiresInit: true,
26
+ });
27
+ }
28
+ }
27
29
  //# sourceMappingURL=session_set_persona.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_set_persona.js","sourceRoot":"","sources":["../../../src/server/methods/session_set_persona.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,qBAAqB,EAAE;QAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAgC,CAAC;YACxD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;YAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnF,iEAAiE;YACjE,+DAA+D;YAC/D,2DAA2D;YAC3D,GAAG,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC;YACrC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3D,CAAC;QACD,WAAW,EAAE,4MAA4M;QACzN,MAAM,EAAE;YACJ,OAAO,EAAE,uEAAuE;SACnF;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"session_set_persona.js","sourceRoot":"","sources":["../../../src/server/methods/session_set_persona.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACxC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,qBAAqB,EAAE;YAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM,CAAC,GAAG,MAAqC,CAAC;gBAChD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAClD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC5F,iEAAiE;gBACjE,+DAA+D;gBAC/D,2DAA2D;gBAC3D,GAAG,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC;gBACrC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC3D,CAAC;YACD,WAAW,EAAE,4MAA4M;YACzN,MAAM,EAAE;gBACJ,OAAO,EAAE,uEAAuE;aACnF;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class SessionSetRootMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=session_set_root.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_set_root.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_set_root.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IA6BnD,CAAC"}
1
+ {"version":3,"file":"session_set_root.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_set_root.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA8BlD"}
@@ -1,33 +1,35 @@
1
1
  import { isAbsolute } from "node:path";
2
- import { updateSessionProjectRoot } from "../envelope.js";
3
- export const register = (registry) => {
4
- registry.registerMethod("session.set_root", {
5
- handler: async (params, ctx) => {
6
- if (ctx.session === null) {
7
- throw new Error("session.set_root requires an attached session");
8
- }
9
- const p = (params ?? {});
10
- const projectRoot = p.projectRoot ?? null;
11
- if (projectRoot !== null) {
12
- if (typeof projectRoot !== "string" || projectRoot.length === 0) {
13
- throw new Error("session.set_root: projectRoot must be a non-empty string or null");
2
+ import Envelope from "../envelope.js";
3
+ export default class SessionSetRootMethod {
4
+ static register(registry) {
5
+ registry.registerMethod("session.set_root", {
6
+ handler: async (params, ctx) => {
7
+ if (ctx.session === null) {
8
+ throw new Error("session.set_root requires an attached session");
14
9
  }
15
- if (!isAbsolute(projectRoot)) {
16
- throw new Error("session.set_root: projectRoot must be an absolute path");
10
+ const p = params;
11
+ const projectRoot = p.projectRoot ?? null;
12
+ if (projectRoot !== null) {
13
+ if (typeof projectRoot !== "string" || projectRoot.length === 0) {
14
+ throw new Error("session.set_root: projectRoot must be a non-empty string or null");
15
+ }
16
+ if (!isAbsolute(projectRoot)) {
17
+ throw new Error("session.set_root: projectRoot must be an absolute path");
18
+ }
17
19
  }
18
- }
19
- const updated = await updateSessionProjectRoot(ctx.db, ctx.session.sessionId, projectRoot);
20
- // Mutate the attached envelope so subsequent handler invocations on
21
- // this connection observe the new value. ctx.session is the same
22
- // object reference held in ClientConnection.#session.
23
- ctx.session.projectRoot = updated;
24
- return { id: ctx.session.sessionId, projectRoot: updated };
25
- },
26
- description: "Update the workspace pointer (projectRoot) on the currently-attached session. Pass null to revert to headless mode.",
27
- params: {
28
- projectRoot: "string|null — absolute path to the client's workspace; null = headless",
29
- },
30
- requiresInit: true,
31
- });
32
- };
20
+ const updated = await Envelope.updateSessionProjectRoot(ctx.db, ctx.session.sessionId, projectRoot);
21
+ // Mutate the attached envelope so subsequent handler invocations on
22
+ // this connection observe the new value. ctx.session is the same
23
+ // object reference held in ClientConnection.#session.
24
+ ctx.session.projectRoot = updated;
25
+ return { id: ctx.session.sessionId, projectRoot: updated };
26
+ },
27
+ description: "Update the workspace pointer (projectRoot) on the currently-attached session. Pass null to revert to headless mode.",
28
+ params: {
29
+ projectRoot: "string|null — absolute path to the client's workspace; null = headless",
30
+ },
31
+ requiresInit: true,
32
+ });
33
+ }
34
+ }
33
35
  //# sourceMappingURL=session_set_root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_set_root.js","sourceRoot":"","sources":["../../../src/server/methods/session_set_root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE;QACxC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAoC,CAAC;YAC5D,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;YAC1C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBAC9E,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC3F,oEAAoE;YACpE,iEAAiE;YACjE,sDAAsD;YACtD,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAC/D,CAAC;QACD,WAAW,EAAE,qHAAqH;QAClI,MAAM,EAAE;YACJ,WAAW,EAAE,wEAAwE;SACxF;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"session_set_root.js","sourceRoot":"","sources":["../../../src/server/methods/session_set_root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE;YACxC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,CAAC,GAAG,MAAyC,CAAC;gBACpD,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAC1C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACvB,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;oBACxF,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;oBAC9E,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBACpG,oEAAoE;gBACpE,iEAAiE;gBACjE,sDAAsD;gBACtD,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;gBAClC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;YAC/D,CAAC;YACD,WAAW,EAAE,qHAAqH;YAClI,MAAM,EAAE;gBACJ,WAAW,EAAE,wEAAwE;aACxF;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import type Engine from "../core/Engine.ts";
2
+ import type { Db } from "../core/Db.ts";
3
+ export default class NoProposals {
4
+ static attachNoProposals(engine: Engine, _db: Db): void;
5
+ }
6
+ //# sourceMappingURL=noProposals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noProposals.d.ts","sourceRoot":"","sources":["../../src/server/noProposals.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;CAW1D"}
@@ -0,0 +1,37 @@
1
+ // Server-side noProposals listener — the exact inverse of yolo.ts. When a
2
+ // loop's persisted flags.noProposals === true, proposals auto-REJECT
3
+ // in-process, mirroring server-YOLO's auto-ACCEPT. No client roundtrip; no
4
+ // human review.
5
+ //
6
+ // Invisibility is the whole point. The model sees only the ordinary
7
+ // post-resolution result — identical to a human declining the proposal or a
8
+ // client's no_tty_review reject. The `outcome` reason is forensics-only,
9
+ // never in the rx (see ProposalResolution), so a reject under noProposals is
10
+ // indistinguishable, to the model, from any other reject. How a proposal is
11
+ // handled — manual review, client YOLO, server YOLO, noProposals — leaves no
12
+ // fingerprint in the model's experience.
13
+ //
14
+ // Use case: a client with no review channel (no TTY — piped, scripted,
15
+ // redirected) sets noProposals so side-effecting ops fail closed WITHOUT a
16
+ // client roundtrip per proposal. The client, which set the flag, owns any
17
+ // end-user "edits were blocked, no review channel" messaging; the model is
18
+ // mode-blind.
19
+ //
20
+ // yolo wins if both are (nonsensically) set — the explicit auto-accept
21
+ // opt-in takes precedence over the auto-reject.
22
+ export default class NoProposals {
23
+ static attachNoProposals(engine, _db) {
24
+ engine.onProposalPending((event) => {
25
+ if (event.flags.yolo || !event.flags.noProposals)
26
+ return;
27
+ try {
28
+ engine.resolveProposal(event.logEntryId, { decision: "reject", outcome: "no_review_channel" });
29
+ }
30
+ catch {
31
+ // Errors here don't abort dispatch — the proposal stays
32
+ // pending and falls through to the RPC / timeout path.
33
+ }
34
+ });
35
+ }
36
+ }
37
+ //# sourceMappingURL=noProposals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noProposals.js","sourceRoot":"","sources":["../../src/server/noProposals.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qEAAqE;AACrE,2EAA2E;AAC3E,gBAAgB;AAChB,EAAE;AACF,oEAAoE;AACpE,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,yCAAyC;AACzC,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,cAAc;AACd,EAAE;AACF,uEAAuE;AACvE,gDAAgD;AAMhD,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,MAAM,CAAC,iBAAiB,CAAC,MAAc,EAAE,GAAO;QAC5C,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAA2B,EAAE,EAAE;YACrD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW;gBAAE,OAAO;YACzD,IAAI,CAAC;gBACD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACnG,CAAC;YAAC,MAAM,CAAC;gBACL,wDAAwD;gBACxD,uDAAuD;YAC3D,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,4 +1,6 @@
1
1
  import type Engine from "../core/Engine.ts";
2
2
  import type { Db } from "../core/Db.ts";
3
- export declare const attachYolo: (engine: Engine, _db: Db) => void;
3
+ export default class Yolo {
4
+ static attachYolo(engine: Engine, _db: Db): void;
5
+ }
4
6
  //# sourceMappingURL=yolo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"yolo.d.ts","sourceRoot":"","sources":["../../src/server/yolo.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,KAAK,EAAE,KAAG,IAUpD,CAAC"}
1
+ {"version":3,"file":"yolo.d.ts","sourceRoot":"","sources":["../../src/server/yolo.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;CAWnD"}