@plurnk/plurnk-service 0.6.0 → 0.8.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 (258) hide show
  1. package/SPEC.md +125 -74
  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 +33 -30
  32. package/dist/core/ChannelWrite.d.ts.map +1 -1
  33. package/dist/core/ChannelWrite.js +43 -41
  34. package/dist/core/ChannelWrite.js.map +1 -1
  35. package/dist/core/Engine.d.ts +14 -10
  36. package/dist/core/Engine.d.ts.map +1 -1
  37. package/dist/core/Engine.js +272 -94
  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/PluginLoader.d.ts +6 -3
  44. package/dist/core/PluginLoader.d.ts.map +1 -1
  45. package/dist/core/PluginLoader.js +77 -73
  46. package/dist/core/PluginLoader.js.map +1 -1
  47. package/dist/core/ProviderInstantiate.d.ts +4 -2
  48. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  49. package/dist/core/ProviderInstantiate.js +23 -22
  50. package/dist/core/ProviderInstantiate.js.map +1 -1
  51. package/dist/core/SchemeRegistry.d.ts +1 -1
  52. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  53. package/dist/core/SchemeRegistry.js +3 -3
  54. package/dist/core/SchemeRegistry.js.map +1 -1
  55. package/dist/core/git-membership.d.ts +8 -0
  56. package/dist/core/git-membership.d.ts.map +1 -0
  57. package/dist/core/git-membership.js +125 -0
  58. package/dist/core/git-membership.js.map +1 -0
  59. package/dist/core/packet-wire.d.ts +47 -6
  60. package/dist/core/packet-wire.d.ts.map +1 -1
  61. package/dist/core/packet-wire.js +376 -312
  62. package/dist/core/packet-wire.js.map +1 -1
  63. package/dist/core/resolveForLoop.d.ts +14 -0
  64. package/dist/core/resolveForLoop.d.ts.map +1 -0
  65. package/dist/core/resolveForLoop.js +34 -0
  66. package/dist/core/resolveForLoop.js.map +1 -0
  67. package/dist/core/results.d.ts +40 -0
  68. package/dist/core/results.d.ts.map +1 -0
  69. package/dist/core/results.js +52 -0
  70. package/dist/core/results.js.map +1 -0
  71. package/dist/core/scheme-types.d.ts +6 -3
  72. package/dist/core/scheme-types.d.ts.map +1 -1
  73. package/dist/core/scheme-types.js +4 -4
  74. package/dist/core/scheme-types.js.map +1 -1
  75. package/dist/core/types.d.ts +27 -0
  76. package/dist/core/types.d.ts.map +1 -0
  77. package/dist/core/types.js +17 -0
  78. package/dist/core/types.js.map +1 -0
  79. package/dist/index.d.ts +1 -6
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +4 -43
  82. package/dist/index.js.map +1 -1
  83. package/dist/schemes/Exec.d.ts +1 -0
  84. package/dist/schemes/Exec.d.ts.map +1 -1
  85. package/dist/schemes/Exec.js +101 -94
  86. package/dist/schemes/Exec.js.map +1 -1
  87. package/dist/schemes/File.d.ts +0 -1
  88. package/dist/schemes/File.d.ts.map +1 -1
  89. package/dist/schemes/File.js +32 -66
  90. package/dist/schemes/File.js.map +1 -1
  91. package/dist/schemes/Known.d.ts.map +1 -1
  92. package/dist/schemes/Known.js +13 -13
  93. package/dist/schemes/Known.js.map +1 -1
  94. package/dist/schemes/Log.d.ts.map +1 -1
  95. package/dist/schemes/Log.js +8 -52
  96. package/dist/schemes/Log.js.map +1 -1
  97. package/dist/schemes/Plurnk.d.ts.map +1 -1
  98. package/dist/schemes/Plurnk.js +13 -13
  99. package/dist/schemes/Plurnk.js.map +1 -1
  100. package/dist/schemes/Skill.d.ts.map +1 -1
  101. package/dist/schemes/Skill.js +13 -13
  102. package/dist/schemes/Skill.js.map +1 -1
  103. package/dist/schemes/Unknown.d.ts.map +1 -1
  104. package/dist/schemes/Unknown.js +13 -13
  105. package/dist/schemes/Unknown.js.map +1 -1
  106. package/dist/schemes/_entry-crud.d.ts +5 -3
  107. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  108. package/dist/schemes/_entry-crud.js +55 -50
  109. package/dist/schemes/_entry-crud.js.map +1 -1
  110. package/dist/schemes/_entry-find.d.ts +10 -3
  111. package/dist/schemes/_entry-find.d.ts.map +1 -1
  112. package/dist/schemes/_entry-find.js +99 -77
  113. package/dist/schemes/_entry-find.js.map +1 -1
  114. package/dist/schemes/_entry-manifest.d.ts +6 -0
  115. package/dist/schemes/_entry-manifest.d.ts.map +1 -0
  116. package/dist/schemes/_entry-manifest.js +45 -0
  117. package/dist/schemes/_entry-manifest.js.map +1 -0
  118. package/dist/schemes/_entry-ops.d.ts +7 -4
  119. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  120. package/dist/schemes/_entry-ops.js +198 -316
  121. package/dist/schemes/_entry-ops.js.map +1 -1
  122. package/dist/schemes/_entry-send.d.ts +4 -1
  123. package/dist/schemes/_entry-send.d.ts.map +1 -1
  124. package/dist/schemes/_entry-send.js +57 -55
  125. package/dist/schemes/_entry-send.js.map +1 -1
  126. package/dist/server/ClientConnection.js +3 -3
  127. package/dist/server/ClientConnection.js.map +1 -1
  128. package/dist/server/Daemon.d.ts +5 -5
  129. package/dist/server/Daemon.d.ts.map +1 -1
  130. package/dist/server/Daemon.js +221 -176
  131. package/dist/server/Daemon.js.map +1 -1
  132. package/dist/server/clientTurn.d.ts +4 -1
  133. package/dist/server/clientTurn.d.ts.map +1 -1
  134. package/dist/server/clientTurn.js +19 -17
  135. package/dist/server/clientTurn.js.map +1 -1
  136. package/dist/server/dsl.d.ts +19 -16
  137. package/dist/server/dsl.d.ts.map +1 -1
  138. package/dist/server/dsl.js +127 -105
  139. package/dist/server/dsl.js.map +1 -1
  140. package/dist/server/envelope.d.ts +22 -19
  141. package/dist/server/envelope.d.ts.map +1 -1
  142. package/dist/server/envelope.js +116 -102
  143. package/dist/server/envelope.js.map +1 -1
  144. package/dist/server/logEntry.d.ts +4 -1
  145. package/dist/server/logEntry.d.ts.map +1 -1
  146. package/dist/server/logEntry.js +41 -39
  147. package/dist/server/logEntry.js.map +1 -1
  148. package/dist/server/methods/_dispatchAsClient.d.ts +3 -1
  149. package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
  150. package/dist/server/methods/_dispatchAsClient.js +31 -29
  151. package/dist/server/methods/_dispatchAsClient.js.map +1 -1
  152. package/dist/server/methods/discover.d.ts +3 -1
  153. package/dist/server/methods/discover.d.ts.map +1 -1
  154. package/dist/server/methods/discover.js +8 -6
  155. package/dist/server/methods/discover.js.map +1 -1
  156. package/dist/server/methods/entry_read.d.ts +4 -1
  157. package/dist/server/methods/entry_read.d.ts.map +1 -1
  158. package/dist/server/methods/entry_read.js +54 -52
  159. package/dist/server/methods/entry_read.js.map +1 -1
  160. package/dist/server/methods/log_read.d.ts +4 -1
  161. package/dist/server/methods/log_read.d.ts.map +1 -1
  162. package/dist/server/methods/log_read.js +38 -36
  163. package/dist/server/methods/log_read.js.map +1 -1
  164. package/dist/server/methods/loop_cancel.d.ts +3 -1
  165. package/dist/server/methods/loop_cancel.d.ts.map +1 -1
  166. package/dist/server/methods/loop_cancel.js +19 -17
  167. package/dist/server/methods/loop_cancel.js.map +1 -1
  168. package/dist/server/methods/loop_resolve.d.ts +3 -1
  169. package/dist/server/methods/loop_resolve.d.ts.map +1 -1
  170. package/dist/server/methods/loop_resolve.js +42 -40
  171. package/dist/server/methods/loop_resolve.js.map +1 -1
  172. package/dist/server/methods/loop_run.d.ts +3 -1
  173. package/dist/server/methods/loop_run.d.ts.map +1 -1
  174. package/dist/server/methods/loop_run.js +104 -102
  175. package/dist/server/methods/loop_run.js.map +1 -1
  176. package/dist/server/methods/op_copy.d.ts +3 -1
  177. package/dist/server/methods/op_copy.d.ts.map +1 -1
  178. package/dist/server/methods/op_copy.js +25 -23
  179. package/dist/server/methods/op_copy.js.map +1 -1
  180. package/dist/server/methods/op_dispatch.d.ts +3 -1
  181. package/dist/server/methods/op_dispatch.d.ts.map +1 -1
  182. package/dist/server/methods/op_dispatch.js +18 -16
  183. package/dist/server/methods/op_dispatch.js.map +1 -1
  184. package/dist/server/methods/op_edit.d.ts +3 -1
  185. package/dist/server/methods/op_edit.d.ts.map +1 -1
  186. package/dist/server/methods/op_edit.js +23 -21
  187. package/dist/server/methods/op_edit.js.map +1 -1
  188. package/dist/server/methods/op_exec.d.ts +3 -1
  189. package/dist/server/methods/op_exec.d.ts.map +1 -1
  190. package/dist/server/methods/op_exec.js +20 -18
  191. package/dist/server/methods/op_exec.js.map +1 -1
  192. package/dist/server/methods/op_find.d.ts +3 -1
  193. package/dist/server/methods/op_find.d.ts.map +1 -1
  194. package/dist/server/methods/op_find.js +23 -21
  195. package/dist/server/methods/op_find.js.map +1 -1
  196. package/dist/server/methods/op_hide.d.ts +3 -1
  197. package/dist/server/methods/op_hide.d.ts.map +1 -1
  198. package/dist/server/methods/op_hide.js +23 -21
  199. package/dist/server/methods/op_hide.js.map +1 -1
  200. package/dist/server/methods/op_move.d.ts +3 -1
  201. package/dist/server/methods/op_move.d.ts.map +1 -1
  202. package/dist/server/methods/op_move.js +23 -21
  203. package/dist/server/methods/op_move.js.map +1 -1
  204. package/dist/server/methods/op_parse.d.ts +3 -1
  205. package/dist/server/methods/op_parse.d.ts.map +1 -1
  206. package/dist/server/methods/op_parse.js +24 -22
  207. package/dist/server/methods/op_parse.js.map +1 -1
  208. package/dist/server/methods/op_read.d.ts +3 -1
  209. package/dist/server/methods/op_read.d.ts.map +1 -1
  210. package/dist/server/methods/op_read.js +23 -21
  211. package/dist/server/methods/op_read.js.map +1 -1
  212. package/dist/server/methods/op_send.d.ts +3 -1
  213. package/dist/server/methods/op_send.d.ts.map +1 -1
  214. package/dist/server/methods/op_send.js +22 -20
  215. package/dist/server/methods/op_send.js.map +1 -1
  216. package/dist/server/methods/op_show.d.ts +3 -1
  217. package/dist/server/methods/op_show.d.ts.map +1 -1
  218. package/dist/server/methods/op_show.js +23 -21
  219. package/dist/server/methods/op_show.js.map +1 -1
  220. package/dist/server/methods/ping.d.ts +3 -1
  221. package/dist/server/methods/ping.d.ts.map +1 -1
  222. package/dist/server/methods/ping.js +8 -6
  223. package/dist/server/methods/ping.js.map +1 -1
  224. package/dist/server/methods/providers_list.d.ts +3 -1
  225. package/dist/server/methods/providers_list.d.ts.map +1 -1
  226. package/dist/server/methods/providers_list.js +19 -17
  227. package/dist/server/methods/providers_list.js.map +1 -1
  228. package/dist/server/methods/session_attach.d.ts +3 -1
  229. package/dist/server/methods/session_attach.d.ts.map +1 -1
  230. package/dist/server/methods/session_attach.js +43 -41
  231. package/dist/server/methods/session_attach.js.map +1 -1
  232. package/dist/server/methods/session_create.d.ts +3 -1
  233. package/dist/server/methods/session_create.d.ts.map +1 -1
  234. package/dist/server/methods/session_create.js +51 -49
  235. package/dist/server/methods/session_create.js.map +1 -1
  236. package/dist/server/methods/session_list.d.ts +3 -1
  237. package/dist/server/methods/session_list.d.ts.map +1 -1
  238. package/dist/server/methods/session_list.js +9 -7
  239. package/dist/server/methods/session_list.js.map +1 -1
  240. package/dist/server/methods/session_runs.d.ts +3 -1
  241. package/dist/server/methods/session_runs.d.ts.map +1 -1
  242. package/dist/server/methods/session_runs.js +19 -17
  243. package/dist/server/methods/session_runs.js.map +1 -1
  244. package/dist/server/methods/session_set_persona.d.ts +3 -1
  245. package/dist/server/methods/session_set_persona.d.ts.map +1 -1
  246. package/dist/server/methods/session_set_persona.js +28 -26
  247. package/dist/server/methods/session_set_persona.js.map +1 -1
  248. package/dist/server/methods/session_set_root.d.ts +3 -1
  249. package/dist/server/methods/session_set_root.d.ts.map +1 -1
  250. package/dist/server/methods/session_set_root.js +31 -29
  251. package/dist/server/methods/session_set_root.js.map +1 -1
  252. package/dist/server/yolo.d.ts +3 -1
  253. package/dist/server/yolo.d.ts.map +1 -1
  254. package/dist/server/yolo.js +15 -13
  255. package/dist/server/yolo.js.map +1 -1
  256. package/package.json +77 -32
  257. package/bin/plurnk-service.js +0 -112
  258. /package/migrations/{001_schema.sql → 0000-00-00.01_schema.sql} +0 -0
