@plurnk/plurnk-service 0.7.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 +104 -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 +269 -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 +5 -4
  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 +37 -21
  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 +74 -30
  257. package/bin/plurnk-service.js +0 -112
  258. /package/migrations/{001_schema.sql → 0000-00-00.01_schema.sql} +0 -0
@@ -2,116 +2,118 @@
2
2
  // delegates to daemon.inject. inject decides: active drain → write prompt
3
3
  // entry for next turn; idle → enqueue + start drain.
4
4
  import { readFile } from "node:fs/promises";
5
- import { PATHS } from "../../index.js";
5
+ import { Paths } from "../../index.js";
6
6
  import { parseAliasesFromEnv } from "@plurnk/plurnk-providers";
7
- import { instantiateProvider } from "../../core/ProviderInstantiate.js";
8
- export const register = (registry) => {
9
- registry.registerMethod("loop.run", {
10
- handler: async (params, ctx) => {
11
- if (ctx.session === null)
12
- throw new Error("loop.run requires an attached session");
13
- const p = (params ?? {});
14
- if (typeof p.prompt !== "string" || p.prompt.length === 0) {
15
- throw new Error("loop.run requires non-empty params.prompt");
16
- }
17
- // Validate flags early — fail-fast on bad input regardless of
18
- // provider config. Actual persistence happens after loop insert.
19
- if (p.flags !== undefined) {
20
- if (typeof p.flags !== "object" || p.flags === null || Array.isArray(p.flags)) {
21
- throw new Error("loop.run: flags must be an object");
7
+ import ProviderInstantiate from "../../core/ProviderInstantiate.js";
8
+ export default class LoopRunMethod {
9
+ static 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");
22
17
  }
23
- for (const bool of ["yolo", "noProposals", "noWeb", "noInteraction"]) {
24
- if (p.flags[bool] !== undefined && typeof p.flags[bool] !== "boolean") {
25
- throw new Error(`loop.run: flags.${bool} must be a boolean`);
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");
26
23
  }
24
+ for (const bool of ["yolo", "noProposals", "noWeb", "noInteraction"]) {
25
+ if (p.flags[bool] !== undefined && typeof p.flags[bool] !== "boolean") {
26
+ throw new Error(`loop.run: flags.${bool} must be a boolean`);
27
+ }
28
+ }
29
+ if (p.flags.mode !== undefined && p.flags.mode !== "ask" && p.flags.mode !== "act") {
30
+ throw new Error("loop.run: flags.mode must be 'ask' or 'act'");
31
+ }
32
+ }
33
+ const loopPersona = p.persona ?? null;
34
+ if (loopPersona !== null && typeof loopPersona !== "string") {
35
+ throw new Error("loop.run: persona must be a string or null");
36
+ }
37
+ const maxTurns = p.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50");
38
+ // Resolve provider for this call. Per-call alias override (issue
39
+ // #128) takes precedence over ctx.provider; absence falls back to
40
+ // the daemon's boot-time provider.
41
+ let provider = ctx.provider;
42
+ if (p.alias !== undefined) {
43
+ if (typeof p.alias !== "string" || p.alias.length === 0) {
44
+ throw new Error("loop.run: alias must be a non-empty string");
45
+ }
46
+ const aliases = parseAliasesFromEnv();
47
+ const target = aliases.find((a) => a.alias === p.alias.toLowerCase());
48
+ if (target === undefined) {
49
+ throw new Error(`loop.run: unknown alias '${p.alias}'; configure PLURNK_MODEL_${p.alias.toUpperCase()}=<provider>/<model>`);
50
+ }
51
+ provider = await ProviderInstantiate.instantiateProvider(target);
27
52
  }
28
- if (p.flags.mode !== undefined && p.flags.mode !== "ask" && p.flags.mode !== "act") {
29
- throw new Error("loop.run: flags.mode must be 'ask' or 'act'");
53
+ if (provider === null) {
54
+ return { status: 501, error: "no provider configured at the daemon and no alias override supplied" };
30
55
  }
31
- }
32
- const loopPersona = p.persona ?? null;
33
- if (loopPersona !== null && typeof loopPersona !== "string") {
34
- throw new Error("loop.run: persona must be a string or null");
35
- }
36
- const maxTurns = p.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50");
37
- // Resolve provider for this call. Per-call alias override (issue
38
- // #128) takes precedence over ctx.provider; absence falls back to
39
- // the daemon's boot-time provider.
40
- let provider = ctx.provider;
41
- if (p.alias !== undefined) {
42
- if (typeof p.alias !== "string" || p.alias.length === 0) {
43
- throw new Error("loop.run: alias must be a non-empty string");
56
+ const { sessionId, runId } = ctx.session;
57
+ const systemPrompt = await readFile(Paths.instructionsSystem, "utf8");
58
+ const persona = await readFile(Paths.defaultPersona, "utf8");
59
+ // Delegate to the daemon's unified inject surface. Active-drain
60
+ // → write prompt entry for next turn (returns immediately).
61
+ // Idle run enqueue + start drain (await drain to completion).
62
+ const injected = await ctx.daemon.inject({
63
+ sessionId, runId, prompt: p.prompt,
64
+ provider, persona, systemPrompt,
65
+ maxTurns, flags: p.flags, personaOverride: loopPersona,
66
+ });
67
+ if (injected.action === "injected_next_turn") {
68
+ // Active drain prompt landed in the current loop's
69
+ // next-turn slot. Return immediately; the existing
70
+ // drain's notifications surface progress.
71
+ return {
72
+ loopId: injected.loopId,
73
+ turnSeq: injected.turnSeq,
74
+ action: "injected_next_turn",
75
+ finalStatus: 100,
76
+ hitMaxTurns: false,
77
+ turnIds: [],
78
+ };
44
79
  }
45
- const aliases = parseAliasesFromEnv();
46
- const target = aliases.find((a) => a.alias === p.alias.toLowerCase());
47
- if (target === undefined) {
48
- throw new Error(`loop.run: unknown alias '${p.alias}'; configure PLURNK_MODEL_${p.alias.toUpperCase()}=<provider>/<model>`);
80
+ // enqueued_new_loop:
81
+ // - Drain started by THIS call: firstLoopPromise is the
82
+ // promise for the loop just enqueued; await it.
83
+ // - Drain was already active (concurrent loop.run race
84
+ // where engine.inject returned null): the loop is in
85
+ // the queue, the existing drain will claim it. No
86
+ // firstLoopPromise — return immediately with status=100
87
+ // and let the client subscribe to loop/terminated.
88
+ if (injected.firstLoopPromise === undefined) {
89
+ return {
90
+ loopId: injected.loopId,
91
+ action: "enqueued_new_loop",
92
+ finalStatus: 100,
93
+ hitMaxTurns: false,
94
+ turnIds: [],
95
+ };
49
96
  }
50
- provider = await instantiateProvider(target);
51
- }
52
- if (provider === null) {
53
- return { status: 501, error: "no provider configured at the daemon and no alias override supplied" };
54
- }
55
- const { sessionId, runId } = ctx.session;
56
- const systemPrompt = await readFile(PATHS.instructionsSystem, "utf8");
57
- const persona = await readFile(PATHS.defaultPersona, "utf8");
58
- // Delegate to the daemon's unified inject surface. Active-drain
59
- // → write prompt entry for next turn (returns immediately).
60
- // Idle run → enqueue + start drain (await drain to completion).
61
- const injected = await ctx.daemon.inject({
62
- sessionId, runId, prompt: p.prompt,
63
- provider, persona, systemPrompt,
64
- maxTurns, flags: p.flags, personaOverride: loopPersona,
65
- });
66
- if (injected.action === "injected_next_turn") {
67
- // Active drain — prompt landed in the current loop's
68
- // next-turn slot. Return immediately; the existing
69
- // drain's notifications surface progress.
70
- return {
71
- loopId: injected.loopId,
72
- turnSeq: injected.turnSeq,
73
- action: "injected_next_turn",
74
- finalStatus: 100,
75
- hitMaxTurns: false,
76
- turnIds: [],
77
- };
78
- }
79
- // enqueued_new_loop:
80
- // - Drain started by THIS call: firstLoopPromise is the
81
- // promise for the loop just enqueued; await it.
82
- // - Drain was already active (concurrent loop.run race
83
- // where engine.inject returned null): the loop is in
84
- // the queue, the existing drain will claim it. No
85
- // firstLoopPromise — return immediately with status=100
86
- // and let the client subscribe to loop/terminated.
87
- if (injected.firstLoopPromise === undefined) {
97
+ const first = await injected.firstLoopPromise;
88
98
  return {
89
- loopId: injected.loopId,
99
+ loopId: first.loopId,
100
+ turnIds: first.turnIds,
101
+ finalStatus: first.finalStatus,
102
+ hitMaxTurns: first.hitMaxTurns,
90
103
  action: "enqueued_new_loop",
91
- finalStatus: 100,
92
- hitMaxTurns: false,
93
- turnIds: [],
94
104
  };
95
- }
96
- const first = await injected.firstLoopPromise;
97
- return {
98
- loopId: first.loopId,
99
- turnIds: first.turnIds,
100
- finalStatus: first.finalStatus,
101
- hitMaxTurns: first.hitMaxTurns,
102
- action: "enqueued_new_loop",
103
- };
104
- },
105
- 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.",
106
- params: {
107
- prompt: "string — user prompt for the loop",
108
- maxTurns: "number? — safety cap on turns (default PLURNK_MAX_TURNS or 50)",
109
- alias: "string? — model alias to use for this loop (overrides the daemon's PLURNK_MODEL)",
110
- flags: "object? — per-loop flags. Currently accepts { yolo?: boolean }. Server YOLO; not for routine client use.",
111
- persona: "string? — loop-level persona (text/markdown); takes precedence over session and run personas",
112
- },
113
- requiresInit: true,
114
- longRunning: true,
115
- });
116
- };
105
+ },
106
+ 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.",
107
+ params: {
108
+ prompt: "string — user prompt for the loop",
109
+ maxTurns: "number? — safety cap on turns (default PLURNK_MAX_TURNS or 50)",
110
+ alias: "string? — model alias to use for this loop (overrides the daemon's PLURNK_MODEL)",
111
+ flags: "object? — per-loop flags. Currently accepts { yolo?: boolean }. Server YOLO; not for routine client use.",
112
+ persona: "string? — loop-level persona (text/markdown); takes precedence over session and run personas",
113
+ },
114
+ requiresInit: true,
115
+ longRunning: true,
116
+ });
117
+ }
118
+ }
117
119
  //# sourceMappingURL=loop_run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class OpCopyMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=op_copy.d.ts.map
