@plurnk/plurnk-service 0.1.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 (242) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +54 -0
  3. package/SPEC.md +1045 -0
  4. package/bin/plurnk-service.js +111 -0
  5. package/dist/core/ChannelWrite.d.ts +40 -0
  6. package/dist/core/ChannelWrite.d.ts.map +1 -0
  7. package/dist/core/ChannelWrite.js +49 -0
  8. package/dist/core/ChannelWrite.js.map +1 -0
  9. package/dist/core/Db.d.ts +14 -0
  10. package/dist/core/Db.d.ts.map +1 -0
  11. package/dist/core/Db.js +7 -0
  12. package/dist/core/Db.js.map +1 -0
  13. package/dist/core/Engine.d.ts +107 -0
  14. package/dist/core/Engine.d.ts.map +1 -0
  15. package/dist/core/Engine.js +937 -0
  16. package/dist/core/Engine.js.map +1 -0
  17. package/dist/core/EnvFlags.d.ts +10 -0
  18. package/dist/core/EnvFlags.d.ts.map +1 -0
  19. package/dist/core/EnvFlags.js +82 -0
  20. package/dist/core/EnvFlags.js.map +1 -0
  21. package/dist/core/Migrator.d.ts +19 -0
  22. package/dist/core/Migrator.d.ts.map +1 -0
  23. package/dist/core/Migrator.js +55 -0
  24. package/dist/core/Migrator.js.map +1 -0
  25. package/dist/core/PluginLoader.d.ts +14 -0
  26. package/dist/core/PluginLoader.d.ts.map +1 -0
  27. package/dist/core/PluginLoader.js +100 -0
  28. package/dist/core/PluginLoader.js.map +1 -0
  29. package/dist/core/ProviderRegistry.d.ts +42 -0
  30. package/dist/core/ProviderRegistry.d.ts.map +1 -0
  31. package/dist/core/ProviderRegistry.js +72 -0
  32. package/dist/core/ProviderRegistry.js.map +1 -0
  33. package/dist/core/SchemeRegistry.d.ts +13 -0
  34. package/dist/core/SchemeRegistry.d.ts.map +1 -0
  35. package/dist/core/SchemeRegistry.js +50 -0
  36. package/dist/core/SchemeRegistry.js.map +1 -0
  37. package/dist/core/scheme-types.d.ts +37 -0
  38. package/dist/core/scheme-types.d.ts.map +1 -0
  39. package/dist/core/scheme-types.js +9 -0
  40. package/dist/core/scheme-types.js.map +1 -0
  41. package/dist/index.d.ts +22 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +51 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/providers/Mock.d.ts +43 -0
  46. package/dist/providers/Mock.d.ts.map +1 -0
  47. package/dist/providers/Mock.js +36 -0
  48. package/dist/providers/Mock.js.map +1 -0
  49. package/dist/schemes/Exec.d.ts +5 -0
  50. package/dist/schemes/Exec.d.ts.map +1 -0
  51. package/dist/schemes/Exec.js +20 -0
  52. package/dist/schemes/Exec.js.map +1 -0
  53. package/dist/schemes/File.d.ts +35 -0
  54. package/dist/schemes/File.d.ts.map +1 -0
  55. package/dist/schemes/File.js +149 -0
  56. package/dist/schemes/File.js.map +1 -0
  57. package/dist/schemes/Known.d.ts +19 -0
  58. package/dist/schemes/Known.d.ts.map +1 -0
  59. package/dist/schemes/Known.js +44 -0
  60. package/dist/schemes/Known.js.map +1 -0
  61. package/dist/schemes/Log.d.ts +13 -0
  62. package/dist/schemes/Log.d.ts.map +1 -0
  63. package/dist/schemes/Log.js +38 -0
  64. package/dist/schemes/Log.js.map +1 -0
  65. package/dist/schemes/Plurnk.d.ts +5 -0
  66. package/dist/schemes/Plurnk.d.ts.map +1 -0
  67. package/dist/schemes/Plurnk.js +15 -0
  68. package/dist/schemes/Plurnk.js.map +1 -0
  69. package/dist/schemes/Skill.d.ts +19 -0
  70. package/dist/schemes/Skill.d.ts.map +1 -0
  71. package/dist/schemes/Skill.js +46 -0
  72. package/dist/schemes/Skill.js.map +1 -0
  73. package/dist/schemes/Unknown.d.ts +19 -0
  74. package/dist/schemes/Unknown.d.ts.map +1 -0
  75. package/dist/schemes/Unknown.js +44 -0
  76. package/dist/schemes/Unknown.js.map +1 -0
  77. package/dist/schemes/_entry-crud.d.ts +24 -0
  78. package/dist/schemes/_entry-crud.d.ts.map +1 -0
  79. package/dist/schemes/_entry-crud.js +56 -0
  80. package/dist/schemes/_entry-crud.js.map +1 -0
  81. package/dist/schemes/_entry-find.d.ts +10 -0
  82. package/dist/schemes/_entry-find.d.ts.map +1 -0
  83. package/dist/schemes/_entry-find.js +41 -0
  84. package/dist/schemes/_entry-find.js.map +1 -0
  85. package/dist/schemes/_entry-ops.d.ts +21 -0
  86. package/dist/schemes/_entry-ops.d.ts.map +1 -0
  87. package/dist/schemes/_entry-ops.js +146 -0
  88. package/dist/schemes/_entry-ops.js.map +1 -0
  89. package/dist/schemes/_entry-send.d.ts +8 -0
  90. package/dist/schemes/_entry-send.d.ts.map +1 -0
  91. package/dist/schemes/_entry-send.js +56 -0
  92. package/dist/schemes/_entry-send.js.map +1 -0
  93. package/dist/server/ClientConnection.d.ts +22 -0
  94. package/dist/server/ClientConnection.d.ts.map +1 -0
  95. package/dist/server/ClientConnection.js +120 -0
  96. package/dist/server/ClientConnection.js.map +1 -0
  97. package/dist/server/Daemon.d.ts +43 -0
  98. package/dist/server/Daemon.d.ts.map +1 -0
  99. package/dist/server/Daemon.js +252 -0
  100. package/dist/server/Daemon.js.map +1 -0
  101. package/dist/server/MethodRegistry.d.ts +56 -0
  102. package/dist/server/MethodRegistry.d.ts.map +1 -0
  103. package/dist/server/MethodRegistry.js +55 -0
  104. package/dist/server/MethodRegistry.js.map +1 -0
  105. package/dist/server/clientTurn.d.ts +3 -0
  106. package/dist/server/clientTurn.d.ts.map +1 -0
  107. package/dist/server/clientTurn.js +22 -0
  108. package/dist/server/clientTurn.js.map +1 -0
  109. package/dist/server/dsl.d.ts +47 -0
  110. package/dist/server/dsl.d.ts.map +1 -0
  111. package/dist/server/dsl.js +117 -0
  112. package/dist/server/dsl.js.map +1 -0
  113. package/dist/server/envelope.d.ts +44 -0
  114. package/dist/server/envelope.d.ts.map +1 -0
  115. package/dist/server/envelope.js +113 -0
  116. package/dist/server/envelope.js.map +1 -0
  117. package/dist/server/logEntry.d.ts +30 -0
  118. package/dist/server/logEntry.d.ts.map +1 -0
  119. package/dist/server/logEntry.js +43 -0
  120. package/dist/server/logEntry.js.map +1 -0
  121. package/dist/server/methods/_dispatchAsClient.d.ts +8 -0
  122. package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -0
  123. package/dist/server/methods/_dispatchAsClient.js +31 -0
  124. package/dist/server/methods/_dispatchAsClient.js.map +1 -0
  125. package/dist/server/methods/discover.d.ts +3 -0
  126. package/dist/server/methods/discover.d.ts.map +1 -0
  127. package/dist/server/methods/discover.js +7 -0
  128. package/dist/server/methods/discover.js.map +1 -0
  129. package/dist/server/methods/entry_read.d.ts +3 -0
  130. package/dist/server/methods/entry_read.d.ts.map +1 -0
  131. package/dist/server/methods/entry_read.js +56 -0
  132. package/dist/server/methods/entry_read.js.map +1 -0
  133. package/dist/server/methods/log_read.d.ts +3 -0
  134. package/dist/server/methods/log_read.d.ts.map +1 -0
  135. package/dist/server/methods/log_read.js +39 -0
  136. package/dist/server/methods/log_read.js.map +1 -0
  137. package/dist/server/methods/loop_resolve.d.ts +3 -0
  138. package/dist/server/methods/loop_resolve.d.ts.map +1 -0
  139. package/dist/server/methods/loop_resolve.js +45 -0
  140. package/dist/server/methods/loop_resolve.js.map +1 -0
  141. package/dist/server/methods/loop_run.d.ts +3 -0
  142. package/dist/server/methods/loop_run.d.ts.map +1 -0
  143. package/dist/server/methods/loop_run.js +112 -0
  144. package/dist/server/methods/loop_run.js.map +1 -0
  145. package/dist/server/methods/op_copy.d.ts +3 -0
  146. package/dist/server/methods/op_copy.d.ts.map +1 -0
  147. package/dist/server/methods/op_copy.js +24 -0
  148. package/dist/server/methods/op_copy.js.map +1 -0
  149. package/dist/server/methods/op_dispatch.d.ts +3 -0
  150. package/dist/server/methods/op_dispatch.d.ts.map +1 -0
  151. package/dist/server/methods/op_dispatch.js +17 -0
  152. package/dist/server/methods/op_dispatch.js.map +1 -0
  153. package/dist/server/methods/op_edit.d.ts +3 -0
  154. package/dist/server/methods/op_edit.d.ts.map +1 -0
  155. package/dist/server/methods/op_edit.js +22 -0
  156. package/dist/server/methods/op_edit.js.map +1 -0
  157. package/dist/server/methods/op_exec.d.ts +3 -0
  158. package/dist/server/methods/op_exec.d.ts.map +1 -0
  159. package/dist/server/methods/op_exec.js +19 -0
  160. package/dist/server/methods/op_exec.js.map +1 -0
  161. package/dist/server/methods/op_find.d.ts +3 -0
  162. package/dist/server/methods/op_find.d.ts.map +1 -0
  163. package/dist/server/methods/op_find.js +22 -0
  164. package/dist/server/methods/op_find.js.map +1 -0
  165. package/dist/server/methods/op_hide.d.ts +3 -0
  166. package/dist/server/methods/op_hide.d.ts.map +1 -0
  167. package/dist/server/methods/op_hide.js +22 -0
  168. package/dist/server/methods/op_hide.js.map +1 -0
  169. package/dist/server/methods/op_move.d.ts +3 -0
  170. package/dist/server/methods/op_move.d.ts.map +1 -0
  171. package/dist/server/methods/op_move.js +22 -0
  172. package/dist/server/methods/op_move.js.map +1 -0
  173. package/dist/server/methods/op_parse.d.ts +3 -0
  174. package/dist/server/methods/op_parse.d.ts.map +1 -0
  175. package/dist/server/methods/op_parse.js +23 -0
  176. package/dist/server/methods/op_parse.js.map +1 -0
  177. package/dist/server/methods/op_read.d.ts +3 -0
  178. package/dist/server/methods/op_read.d.ts.map +1 -0
  179. package/dist/server/methods/op_read.js +22 -0
  180. package/dist/server/methods/op_read.js.map +1 -0
  181. package/dist/server/methods/op_send.d.ts +3 -0
  182. package/dist/server/methods/op_send.d.ts.map +1 -0
  183. package/dist/server/methods/op_send.js +21 -0
  184. package/dist/server/methods/op_send.js.map +1 -0
  185. package/dist/server/methods/op_show.d.ts +3 -0
  186. package/dist/server/methods/op_show.d.ts.map +1 -0
  187. package/dist/server/methods/op_show.js +22 -0
  188. package/dist/server/methods/op_show.js.map +1 -0
  189. package/dist/server/methods/ping.d.ts +3 -0
  190. package/dist/server/methods/ping.d.ts.map +1 -0
  191. package/dist/server/methods/ping.js +7 -0
  192. package/dist/server/methods/ping.js.map +1 -0
  193. package/dist/server/methods/providers_list.d.ts +3 -0
  194. package/dist/server/methods/providers_list.d.ts.map +1 -0
  195. package/dist/server/methods/providers_list.js +19 -0
  196. package/dist/server/methods/providers_list.js.map +1 -0
  197. package/dist/server/methods/session_attach.d.ts +3 -0
  198. package/dist/server/methods/session_attach.d.ts.map +1 -0
  199. package/dist/server/methods/session_attach.js +42 -0
  200. package/dist/server/methods/session_attach.js.map +1 -0
  201. package/dist/server/methods/session_create.d.ts +3 -0
  202. package/dist/server/methods/session_create.d.ts.map +1 -0
  203. package/dist/server/methods/session_create.js +53 -0
  204. package/dist/server/methods/session_create.js.map +1 -0
  205. package/dist/server/methods/session_list.d.ts +3 -0
  206. package/dist/server/methods/session_list.d.ts.map +1 -0
  207. package/dist/server/methods/session_list.js +8 -0
  208. package/dist/server/methods/session_list.js.map +1 -0
  209. package/dist/server/methods/session_runs.d.ts +3 -0
  210. package/dist/server/methods/session_runs.d.ts.map +1 -0
  211. package/dist/server/methods/session_runs.js +18 -0
  212. package/dist/server/methods/session_runs.js.map +1 -0
  213. package/dist/server/methods/session_set_persona.d.ts +3 -0
  214. package/dist/server/methods/session_set_persona.d.ts.map +1 -0
  215. package/dist/server/methods/session_set_persona.js +27 -0
  216. package/dist/server/methods/session_set_persona.js.map +1 -0
  217. package/dist/server/methods/session_set_root.d.ts +3 -0
  218. package/dist/server/methods/session_set_root.d.ts.map +1 -0
  219. package/dist/server/methods/session_set_root.js +33 -0
  220. package/dist/server/methods/session_set_root.js.map +1 -0
  221. package/dist/server/yolo.d.ts +4 -0
  222. package/dist/server/yolo.d.ts.map +1 -0
  223. package/dist/server/yolo.js +48 -0
  224. package/dist/server/yolo.js.map +1 -0
  225. package/migrations/001_sessions.sql +11 -0
  226. package/migrations/002_runs.sql +16 -0
  227. package/migrations/003_loops.sql +12 -0
  228. package/migrations/004_turns.sql +18 -0
  229. package/migrations/005_entries.sql +44 -0
  230. package/migrations/006_log_entries.sql +51 -0
  231. package/migrations/007_visibility.sql +10 -0
  232. package/migrations/008_schemes_providers.sql +25 -0
  233. package/migrations/009_cost_rollups.sql +44 -0
  234. package/migrations/010_subscriptions.sql +36 -0
  235. package/migrations/011_turn_call_metadata.sql +7 -0
  236. package/migrations/012_proposal_lifecycle.sql +22 -0
  237. package/migrations/013_log_entries_lifecycle_columns.sql +22 -0
  238. package/migrations/014_loop_flags.sql +9 -0
  239. package/migrations/015_sessions_project_root.sql +6 -0
  240. package/migrations/016_persona_columns.sql +11 -0
  241. package/package.json +66 -0
  242. package/persona.md +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log_read.js","sourceRoot":"","sources":["../../../src/server/methods/log_read.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2DAA2D;AAI3D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,SAAS,GAAG,IAAI,CAAC;AASvB,MAAM,eAAe,GAAG,KAAK,EAAE,EAAM,EAAE,KAAa,EAAE,OAAe,EAA2B,EAAE;IAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACrG,MAAM,IAAI,GAAG,MAAO,EAAE,CAAC,mBAAkC,CAAC,GAAG,CAAiB;QAC1E,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACnE,OAAO,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACnE,QAAQ,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACtE,KAAK;KACR,CAAC,CAAC;IACH,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;QAChC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACnF,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QACpC,CAAC;QACD,WAAW,EAAE,yEAAyE;QACtF,MAAM,EAAE;YACJ,MAAM,EAAE,8BAA8B;YACtC,MAAM,EAAE,qDAAqD;YAC7D,OAAO,EAAE,oEAAoE;YAC7E,KAAK,EAAE,yDAAyD;SACnE;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=loop_resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop_resolve.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_resolve.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AASvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAmCnD,CAAC"}
