@plurnk/plurnk-service 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/SPEC.md +125 -74
  2. package/bin/plurnk-service.ts +132 -0
  3. package/dist/Paths.d.ts +8 -0
  4. package/dist/Paths.d.ts.map +1 -0
  5. package/dist/Paths.js +47 -0
  6. package/dist/Paths.js.map +1 -0
  7. package/dist/content/index.d.ts +9 -0
  8. package/dist/content/index.d.ts.map +1 -0
  9. package/dist/content/index.js +10 -0
  10. package/dist/content/index.js.map +1 -0
  11. package/dist/content/line-marker.d.ts +26 -0
  12. package/dist/content/line-marker.d.ts.map +1 -0
  13. package/dist/content/line-marker.js +323 -0
  14. package/dist/content/line-marker.js.map +1 -0
  15. package/dist/content/matcher.d.ts +15 -0
  16. package/dist/content/matcher.d.ts.map +1 -0
  17. package/dist/content/matcher.js +112 -0
  18. package/dist/content/matcher.js.map +1 -0
  19. package/dist/content/mimetype-binary.d.ts +9 -0
  20. package/dist/content/mimetype-binary.d.ts.map +1 -0
  21. package/dist/content/mimetype-binary.js +86 -0
  22. package/dist/content/mimetype-binary.js.map +1 -0
  23. package/dist/content/path-mimetype.d.ts +6 -0
  24. package/dist/content/path-mimetype.d.ts.map +1 -0
  25. package/dist/content/path-mimetype.js +49 -0
  26. package/dist/content/path-mimetype.js.map +1 -0
  27. package/dist/content/read-resolve.d.ts +20 -0
  28. package/dist/content/read-resolve.d.ts.map +1 -0
  29. package/dist/content/read-resolve.js +60 -0
  30. package/dist/content/read-resolve.js.map +1 -0
  31. package/dist/core/ChannelWrite.d.ts +33 -30
  32. package/dist/core/ChannelWrite.d.ts.map +1 -1
  33. package/dist/core/ChannelWrite.js +43 -41
  34. package/dist/core/ChannelWrite.js.map +1 -1
  35. package/dist/core/Engine.d.ts +14 -10
  36. package/dist/core/Engine.d.ts.map +1 -1
  37. package/dist/core/Engine.js +272 -94
  38. package/dist/core/Engine.js.map +1 -1
  39. package/dist/core/EnvFlags.d.ts +6 -3
  40. package/dist/core/EnvFlags.d.ts.map +1 -1
  41. package/dist/core/EnvFlags.js +62 -60
  42. package/dist/core/EnvFlags.js.map +1 -1
  43. package/dist/core/PluginLoader.d.ts +6 -3
  44. package/dist/core/PluginLoader.d.ts.map +1 -1
  45. package/dist/core/PluginLoader.js +77 -73
  46. package/dist/core/PluginLoader.js.map +1 -1
  47. package/dist/core/ProviderInstantiate.d.ts +4 -2
  48. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  49. package/dist/core/ProviderInstantiate.js +23 -22
  50. package/dist/core/ProviderInstantiate.js.map +1 -1
  51. package/dist/core/SchemeRegistry.d.ts +1 -1
  52. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  53. package/dist/core/SchemeRegistry.js +3 -3
  54. package/dist/core/SchemeRegistry.js.map +1 -1
  55. package/dist/core/git-membership.d.ts +8 -0
  56. package/dist/core/git-membership.d.ts.map +1 -0
  57. package/dist/core/git-membership.js +125 -0
  58. package/dist/core/git-membership.js.map +1 -0
  59. package/dist/core/packet-wire.d.ts +47 -6
  60. package/dist/core/packet-wire.d.ts.map +1 -1
  61. package/dist/core/packet-wire.js +376 -312
  62. package/dist/core/packet-wire.js.map +1 -1
  63. package/dist/core/resolveForLoop.d.ts +14 -0
  64. package/dist/core/resolveForLoop.d.ts.map +1 -0
  65. package/dist/core/resolveForLoop.js +34 -0
  66. package/dist/core/resolveForLoop.js.map +1 -0
  67. package/dist/core/results.d.ts +40 -0
  68. package/dist/core/results.d.ts.map +1 -0
  69. package/dist/core/results.js +52 -0
  70. package/dist/core/results.js.map +1 -0
  71. package/dist/core/scheme-types.d.ts +6 -3
  72. package/dist/core/scheme-types.d.ts.map +1 -1
  73. package/dist/core/scheme-types.js +4 -4
  74. package/dist/core/scheme-types.js.map +1 -1
  75. package/dist/core/types.d.ts +27 -0
  76. package/dist/core/types.d.ts.map +1 -0
  77. package/dist/core/types.js +17 -0
  78. package/dist/core/types.js.map +1 -0
  79. package/dist/index.d.ts +1 -6
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +4 -43
  82. package/dist/index.js.map +1 -1
  83. package/dist/schemes/Exec.d.ts +1 -0
  84. package/dist/schemes/Exec.d.ts.map +1 -1
  85. package/dist/schemes/Exec.js +101 -94
  86. package/dist/schemes/Exec.js.map +1 -1
  87. package/dist/schemes/File.d.ts +0 -1
  88. package/dist/schemes/File.d.ts.map +1 -1
  89. package/dist/schemes/File.js +32 -66
  90. package/dist/schemes/File.js.map +1 -1
  91. package/dist/schemes/Known.d.ts.map +1 -1
  92. package/dist/schemes/Known.js +13 -13
  93. package/dist/schemes/Known.js.map +1 -1
  94. package/dist/schemes/Log.d.ts.map +1 -1
  95. package/dist/schemes/Log.js +8 -52
  96. package/dist/schemes/Log.js.map +1 -1
  97. package/dist/schemes/Plurnk.d.ts.map +1 -1
  98. package/dist/schemes/Plurnk.js +13 -13
  99. package/dist/schemes/Plurnk.js.map +1 -1
  100. package/dist/schemes/Skill.d.ts.map +1 -1
  101. package/dist/schemes/Skill.js +13 -13
  102. package/dist/schemes/Skill.js.map +1 -1
  103. package/dist/schemes/Unknown.d.ts.map +1 -1
  104. package/dist/schemes/Unknown.js +13 -13
  105. package/dist/schemes/Unknown.js.map +1 -1
  106. package/dist/schemes/_entry-crud.d.ts +5 -3
  107. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  108. package/dist/schemes/_entry-crud.js +55 -50
  109. package/dist/schemes/_entry-crud.js.map +1 -1
  110. package/dist/schemes/_entry-find.d.ts +10 -3
  111. package/dist/schemes/_entry-find.d.ts.map +1 -1
  112. package/dist/schemes/_entry-find.js +99 -77
  113. package/dist/schemes/_entry-find.js.map +1 -1
  114. package/dist/schemes/_entry-manifest.d.ts +6 -0
  115. package/dist/schemes/_entry-manifest.d.ts.map +1 -0
  116. package/dist/schemes/_entry-manifest.js +45 -0
  117. package/dist/schemes/_entry-manifest.js.map +1 -0
  118. package/dist/schemes/_entry-ops.d.ts +7 -4
  119. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  120. package/dist/schemes/_entry-ops.js +198 -316
  121. package/dist/schemes/_entry-ops.js.map +1 -1
  122. package/dist/schemes/_entry-send.d.ts +4 -1
  123. package/dist/schemes/_entry-send.d.ts.map +1 -1
  124. package/dist/schemes/_entry-send.js +57 -55
  125. package/dist/schemes/_entry-send.js.map +1 -1
  126. package/dist/server/ClientConnection.js +3 -3
  127. package/dist/server/ClientConnection.js.map +1 -1
  128. package/dist/server/Daemon.d.ts +5 -5
  129. package/dist/server/Daemon.d.ts.map +1 -1
  130. package/dist/server/Daemon.js +221 -176
  131. package/dist/server/Daemon.js.map +1 -1
  132. package/dist/server/clientTurn.d.ts +4 -1
  133. package/dist/server/clientTurn.d.ts.map +1 -1
  134. package/dist/server/clientTurn.js +19 -17
  135. package/dist/server/clientTurn.js.map +1 -1
  136. package/dist/server/dsl.d.ts +19 -16
  137. package/dist/server/dsl.d.ts.map +1 -1
  138. package/dist/server/dsl.js +127 -105
  139. package/dist/server/dsl.js.map +1 -1
  140. package/dist/server/envelope.d.ts +22 -19
  141. package/dist/server/envelope.d.ts.map +1 -1
  142. package/dist/server/envelope.js +116 -102
  143. package/dist/server/envelope.js.map +1 -1
  144. package/dist/server/logEntry.d.ts +4 -1
  145. package/dist/server/logEntry.d.ts.map +1 -1
  146. package/dist/server/logEntry.js +41 -39
  147. package/dist/server/logEntry.js.map +1 -1
  148. package/dist/server/methods/_dispatchAsClient.d.ts +3 -1
  149. package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
  150. package/dist/server/methods/_dispatchAsClient.js +31 -29
  151. package/dist/server/methods/_dispatchAsClient.js.map +1 -1
  152. package/dist/server/methods/discover.d.ts +3 -1
  153. package/dist/server/methods/discover.d.ts.map +1 -1
  154. package/dist/server/methods/discover.js +8 -6
  155. package/dist/server/methods/discover.js.map +1 -1
  156. package/dist/server/methods/entry_read.d.ts +4 -1
  157. package/dist/server/methods/entry_read.d.ts.map +1 -1
  158. package/dist/server/methods/entry_read.js +54 -52
  159. package/dist/server/methods/entry_read.js.map +1 -1
  160. package/dist/server/methods/log_read.d.ts +4 -1
  161. package/dist/server/methods/log_read.d.ts.map +1 -1
  162. package/dist/server/methods/log_read.js +38 -36
  163. package/dist/server/methods/log_read.js.map +1 -1
  164. package/dist/server/methods/loop_cancel.d.ts +3 -1
  165. package/dist/server/methods/loop_cancel.d.ts.map +1 -1
  166. package/dist/server/methods/loop_cancel.js +19 -17
  167. package/dist/server/methods/loop_cancel.js.map +1 -1
  168. package/dist/server/methods/loop_resolve.d.ts +3 -1
  169. package/dist/server/methods/loop_resolve.d.ts.map +1 -1
  170. package/dist/server/methods/loop_resolve.js +42 -40
  171. package/dist/server/methods/loop_resolve.js.map +1 -1
  172. package/dist/server/methods/loop_run.d.ts +3 -1
  173. package/dist/server/methods/loop_run.d.ts.map +1 -1
  174. package/dist/server/methods/loop_run.js +104 -102
  175. package/dist/server/methods/loop_run.js.map +1 -1
  176. package/dist/server/methods/op_copy.d.ts +3 -1
  177. package/dist/server/methods/op_copy.d.ts.map +1 -1
  178. package/dist/server/methods/op_copy.js +25 -23
  179. package/dist/server/methods/op_copy.js.map +1 -1
  180. package/dist/server/methods/op_dispatch.d.ts +3 -1
  181. package/dist/server/methods/op_dispatch.d.ts.map +1 -1
  182. package/dist/server/methods/op_dispatch.js +18 -16
  183. package/dist/server/methods/op_dispatch.js.map +1 -1
  184. package/dist/server/methods/op_edit.d.ts +3 -1
  185. package/dist/server/methods/op_edit.d.ts.map +1 -1
  186. package/dist/server/methods/op_edit.js +23 -21
  187. package/dist/server/methods/op_edit.js.map +1 -1
  188. package/dist/server/methods/op_exec.d.ts +3 -1
  189. package/dist/server/methods/op_exec.d.ts.map +1 -1
  190. package/dist/server/methods/op_exec.js +20 -18
  191. package/dist/server/methods/op_exec.js.map +1 -1
  192. package/dist/server/methods/op_find.d.ts +3 -1
  193. package/dist/server/methods/op_find.d.ts.map +1 -1
  194. package/dist/server/methods/op_find.js +23 -21
  195. package/dist/server/methods/op_find.js.map +1 -1
  196. package/dist/server/methods/op_hide.d.ts +3 -1
  197. package/dist/server/methods/op_hide.d.ts.map +1 -1
  198. package/dist/server/methods/op_hide.js +23 -21
  199. package/dist/server/methods/op_hide.js.map +1 -1
  200. package/dist/server/methods/op_move.d.ts +3 -1
  201. package/dist/server/methods/op_move.d.ts.map +1 -1
  202. package/dist/server/methods/op_move.js +23 -21
  203. package/dist/server/methods/op_move.js.map +1 -1
  204. package/dist/server/methods/op_parse.d.ts +3 -1
  205. package/dist/server/methods/op_parse.d.ts.map +1 -1
  206. package/dist/server/methods/op_parse.js +24 -22
  207. package/dist/server/methods/op_parse.js.map +1 -1
  208. package/dist/server/methods/op_read.d.ts +3 -1
  209. package/dist/server/methods/op_read.d.ts.map +1 -1
  210. package/dist/server/methods/op_read.js +23 -21
  211. package/dist/server/methods/op_read.js.map +1 -1
  212. package/dist/server/methods/op_send.d.ts +3 -1
  213. package/dist/server/methods/op_send.d.ts.map +1 -1
  214. package/dist/server/methods/op_send.js +22 -20
  215. package/dist/server/methods/op_send.js.map +1 -1
  216. package/dist/server/methods/op_show.d.ts +3 -1
  217. package/dist/server/methods/op_show.d.ts.map +1 -1
  218. package/dist/server/methods/op_show.js +23 -21
  219. package/dist/server/methods/op_show.js.map +1 -1
  220. package/dist/server/methods/ping.d.ts +3 -1
  221. package/dist/server/methods/ping.d.ts.map +1 -1
  222. package/dist/server/methods/ping.js +8 -6
  223. package/dist/server/methods/ping.js.map +1 -1
  224. package/dist/server/methods/providers_list.d.ts +3 -1
  225. package/dist/server/methods/providers_list.d.ts.map +1 -1
  226. package/dist/server/methods/providers_list.js +19 -17
  227. package/dist/server/methods/providers_list.js.map +1 -1
  228. package/dist/server/methods/session_attach.d.ts +3 -1
  229. package/dist/server/methods/session_attach.d.ts.map +1 -1
  230. package/dist/server/methods/session_attach.js +43 -41
  231. package/dist/server/methods/session_attach.js.map +1 -1
  232. package/dist/server/methods/session_create.d.ts +3 -1
  233. package/dist/server/methods/session_create.d.ts.map +1 -1
  234. package/dist/server/methods/session_create.js +51 -49
  235. package/dist/server/methods/session_create.js.map +1 -1
  236. package/dist/server/methods/session_list.d.ts +3 -1
  237. package/dist/server/methods/session_list.d.ts.map +1 -1
  238. package/dist/server/methods/session_list.js +9 -7
  239. package/dist/server/methods/session_list.js.map +1 -1
  240. package/dist/server/methods/session_runs.d.ts +3 -1
  241. package/dist/server/methods/session_runs.d.ts.map +1 -1
  242. package/dist/server/methods/session_runs.js +19 -17
  243. package/dist/server/methods/session_runs.js.map +1 -1
  244. package/dist/server/methods/session_set_persona.d.ts +3 -1
  245. package/dist/server/methods/session_set_persona.d.ts.map +1 -1
  246. package/dist/server/methods/session_set_persona.js +28 -26
  247. package/dist/server/methods/session_set_persona.js.map +1 -1
  248. package/dist/server/methods/session_set_root.d.ts +3 -1
  249. package/dist/server/methods/session_set_root.d.ts.map +1 -1
  250. package/dist/server/methods/session_set_root.js +31 -29
  251. package/dist/server/methods/session_set_root.js.map +1 -1
  252. package/dist/server/yolo.d.ts +3 -1
  253. package/dist/server/yolo.d.ts.map +1 -1
  254. package/dist/server/yolo.js +15 -13
  255. package/dist/server/yolo.js.map +1 -1
  256. package/package.json +77 -32
  257. package/bin/plurnk-service.js +0 -112
  258. /package/migrations/{001_schema.sql → 0000-00-00.01_schema.sql} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-grammar contract.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -15,10 +15,10 @@
