@plurnk/plurnk-service 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/.env.defaults +49 -42
  2. package/INSTALL.md +48 -11
  3. package/README.md +12 -2
  4. package/SPEC.md +1166 -475
  5. package/digest-sql/channel-dispositions/dispositions.sql +15 -0
  6. package/digest-sql/channel-state/state.sql +6 -0
  7. package/digest-sql/curation/curation.sql +5 -0
  8. package/digest-sql/derivations/derivations.sql +4 -0
  9. package/digest-sql/embeddings/embeddings.sql +4 -0
  10. package/digest-sql/entry-dispositions/dispositions.sql +15 -0
  11. package/digest-sql/entry-state/state.sql +6 -0
  12. package/digest-sql/token-counts/token-counts.sql +2 -0
  13. package/dist/Paths.d.ts +0 -4
  14. package/dist/Paths.d.ts.map +1 -1
  15. package/dist/Paths.js +1 -21
  16. package/dist/Paths.js.map +1 -1
  17. package/dist/build-info.json +1 -1
  18. package/dist/content/read-projector.d.ts.map +1 -1
  19. package/dist/content/read-projector.js +4 -3
  20. package/dist/content/read-projector.js.map +1 -1
  21. package/dist/core/BudgetReadout.d.ts.map +1 -1
  22. package/dist/core/BudgetReadout.js +12 -22
  23. package/dist/core/BudgetReadout.js.map +1 -1
  24. package/dist/core/ChannelWrite.d.ts +8 -3
  25. package/dist/core/ChannelWrite.d.ts.map +1 -1
  26. package/dist/core/ChannelWrite.js +40 -8
  27. package/dist/core/ChannelWrite.js.map +1 -1
  28. package/dist/core/ChannelWrite.sql +19 -5
  29. package/dist/core/CoreSchemeServices.d.ts +7 -3
  30. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  31. package/dist/core/CoreSchemeServices.js +8 -1
  32. package/dist/core/CoreSchemeServices.js.map +1 -1
  33. package/dist/core/Dispatcher.d.ts +15 -6
  34. package/dist/core/Dispatcher.d.ts.map +1 -1
  35. package/dist/core/Dispatcher.js +352 -306
  36. package/dist/core/Dispatcher.js.map +1 -1
  37. package/dist/core/Engine.d.ts +22 -10
  38. package/dist/core/Engine.d.ts.map +1 -1
  39. package/dist/core/Engine.js +86 -46
  40. package/dist/core/Engine.js.map +1 -1
  41. package/dist/core/Engine.sql +202 -177
  42. package/dist/core/EntryAddressBinding.d.ts +32 -0
  43. package/dist/core/EntryAddressBinding.d.ts.map +1 -0
  44. package/dist/core/EntryAddressBinding.js +93 -0
  45. package/dist/core/EntryAddressBinding.js.map +1 -0
  46. package/dist/core/ExecutorRegistry.d.ts +12 -6
  47. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  48. package/dist/core/ExecutorRegistry.js +34 -31
  49. package/dist/core/ExecutorRegistry.js.map +1 -1
  50. package/dist/core/HostPaths.d.ts +29 -0
  51. package/dist/core/HostPaths.d.ts.map +1 -0
  52. package/dist/core/HostPaths.js +74 -0
  53. package/dist/core/HostPaths.js.map +1 -0
  54. package/dist/core/LegacyHome.d.ts +10 -0
  55. package/dist/core/LegacyHome.d.ts.map +1 -0
  56. package/dist/core/LegacyHome.js +170 -0
  57. package/dist/core/LegacyHome.js.map +1 -0
  58. package/dist/core/LogBody.d.ts +1 -1
  59. package/dist/core/LogBody.d.ts.map +1 -1
  60. package/dist/core/LogBody.js +21 -3
  61. package/dist/core/LogBody.js.map +1 -1
  62. package/dist/core/LogEntryProjection.js +1 -1
  63. package/dist/core/LogEntryProjection.js.map +1 -1
  64. package/dist/core/LogVisibility.d.ts +28 -0
  65. package/dist/core/LogVisibility.d.ts.map +1 -0
  66. package/dist/core/LogVisibility.js +215 -0
  67. package/dist/core/LogVisibility.js.map +1 -0
  68. package/dist/core/LoopLifecycle.d.ts +1 -0
  69. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  70. package/dist/core/LoopLifecycle.js +8 -0
  71. package/dist/core/LoopLifecycle.js.map +1 -1
  72. package/dist/core/LoopLifecycle.sql +10 -0
  73. package/dist/core/OperatorConfig.d.ts +6 -0
  74. package/dist/core/OperatorConfig.d.ts.map +1 -0
  75. package/dist/core/OperatorConfig.js +95 -0
  76. package/dist/core/OperatorConfig.js.map +1 -0
  77. package/dist/core/OverflowTurn.d.ts +11 -0
  78. package/dist/core/OverflowTurn.d.ts.map +1 -0
  79. package/dist/core/OverflowTurn.js +81 -0
  80. package/dist/core/OverflowTurn.js.map +1 -0
  81. package/dist/core/Owner.js +3 -3
  82. package/dist/core/Owner.js.map +1 -1
  83. package/dist/core/PacketBuilder.d.ts +7 -15
  84. package/dist/core/PacketBuilder.d.ts.map +1 -1
  85. package/dist/core/PacketBuilder.js +64 -127
  86. package/dist/core/PacketBuilder.js.map +1 -1
  87. package/dist/core/ProblemLog.js +1 -1
  88. package/dist/core/ProblemLog.js.map +1 -1
  89. package/dist/core/ProposalLifecycle.d.ts +4 -1
  90. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  91. package/dist/core/ProposalLifecycle.js +86 -47
  92. package/dist/core/ProposalLifecycle.js.map +1 -1
  93. package/dist/core/ProviderInstantiate.d.ts +9 -5
  94. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  95. package/dist/core/ProviderInstantiate.js +99 -104
  96. package/dist/core/ProviderInstantiate.js.map +1 -1
  97. package/dist/core/ReasoningEvent.d.ts +13 -0
  98. package/dist/core/ReasoningEvent.d.ts.map +1 -0
  99. package/dist/core/ReasoningEvent.js +6 -0
  100. package/dist/core/ReasoningEvent.js.map +1 -0
  101. package/dist/core/ResourceMutations.d.ts +15 -19
  102. package/dist/core/ResourceMutations.d.ts.map +1 -1
  103. package/dist/core/ResourceMutations.js +118 -41
  104. package/dist/core/ResourceMutations.js.map +1 -1
  105. package/dist/core/SchemeRegistry.d.ts +12 -12
  106. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  107. package/dist/core/SchemeRegistry.js +58 -57
  108. package/dist/core/SchemeRegistry.js.map +1 -1
  109. package/dist/core/ToolResources.d.ts +19 -0
  110. package/dist/core/ToolResources.d.ts.map +1 -0
  111. package/dist/core/ToolResources.js +123 -0
  112. package/dist/core/ToolResources.js.map +1 -0
  113. package/dist/core/Turn.d.ts +27 -0
  114. package/dist/core/Turn.d.ts.map +1 -0
  115. package/dist/core/Turn.js +43 -0
  116. package/dist/core/Turn.js.map +1 -0
  117. package/dist/core/Turn.sql +72 -0
  118. package/dist/core/TurnOps.d.ts +7 -0
  119. package/dist/core/TurnOps.d.ts.map +1 -0
  120. package/dist/core/TurnOps.js +73 -0
  121. package/dist/core/TurnOps.js.map +1 -0
  122. package/dist/core/TurnRunner.d.ts +56 -5
  123. package/dist/core/TurnRunner.d.ts.map +1 -1
  124. package/dist/core/TurnRunner.js +1163 -929
  125. package/dist/core/TurnRunner.js.map +1 -1
  126. package/dist/core/WorkerName.d.ts +2 -1
  127. package/dist/core/WorkerName.d.ts.map +1 -1
  128. package/dist/core/WorkerName.js +2 -1
  129. package/dist/core/WorkerName.js.map +1 -1
  130. package/dist/core/WorkerName.sql +17 -2
  131. package/dist/core/WorkspaceGate.js +1 -1
  132. package/dist/core/WorkspaceGate.js.map +1 -1
  133. package/dist/core/caps/CapsResolve.d.ts +2 -2
  134. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  135. package/dist/core/caps/CapsResolve.js +5 -7
  136. package/dist/core/caps/CapsResolve.js.map +1 -1
  137. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  138. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  139. package/dist/core/caps/DbChannelCaps.js +13 -11
  140. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  141. package/dist/core/caps/DbEntryCaps.d.ts +5 -5
  142. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  143. package/dist/core/caps/DbEntryCaps.js +27 -30
  144. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  145. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  146. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  147. package/dist/core/caps/DbNotifyCaps.js +5 -3
  148. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  149. package/dist/core/caps/DbSubscriptionCaps.d.ts +3 -3
  150. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  151. package/dist/core/caps/DbSubscriptionCaps.js +16 -26
  152. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  153. package/dist/core/caps/SchemeCtxImpl.d.ts +6 -4
  154. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  155. package/dist/core/caps/SchemeCtxImpl.js +37 -5
  156. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  157. package/dist/core/env-defaults.d.ts.map +1 -1
  158. package/dist/core/env-defaults.js +7 -5
  159. package/dist/core/env-defaults.js.map +1 -1
  160. package/dist/core/file-creation-policy.d.ts +9 -0
  161. package/dist/core/file-creation-policy.d.ts.map +1 -0
  162. package/dist/core/file-creation-policy.js +25 -0
  163. package/dist/core/file-creation-policy.js.map +1 -0
  164. package/dist/core/fork.d.ts +4 -1
  165. package/dist/core/fork.d.ts.map +1 -1
  166. package/dist/core/fork.js +39 -16
  167. package/dist/core/fork.js.map +1 -1
  168. package/dist/core/fork.sql +83 -40
  169. package/dist/core/git-env.d.ts +0 -1
  170. package/dist/core/git-env.d.ts.map +1 -1
  171. package/dist/core/git-env.js +0 -3
  172. package/dist/core/git-env.js.map +1 -1
  173. package/dist/core/git-membership.d.ts +19 -1
  174. package/dist/core/git-membership.d.ts.map +1 -1
  175. package/dist/core/git-membership.js +233 -74
  176. package/dist/core/git-membership.js.map +1 -1
  177. package/dist/core/git-state.d.ts.map +1 -1
  178. package/dist/core/git-state.js +13 -14
  179. package/dist/core/git-state.js.map +1 -1
  180. package/dist/core/operation-target-groups.d.ts +3 -0
  181. package/dist/core/operation-target-groups.d.ts.map +1 -0
  182. package/dist/core/operation-target-groups.js +53 -0
  183. package/dist/core/operation-target-groups.js.map +1 -0
  184. package/dist/core/packet-inject.d.ts +0 -1
  185. package/dist/core/packet-inject.d.ts.map +1 -1
  186. package/dist/core/packet-inject.js +6 -13
  187. package/dist/core/packet-inject.js.map +1 -1
  188. package/dist/core/packet-wire.d.ts +4 -0
  189. package/dist/core/packet-wire.d.ts.map +1 -1
  190. package/dist/core/packet-wire.js +226 -53
  191. package/dist/core/packet-wire.js.map +1 -1
  192. package/dist/core/plurnk-uri.d.ts +14 -3
  193. package/dist/core/plurnk-uri.d.ts.map +1 -1
  194. package/dist/core/plurnk-uri.js +62 -24
  195. package/dist/core/plurnk-uri.js.map +1 -1
  196. package/dist/core/scheme-types.d.ts +1 -0
  197. package/dist/core/scheme-types.d.ts.map +1 -1
  198. package/dist/core/teaching.d.ts.map +1 -1
  199. package/dist/core/teaching.js +4 -5
  200. package/dist/core/teaching.js.map +1 -1
  201. package/dist/core/worker-ops.sql +10 -6
  202. package/dist/core/worker-settings.d.ts +10 -0
  203. package/dist/core/worker-settings.d.ts.map +1 -0
  204. package/dist/core/worker-settings.js +32 -0
  205. package/dist/core/worker-settings.js.map +1 -0
  206. package/dist/core/workspace-settings.d.ts +2 -11
  207. package/dist/core/workspace-settings.d.ts.map +1 -1
  208. package/dist/core/workspace-settings.js +7 -47
  209. package/dist/core/workspace-settings.js.map +1 -1
  210. package/dist/digest/Digest.d.ts.map +1 -1
  211. package/dist/digest/Digest.js +164 -92
  212. package/dist/digest/Digest.js.map +1 -1
  213. package/dist/digest/digest.sql +9 -3
  214. package/dist/observe/genai.d.ts +9 -0
  215. package/dist/observe/genai.d.ts.map +1 -0
  216. package/dist/observe/genai.js +31 -0
  217. package/dist/observe/genai.js.map +1 -0
  218. package/dist/observe/spans.d.ts +3 -3
  219. package/dist/observe/spans.d.ts.map +1 -1
  220. package/dist/observe/spans.js +20 -5
  221. package/dist/observe/spans.js.map +1 -1
  222. package/dist/schemes/EffectPolicy.d.ts +3 -0
  223. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  224. package/dist/schemes/EffectPolicy.js +38 -6
  225. package/dist/schemes/EffectPolicy.js.map +1 -1
  226. package/dist/schemes/Exec.d.ts +3 -2
  227. package/dist/schemes/Exec.d.ts.map +1 -1
  228. package/dist/schemes/Exec.js +109 -34
  229. package/dist/schemes/Exec.js.map +1 -1
  230. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  231. package/dist/schemes/ExecOutputScheme.js +5 -4
  232. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  233. package/dist/schemes/File.d.ts.map +1 -1
  234. package/dist/schemes/File.js +170 -80
  235. package/dist/schemes/File.js.map +1 -1
  236. package/dist/schemes/Log.d.ts +6 -2
  237. package/dist/schemes/Log.d.ts.map +1 -1
  238. package/dist/schemes/Log.js +73 -22
  239. package/dist/schemes/Log.js.map +1 -1
  240. package/dist/schemes/Log.sql +25 -7
  241. package/dist/schemes/Prompt.d.ts +2 -3
  242. package/dist/schemes/Prompt.d.ts.map +1 -1
  243. package/dist/schemes/Prompt.js +5 -9
  244. package/dist/schemes/Prompt.js.map +1 -1
  245. package/dist/schemes/QuestionTool.d.ts +10 -0
  246. package/dist/schemes/QuestionTool.d.ts.map +1 -0
  247. package/dist/schemes/QuestionTool.js +81 -0
  248. package/dist/schemes/QuestionTool.js.map +1 -0
  249. package/dist/schemes/Skill.d.ts.map +1 -1
  250. package/dist/schemes/Skill.js +6 -1
  251. package/dist/schemes/Skill.js.map +1 -1
  252. package/dist/schemes/Worker.d.ts.map +1 -1
  253. package/dist/schemes/Worker.js +97 -34
  254. package/dist/schemes/Worker.js.map +1 -1
  255. package/dist/schemes/_entry-crud.d.ts +5 -5
  256. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  257. package/dist/schemes/_entry-crud.js +22 -17
  258. package/dist/schemes/_entry-crud.js.map +1 -1
  259. package/dist/schemes/_entry-crud.sql +77 -24
  260. package/dist/schemes/_entry-find.d.ts +8 -5
  261. package/dist/schemes/_entry-find.d.ts.map +1 -1
  262. package/dist/schemes/_entry-find.js +121 -40
  263. package/dist/schemes/_entry-find.js.map +1 -1
  264. package/dist/schemes/_entry-find.sql +16 -11
  265. package/dist/schemes/_entry-graph.sql +2 -6
  266. package/dist/schemes/_entry-manifest.d.ts +2 -2
  267. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  268. package/dist/schemes/_entry-manifest.js +18 -6
  269. package/dist/schemes/_entry-manifest.js.map +1 -1
  270. package/dist/schemes/_entry-ops.d.ts +6 -5
  271. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  272. package/dist/schemes/_entry-ops.js +39 -46
  273. package/dist/schemes/_entry-ops.js.map +1 -1
  274. package/dist/schemes/_entry-ops.sql +9 -6
  275. package/dist/schemes/_entry-send.d.ts +2 -2
  276. package/dist/schemes/_entry-send.d.ts.map +1 -1
  277. package/dist/schemes/_entry-send.js +16 -14
  278. package/dist/schemes/_entry-send.js.map +1 -1
  279. package/dist/schemes/_search-index.d.ts.map +1 -1
  280. package/dist/schemes/_search-index.js +39 -25
  281. package/dist/schemes/_search-index.js.map +1 -1
  282. package/dist/server/Daemon.d.ts +98 -15
  283. package/dist/server/Daemon.d.ts.map +1 -1
  284. package/dist/server/Daemon.js +864 -348
  285. package/dist/server/Daemon.js.map +1 -1
  286. package/dist/server/DaemonModule.d.ts +84 -19
  287. package/dist/server/DaemonModule.d.ts.map +1 -1
  288. package/dist/server/DrainSupervisor.d.ts +15 -10
  289. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  290. package/dist/server/DrainSupervisor.js +70 -19
  291. package/dist/server/DrainSupervisor.js.map +1 -1
  292. package/dist/server/Functionality.d.ts +44 -0
  293. package/dist/server/Functionality.d.ts.map +1 -0
  294. package/dist/server/Functionality.js +422 -0
  295. package/dist/server/Functionality.js.map +1 -0
  296. package/dist/server/FunctionalityManager.d.ts +22 -0
  297. package/dist/server/FunctionalityManager.d.ts.map +1 -0
  298. package/dist/server/FunctionalityManager.js +121 -0
  299. package/dist/server/FunctionalityManager.js.map +1 -0
  300. package/dist/server/SkillsFunctionality.d.ts +61 -0
  301. package/dist/server/SkillsFunctionality.d.ts.map +1 -0
  302. package/dist/server/SkillsFunctionality.js +449 -0
  303. package/dist/server/SkillsFunctionality.js.map +1 -0
  304. package/dist/server/WorkerCapabilities.d.ts +21 -0
  305. package/dist/server/WorkerCapabilities.d.ts.map +1 -0
  306. package/dist/server/WorkerCapabilities.js +214 -0
  307. package/dist/server/WorkerCapabilities.js.map +1 -0
  308. package/dist/server/WorkerResidency.d.ts +40 -0
  309. package/dist/server/WorkerResidency.d.ts.map +1 -0
  310. package/dist/server/WorkerResidency.js +283 -0
  311. package/dist/server/WorkerResidency.js.map +1 -0
  312. package/dist/server/client-input.d.ts +6 -2
  313. package/dist/server/client-input.d.ts.map +1 -1
  314. package/dist/server/client-input.js +72 -32
  315. package/dist/server/client-input.js.map +1 -1
  316. package/dist/server/dispatch-as-plurnk.d.ts +2 -2
  317. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  318. package/dist/server/dispatch-as-plurnk.js +109 -23
  319. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  320. package/dist/server/drain.sql +33 -13
  321. package/dist/server/envelope.d.ts +7 -2
  322. package/dist/server/envelope.d.ts.map +1 -1
  323. package/dist/server/envelope.js +12 -6
  324. package/dist/server/envelope.js.map +1 -1
  325. package/dist/server/envelope.sql +36 -4
  326. package/dist/server/lifecycle-recovery.sql +24 -17
  327. package/dist/server/logEntry.d.ts +2 -1
  328. package/dist/server/logEntry.d.ts.map +1 -1
  329. package/dist/server/logEntry.js +3 -2
  330. package/dist/server/logEntry.js.map +1 -1
  331. package/dist/server/logEntry.sql +7 -0
  332. package/dist/server/loop-model.d.ts +2 -2
  333. package/dist/server/loop-model.d.ts.map +1 -1
  334. package/dist/server/loop-model.js +23 -33
  335. package/dist/server/loop-model.js.map +1 -1
  336. package/dist/server/loopDocs.d.ts +2 -1
  337. package/dist/server/loopDocs.d.ts.map +1 -1
  338. package/dist/server/loopDocs.js +88 -21
  339. package/dist/server/loopDocs.js.map +1 -1
  340. package/dist/server/loopDocs.sql +14 -8
  341. package/dist/server/model-catalog.d.ts +3 -0
  342. package/dist/server/model-catalog.d.ts.map +1 -0
  343. package/dist/server/model-catalog.js +83 -0
  344. package/dist/server/model-catalog.js.map +1 -0
  345. package/dist/server/model-route.d.ts +7 -0
  346. package/dist/server/model-route.d.ts.map +1 -0
  347. package/dist/server/model-route.js +47 -0
  348. package/dist/server/model-route.js.map +1 -0
  349. package/dist/server/module-discovery.d.ts +13 -0
  350. package/dist/server/module-discovery.d.ts.map +1 -0
  351. package/dist/server/module-discovery.js +103 -0
  352. package/dist/server/module-discovery.js.map +1 -0
  353. package/dist/server/seam-entry-read.sql +9 -7
  354. package/dist/server/seam-log-read.sql +1 -1
  355. package/dist/server/seam-loop.sql +10 -1
  356. package/dist/server/seam-proposal-list.sql +4 -2
  357. package/dist/server/worker-capabilities.sql +19 -0
  358. package/dist/service.d.ts.map +1 -1
  359. package/dist/service.js +193 -124
  360. package/dist/service.js.map +1 -1
  361. package/migrations/001_schema.sql +905 -196
  362. package/package.json +40 -38
  363. package/dist/core/ExecutableTools.d.ts +0 -11
  364. package/dist/core/ExecutableTools.d.ts.map +0 -1
  365. package/dist/core/ExecutableTools.js +0 -49
  366. package/dist/core/ExecutableTools.js.map +0 -1
  367. package/dist/core/JournalTurn.d.ts +0 -9
  368. package/dist/core/JournalTurn.d.ts.map +0 -1
  369. package/dist/core/JournalTurn.js +0 -14
  370. package/dist/core/JournalTurn.js.map +0 -1
  371. package/dist/core/JournalTurn.sql +0 -10
  372. package/dist/core/git-iso.d.ts +0 -13
  373. package/dist/core/git-iso.d.ts.map +0 -1
  374. package/dist/core/git-iso.js +0 -267
  375. package/dist/core/git-iso.js.map +0 -1
  376. package/dist/core/search-gate.d.ts +0 -17
  377. package/dist/core/search-gate.d.ts.map +0 -1
  378. package/dist/core/search-gate.js +0 -77
  379. package/dist/core/search-gate.js.map +0 -1
  380. package/dist/digest/Digest.sql +0 -1
  381. package/dist/server/workspace-capabilities.sql +0 -19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-contracts contract.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -26,6 +26,7 @@