@@ -1 +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"}
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,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAmBlD"}
@@ -1,24 +1,26 @@
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
- };
1
+ import Dsl from "../dsl.js";
2
+ import DispatchAsClient from "./_dispatchAsClient.js";
3
+ export default class OpCopyMethod {
4
+ static register(registry) {
5
+ registry.registerMethod("op.copy", {
6
+ handler: async (params, ctx) => {
7
+ const p = params;
8
+ if (typeof p.source !== "string" || p.source.length === 0)
9
+ throw new Error("op.copy requires params.source: string");
10
+ if (typeof p.destination !== "string" || p.destination.length === 0)
11
+ throw new Error("op.copy requires params.destination: string");
12
+ const statement = Dsl.buildCopy(p);
13
+ return DispatchAsClient.dispatch(ctx, statement);
14
+ },
15
+ description: "COPY — clone an entry to a new path.",
16
+ params: {
17
+ source: "string — source entry path",
18
+ destination: "string — destination entry path",
19
+ tags: "string[]? — tag set on the destination (replaces source tags if provided)",
20
+ lineRange: "LineMarker? — line range to copy",
21
+ },
22
+ requiresInit: true,
23
+ });
24
+ }
25
+ }
24
26
  //# sourceMappingURL=op_copy.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"op_copy.js","sourceRoot":"","sources":["../../../src/server/methods/op_copy.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAStD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;YAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACrH,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACpI,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,WAAW,EAAE,sCAAsC;YACnD,MAAM,EAAE;gBACJ,MAAM,EAAE,4BAA4B;gBACpC,WAAW,EAAE,iCAAiC;gBAC9C,IAAI,EAAE,2EAA2E;gBACjF,SAAS,EAAE,kCAAkC;aAChD;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class OpDispatchMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=op_dispatch.d.ts.map