@@ -5,112 +5,126 @@
5
5
  // or the daemon auto-creates one on first requiresInit RPC. In both cases
6
6
  // the daemon opens a NEW run within the session and a NEW client loop within
7
7
  // that run; the client loop closes on disconnect.
8
- // Grammar 0.5.0 (#10): Session and Run carry user-renameable string names.
9
- // Defaults are `session-{unixtime}` and `run-{unixtime}`; random suffix avoids
10
- // collisions when two creations land in the same second.
11
- const tsName = (prefix) => {
12
- const ts = Math.floor(Date.now() / 1000);
13
- const rand = Math.floor(Math.random() * 0xFFFFFF).toString(36).padStart(4, "0");
14
- return `${prefix}-${ts}-${rand}`;
15
- };
16
- export const generateSessionName = () => tsName("session");
17
- export const generateRunName = () => tsName("run");
18
- export const createClientEnvelope = async (db, opts = {}) => {
19
- const name = opts.name ?? tsName(opts.prefix ?? "session");
20
- const projectRoot = opts.projectRoot ?? null;
21
- const persona = opts.persona ?? null;
22
- const session = await db.envelope_insert_session.get({ name, project_root: projectRoot, persona });
23
- if (session === undefined)
24
- throw new Error("createClientEnvelope: session insert returned no row");
25
- const runName = generateRunName();
26
- const run = await db.envelope_insert_run.get({ session_id: session.id, name: runName, persona: null });
27
- if (run === undefined)
28
- throw new Error("createClientEnvelope: run insert returned no row");
29
- return {
30
- sessionId: session.id, sessionName: session.name,
31
- projectRoot: session.project_root, sessionPersona: session.persona,
32
- runId: run.id, runName: run.name, runPersona: run.persona,
33
- clientLoopId: null,
34
- };
35
- };
36
- // Resolve the run inside a session. Three modes:
37
- // - opts.runId given: lookup by id, verify session ownership (else throw).
38
- // - opts.runName given: lookup by (sessionId, name); reuse if found, create otherwise.
39
- // - neither: create a new run with an auto-generated name (current behavior).
40
- // `runId` and `runName` are alternatives — passing both throws (use one).
41
- // persona handling: only set when creating a NEW run. Reusing an existing
42
- // run (by runId or by runName matching an existing row) carries forward
43
- // whatever persona was stored on that row — overrides target NEW runs.
44
- const resolveRun = async (db, sessionId, opts) => {
45
- if (opts.runId !== undefined && opts.runName !== undefined) {
46
- throw new Error("attachToSession: pass runId OR runName, not both");
8
+ import GitMembership from "../core/git-membership.js";
9
+ export default class Envelope {
10
+ // Grammar 0.5.0 (#10): Session and Run carry user-renameable string names.
11
+ // Defaults are `session-{unixtime}` and `run-{unixtime}`; random suffix avoids
12
+ // collisions when two creations land in the same second.
13
+ static #tsName(prefix) {
14
+ const ts = Math.floor(Date.now() / 1000);
15
+ const rand = Math.floor(Math.random() * 0xFFFFFF).toString(36).padStart(4, "0");
16
+ return `${prefix}-${ts}-${rand}`;
47
17
  }
48
- if (opts.runId !== undefined) {
49
- const existing = await db.envelope_get_run_by_id.get({ id: opts.runId });
50
- if (existing === undefined)
51
- throw new Error(`run ${opts.runId} not found`);
52
- if (existing.session_id !== sessionId)
53
- throw new Error(`run ${opts.runId} belongs to session ${existing.session_id}, not ${sessionId}`);
54
- return { id: existing.id, name: existing.name, persona: existing.persona };
18
+ static generateSessionName() {
19
+ return Envelope.#tsName("session");
55
20
  }
56
- if (opts.runName !== undefined) {
57
- const existing = await db.envelope_get_run_by_name.get({ session_id: sessionId, name: opts.runName });
58
- if (existing !== undefined)
59
- return existing;
60
- const created = await db.envelope_insert_run.get({ session_id: sessionId, name: opts.runName, persona: opts.persona ?? null });
21
+ static generateRunName() {
22
+ return Envelope.#tsName("run");
23
+ }
24
+ static async createClientEnvelope(db, opts = {}) {
25
+ const name = opts.name ?? Envelope.#tsName(opts.prefix ?? "session");
26
+ const projectRoot = opts.projectRoot ?? null;
27
+ const persona = opts.persona ?? null;
28
+ const session = await db.envelope_insert_session.get({ name, project_root: projectRoot, persona });
29
+ if (session === undefined)
30
+ throw new Error("createClientEnvelope: session insert returned no row");
31
+ // SPEC §14.3 D4 — establish git-ls-files membership at workspace setup so
32
+ // tracked files are members before the first op. No-op when projectRoot is
33
+ // null (headless) or not a git working tree.
34
+ await GitMembership.resolveGitMembership(db, session.id, undefined);
35
+ const runName = Envelope.generateRunName();
36
+ const run = await db.envelope_insert_run.get({ session_id: session.id, name: runName, persona: null });
37
+ if (run === undefined)
38
+ throw new Error("createClientEnvelope: run insert returned no row");
39
+ return {
40
+ sessionId: session.id, sessionName: session.name,
41
+ projectRoot: session.project_root, sessionPersona: session.persona,
42
+ runId: run.id, runName: run.name, runPersona: run.persona,
43
+ clientLoopId: null,
44
+ };
45
+ }
46
+ // Resolve the run inside a session. Three modes:
47
+ // - opts.runId given: lookup by id, verify session ownership (else throw).
48
+ // - opts.runName given: lookup by (sessionId, name); reuse if found, create otherwise.
49
+ // - neither: create a new run with an auto-generated name (current behavior).
50
+ // `runId` and `runName` are alternatives — passing both throws (use one).
51
+ // persona handling: only set when creating a NEW run. Reusing an existing
52
+ // run (by runId or by runName matching an existing row) carries forward
53
+ // whatever persona was stored on that row — overrides target NEW runs.
54
+ static async #resolveRun(db, sessionId, opts) {
55
+ if (opts.runId !== undefined && opts.runName !== undefined) {
56
+ throw new Error("attachToSession: pass runId OR runName, not both");
57
+ }
58
+ if (opts.runId !== undefined) {
59
+ const existing = await db.envelope_get_run_by_id.get({ id: opts.runId });
60
+ if (existing === undefined)
61
+ throw new Error(`run ${opts.runId} not found`);
62
+ if (existing.session_id !== sessionId)
63
+ throw new Error(`run ${opts.runId} belongs to session ${existing.session_id}, not ${sessionId}`);
64
+ return { id: existing.id, name: existing.name, persona: existing.persona };
65
+ }
66
+ if (opts.runName !== undefined) {
67
+ const existing = await db.envelope_get_run_by_name.get({ session_id: sessionId, name: opts.runName });
68
+ if (existing !== undefined)
69
+ return existing;
70
+ const created = await db.envelope_insert_run.get({ session_id: sessionId, name: opts.runName, persona: opts.persona ?? null });
71
+ if (created === undefined)
72
+ throw new Error("resolveRun: run insert returned no row");
73
+ return created;
74
+ }
75
+ const created = await db.envelope_insert_run.get({ session_id: sessionId, name: Envelope.generateRunName(), persona: opts.persona ?? null });
61
76
  if (created === undefined)
62
77
  throw new Error("resolveRun: run insert returned no row");
63
78
  return created;
64
79
  }
65
- const created = await db.envelope_insert_run.get({ session_id: sessionId, name: generateRunName(), persona: opts.persona ?? null });
66
- if (created === undefined)
67
- throw new Error("resolveRun: run insert returned no row");
68
- return created;
69
- };
70
- export const attachToSession = async (db, sessionId, opts = {}) => {
71
- const session = await db.envelope_get_session.get({ id: sessionId });
72
- if (session === undefined)
73
- throw new Error(`session ${sessionId} not found`);
74
- const run = await resolveRun(db, session.id, opts);
75
- return {
76
- sessionId: session.id, sessionName: session.name,
77
- projectRoot: session.project_root, sessionPersona: session.persona,
78
- runId: run.id, runName: run.name, runPersona: run.persona,
79
- clientLoopId: null,
80
- };
81
- };
82
- // Lazy client-loop allocator. Called from dispatchAsClient on the first
83
- // client-origin op for this connection; subsequent ops reuse the same
84
- // loop until the connection closes.
85
- export const ensureClientLoop = async (db, runId) => {
86
- const loop = await db.envelope_insert_client_loop.get({ run_id: runId });
87
- if (loop === undefined)
88
- throw new Error("ensureClientLoop: loop insert returned no row");
89
- return loop.id;
90
- };
91
- export const listRunsForSession = async (db, sessionId) => {
92
- return await db.envelope_list_runs_for_session.all({ session_id: sessionId });
93
- };
94
- export const closeClientLoop = async (db, loopId, status) => {
95
- await db.envelope_close_client_loop.run({ status, loop_id: loopId });
96
- };
97
- export const listSessions = async (db) => {
98
- return await db.envelope_list_sessions.all();
99
- };
100
- // Updates sessions.project_root for an existing session and returns the new
101
- // value. Throws if the session does not exist. Used by session.set_root (F.1).
102
- export const updateSessionProjectRoot = async (db, sessionId, projectRoot) => {
103
- const row = await db.envelope_update_session_project_root.get({ id: sessionId, project_root: projectRoot });
104
- if (row === undefined)
105
- throw new Error(`session ${sessionId} not found`);
106
- return row.project_root;
107
- };
108
- // Updates sessions.persona. Mirrors updateSessionProjectRoot. Used by
109
- // session.set_persona (issue #150).
110
- export const updateSessionPersona = async (db, sessionId, persona) => {
111
- const row = await db.envelope_update_session_persona.get({ id: sessionId, persona });
112
- if (row === undefined)
113
- throw new Error(`session ${sessionId} not found`);
114
- return row.persona;
115
- };
80
+ static async attachToSession(db, sessionId, opts = {}) {
81
+ const session = await db.envelope_get_session.get({ id: sessionId });
82
+ if (session === undefined)
83
+ throw new Error(`session ${sessionId} not found`);
84
+ const run = await Envelope.#resolveRun(db, session.id, opts);
85
+ return {
86
+ sessionId: session.id, sessionName: session.name,
87
+ projectRoot: session.project_root, sessionPersona: session.persona,
88
+ runId: run.id, runName: run.name, runPersona: run.persona,
89
+ clientLoopId: null,
90
+ };
91
+ }
92
+ // Lazy client-loop allocator. Called from dispatchAsClient on the first
93
+ // client-origin op for this connection; subsequent ops reuse the same
94
+ // loop until the connection closes.
95
+ static async ensureClientLoop(db, runId) {
96
+ const loop = await db.envelope_insert_client_loop.get({ run_id: runId });
97
+ if (loop === undefined)
98
+ throw new Error("ensureClientLoop: loop insert returned no row");
99
+ return loop.id;
100
+ }
101
+ static async listRunsForSession(db, sessionId) {
102
+ return await db.envelope_list_runs_for_session.all({ session_id: sessionId });
103
+ }
104
+ static async closeClientLoop(db, loopId, status) {
105
+ await db.envelope_close_client_loop.run({ status, loop_id: loopId });
106
+ }
107
+ static async listSessions(db) {
108
+ return await db.envelope_list_sessions.all();
109
+ }
110
+ // Updates sessions.project_root for an existing session and returns the new
111
+ // value. Throws if the session does not exist. Used by session.set_root (F.1).
112
+ static async updateSessionProjectRoot(db, sessionId, projectRoot) {
113
+ const row = await db.envelope_update_session_project_root.get({ id: sessionId, project_root: projectRoot });
114
+ if (row === undefined)
115
+ throw new Error(`session ${sessionId} not found`);
116
+ // SPEC §14.3 D4 (re)establish git-ls-files membership when the workspace
117
+ // pointer changes. No-op on null (headless) or non-git roots.
118
+ await GitMembership.resolveGitMembership(db, sessionId, undefined);
119
+ return row.project_root;
120
+ }
121
+ // Updates sessions.persona. Mirrors updateSessionProjectRoot. Used by
122
+ // session.set_persona (issue #150).
123
+ static async updateSessionPersona(db, sessionId, persona) {
124
+ const row = await db.envelope_update_session_persona.get({ id: sessionId, persona });
125
+ if (row === undefined)
126
+ throw new Error(`session ${sessionId} not found`);
127
+ return row.persona;
128
+ }
129
+ }
116
130
  //# sourceMappingURL=envelope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
@@ -26,5 +26,8 @@ export interface LogEntryWire {
26
26
  status_rx: number;
27
27
  tokens: number;
28
28
  }
29
- export declare const fetchLogEntry: (db: Db, id: number) => Promise<LogEntryWire>;
29
+ export default class LogEntry {
30
+ #private;
31
+ static fetchLogEntry(db: Db, id: number): Promise<LogEntryWire>;
32
+ }
30
33
  //# sourceMappingURL=logEntry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAQD,eAAO,MAAM,aAAa,GAAU,IAAI,EAAE,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,YAAY,CA8B5E,CAAC"}
1
+ {"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;;WAOZ,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA+BxE"}
@@ -1,43 +1,45 @@
1
1
  // Hydrate a log_entries row for the wire. Re-parses JSON-encoded columns
2
2
  // (signal, params, lineMarker, tx, rx) so the client receives
3
3
  // structured values, not opaque strings.
4
- const parseJsonOrNull = (v) => {
5
- if (v === null || v === undefined)
6
- return null;
7
- if (typeof v !== "string")
8
- return v;
9
- return JSON.parse(v);
10
- };
11
- export const fetchLogEntry = async (db, id) => {
12
- const row = await db.log_entry_by_id.get({ id });
13
- if (row === undefined)
14
- throw new Error(`log_entries row ${id} not found`);
15
- return {
16
- id: row.id,
17
- run_id: row.run_id,
18
- loop_id: row.loop_id,
19
- turn_id: row.turn_id,
20
- sequence: row.sequence,
21
- at: row.at,
22
- origin: row.origin,
23
- op: row.op,
24
- suffix: row.suffix,
25
- signal: parseJsonOrNull(row.signal),
26
- scheme: row.scheme,
27
- username: row.username,
28
- password: row.password,
29
- hostname: row.hostname,
30
- port: row.port,
31
- pathname: row.pathname,
32
- params: parseJsonOrNull(row.params),
33
- fragment: row.fragment,
34
- lineMarker: parseJsonOrNull(row.lineMarker),
35
- tx: parseJsonOrNull(row.tx),
36
- mimetype_tx: row.mimetype_tx,
37
- rx: parseJsonOrNull(row.rx),
38
- mimetype_rx: row.mimetype_rx,
39
- status_rx: row.status_rx,
40
- tokens: row.tokens,
41
- };
42
- };
4
+ export default class LogEntry {
5
+ static #parseJsonOrNull(v) {
6
+ if (v === null || v === undefined)
7
+ return null;
8
+ if (typeof v !== "string")
9
+ return v;
10
+ return JSON.parse(v);
11
+ }
12
+ static async fetchLogEntry(db, id) {
13
+ const row = await db.log_entry_by_id.get({ id });
14
+ if (row === undefined)
15
+ throw new Error(`log_entries row ${id} not found`);
16
+ return {
17
+ id: row.id,
18
+ run_id: row.run_id,
19
+ loop_id: row.loop_id,
20
+ turn_id: row.turn_id,
21
+ sequence: row.sequence,
22
+ at: row.at,
23
+ origin: row.origin,
24
+ op: row.op,
25
+ suffix: row.suffix,
26
+ signal: LogEntry.#parseJsonOrNull(row.signal),
27
+ scheme: row.scheme,
28
+ username: row.username,
29
+ password: row.password,
30
+ hostname: row.hostname,
31
+ port: row.port,
32
+ pathname: row.pathname,
33
+ params: LogEntry.#parseJsonOrNull(row.params),
34
+ fragment: row.fragment,
35
+ lineMarker: LogEntry.#parseJsonOrNull(row.lineMarker),
36
+ tx: LogEntry.#parseJsonOrNull(row.tx),
37
+ mimetype_tx: row.mimetype_tx,
38
+ rx: LogEntry.#parseJsonOrNull(row.rx),
39
+ mimetype_rx: row.mimetype_rx,
40
+ status_rx: row.status_rx,
41
+ tokens: row.tokens,
42
+ };
43
+ }
44
+ }
43
45
  //# sourceMappingURL=logEntry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8DAA8D;AAC9D,yCAAyC;AAgCzC,MAAM,eAAe,GAAG,CAAC,CAAU,EAAW,EAAE;IAC5C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAAM,EAAE,EAAU,EAAyB,EAAE;IAC7E,MAAM,GAAG,GAAG,MAAO,EAAE,CAAC,eAA8B,CAAC,GAAG,CAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1F,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAC1E,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAiB;QAC9B,OAAO,EAAE,GAAG,CAAC,OAAiB;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;QAChC,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;QAC5B,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;QAC5B,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,MAAuB;QACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;QACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;QACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;QACvC,IAAI,EAAE,GAAG,CAAC,IAAqB;QAC/B,QAAQ,EAAE,GAAG,CAAC,QAAyB;QACvC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;QACvC,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;QAC3C,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,WAAW,EAAE,GAAG,CAAC,WAAqB;QACtC,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,WAAW,EAAE,GAAG,CAAC,WAAqB;QACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;QAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;KAC/B,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8DAA8D;AAC9D,yCAAyC;AAgCzC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,gBAAgB,CAAC,CAAU;QAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,MAAO,EAAE,CAAC,eAA8B,CAAC,GAAG,CAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,IAAI,EAAE,GAAG,CAAC,IAAqB;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;YACrD,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;SAC/B,CAAC;IACN,CAAC;CACJ"}