26
26
  "files": [
27
27
  ".env.defaults",
28
28
  "dist/**/*",
29
+ "digest-sql/**/*.sql",
29
30
  "migrations/**/*.sql",
30
31
  "README.md",
31
32
  "INSTALL.md",
@@ -51,9 +52,11 @@
51
52
  "test:live:specimen": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/live.mjs --specimen",
52
53
  "test:live:zeropin": "PLURNK_ZERO_PIN=1 npm run test:live",
53
54
  "pretest:demo": "npm run build:rail",
54
- "test:demo": "bash ../scripts/operator-environment.sh env PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
55
+ "test:demo": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/demo.mjs",
56
+ "pretest:demo:specimen": "npm run build:rail",
57
+ "test:demo:specimen": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/demo.mjs --specimen",
55
58
  "pretest:demo:zeropin": "npm run build:rail",
56
- "test:demo:zeropin": "bash ../scripts/operator-environment.sh env PLURNK_ZERO_PIN=1 PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
59
+ "test:demo:zeropin": "PLURNK_ZERO_PIN=1 npm run test:demo",
57
60
  "test:benchlet": "node scripts/benchlet.mjs",
58
61
  "fixture:demo": "node --conditions=plurnk-dev test/demo/_fixture.ts",
59
62
  "test": "npm run test:lint && npm run test:unit && npm run test:intg",
@@ -73,7 +76,8 @@
73
76
  "deps:audit": "node --conditions=plurnk-dev scripts/deps-audit.ts",
74
77
  "release:check": "npm run deps:audit && npm run test:installation",
75
78
  "prepublishOnly": "npm run deps:audit && npm run test:installation",
76
- "prepack": "npm run build"
79
+ "prepack": "npm run build",
80
+ "report:floor": "node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults scripts/floor-report.mjs"
77
81
  },