@@ -1 +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"}
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,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAclD"}
@@ -1,17 +1,19 @@
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
- };
1
+ import DispatchAsClient from "./_dispatchAsClient.js";
2
+ export default class OpDispatchMethod {
3
+ static register(registry) {
4
+ registry.registerMethod("op.dispatch", {
5
+ handler: async (params, ctx) => {
6
+ const p = params;
7
+ if (p.statement === undefined || p.statement === null)
8
+ throw new Error("op.dispatch requires params.statement: PlurnkStatement");
9
+ return DispatchAsClient.dispatch(ctx, p.statement);
10
+ },
11
+ description: "Low-level: dispatch a parsed PlurnkStatement AST directly. Use the op.* methods for clean-shape ergonomics.",
12
+ params: {
13
+ statement: "PlurnkStatement — parsed AST per grammar schema",
14
+ },
15
+ requiresInit: true,
16
+ });
17
+ }
18
+ }
17
19
  //# sourceMappingURL=op_dispatch.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"op_dispatch.js","sourceRoot":"","sources":["../../../src/server/methods/op_dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAMtD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE;YACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACjI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC;YACD,WAAW,EAAE,6GAA6G;YAC1H,MAAM,EAAE;gBACJ,SAAS,EAAE,iDAAiD;aAC/D;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class OpEditMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=op_edit.d.ts.map