@@ -0,0 +1,45 @@
1
+ // loop.resolve — client→server RPC that accepts/rejects a pending proposal.
2
+ // Engine.dispatch is paused on the matching log_entry; this method feeds
3
+ // the decision back in. Returns once the resolution is applied. Per task #42
4
+ // AGENTS.md §Phase E.2.
5
+ export const register = (registry) => {
6
+ registry.registerMethod("loop.resolve", {
7
+ handler: async (params, ctx) => {
8
+ if (ctx.session === null)
9
+ throw new Error("loop.resolve requires an attached session");
10
+ const p = (params ?? {});
11
+ if (typeof p.logEntryId !== "number" || p.logEntryId <= 0) {
12
+ throw new Error("loop.resolve requires positive integer params.logEntryId");
13
+ }
14
+ if (p.decision !== "accept" && p.decision !== "reject" && p.decision !== "cancel") {
15
+ throw new Error("loop.resolve params.decision must be 'accept' | 'reject' | 'cancel'");
16
+ }
17
+ const resolution = { decision: p.decision };
18
+ if (typeof p.body === "string")
19
+ resolution.body = p.body;
20
+ if (typeof p.outcome === "string")
21
+ resolution.outcome = p.outcome;
22
+ // Engine.resolveProposal throws if the id has no pending waiter
23
+ // (duplicate resolution, already-resolved entry, unknown id).
24
+ // Surface that as a 404-shaped error to the client.
25
+ try {
26
+ ctx.engine.resolveProposal(p.logEntryId, resolution);
27
+ }
28
+ catch (err) {
29
+ return {
30
+ status: 404,
31
+ error: err instanceof Error ? err.message : String(err),
32
+ };
33
+ }
34
+ return { status: 200 };
35
+ },
36
+ description: "Resolve a pending proposal (status=202 log entry). Accepts decision: accept|reject|cancel; optional body override and outcome string. Engine.dispatch unpauses on resolution.",
37
+ params: {
38
+ logEntryId: "number — the log_entries.id with state='proposed' to resolve",
39
+ decision: "string — 'accept' | 'reject' | 'cancel'",
40
+ body: "string (optional) — body override for the resolved log entry",
41
+ outcome: "string (optional) — outcome string (e.g. 'policy_veto', 'timeout'); wins over the decision default",
42
+ },
43
+ });
44
+ };
45
+ //# sourceMappingURL=loop_resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop_resolve.js","sourceRoot":"","sources":["../../../src/server/methods/loop_resolve.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,wBAAwB;AAWxB,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,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACvF,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChF,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,UAAU,GAAqE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9G,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACzD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAAE,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAClE,gEAAgE;YAChE,8DAA8D;YAC9D,oDAAoD;YACpD,IAAI,CAAC;gBACD,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO;oBACH,MAAM,EAAE,GAAG;oBACX,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBAC1D,CAAC;YACN,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,WAAW,EAAE,+KAA+K;QAC5L,MAAM,EAAE;YACJ,UAAU,EAAE,8DAA8D;YAC1E,QAAQ,EAAE,yCAAyC;YACnD,IAAI,EAAE,8DAA8D;YACpE,OAAO,EAAE,oGAAoG;SAChH;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=loop_run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop_run.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAuBvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IA2GnD,CAAC"}
@@ -0,0 +1,112 @@
1
+ // loop.run — model-driven loop. Reads sysprompt, creates a new model loop
2
+ // in the connection's run, calls Engine.runLoop with onDispatch firing
3
+ // log/entry notifications, fires loop/terminated on completion.
4
+ import { readFile } from "node:fs/promises";
5
+ import { fetchLogEntry } from "../logEntry.js";
6
+ import { PATHS } from "../../index.js";
7
+ import { parseAliasesFromEnv, instantiateProvider } from "../../core/ProviderRegistry.js";
8
+ import { DEFAULT_LOOP_FLAGS } from "../../core/scheme-types.js";
9
+ export const register = (registry) => {
10
+ registry.registerMethod("loop.run", {
11
+ handler: async (params, ctx) => {
12
+ if (ctx.session === null)
13
+ throw new Error("loop.run requires an attached session");
14
+ const p = (params ?? {});
15
+ if (typeof p.prompt !== "string" || p.prompt.length === 0) {
16
+ throw new Error("loop.run requires non-empty params.prompt");
17
+ }
18
+ // Validate flags early — fail-fast on bad input regardless of
19
+ // provider config. Actual persistence happens after loop insert.
20
+ if (p.flags !== undefined) {
21
+ if (typeof p.flags !== "object" || p.flags === null || Array.isArray(p.flags)) {
22
+ throw new Error("loop.run: flags must be an object");
23
+ }
24
+ if (p.flags.yolo !== undefined && typeof p.flags.yolo !== "boolean") {
25
+ throw new Error("loop.run: flags.yolo must be a boolean");
26
+ }
27
+ }
28
+ const loopPersona = p.persona ?? null;
29
+ if (loopPersona !== null && typeof loopPersona !== "string") {
30
+ throw new Error("loop.run: persona must be a string or null");
31
+ }
32
+ const maxTurns = p.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50");
33
+ // Resolve provider for this call. Per-call alias override (issue
34
+ // #128) takes precedence over ctx.provider; absence falls back to
35
+ // the daemon's boot-time provider.
36
+ let provider = ctx.provider;
37
+ if (p.alias !== undefined) {
38
+ if (typeof p.alias !== "string" || p.alias.length === 0) {
39
+ throw new Error("loop.run: alias must be a non-empty string");
40
+ }
41
+ const aliases = parseAliasesFromEnv();
42
+ const target = aliases.find((a) => a.alias === p.alias.toLowerCase());
43
+ if (target === undefined) {
44
+ throw new Error(`loop.run: unknown alias '${p.alias}'; configure PLURNK_MODEL_${p.alias.toUpperCase()}=<provider>/<model>`);
45
+ }
46
+ provider = await instantiateProvider(target);
47
+ }
48
+ if (provider === null) {
49
+ return { status: 501, error: "no provider configured at the daemon and no alias override supplied" };
50
+ }
51
+ const { sessionId, runId } = ctx.session;
52
+ const systemPrompt = await readFile(PATHS.instructionsSystem, "utf8");
53
+ // packet.system.persona — default from persona.md. issue #150 will
54
+ // add loop.run({persona}) and session.attach({persona}) overrides;
55
+ // until then every loop carries the default.
56
+ const persona = await readFile(PATHS.defaultPersona, "utf8");
57
+ const seqRow = await ctx.db.loop_run_next_sequence.get({ run_id: runId });
58
+ if (seqRow === undefined)
59
+ throw new Error("loop.run: next-sequence query returned no row");
60
+ const loop = await ctx.db.loop_run_insert_loop.get({
61
+ run_id: runId, sequence: seqRow.next, prompt: p.prompt, persona: loopPersona,
62
+ });
63
+ if (loop === undefined)
64
+ throw new Error("loop.run: loop insert returned no row");
65
+ const loopId = loop.id;
66
+ // Persist per-loop flags if supplied. Merge over DEFAULT_LOOP_FLAGS
67
+ // so the JSON column always has a complete shape — yolo listener
68
+ // and scheme dispatch read with the same merge convention.
69
+ // (Param validation happened up-front; this branch only persists.)
70
+ if (p.flags !== undefined) {
71
+ const merged = { ...DEFAULT_LOOP_FLAGS, ...p.flags };
72
+ await ctx.db.engine_set_loop_flags.run({
73
+ loop_id: loopId, flags: JSON.stringify(merged),
74
+ });
75
+ }
76
+ const onDispatch = (logEntryId) => {
77
+ void (async () => {
78
+ const entry = await fetchLogEntry(ctx.db, logEntryId);
79
+ ctx.notify({ sessionId }, "log/entry", { entry });
80
+ })();
81
+ };
82
+ const result = await ctx.engine.runLoop({
83
+ provider,
84
+ messages: [
85
+ { role: "system", content: systemPrompt },
86
+ { role: "user", content: p.prompt },
87
+ ],
88
+ persona,
89
+ sessionId, runId, loopId, maxTurns,
90
+ origin: "model",
91
+ onDispatch,
92
+ });
93
+ ctx.notify({ sessionId }, "loop/terminated", {
94
+ loopId,
95
+ finalStatus: result.finalStatus,
96
+ hitMaxTurns: result.hitMaxTurns,
97
+ });
98
+ return { loopId, ...result };
99
+ },
100
+ description: "Run a model-driven loop with a prompt. Optional per-call `alias` resolves a PLURNK_MODEL_<alias> override. Optional `flags.yolo:true` enables server-side YOLO (daemon auto-accepts proposals in-process; intended for benchmarks and automation, NOT standard client UX — see client SPEC §6.3 for client-side YOLO). Optional `persona` sets the loop-level persona override (highest precedence in the cascade loops > runs > sessions > PLURNK_PERSONA file). Streams log/entry notifications; fires loop/terminated on completion.",
101
+ params: {
102
+ prompt: "string — user prompt for the loop",
103
+ maxTurns: "number? — safety cap on turns (default PLURNK_MAX_TURNS or 50)",
104
+ alias: "string? — model alias to use for this loop (overrides the daemon's PLURNK_MODEL)",
105
+ flags: "object? — per-loop flags. Currently accepts { yolo?: boolean }. Server YOLO; not for routine client use.",
106
+ persona: "string? — loop-level persona (text/markdown); takes precedence over session and run personas",
107
+ },
108
+ requiresInit: true,
109
+ longRunning: true,
110
+ });
111
+ };
112
+ //# sourceMappingURL=loop_run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_copy.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAYvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAkBnD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { buildCopy } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.copy", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.source !== "string" || p.source.length === 0)
8
+ throw new Error("op.copy requires params.source: string");
9
+ if (typeof p.destination !== "string" || p.destination.length === 0)
10
+ throw new Error("op.copy requires params.destination: string");
11
+ const statement = buildCopy(p);
12
+ return dispatchAsClient(ctx, statement);
13
+ },
14
+ description: "COPY — clone an entry to a new path.",
15
+ params: {
16
+ source: "string — source entry path",
17
+ destination: "string — destination entry path",
18
+ tags: "string[]? — tag set on the destination (replaces source tags if provided)",
19
+ lineRange: "LineMarker? — line range to copy",
20
+ },
21
+ requiresInit: true,
22
+ });
23
+ };
24
+ //# sourceMappingURL=op_copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_copy.js","sourceRoot":"","sources":["../../../src/server/methods/op_copy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACrH,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACpI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,sCAAsC;QACnD,MAAM,EAAE;YACJ,MAAM,EAAE,4BAA4B;YACpC,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,2EAA2E;YACjF,SAAS,EAAE,kCAAkC;SAChD;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_dispatch.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAQvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAanD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
2
+ export const register = (registry) => {
3
+ registry.registerMethod("op.dispatch", {
4
+ handler: async (params, ctx) => {
5
+ const p = (params ?? {});
6
+ if (p.statement === undefined || p.statement === null)
7
+ throw new Error("op.dispatch requires params.statement: PlurnkStatement");
8
+ return dispatchAsClient(ctx, p.statement);
9
+ },
10
+ description: "Low-level: dispatch a parsed PlurnkStatement AST directly. Use the op.* methods for clean-shape ergonomics.",
11
+ params: {
12
+ statement: "PlurnkStatement — parsed AST per grammar schema",
13
+ },
14
+ requiresInit: true,
15
+ });
16
+ };
17
+ //# sourceMappingURL=op_dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_dispatch.js","sourceRoot":"","sources":["../../../src/server/methods/op_dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE;QACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACjI,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QACD,WAAW,EAAE,6GAA6G;QAC1H,MAAM,EAAE;YACJ,SAAS,EAAE,iDAAiD;SAC/D;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_edit.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAYvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAiBnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { buildEdit } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.edit", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.path !== "string" || p.path.length === 0)
8
+ throw new Error("op.edit requires params.path: string");
9
+ const statement = buildEdit(p);
10
+ return dispatchAsClient(ctx, statement);
11
+ },
12
+ description: "EDIT — write or update an entry's body.",
13
+ params: {
14
+ path: "string — entry path (e.g. known://france/capital)",
15
+ content: "string? — entry body (empty/omitted clears)",
16
+ tags: "string[]? — tag set",
17
+ lineRange: "LineMarker? — insertion point or replace range",
18
+ },
19
+ requiresInit: true,
20
+ });
21
+ };
22
+ //# sourceMappingURL=op_edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_edit.js","sourceRoot":"","sources":["../../../src/server/methods/op_edit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC/G,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE;YACJ,IAAI,EAAE,mDAAmD;YACzD,OAAO,EAAE,6CAA6C;YACtD,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,gDAAgD;SAC9D;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_exec.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAUvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAenD,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { buildExec } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.exec", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ const statement = buildExec(p);
8
+ return dispatchAsClient(ctx, statement);
9
+ },
10
+ description: "EXEC — invoke a subprocess.",
11
+ params: {
12
+ cwd: "string? — working directory",
13
+ runtime: "string? — runtime tag (sh, node, python, etc.)",
14
+ command: "string? — command or code",
15
+ },
16
+ requiresInit: true,
17
+ });
18
+ };
19
+ //# sourceMappingURL=op_exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_exec.js","sourceRoot":"","sources":["../../../src/server/methods/op_exec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,6BAA6B;QAC1C,MAAM,EAAE;YACJ,GAAG,EAAE,6BAA6B;YAClC,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE,2BAA2B;SACvC;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_find.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_find.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAYvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAiBnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { buildFind } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.find", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.scope !== "string" || p.scope.length === 0)
8
+ throw new Error("op.find requires params.scope: string");
9
+ const statement = buildFind(p);
10
+ return dispatchAsClient(ctx, statement);
11
+ },
12
+ description: "FIND — search within a scope by tags and/or matcher.",
13
+ params: {
14
+ scope: "string — path-scope (e.g. known://)",
15
+ matcher: "string? — body matcher (glob/regex/xpath/jsonpath; dialect determined by leading chars)",
16
+ tags: "string[]? — tag filter",
17
+ lineRange: "LineMarker? — result range",
18
+ },
19
+ requiresInit: true,
20
+ });
21
+ };
22
+ //# sourceMappingURL=op_find.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_find.js","sourceRoot":"","sources":["../../../src/server/methods/op_find.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAClH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,sDAAsD;QACnE,MAAM,EAAE;YACJ,KAAK,EAAE,qCAAqC;YAC5C,OAAO,EAAE,yFAAyF;YAClG,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,4BAA4B;SAC1C;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_hide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_hide.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_hide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAYvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAiBnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { buildHide } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.hide", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.path !== "string" || p.path.length === 0)
8
+ throw new Error("op.hide requires params.path: string");
9
+ const statement = buildHide(p);
10
+ return dispatchAsClient(ctx, statement);
11
+ },
12
+ description: "HIDE — demote an entry from the active index to the archive.",
13
+ params: {
14
+ path: "string — entry path",
15
+ matcher: "string? — body matcher (glob/regex/xpath/jsonpath)",
16
+ tags: "string[]? — tag filter",
17
+ lineRange: "LineMarker? — result range",
18
+ },
19
+ requiresInit: true,
20
+ });
21
+ };
22
+ //# sourceMappingURL=op_hide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_hide.js","sourceRoot":"","sources":["../../../src/server/methods/op_hide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC/G,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,8DAA8D;QAC3E,MAAM,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,oDAAoD;YAC7D,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,4BAA4B;SAC1C;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_move.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_move.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_move.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAYvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAiBnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { buildMove } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.move", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.source !== "string" || p.source.length === 0)
8
+ throw new Error("op.move requires params.source: string");
9
+ const statement = buildMove(p);
10
+ return dispatchAsClient(ctx, statement);
11
+ },
12
+ description: "MOVE — relocate an entry (or delete if destination omitted).",
13
+ params: {
14
+ source: "string — source entry path",
15
+ destination: "string? — destination entry path (omit to delete)",
16
+ tags: "string[]? — tag set on the destination",
17
+ lineRange: "LineMarker? — line range to move",
18
+ },
19
+ requiresInit: true,
20
+ });
21
+ };
22
+ //# sourceMappingURL=op_move.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_move.js","sourceRoot":"","sources":["../../../src/server/methods/op_move.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACrH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,8DAA8D;QAC3E,MAAM,EAAE;YACJ,MAAM,EAAE,4BAA4B;YACpC,WAAW,EAAE,mDAAmD;YAChE,IAAI,EAAE,wCAAwC;YAC9C,SAAS,EAAE,kCAAkC;SAChD;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_parse.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAQvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAkBnD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { parseAllStatements } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.parse", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.text !== "string" || p.text.length === 0)
8
+ throw new Error("op.parse requires params.text: string");
9
+ const statements = parseAllStatements(p.text);
10
+ const results = [];
11
+ for (const statement of statements) {
12
+ results.push(await dispatchAsClient(ctx, statement));
13
+ }
14
+ return { results };
15
+ },
16
+ description: "Parse raw DSL text via the grammar parser; dispatch each statement; return results.",
17
+ params: {
18
+ text: "string — DSL text (one or more HEREDOC statements)",
19
+ },
20
+ requiresInit: true,
21
+ });
22
+ };
23
+ //# sourceMappingURL=op_parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_parse.js","sourceRoot":"","sources":["../../../src/server/methods/op_parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;QAChC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAChH,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,WAAW,EAAE,qFAAqF;QAClG,MAAM,EAAE;YACJ,IAAI,EAAE,oDAAoD;SAC7D;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_read.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAYvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAiBnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { buildRead } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.read", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.path !== "string" || p.path.length === 0)
8
+ throw new Error("op.read requires params.path: string");
9
+ const statement = buildRead(p);
10
+ return dispatchAsClient(ctx, statement);
11
+ },
12
+ description: "READ — fetch an entry's body or a slice of it.",
13
+ params: {
14
+ path: "string — entry path",
15
+ matcher: "string? — body matcher (glob/regex/xpath/jsonpath; dialect determined by leading chars)",
16
+ lineRange: "LineMarker? — line range slice",
17
+ tags: "string[]? — tag filter",
18
+ },
19
+ requiresInit: true,
20
+ });
21
+ };
22
+ //# sourceMappingURL=op_read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_read.js","sourceRoot":"","sources":["../../../src/server/methods/op_read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC/G,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,yFAAyF;YAClG,SAAS,EAAE,gCAAgC;YAC3C,IAAI,EAAE,wBAAwB;SACjC;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_send.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_send.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAUvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAgBnD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { buildSend } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.send", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.status !== "number")
8
+ throw new Error("op.send requires params.status: number");
9
+ const statement = buildSend(p);
10
+ return dispatchAsClient(ctx, statement);
11
+ },
12
+ description: "SEND — talk to a recipient or broadcast a terminal status.",
13
+ params: {
14
+ status: "number — HTTP status code (200 terminal, 410 delete, 499 cancel, etc.)",
15
+ recipient: "string? — recipient URI (omit for broadcast)",
16
+ body: "string? — message body",
17
+ },
18
+ requiresInit: true,
19
+ });
20
+ };
21
+ //# sourceMappingURL=op_send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_send.js","sourceRoot":"","sources":["../../../src/server/methods/op_send.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5F,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,4DAA4D;QACzE,MAAM,EAAE;YACJ,MAAM,EAAE,wEAAwE;YAChF,SAAS,EAAE,8CAA8C;YACzD,IAAI,EAAE,wBAAwB;SACjC;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=op_show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_show.d.ts","sourceRoot":"","sources":["../../../src/server/methods/op_show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAYvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAiBnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { buildShow } from "../dsl.js";
2
+ import { dispatchAsClient } from "./_dispatchAsClient.js";
3
+ export const register = (registry) => {
4
+ registry.registerMethod("op.show", {
5
+ handler: async (params, ctx) => {
6
+ const p = (params ?? {});
7
+ if (typeof p.path !== "string" || p.path.length === 0)
8
+ throw new Error("op.show requires params.path: string");
9
+ const statement = buildShow(p);
10
+ return dispatchAsClient(ctx, statement);
11
+ },
12
+ description: "SHOW — promote an entry to the active index.",
13
+ params: {
14
+ path: "string — entry path",
15
+ matcher: "string? — body matcher (glob/regex/xpath/jsonpath)",
16
+ tags: "string[]? — tag filter",
17
+ lineRange: "LineMarker? — result range",
18
+ },
19
+ requiresInit: true,
20
+ });
21
+ };
22
+ //# sourceMappingURL=op_show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op_show.js","sourceRoot":"","sources":["../../../src/server/methods/op_show.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC/G,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,8CAA8C;QAC3D,MAAM,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,oDAAoD;YAC7D,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,4BAA4B;SAC1C;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type MethodRegistry from "../MethodRegistry.ts";
2
+ export declare const register: (registry: MethodRegistry) => void;
3
+ //# sourceMappingURL=ping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../src/server/methods/ping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAKnD,CAAC"}