78
82
  "dependencies": {
79
83
  "@opentelemetry/api": "^1.9.1",
@@ -83,45 +87,43 @@
83
87
  "@opentelemetry/resources": "^2.10.0",
84
88
  "@opentelemetry/sdk-metrics": "^2.10.0",
85
89
  "@opentelemetry/sdk-trace-base": "^2.10.0",
86
- "@plurnk/gbnf": "1.7.0",
87
- "@plurnk/plurnk-agui": "1.7.0",
88
- "@plurnk/plurnk-contracts": "1.7.0",
89
- "@plurnk/plurnk-execs": "1.7.0",
90
- "@plurnk/plurnk-execs-common": "1.7.0",
91
- "@plurnk/plurnk-execs-git": "1.7.0",
92
- "@plurnk/plurnk-execs-jq": "1.7.0",
93
- "@plurnk/plurnk-execs-search": "1.7.0",
94
- "@plurnk/plurnk-execs-sqlite": "1.7.0",
95
- "@plurnk/plurnk-execs-wasm": "1.7.0",
96
- "@plurnk/plurnk-hooks": "1.7.0",
97
- "@plurnk/plurnk-mcp": "1.7.0",
98
- "@plurnk/plurnk-meta": "1.7.0",
99
- "@plurnk/plurnk-mimetypes": "1.7.0",
100
- "@plurnk/plurnk-mimetypes-application-ipynb": "1.7.0",
101
- "@plurnk/plurnk-mimetypes-application-json": "1.7.0",
102
- "@plurnk/plurnk-mimetypes-application-jsonl": "1.7.0",
103
- "@plurnk/plurnk-mimetypes-application-pdf": "1.7.0",
104
- "@plurnk/plurnk-mimetypes-application-xml": "1.7.0",
105
- "@plurnk/plurnk-mimetypes-embeddings": "1.7.0",
106
- "@plurnk/plurnk-mimetypes-text-csv": "1.7.0",
107
- "@plurnk/plurnk-mimetypes-text-diff": "1.7.0",
108
- "@plurnk/plurnk-mimetypes-text-dotenv": "1.7.0",
109
- "@plurnk/plurnk-mimetypes-text-html": "1.7.0",
110
- "@plurnk/plurnk-mimetypes-text-ini": "1.7.0",
111
- "@plurnk/plurnk-mimetypes-text-markdown": "1.7.0",
112
- "@plurnk/plurnk-mimetypes-text-plain": "1.7.0",
113
- "@plurnk/plurnk-mimetypes-tokenizers": "1.7.0",
114
- "@plurnk/plurnk-models": "1.7.0",
115
- "@plurnk/plurnk-providers": "1.7.0",
116
- "@plurnk/plurnk-schemes": "1.7.0",
117
- "@plurnk/plurnk-schemes-http": "1.7.0",
90
+ "@plurnk/gbnf": "1.9.0",
91
+ "@plurnk/plurnk-a2a": "1.9.0",
92
+ "@plurnk/plurnk-agui": "1.9.0",
93
+ "@plurnk/plurnk-contracts": "1.9.0",
94
+ "@plurnk/plurnk-execs": "1.9.0",
95
+ "@plurnk/plurnk-execs-common": "1.9.0",
96
+ "@plurnk/plurnk-execs-git": "1.9.0",
97
+ "@plurnk/plurnk-execs-jq": "1.9.0",
98
+ "@plurnk/plurnk-execs-sqlite": "1.9.0",
99
+ "@plurnk/plurnk-execs-wasm": "1.9.0",
100
+ "@plurnk/plurnk-hooks": "1.9.0",
101
+ "@plurnk/plurnk-mcp": "1.9.0",
102
+ "@plurnk/plurnk-meta": "1.9.0",
103
+ "@plurnk/plurnk-mimetypes": "1.9.0",
104
+ "@plurnk/plurnk-mimetypes-application-ipynb": "1.9.0",
105
+ "@plurnk/plurnk-mimetypes-application-json": "1.9.0",
106
+ "@plurnk/plurnk-mimetypes-application-jsonl": "1.9.0",
107
+ "@plurnk/plurnk-mimetypes-application-xml": "1.9.0",
108
+ "@plurnk/plurnk-mimetypes-embeddings": "1.9.0",
109
+ "@plurnk/plurnk-mimetypes-text-csv": "1.9.0",
110
+ "@plurnk/plurnk-mimetypes-text-diff": "1.9.0",
111
+ "@plurnk/plurnk-mimetypes-text-dotenv": "1.9.0",
112
+ "@plurnk/plurnk-mimetypes-text-html": "1.9.0",
113
+ "@plurnk/plurnk-mimetypes-text-ini": "1.9.0",
114
+ "@plurnk/plurnk-mimetypes-text-markdown": "1.9.0",
115
+ "@plurnk/plurnk-mimetypes-text-plain": "1.9.0",
116
+ "@plurnk/plurnk-models": "1.9.0",
117
+ "@plurnk/plurnk-providers": "1.9.0",
118
+ "@plurnk/plurnk-schemes": "1.9.0",
119
+ "@plurnk/plurnk-schemes-http": "1.9.0",
118
120
  "@possumtech/sqlrite": "^6.5.2",
119
121
  "diff": "^9.0.0",
120
- "ignore": "7.0.6",
121
- "isomorphic-git": "1.41.4"
122
+ "yaml": "^2.9.0"
122
123
  },