@@ -1 +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"}
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,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAkBlD"}
@@ -1,22 +1,24 @@
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.target !== "string" || p.target.length === 0)
8
- throw new Error("op.edit requires params.target: 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
- target: "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
- };
1
+ import Dsl from "../dsl.js";
2
+ import DispatchAsClient from "./_dispatchAsClient.js";
3
+ export default class OpEditMethod {
4
+ static register(registry) {
5
+ registry.registerMethod("op.edit", {
6
+ handler: async (params, ctx) => {
7
+ const p = params;
8
+ if (typeof p.target !== "string" || p.target.length === 0)
9
+ throw new Error("op.edit requires params.target: string");
10
+ const statement = Dsl.buildEdit(p);
11
+ return DispatchAsClient.dispatch(ctx, statement);
12
+ },
13
+ description: "EDIT — write or update an entry's body.",
14
+ params: {
15
+ target: "string — entry path (e.g. known://france/capital)",
16
+ content: "string? — entry body (empty/omitted clears)",
17
+ tags: "string[]? — tag set",
18
+ lineRange: "LineMarker? — insertion point or replace range",
19
+ },
20
+ requiresInit: true,
21
+ });
22
+ }
23
+ }
22
24
  //# sourceMappingURL=op_edit.js.map
@@ -1 +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,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,yCAAyC;QACtD,MAAM,EAAE;YACJ,MAAM,EAAE,mDAAmD;YAC3D,OAAO,EAAE,6CAA6C;YACtD,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,gDAAgD;SAC9D;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"op_edit.js","sourceRoot":"","sources":["../../../src/server/methods/op_edit.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAStD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;YAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACrH,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,WAAW,EAAE,yCAAyC;YACtD,MAAM,EAAE;gBACJ,MAAM,EAAE,mDAAmD;gBAC3D,OAAO,EAAE,6CAA6C;gBACtD,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE,gDAAgD;aAC9D;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class OpExecMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=op_exec.d.ts.map
@@ -1 +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"}
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,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAgBlD"}
@@ -1,19 +1,21 @@
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
- };
1
+ import Dsl from "../dsl.js";
2
+ import DispatchAsClient from "./_dispatchAsClient.js";
3
+ export default class OpExecMethod {
4
+ static register(registry) {
5
+ registry.registerMethod("op.exec", {
6
+ handler: async (params, ctx) => {
7
+ const p = params;
8
+ const statement = Dsl.buildExec(p);
9
+ return DispatchAsClient.dispatch(ctx, statement);
10
+ },
11
+ description: "EXEC — invoke a subprocess.",
12
+ params: {
13
+ cwd: "string? — working directory",
14
+ runtime: "string? — runtime tag (sh, node, python, etc.)",
15
+ command: "string? — command or code",
16
+ },
17
+ requiresInit: true,
18
+ });
19
+ }
20
+ }
19
21
  //# sourceMappingURL=op_exec.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"op_exec.js","sourceRoot":"","sources":["../../../src/server/methods/op_exec.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAQtD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;YAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,WAAW,EAAE,6BAA6B;YAC1C,MAAM,EAAE;gBACJ,GAAG,EAAE,6BAA6B;gBAClC,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE,2BAA2B;aACvC;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class OpFindMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=op_find.d.ts.map
@@ -1 +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"}
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,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAkBlD"}
@@ -1,22 +1,24 @@
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
- };
1
+ import Dsl from "../dsl.js";
2
+ import DispatchAsClient from "./_dispatchAsClient.js";
3
+ export default class OpFindMethod {
4
+ static register(registry) {
5
+ registry.registerMethod("op.find", {
6
+ handler: async (params, ctx) => {
7
+ const p = params;
8
+ if (typeof p.scope !== "string" || p.scope.length === 0)
9
+ throw new Error("op.find requires params.scope: string");
10
+ const statement = Dsl.buildFind(p);
11
+ return DispatchAsClient.dispatch(ctx, statement);
12
+ },
13
+ description: "FIND — search within a scope by tags and/or matcher.",
14
+ params: {
15
+ scope: "string — path-scope (e.g. known://)",
16
+ matcher: "string? — body matcher (glob/regex/xpath/jsonpath; dialect determined by leading chars)",
17
+ tags: "string[]? — tag filter",
18
+ lineRange: "LineMarker? — result range",
19
+ },
20
+ requiresInit: true,
21
+ });
22
+ }
23
+ }
22
24
  //# sourceMappingURL=op_find.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"op_find.js","sourceRoot":"","sources":["../../../src/server/methods/op_find.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAStD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;YAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAClH,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,WAAW,EAAE,sDAAsD;YACnE,MAAM,EAAE;gBACJ,KAAK,EAAE,qCAAqC;gBAC5C,OAAO,EAAE,yFAAyF;gBAClG,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,4BAA4B;aAC1C;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
1
  import type MethodRegistry from "../MethodRegistry.ts";
2
- export declare const register: (registry: MethodRegistry) => void;
2
+ export default class OpHideMethod {
3
+ static register(registry: MethodRegistry): void;
4
+ }
3
5
  //# sourceMappingURL=op_hide.d.ts.map
@@ -1 +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"}
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,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAkBlD"}