15
15
  "./package.json": "./package.json"
16
16
  },
17
17
  "bin": {
18
- "plurnk-service": "./bin/plurnk-service.js"
18
+ "plurnk-service": "./bin/plurnk-service.ts"
19
19
  },
20
20
  "files": [
21
- "bin/plurnk-service.js",
21
+ "bin/plurnk-service.ts",
22
22
  "dist/**/*",
23
23
  "migrations/**/*.sql",
24
24
  "persona.md",
@@ -29,45 +29,90 @@
29
29
  "access": "public"
30
30
  },
31
31
  "scripts": {
32
- "start": "node bin/plurnk-service.js",
32
+ "start": "node bin/plurnk-service.ts",
33
33
  "test:lint": "tsc --noEmit",
34
- "test:unit": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test src/**/*.test.ts",
35
- "test:intg": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test test/intg/*.test.ts",
34
+ "test:unit": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-timeout=30000 src/**/*.test.ts",
35
+ "test:intg": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-timeout=30000 test/intg/*.test.ts",
36
36
  "test:live": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/live/*.test.ts",
37
37
  "test:demo": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
38
38
  "test:all": "npm run test:lint && npm run test:unit && npm run test:intg && npm run test:demo",
39
- "test:digest": "node bin/digest.js",
39
+ "test:digest": "node bin/digest.ts",
40
40
  "test:clean-tmp": "rm -rf test/intg/.tmp",
41
- "dev:digest": "node bin/digest.js",
41
+ "dev:digest": "node bin/digest.ts",
42
42
  "build:dist": "tsc -p tsconfig.build.json",
43
43
  "build": "npm run build:dist",
44
44
  "prepare": "npm run build"
45
45
  },
46
46
  "dependencies": {
47
- "@plurnk/plurnk-execs": "^0.1.0",
48
- "@plurnk/plurnk-grammar": "^0.17.0",
49
- "@plurnk/plurnk-mimetypes": "^0.7.1",
50
- "@plurnk/plurnk-mimetypes-application-json": "^0.4.0",
51
- "@plurnk/plurnk-mimetypes-application-pdf": "^0.5.0",
52
- "@plurnk/plurnk-mimetypes-application-toml": "^0.3.0",
53
- "@plurnk/plurnk-mimetypes-application-yaml": "^0.3.0",
54
- "@plurnk/plurnk-mimetypes-text-csv": "^0.3.0",
55
- "@plurnk/plurnk-mimetypes-text-html": "^0.5.0",
56
- "@plurnk/plurnk-mimetypes-text-markdown": "^0.5.0",
57
- "@plurnk/plurnk-mimetypes-text-plain": "^0.6.0",
58
- "@plurnk/plurnk-mimetypes-text-python": "^0.1.0",
59
- "@plurnk/plurnk-mimetypes-text-typescript": "^0.3.0",
60
- "@plurnk/plurnk-providers": "^0.1.0",
61
- "@plurnk/plurnk-providers-cloudflare": "^0.2.0",
62
- "@plurnk/plurnk-providers-google": "^0.2.0",
63
- "@plurnk/plurnk-providers-ollama": "^0.2.0",
64
- "@plurnk/plurnk-providers-openai": "^0.2.0",
65
- "@plurnk/plurnk-providers-openrouter": "^0.2.0",
66
- "@plurnk/plurnk-providers-xai": "^0.2.0",
67
- "@plurnk/plurnk-schemes": "^0.1.0",
68
- "@possumtech/sqlrite": "^3.1.0",
69
- "diff": "^7.0.0",
70
- "ws": "^8.20.1"
47
+ "@plurnk/plurnk-execs": "0.2.0",
48
+ "@plurnk/plurnk-execs-sh": "0.1.0",
49
+ "@plurnk/plurnk-grammar": "0.21.0",
50
+ "@plurnk/plurnk-mimetypes": "0.11.0",
51
+ "@plurnk/plurnk-mimetypes-application-json": "0.5.0",
52
+ "@plurnk/plurnk-mimetypes-application-pdf": "0.6.0",
53
+ "@plurnk/plurnk-mimetypes-application-xml": "0.1.0",
54
+ "@plurnk/plurnk-mimetypes-text-clojure": "0.2.0",
55
+ "@plurnk/plurnk-mimetypes-text-cmake": "0.2.0",
56
+ "@plurnk/plurnk-mimetypes-text-common-lisp": "0.2.0",
57
+ "@plurnk/plurnk-mimetypes-text-csharp": "0.2.0",
58
+ "@plurnk/plurnk-mimetypes-text-csv": "0.4.0",
59
+ "@plurnk/plurnk-mimetypes-text-datalog": "0.3.0",
60
+ "@plurnk/plurnk-mimetypes-text-erlang": "0.2.0",
61
+ "@plurnk/plurnk-mimetypes-text-graphql": "0.2.0",
62
+ "@plurnk/plurnk-mimetypes-text-html": "0.6.0",
63
+ "@plurnk/plurnk-mimetypes-text-mariadb": "0.3.0",
64
+ "@plurnk/plurnk-mimetypes-text-markdown": "0.6.0",
65
+ "@plurnk/plurnk-mimetypes-text-plain": "0.7.0",
66
+ "@plurnk/plurnk-mimetypes-text-plsql": "0.2.0",
67
+ "@plurnk/plurnk-mimetypes-text-postgresql": "0.3.0",
68
+ "@plurnk/plurnk-mimetypes-text-prolog": "0.2.0",
69
+ "@plurnk/plurnk-mimetypes-text-protobuf": "0.3.0",
70
+ "@plurnk/plurnk-mimetypes-text-redis": "0.3.0",
71
+ "@plurnk/plurnk-mimetypes-text-sparql": "0.2.0",
72
+ "@plurnk/plurnk-mimetypes-text-sqlite": "0.3.0",
73
+ "@plurnk/plurnk-mimetypes-text-swift": "0.1.0",
74
+ "@plurnk/plurnk-mimetypes-text-terraform": "0.3.0",
75
+ "@plurnk/plurnk-mimetypes-text-tsql": "0.2.0",
76
+ "@plurnk/plurnk-providers": "0.1.4",
77
+ "@plurnk/plurnk-providers-cloudflare": "0.2.4",
78
+ "@plurnk/plurnk-providers-google": "0.2.5",
79
+ "@plurnk/plurnk-providers-ollama": "0.2.4",
80
+ "@plurnk/plurnk-providers-openai": "0.2.0",
81
+ "@plurnk/plurnk-providers-openrouter": "0.2.4",
82
+ "@plurnk/plurnk-providers-xai": "0.2.4",
83
+ "@possumtech/sqlrite": "5.1.1",
84
+ "@tree-sitter-grammars/tree-sitter-kotlin": "^1.1.0",
85
+ "@tree-sitter-grammars/tree-sitter-lua": "^0.4.1",
86
+ "@tree-sitter-grammars/tree-sitter-toml": "^0.7.0",
87
+ "@tree-sitter-grammars/tree-sitter-yaml": "^0.7.1",
88
+ "@tree-sitter-grammars/tree-sitter-zig": "^1.1.2",
89
+ "@xmldom/xmldom": "^0.9.10",
90
+ "antlr-ng": "^1.0.10",
91
+ "antlr4ng": "^3.0.16",
92
+ "diff": "^9.0.0",
93
+ "tree-sitter-bash": "^0.25.1",
94
+ "tree-sitter-c": "^0.24.1",
95
+ "tree-sitter-cpp": "^0.23.4",
96
+ "tree-sitter-dart": "^1.0.0",
97
+ "tree-sitter-elixir": "^0.3.5",
98
+ "tree-sitter-fsharp": "^0.1.0",
99
+ "tree-sitter-go": "^0.25.0",
100
+ "tree-sitter-haskell": "^0.23.1",
101
+ "tree-sitter-java": "^0.23.5",
102
+ "tree-sitter-javascript": "^0.25.0",
103
+ "tree-sitter-julia": "^0.23.1",
104
+ "tree-sitter-make": "^1.1.1",
105
+ "tree-sitter-ocaml": "^0.24.2",
106
+ "tree-sitter-odin": "^1.3.0",
107
+ "tree-sitter-php": "^0.24.2",
108
+ "tree-sitter-python": "^0.25.0",
109
+ "tree-sitter-ruby": "^0.23.1",
110
+ "tree-sitter-rust": "^0.24.0",
111
+ "tree-sitter-scala": "^0.24.0",
112
+ "tree-sitter-typescript": "^0.23.2",
113
+ "web-tree-sitter": "^0.26.9",
114
+ "ws": "^8.20.1",
115
+ "xpath": "^0.0.34"
71
116
  },
72
117
  "devDependencies": {
73
118
  "@types/diff": "^7.0.2",
@@ -1,112 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { parseArgs } from "node:util";
4
- import { existsSync } from "node:fs";
5
- import SqlRite from "@possumtech/sqlrite";
6
- import { fileURLToPath } from "node:url";
7
- import { dirname, resolve } from "node:path";
8
- import Daemon from "../src/server/Daemon.ts";
9
- import { parseEnvExample, formatFlagsHelp } from "../src/core/EnvFlags.ts";
10
- import { loadActiveProvider } from "../src/core/ProviderInstantiate.ts";
11
- import { resolveActiveAlias } from "@plurnk/plurnk-providers";
12
-
13
- const die = (code, message) => {
14
- process.stderr.write(`${message}\n`);
15
- process.exit(code);
16
- };
17
-
18
- const projectRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
19
-
20
- // Env cascade: .env.example (shipped defaults) < .env (project) < .env.<config> (--config)
21
- // < shell. process.loadEnvFile is set-if-unset, so loading in low→high precedence
22
- // order yields the right effective env.
23
- const configFlagIndex = process.argv.findIndex((a) => a === "--config" || a.startsWith("--config="));
24
- const configFile = (() => {
25
- if (configFlagIndex === -1) return null;
26
- const arg = process.argv[configFlagIndex];
27
- if (arg.includes("=")) return arg.slice(arg.indexOf("=") + 1);
28
- return process.argv[configFlagIndex + 1] ?? null;
29
- })();
30
-
31
- const loadEnv = (path, required) => {
32
- if (existsSync(path)) {
33
- try { process.loadEnvFile(path); }
34
- catch (cause) { die(64, `failed to load ${path}: ${cause instanceof Error ? cause.message : String(cause)}`); }
35
- } else if (required) {
36
- die(64, `--config: ${path} does not exist`);
37
- }
38
- };
39
-
40
- // Highest precedence loads FIRST (set-if-unset semantics: first write wins).
41
- if (configFile !== null) loadEnv(configFile, true);
42
- loadEnv(".env", false);
43
- loadEnv(resolve(projectRoot, ".env.example"), false);
44
-
45
- const flagDescriptors = await parseEnvExample(resolve(projectRoot, ".env.example"));
46
- const flagOptions = {};
47
- for (const f of flagDescriptors) {
48
- flagOptions[f.flagName.replace(/^--/, "")] = { type: "string" };
49
- }
50
-
51
- const USAGE = `usage: plurnk-service [options] [migrate]
52
-
53
- ${formatFlagsHelp(flagDescriptors)}
54
-
55
- --config=<path> layer additional env from <path>
56
- -h, --help show this help
57
- `;
58
-
59
- const openDb = async (dbPath) => SqlRite.open({
60
- path: dbPath,
61
- dir: [resolve(projectRoot, "migrations"), resolve(projectRoot, "src")],
62
- });
63
-
64
- const migrate = async () => {
65
- const db = await openDb(process.env.PLURNK_DB_PATH);
66
- try { process.stdout.write(`migrated: ${process.env.PLURNK_DB_PATH}\n`); }
67
- finally { await db.close(); }
68
- };
69
-
70
- const start = async () => {
71
- const dbPath = process.env.PLURNK_DB_PATH;
72
- const host = process.env.PLURNK_HOST;
73
- const port = Number(process.env.PLURNK_PORT);
74
-
75
- const db = await openDb(dbPath);
76
- const alias = resolveActiveAlias();
77
- const provider = alias === null ? null : await loadActiveProvider();
78
- const daemon = new Daemon({ db, provider });
79
- const addr = await daemon.start({ host, port });
80
- const aliasStr = alias === null ? "no model" : `${alias.alias}=${alias.provider}/${alias.model}`;
81
- process.stdout.write(`plurnk-service ws://${addr.host}:${addr.port} db=${dbPath} ${aliasStr}\n`);
82
-
83
- const shutdown = async () => { await daemon.stop(); await db.close(); process.exit(0); };
84
- process.on("SIGINT", shutdown);
85
- process.on("SIGTERM", shutdown);
86
- };
87
-
88
- const { positionals, values } = parseArgs({
89
- allowPositionals: true,
90
- strict: false,
91
- options: { help: { type: "boolean", short: "h" }, config: { type: "string" }, ...flagOptions },
92
- });
93
-
94
- for (const f of flagDescriptors) {
95
- const key = f.flagName.replace(/^--/, "");
96
- if (typeof values[key] === "string") process.env[f.envName] = values[key];
97
- }
98
-
99
- if (values.help) { process.stdout.write(USAGE); process.exit(0); }
100
-
101
- const dispatch = { migrate, start };
102
- const subcommand = positionals[0] ?? "start";
103
- const handler = dispatch[subcommand];
104
- if (handler === undefined) die(64, `unknown subcommand: ${subcommand}\n\n${USAGE}`);
105
- if (positionals.length > 1) die(64, `unexpected arguments: ${positionals.slice(1).join(" ")}`);
106
-
107
- try { await handler(); }
108
- catch (cause) {
109
- process.stderr.write(`${subcommand}: ${cause instanceof Error ? cause.message : String(cause)}\n`);
110
- if (cause instanceof Error && cause.cause) process.stderr.write(` cause: ${cause.cause instanceof Error ? cause.cause.message : String(cause.cause)}\n`);
111
- process.exit(1);
112
- }