@@ -4,5 +4,7 @@ export interface DispatchAsClientResult {
4
4
  status: number;
5
5
  [key: string]: unknown;
6
6
  }
7
- export declare const dispatchAsClient: (ctx: HandlerContext, statement: PlurnkStatement) => Promise<DispatchAsClientResult>;
7
+ export default class DispatchAsClient {
8
+ static dispatch(ctx: HandlerContext, statement: PlurnkStatement): Promise<DispatchAsClientResult>;
9
+ }
8
10
  //# sourceMappingURL=_dispatchAsClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dispatchAsClient.d.ts","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,GAAU,KAAK,cAAc,EAAE,WAAW,eAAe,KAAG,OAAO,CAAC,sBAAsB,CA0BtH,CAAC"}
1
+ {"version":3,"file":"_dispatchAsClient.d.ts","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,gBAAgB;WACpB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC;CA2B1G"}
@@ -3,34 +3,36 @@
3
3
  // loop, dispatches via Engine.dispatch, fires the log/entry notification
4
4
  // to all clients attached to the same session, and returns the dispatch
5
5
  // result for the RPC response.
6
- import { insertClientTurn } from "../clientTurn.js";
7
- import { fetchLogEntry } from "../logEntry.js";
8
- import { ensureClientLoop } from "../envelope.js";
9
- export const dispatchAsClient = async (ctx, statement) => {
10
- if (ctx.session === null) {
11
- throw new Error("dispatchAsClient requires an attached session");
6
+ import ClientTurn from "../clientTurn.js";
7
+ import LogEntry from "../logEntry.js";
8
+ import Envelope from "../envelope.js";
9
+ export default class DispatchAsClient {
10
+ static async dispatch(ctx, statement) {
11
+ if (ctx.session === null) {
12
+ throw new Error("dispatchAsClient requires an attached session");
13
+ }
14
+ const { sessionId, runId } = ctx.session;
15
+ if (ctx.session.clientLoopId === null) {
16
+ ctx.session.clientLoopId = await Envelope.ensureClientLoop(ctx.db, runId);
17
+ }
18
+ const clientLoopId = ctx.session.clientLoopId;
19
+ const turnId = await ClientTurn.insertClientTurn(ctx.db, clientLoopId);
20
+ const result = await ctx.engine.dispatch({
21
+ statement,
22
+ sessionId,
23
+ runId,
24
+ loopId: clientLoopId,
25
+ turnId,
26
+ sequence: 1,
27
+ origin: "client",
28
+ onDispatch: (logEntryId) => {
29
+ void (async () => {
30
+ const entry = await LogEntry.fetchLogEntry(ctx.db, logEntryId);
31
+ ctx.notify({ sessionId }, "log/entry", { entry });
32
+ })();
33
+ },
34
+ });
35
+ return result;
12
36
  }
13
- const { sessionId, runId } = ctx.session;
14
- if (ctx.session.clientLoopId === null) {
15
- ctx.session.clientLoopId = await ensureClientLoop(ctx.db, runId);
16
- }
17
- const clientLoopId = ctx.session.clientLoopId;
18
- const turnId = await insertClientTurn(ctx.db, clientLoopId);
19
- const result = await ctx.engine.dispatch({
20
- statement,
21
- sessionId,
22
- runId,
23
- loopId: clientLoopId,
24
- turnId,
25
- sequence: 1,
26
- origin: "client",
27
- onDispatch: (logEntryId) => {
28
- void (async () => {
29
- const entry = await fetchLogEntry(ctx.db, logEntryId);
30
- ctx.notify({ sessionId }, "log/entry", { entry });
31
- })();
32
- },
33
- });
34
- return result;
35
- };
37
+ }
36
38
  //# sourceMappingURL=_dispatchAsClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dispatchAsClient.js","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,+BAA+B;AAI/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAmB,EAAE,SAA0B,EAAmC,EAAE;IACvH,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IACzC,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QACpC,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrC,SAAS;QACT,SAAS;QACT,KAAK;QACL,MAAM,EAAE,YAAY;QACpB,MAAM;QACN,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;YACvB,KAAK,CAAC,KAAK,IAAI,EAAE;gBACb,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;KACJ,CAAC,CAAC;IACH,OAAO,MAAgC,CAAC;AAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"_dispatchAsClient.js","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,+BAA+B;AAI/B,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAmB,EAAE,SAA0B;QACjE,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACzC,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACpC,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrC,SAAS;YACT,SAAS;YACT,KAAK;YACL,MAAM,EAAE,YAAY;YACpB,MAAM;YACN,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;gBACvB,KAAK,CAAC,KAAK,IAAI,EAAE;oBACb,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAC/D,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACtD,CAAC,CAAC,EAAE,CAAC;YACT,CAAC;SACJ,CAAC,CAAC;QACH,OAAO,MAAgC,CAAC;IAC5C,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 DiscoverMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=discover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAKnD,CAAC"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAMlD"}
@@ -1,7 +1,9 @@
1
- export const register = (registry) => {
2
- registry.registerMethod("discover", {
3
- handler: async (_params, ctx) => ctx.registry.catalog(),
4
- description: "Returns the protocol version plus the method and notification catalog.",
5
- });
6
- };
1
+ export default class DiscoverMethod {
2
+ static register(registry) {
3
+ registry.registerMethod("discover", {
4
+ handler: async (_params, ctx) => ctx.registry.catalog(),
5
+ description: "Returns the protocol version plus the method and notification catalog.",
6
+ });
7
+ }
8
+ }
7
9
  //# sourceMappingURL=discover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;QAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QACvD,WAAW,EAAE,wEAAwE;KACxF,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YACvD,WAAW,EAAE,wEAAwE;SACxF,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,6 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class EntryReadMethod {
3
+ #private;
4
+ static register(registry: MethodRegistry): void;
5
+ }
3
6
  //# sourceMappingURL=entry_read.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry_read.d.ts","sourceRoot":"","sources":["../../../src/server/methods/entry_read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAiDvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAsBnD,CAAC"}
1
+ {"version":3,"file":"entry_read.d.ts","sourceRoot":"","sources":["../../../src/server/methods/entry_read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAkBvD,MAAM,CAAC,OAAO,OAAO,eAAe;;IAgChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAuBlD"}