123
124
  "devDependencies": {
124
125
  "@opentelemetry/core": "^2.10.0",
126
+ "@plurnk/plurnk-mimetypes-tokenizers": "1.9.0",
125
127
  "@types/diff": "^7.0.2"
126
128
  },
127
129
  "homepage": "https://github.com/plurnk/plurnk-service/tree/main/plurnk-core#readme",
@@ -1,11 +0,0 @@
1
- import type { RuntimeInvocationDecl } from "@plurnk/plurnk-execs";
2
- interface ExecutableTool {
3
- readonly runtime: string;
4
- readonly invocation: RuntimeInvocationDecl;
5
- readonly exactTarget?: string;
6
- }
7
- export default class ExecutableTools {
8
- static render(tools: readonly ExecutableTool[]): string;
9
- }
10
- export {};
11
- //# sourceMappingURL=ExecutableTools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutableTools.d.ts","sourceRoot":"","sources":["../../src/core/ExecutableTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,UAAU,cAAc;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACjC;AAuBD,MAAM,CAAC,OAAO,OAAO,eAAe;IAChC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CA+BtD;CACJ"}
@@ -1,49 +0,0 @@
1
- import { PathSyntax } from "@plurnk/plurnk-contracts";
2
- const escapeCell = (value) => value.replaceAll("|", "\\|");
3
- const bucket = (role, required, exclusive) => {
4
- const marker = exclusive ? " ↔" : required ? "" : " ?";
5
- return `${escapeCell(role)}${marker}`;
6
- };
7
- const code = (value) => {
8
- const longest = Math.max(0, ...[...value.matchAll(/`+/g)].map((match) => match[0].length));
9
- const fence = "`".repeat(longest + 1);
10
- const padding = value.startsWith("`") || value.endsWith("`") ? " " : "";
11
- return `${fence}${padding}${escapeCell(value)}${padding}${fence}`;
12
- };
13
- const invocationPresentation = (invocation) => invocation.signature !== undefined
14
- ? code(invocation.signature)
15
- : invocation.example.body === undefined
16
- ? code("bodyless")
17
- : code(invocation.example.body);
18
- export default class ExecutableTools {
19
- static render(tools) {
20
- if (tools.length === 0)
21
- return "";
22
- const rows = tools
23
- .toSorted((left, right) => left.runtime.localeCompare(right.runtime)
24
- || (left.exactTarget ?? left.invocation.example?.target ?? "")
25
- .localeCompare(right.exactTarget ?? right.invocation.example?.target ?? ""))
26
- .map(({ runtime, invocation, exactTarget }) => {
27
- const exclusive = invocation.exclusive === true;
28
- const targetWitness = exactTarget ?? invocation.example?.target;
29
- const target = invocation.target === undefined
30
- ? "—"
31
- : [
32
- ...(targetWitness === undefined ? [] : [code(`(${PathSyntax.escapeTarget(targetWitness)})`)]),
33
- bucket(`${invocation.target.role}${invocation.target.directory === "cwd" ? " or local directory with body" : ""}`, invocation.target.required, exclusive),
34
- ].join("<br>");
35
- const body = bucket(invocation.body.role, invocation.body.required, exclusive);
36
- return `| \`[${runtime}]\` | ${target} | ${body} | ${invocationPresentation(invocation)} |`;
37
- });
38
- return [
39
- "YOU SHOULD use purpose-built Plurnk OPs when possible; use EXEC for scripts only when necessary.",
40
- "",
41
- "`?` optional · `↔` choose one · `—` unavailable · `<timeout,poll>` optional",
42
- "",
43
- "| `[executor]` | `(target)` | body | Invocation |",
44
- "| --- | --- | --- | --- |",
45
- ...rows,
46
- ].join("\n");
47
- }
48
- }
49
- //# sourceMappingURL=ExecutableTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutableTools.js","sourceRoot":"","sources":["../../src/core/ExecutableTools.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { Db } from "./Db.ts";
2
- export type JournalTurnRow = {
3
- id: number;
4
- sequence: number;
5
- };
6
- export default class JournalTurn {
7
- static insert(db: Db, loopId: number): Promise<JournalTurnRow>;
8
- }
9
- //# sourceMappingURL=JournalTurn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JournalTurn.d.ts","sourceRoot":"","sources":["../../src/core/JournalTurn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAI9D,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,OAAa,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAMnE;CACJ"}
@@ -1,14 +0,0 @@
1
- // {§packet-stored-shape} — an operation journal may need a Turn container
2
- // without ever assembling a model request. Its packet is therefore NULL.
3
- export default class JournalTurn {
4
- static async insert(db, loopId) {
5
- const sequence = await db.journal_turn_next_sequence.get({ loop_id: loopId });
6
- if (sequence === undefined)
7
- throw new Error("JournalTurn.insert: next-sequence query returned no row");
8
- const turn = await db.journal_turn_insert.get({ loop_id: loopId, sequence: sequence.next });
9
- if (turn === undefined)
10
- throw new Error("JournalTurn.insert: insert returned no row");
11
- return turn;
12
- }
13
- }
14
- //# sourceMappingURL=JournalTurn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JournalTurn.js","sourceRoot":"","sources":["../../src/core/JournalTurn.ts"],"names":[],"mappings":"AAIA,0EAA0E;AAC1E,yEAAyE;AACzE,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAM,EAAE,MAAc;QACtC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChG,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -1,10 +0,0 @@
1
- -- Journal-only turn helpers. Client and plurnk actor work needs an ordered
2
- -- Turn container for log rows but does not assemble a model packet.
3
-
4
- -- PREP: journal_turn_next_sequence
5
- SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
6
-
7
- -- PREP: journal_turn_insert
8
- INSERT INTO turns (loop_id, sequence, status)
9
- VALUES ($loop_id, $sequence, 200)
10
- RETURNING id, sequence;
@@ -1,13 +0,0 @@
1
- import type { GitStatusSnapshot } from "./git-state.ts";
2
- export declare class GitIsoError extends Error {
3
- constructor(root: string, operation: string, cause: unknown);
4
- }
5
- export default class GitIso {
6
- #private;
7
- static trackedFiles(root: string, cache: object): Promise<string[]>;
8
- static untrackedFiles(root: string, cache: object): Promise<string[]>;
9
- static repoToplevel(dir: string): Promise<string | null>;
10
- static status(workspaceRoot: string, repositoryRoot?: string): Promise<GitStatusSnapshot>;
11
- static add(root: string, filepath: string): Promise<void>;
12
- }
13
- //# sourceMappingURL=git-iso.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-iso.d.ts","sourceRoot":"","sources":["../../src/core/git-iso.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,qBAAa,WAAY,SAAQ,KAAK;IAClC,YAAY,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAkB1D;CACJ;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;;IA0CvB,OAAa,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxE;IAaD,OAAa,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE1E;IAqED,OAAa,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAM7D;IAKD,OAAa,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,GAAE,MAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE7G;IAuED,OAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;CACJ"}
@@ -1,267 +0,0 @@
1
- // {§git-isomorphic-opt-in} — optional in-process Git reads. This
2
- // backend takes an explicit dir and reads no GIT_* env or global/system config.
3
- // Native Git is the default; PLURNK_SERVICE_GIT_ISO=1 selects this slower
4
- // portability backend for a deployment that cannot spawn Git.
5
- import git, { STAGE } from "isomorphic-git";
6
- import fs from "node:fs";
7
- import ignore from "ignore";
8
- import { readdir, readFile } from "node:fs/promises";
9
- import { existsSync } from "node:fs";
10
- import { join } from "node:path";
11
- import Namespace from "./namespace.js";
12
- export class GitIsoError extends Error {
13
- constructor(root, operation, cause) {
14
- const detail = typeof cause === "object"
15
- && cause !== null
16
- && "data" in cause
17
- && typeof cause.data === "object"
18
- && cause.data !== null
19
- && "message" in cause.data
20
- && typeof cause.data.message === "string"
21
- ? cause.data.message
22
- : cause instanceof Error
23
- ? cause.message.trim().split("\n").filter((line) => line.length > 0).at(-1)
24
- : String(cause);
25
- super(`isomorphic-git could not read repository "${root}" while ${operation}: ${detail ?? "unknown failure"}. `
26
- + "Disable PLURNK_SERVICE_GIT_ISO to use the native Git backend.", { cause });
27
- this.name = "GitIsoError";
28
- }
29
- }
30
- export default class GitIso {
31
- static async #read(root, operation, read) {
32
- try {
33
- return await read();
34
- }
35
- catch (cause) {
36
- throw new GitIsoError(root, operation, cause);
37
- }
38
- }
39
- // One STAGE walk serves both member classes: `blob` entries are the tracked files
40
- // (parity with `ls-files --stage` sans mode-160000), `commit` entries are submodule
41
- // gitlinks — repo boundaries the untracked scan must never descend. Memoized on the
42
- // caller's per-pass cache: trackedFiles + untrackedFiles in one membership pass share
43
- // one walk, and the cache dies with the pass, so a rewritten index can't serve stale.
44
- static #stageMemo = new WeakMap();
45
- static #stageEntries(root, cache) {
46
- let perCache = GitIso.#stageMemo.get(cache);
47
- if (perCache === undefined) {
48
- perCache = new Map();
49
- GitIso.#stageMemo.set(cache, perCache);
50
- }
51
- let entry = perCache.get(root);
52
- if (entry === undefined) {
53
- entry = GitIso.#stageWalk(root, cache);
54
- perCache.set(root, entry);
55
- }
56
- return entry;
57
- }
58
- static async #stageWalk(root, cache) {
59
- const blobs = [];
60
- const gitlinks = [];
61
- await git.walk({
62
- fs, dir: root, cache, trees: [STAGE()],
63
- map: async (filepath, [stage]) => {
64
- if (filepath === "." || stage === null)
65
- return undefined;
66
- const type = await stage.type();
67
- if (type === "blob")
68
- blobs.push(filepath);
69
- if (type === "commit")
70
- gitlinks.push(filepath);
71
- return undefined;
72
- },
73
- });
74
- return { blobs, gitlinks };
75
- }
76
- // Tracked files, workspace-relative — parity with `git ls-files --stage -z` + the gitlink
77
- // filter: only blob entries (files + symlinks) are members; a `commit` entry is a
78
- // submodule boundary and a `tree` is walk hierarchy, never a file.
79
- static async trackedFiles(root, cache) {
80
- return GitIso.#read(root, "reading tracked files", async () => (await GitIso.#stageEntries(root, cache)).blobs);
81
- }
82
- // Untracked-but-not-ignored files — parity with `git ls-files --others --exclude-standard`,
83
- // differential-gated against it across the gitignore edge-case corpus. A pruning
84
- // fs-walk with the `ignore` lib: rules load ONCE per .gitignore (per-file `git.isIgnored`
85
- // re-parses every call — measured 237x native; statusMatrix hashes the workdir — 55x, and
86
- // crosses embedded-repo boundaries; the whole membership pass measures ~8x). Precedence is
87
- // git's: `.git/info/exclude` lowest, then .gitignore
88
- // root→deep, deeper opinions winning for their subtree. An ignored DIRECTORY is pruned
89
- // whole (git: no re-include under an excluded dir — while `dir/**` glob patterns leave the
90
- // dir itself unignored, so their re-includes work). Submodule gitlinks are never descended,
91
- // and a directory carrying its own `.git` (an embedded plain repo) is a boundary listed as
92
- // the single entry `dir/`, exactly as native does.
93
- static async untrackedFiles(root, cache) {
94
- return GitIso.#read(root, "reading untracked files", () => GitIso.#untrackedFiles(root, cache));
95
- }
96
- static async #untrackedFiles(root, cache) {
97
- const { blobs, gitlinks } = await GitIso.#stageEntries(root, cache);
98
- const tracked = new Set(blobs);
99
- const boundaries = new Set(gitlinks);
100
- // Matchers in precedence order; each carries the dir it applies to ("" = root).
101
- const matchers = [];
102
- const excludes = await GitIso.#infoExclude(root);
103
- if (excludes !== null)
104
- matchers.push({ base: "", ig: ignore().add(excludes) });
105
- const ignored = (rel, isDir) => {
106
- let verdict = false;
107
- for (const { base, ig } of matchers) {
108
- if (base.length > 0 && !rel.startsWith(`${base}/`))
109
- continue;
110
- const local = base.length > 0 ? rel.slice(base.length + 1) : rel;
111
- const t = ig.test(isDir ? `${local}/` : local);
112
- if (t.ignored)
113
- verdict = true;
114
- else if (t.unignored)
115
- verdict = false;
116
- }
117
- return verdict;
118
- };
119
- const untracked = [];
120
- const walkDir = async (rel) => {
121
- const gi = join(root, rel, ".gitignore");
122
- const depth = matchers.length;
123
- if (existsSync(gi))
124
- matchers.push({ base: rel, ig: ignore().add(await readFile(gi, "utf8")) });
125
- for (const entry of await readdir(join(root, rel), { withFileTypes: true })) {
126
- if (entry.name === ".git")
127
- continue;
128
- const r = rel.length > 0 ? `${rel}/${entry.name}` : entry.name;
129
- if (boundaries.has(r))
130
- continue; // submodule repository boundary
131
- const isDir = entry.isDirectory();
132
- if (ignored(r, isDir))
133
- continue; // pruned: ignored dirs are never descended
134
- if (isDir) {
135
- // An embedded plain repo (its own .git, no gitlink) is a boundary too:
136
- // native lists it as the one entry `dir/` and never claims its files.
137
- if (existsSync(join(root, r, ".git"))) {
138
- untracked.push(`${r}/`);
139
- continue;
140
- }
141
- await walkDir(r);
142
- }
143
- else if (!tracked.has(r)) {
144
- untracked.push(r);
145
- }
146
- }
147
- matchers.length = depth; // leaving the dir pops its .gitignore
148
- };
149
- await walkDir("");
150
- return untracked;
151
- }
152
- // `.git/info/exclude`, linked-worktree-aware: a worktree's `.git` is a FILE pointing at
153
- // the per-worktree gitdir, whose `commondir` names the shared gitdir where info/exclude
154
- // actually lives. Absent at any step → null (no exclude rules).
155
- static async #infoExclude(root) {
156
- try {
157
- let gitdir = join(root, ".git");
158
- if ((await fs.promises.stat(gitdir)).isFile()) {
159
- const pointer = (await readFile(gitdir, "utf8")).trim();
160
- if (!pointer.startsWith("gitdir:"))
161
- return null;
162
- gitdir = pointer.slice("gitdir:".length).trim();
163
- }
164
- const commondir = join(gitdir, "commondir");
165
- if (existsSync(commondir))
166
- gitdir = join(gitdir, (await readFile(commondir, "utf8")).trim());
167
- return await readFile(join(gitdir, "info/exclude"), "utf8");
168
- }
169
- catch {
170
- return null;
171
- }
172
- }
173
- // The enclosing worktree root of a directory — parity with `git rev-parse --show-toplevel`,
174
- // linked worktrees + submodules included (findRoot accepts a `.git` FILE — the gitdir
175
- // pointer — as readily as a directory). Not inside any git tree → null.
176
- static async repoToplevel(dir) {
177
- try {
178
- return await git.findRoot({ fs, filepath: dir });
179
- }
180
- catch {
181
- return null; // not a git tree (or the dir is gone) — contributes nothing
182
- }
183
- }
184
- // Working-tree status — parity with `git status --porcelain --branch`: branch, ahead/behind
185
- // the configured upstream, and staged/unstaged/untracked counts. Repository incompatibilities
186
- // surface as GitIsoError; GitState distinguishes the ordinary non-repo case before this call.
187
- static async status(workspaceRoot, repositoryRoot = workspaceRoot) {
188
- return GitIso.#read(repositoryRoot, "reading working-tree status", () => GitIso.#status(workspaceRoot, repositoryRoot));
189
- }
190
- static async #status(workspaceRoot, repositoryRoot) {
191
- const cache = {};
192
- const branch = await git.currentBranch({ fs, dir: repositoryRoot, fullname: false }) ?? "HEAD"; // detached → HEAD, as porcelain renders it
193
- const matrix = await git.statusMatrix({ fs, dir: repositoryRoot, cache });
194
- let staged = 0;
195
- let unstaged = 0;
196
- let untracked = 0;
197
- const files = [];
198
- for (const [filepath, head, workdir, stage] of matrix) {
199
- const path = Namespace.fromRepositoryPath(filepath, workspaceRoot, repositoryRoot);
200
- if (head === 0 && stage === 0 && workdir === 2) {
201
- untracked++;
202
- files.push({ path, status: "??" });
203
- continue;
204
- }
205
- const isStaged = head === 1 ? stage !== 1 : stage !== 0;
206
- const isUnstaged = (workdir === 2 && stage !== 2) || (workdir === 0 && stage !== 0);
207
- if (isStaged)
208
- staged++;
209
- if (isUnstaged)
210
- unstaged++;
211
- if (isStaged || isUnstaged) {
212
- const index = isStaged ? (head === 0 ? "A" : stage === 0 ? "D" : "M") : " ";
213
- const worktree = isUnstaged ? (workdir === 0 ? "D" : "M") : " ";
214
- files.push({ path, status: `${index}${worktree}` });
215
- }
216
- }
217
- files.sort((a, b) => a.path.localeCompare(b.path));
218
- const { ahead, behind } = await GitIso.#aheadBehind(repositoryRoot, branch, cache);
219
- return { branch, ahead, behind, staged, unstaged, untracked, files };
220
- }
221
- // ahead/behind vs the branch's configured upstream (branch.<name>.remote + .merge →
222
- // refs/remotes/<remote>/<branch>). No upstream configured or never fetched → 0/0, the
223
- // same absence porcelain's header shows. Counting walks parents from each tip and stops
224
- // at the merge base, so the cost is proportional to the DIVERGENCE, never history depth.
225
- static async #aheadBehind(root, branch, cache) {
226
- const none = { ahead: 0, behind: 0 };
227
- if (branch === "HEAD")
228
- return none; // detached — porcelain shows no upstream either
229
- try {
230
- const remote = await git.getConfig({ fs, dir: root, path: `branch.${branch}.remote` });
231
- const merge = await git.getConfig({ fs, dir: root, path: `branch.${branch}.merge` });
232
- if (remote === undefined || merge === undefined)
233
- return none;
234
- const tip = await git.resolveRef({ fs, dir: root, ref: "HEAD" });
235
- const up = await git.resolveRef({ fs, dir: root, ref: `refs/remotes/${remote}/${merge.replace(/^refs\/heads\//, "")}` });
236
- if (tip === up)
237
- return none;
238
- const stop = new Set(await git.findMergeBase({ fs, dir: root, oids: [tip, up], cache }));
239
- return {
240
- ahead: await GitIso.#countToBase(root, tip, stop, cache),
241
- behind: await GitIso.#countToBase(root, up, stop, cache),
242
- };
243
- }
244
- catch {
245
- return none; // upstream ref missing (configured but never fetched) — porcelain omits too
246
- }
247
- }
248
- static async #countToBase(root, tip, stop, cache) {
249
- let count = 0;
250
- const queue = [tip];
251
- const seen = new Set();
252
- while (queue.length > 0) {
253
- const oid = queue.pop();
254
- if (seen.has(oid) || stop.has(oid))
255
- continue;
256
- seen.add(oid);
257
- count++;
258
- const { commit } = await git.readCommit({ fs, dir: root, oid, cache });
259
- queue.push(...commit.parent);
260
- }
261
- return count;
262
- }
263
- static async add(root, filepath) {
264
- await git.add({ fs, dir: root, filepath });
265
- }
266
- }
267
- //# sourceMappingURL=git-iso.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-iso.js","sourceRoot":"","sources":["../../src/core/git-iso.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export type GateVerdict = {
2
- verdict: "pass";
3
- } | {
4
- verdict: "duplicate";
5
- priorPathname: string;
6
- } | {
7
- verdict: "capped";
8
- cap: number;
9
- };
10
- export default class SearchGate {
11
- #private;
12
- check(loopId: number, turnId: number, runtime: string, query: string): GateVerdict;
13
- registerPending(loopId: number, turnId: number, runtime: string, query: string, pathname: string): void;
14
- settle(pathname: string, closeStatus: number): void;
15
- cleanup(loopId: number): void;
16
- }
17
- //# sourceMappingURL=search-gate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-gate.d.ts","sourceRoot":"","sources":["../../src/core/search-gate.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GACjB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,UAAU;;IAuB3B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CASjF;IAID,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMtG;IAID,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAQlD;IAGD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI5B;CACJ"}