@dev-sergeev/datalab-kit 0.1.1 → 0.1.3

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 (339) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +26 -8
  3. package/THIRD_PARTY_NOTICES.md +6 -2
  4. package/dist/extension.js +8 -1
  5. package/dist/recap.d.ts +2 -0
  6. package/dist/recap.js +31 -0
  7. package/docs/adr/0002-package-delivery.md +2 -0
  8. package/node_modules/@gotgenes/pi-permission-system/src/authority/permission-prompt-component.ts +0 -11
  9. package/node_modules/@gotgenes/pi-permission-system/src/config/config-store.ts +0 -5
  10. package/node_modules/@gotgenes/pi-permission-system/src/index.ts +3 -15
  11. package/node_modules/@pi-plugins/elapsed/LICENSE +21 -0
  12. package/node_modules/@pi-plugins/elapsed/README.md +45 -0
  13. package/node_modules/@pi-plugins/elapsed/dist/index.d.mts +8 -0
  14. package/node_modules/@pi-plugins/elapsed/dist/index.d.mts.map +1 -0
  15. package/node_modules/@pi-plugins/elapsed/dist/index.mjs +47 -0
  16. package/node_modules/@pi-plugins/elapsed/dist/index.mjs.map +1 -0
  17. package/node_modules/@pi-plugins/elapsed/package.json +65 -0
  18. package/node_modules/@tifan/pi-recap/README.md +61 -0
  19. package/node_modules/@tifan/pi-recap/package.json +43 -0
  20. package/node_modules/@tifan/pi-recap/src/index.ts +584 -0
  21. package/node_modules/@tifan/pi-recap/src/model-picker.ts +233 -0
  22. package/node_modules/@tifan/pi-recap/src/models.ts +183 -0
  23. package/node_modules/@tifan/pi-recap/src/sanitize.ts +119 -0
  24. package/node_modules/@tifan/pi-recap/src/tui.ts +155 -0
  25. package/node_modules/@zigai/pi-extension-internals/README.md +24 -0
  26. package/node_modules/@zigai/pi-extension-internals/dist/editor-enhancer-registry.d.ts +21 -0
  27. package/node_modules/@zigai/pi-extension-internals/dist/editor-enhancer-registry.js +233 -0
  28. package/node_modules/@zigai/pi-extension-internals/dist/index.d.ts +6 -0
  29. package/node_modules/@zigai/pi-extension-internals/dist/index.js +3 -0
  30. package/node_modules/@zigai/pi-extension-internals/dist/linked-method-patch.d.ts +34 -0
  31. package/node_modules/@zigai/pi-extension-internals/dist/linked-method-patch.js +272 -0
  32. package/node_modules/@zigai/pi-extension-internals/dist/pi-internal-import.d.ts +11 -0
  33. package/node_modules/@zigai/pi-extension-internals/dist/pi-internal-import.js +139 -0
  34. package/node_modules/@zigai/pi-extension-internals/package.json +41 -0
  35. package/node_modules/@zigai/pi-extension-settings/LICENSE +21 -0
  36. package/node_modules/@zigai/pi-extension-settings/README.md +36 -0
  37. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.d.ts +23 -0
  38. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.d.ts.map +1 -0
  39. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.js +75 -0
  40. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.js.map +1 -0
  41. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.d.ts +3 -0
  42. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.d.ts.map +1 -0
  43. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.js +5 -0
  44. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.js.map +1 -0
  45. package/node_modules/@zigai/pi-extension-settings/dist/cli.d.ts +6 -0
  46. package/node_modules/@zigai/pi-extension-settings/dist/cli.d.ts.map +1 -0
  47. package/node_modules/@zigai/pi-extension-settings/dist/cli.js +87 -0
  48. package/node_modules/@zigai/pi-extension-settings/dist/cli.js.map +1 -0
  49. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.d.ts +2 -0
  50. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.d.ts.map +1 -0
  51. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.js +2 -0
  52. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.js.map +1 -0
  53. package/node_modules/@zigai/pi-extension-settings/dist/definition.d.ts +159 -0
  54. package/node_modules/@zigai/pi-extension-settings/dist/definition.d.ts.map +1 -0
  55. package/node_modules/@zigai/pi-extension-settings/dist/definition.js +248 -0
  56. package/node_modules/@zigai/pi-extension-settings/dist/definition.js.map +1 -0
  57. package/node_modules/@zigai/pi-extension-settings/dist/file-system.d.ts +10 -0
  58. package/node_modules/@zigai/pi-extension-settings/dist/file-system.d.ts.map +1 -0
  59. package/node_modules/@zigai/pi-extension-settings/dist/file-system.js +115 -0
  60. package/node_modules/@zigai/pi-extension-settings/dist/file-system.js.map +1 -0
  61. package/node_modules/@zigai/pi-extension-settings/dist/index.d.ts +2 -0
  62. package/node_modules/@zigai/pi-extension-settings/dist/index.d.ts.map +1 -0
  63. package/node_modules/@zigai/pi-extension-settings/dist/index.js +2 -0
  64. package/node_modules/@zigai/pi-extension-settings/dist/index.js.map +1 -0
  65. package/node_modules/@zigai/pi-extension-settings/dist/json-value.d.ts +18 -0
  66. package/node_modules/@zigai/pi-extension-settings/dist/json-value.d.ts.map +1 -0
  67. package/node_modules/@zigai/pi-extension-settings/dist/json-value.js +56 -0
  68. package/node_modules/@zigai/pi-extension-settings/dist/json-value.js.map +1 -0
  69. package/node_modules/@zigai/pi-extension-settings/dist/paths.d.ts +11 -0
  70. package/node_modules/@zigai/pi-extension-settings/dist/paths.d.ts.map +1 -0
  71. package/node_modules/@zigai/pi-extension-settings/dist/paths.js +23 -0
  72. package/node_modules/@zigai/pi-extension-settings/dist/paths.js.map +1 -0
  73. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.d.ts +5 -0
  74. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.d.ts.map +1 -0
  75. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.js +21 -0
  76. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.js.map +1 -0
  77. package/node_modules/@zigai/pi-extension-settings/dist/pi.d.ts +106 -0
  78. package/node_modules/@zigai/pi-extension-settings/dist/pi.d.ts.map +1 -0
  79. package/node_modules/@zigai/pi-extension-settings/dist/pi.js +122 -0
  80. package/node_modules/@zigai/pi-extension-settings/dist/pi.js.map +1 -0
  81. package/node_modules/@zigai/pi-extension-settings/dist/pi.ts +2537 -0
  82. package/node_modules/@zigai/pi-extension-settings/dist/pi.ts.map +7 -0
  83. package/node_modules/@zigai/pi-extension-settings/dist/projects.d.ts +10 -0
  84. package/node_modules/@zigai/pi-extension-settings/dist/projects.d.ts.map +1 -0
  85. package/node_modules/@zigai/pi-extension-settings/dist/projects.js +177 -0
  86. package/node_modules/@zigai/pi-extension-settings/dist/projects.js.map +1 -0
  87. package/node_modules/@zigai/pi-extension-settings/dist/runtime.d.ts +40 -0
  88. package/node_modules/@zigai/pi-extension-settings/dist/runtime.d.ts.map +1 -0
  89. package/node_modules/@zigai/pi-extension-settings/dist/runtime.js +158 -0
  90. package/node_modules/@zigai/pi-extension-settings/dist/runtime.js.map +1 -0
  91. package/node_modules/@zigai/pi-extension-settings/dist/runtime.ts +158 -0
  92. package/node_modules/@zigai/pi-extension-settings/dist/runtime.ts.map +7 -0
  93. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.d.ts +19 -0
  94. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.d.ts.map +1 -0
  95. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.js +168 -0
  96. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.js.map +1 -0
  97. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.d.ts +9 -0
  98. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.d.ts.map +1 -0
  99. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.js +242 -0
  100. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.js.map +1 -0
  101. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.d.ts +59 -0
  102. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.d.ts.map +1 -0
  103. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.js +98 -0
  104. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.js.map +1 -0
  105. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.d.ts +80 -0
  106. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.d.ts.map +1 -0
  107. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.js +144 -0
  108. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.js.map +1 -0
  109. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.d.ts +5 -0
  110. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.d.ts.map +1 -0
  111. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.js +30 -0
  112. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.js.map +1 -0
  113. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.d.ts +10 -0
  114. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.d.ts.map +1 -0
  115. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.js +16 -0
  116. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.js.map +1 -0
  117. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.d.ts +54 -0
  118. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.d.ts.map +1 -0
  119. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.js +202 -0
  120. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.js.map +1 -0
  121. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.d.ts +5 -0
  122. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.d.ts.map +1 -0
  123. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.js +9 -0
  124. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.js.map +1 -0
  125. package/node_modules/@zigai/pi-extension-settings/docs/generation.md +71 -0
  126. package/node_modules/@zigai/pi-extension-settings/docs/manual-setup.md +98 -0
  127. package/node_modules/@zigai/pi-extension-settings/docs/runtime.md +100 -0
  128. package/node_modules/@zigai/pi-extension-settings/docs/ui-controls.md +31 -0
  129. package/node_modules/@zigai/pi-extension-settings/package.json +97 -0
  130. package/node_modules/@zigai/pi-mention-anything/README.md +113 -0
  131. package/node_modules/@zigai/pi-mention-anything/config.schema.json +313 -0
  132. package/node_modules/@zigai/pi-mention-anything/docs/command-protocol.md +106 -0
  133. package/node_modules/@zigai/pi-mention-anything/docs/providers.md +128 -0
  134. package/node_modules/@zigai/pi-mention-anything/examples/query-command.mjs +96 -0
  135. package/node_modules/@zigai/pi-mention-anything/examples/recursive-tree.ts +28 -0
  136. package/node_modules/@zigai/pi-mention-anything/examples/static.ts +28 -0
  137. package/node_modules/@zigai/pi-mention-anything/examples/tmux.ts +90 -0
  138. package/node_modules/@zigai/pi-mention-anything/examples/tree-settings.json +25 -0
  139. package/node_modules/@zigai/pi-mention-anything/package.json +58 -0
  140. package/node_modules/@zigai/pi-mention-anything/src/api.ts +75 -0
  141. package/node_modules/@zigai/pi-mention-anything/src/autocomplete.ts +231 -0
  142. package/node_modules/@zigai/pi-mention-anything/src/chain-autocomplete.ts +596 -0
  143. package/node_modules/@zigai/pi-mention-anything/src/chain-syntax.ts +345 -0
  144. package/node_modules/@zigai/pi-mention-anything/src/command-provider.ts +291 -0
  145. package/node_modules/@zigai/pi-mention-anything/src/configured-source.ts +66 -0
  146. package/node_modules/@zigai/pi-mention-anything/src/editor.ts +180 -0
  147. package/node_modules/@zigai/pi-mention-anything/src/expand-mentions.ts +162 -0
  148. package/node_modules/@zigai/pi-mention-anything/src/index.ts +54 -0
  149. package/node_modules/@zigai/pi-mention-anything/src/initial-suggestions.ts +190 -0
  150. package/node_modules/@zigai/pi-mention-anything/src/list-provider.ts +71 -0
  151. package/node_modules/@zigai/pi-mention-anything/src/mention-hub.ts +307 -0
  152. package/node_modules/@zigai/pi-mention-anything/src/mention-resolution.ts +374 -0
  153. package/node_modules/@zigai/pi-mention-anything/src/mention-syntax.ts +105 -0
  154. package/node_modules/@zigai/pi-mention-anything/src/register-mention.ts +89 -0
  155. package/node_modules/@zigai/pi-mention-anything/src/rendering.ts +53 -0
  156. package/node_modules/@zigai/pi-mention-anything/src/selected-items.ts +21 -0
  157. package/node_modules/@zigai/pi-mention-anything/src/selection-history.ts +135 -0
  158. package/node_modules/@zigai/pi-mention-anything/src/settings-input.ts +317 -0
  159. package/node_modules/@zigai/pi-mention-anything/src/settings.prevalidated.ts +57 -0
  160. package/node_modules/@zigai/pi-mention-anything/src/settings.ts +52 -0
  161. package/node_modules/@zigai/pi-mention-anything/src/source-contract.ts +174 -0
  162. package/node_modules/@zigai/pi-mention-anything/src/source-controller.ts +1070 -0
  163. package/node_modules/@zigai/pi-mention-anything/src/source-runtime.ts +99 -0
  164. package/node_modules/@zigai/pi-mention-skill/README.md +60 -0
  165. package/node_modules/@zigai/pi-mention-skill/config.schema.json +81 -0
  166. package/node_modules/@zigai/pi-mention-skill/package.json +56 -0
  167. package/node_modules/@zigai/pi-mention-skill/src/index.ts +60 -0
  168. package/node_modules/@zigai/pi-mention-skill/src/settings-input.ts +74 -0
  169. package/node_modules/@zigai/pi-mention-skill/src/settings.prevalidated.ts +18 -0
  170. package/node_modules/@zigai/pi-mention-skill/src/settings.ts +54 -0
  171. package/node_modules/@zigai/pi-mention-skill/src/skill-commands.ts +18 -0
  172. package/node_modules/@zigai/pi-mention-skill/src/skill-content.ts +60 -0
  173. package/node_modules/@zigai/pi-mention-skill/src/skill-provider.ts +105 -0
  174. package/node_modules/@zigai/pi-mention-skill/src/slash-skill-filter.ts +29 -0
  175. package/node_modules/argparse/LICENSE +21 -0
  176. package/node_modules/argparse/README.md +257 -0
  177. package/node_modules/argparse/index.js +3 -0
  178. package/node_modules/argparse/lib/action/append/constant.js +47 -0
  179. package/node_modules/argparse/lib/action/append.js +53 -0
  180. package/node_modules/argparse/lib/action/count.js +40 -0
  181. package/node_modules/argparse/lib/action/help.js +47 -0
  182. package/node_modules/argparse/lib/action/store/constant.js +43 -0
  183. package/node_modules/argparse/lib/action/store/false.js +27 -0
  184. package/node_modules/argparse/lib/action/store/true.js +26 -0
  185. package/node_modules/argparse/lib/action/store.js +50 -0
  186. package/node_modules/argparse/lib/action/subparsers.js +149 -0
  187. package/node_modules/argparse/lib/action/version.js +47 -0
  188. package/node_modules/argparse/lib/action.js +146 -0
  189. package/node_modules/argparse/lib/action_container.js +482 -0
  190. package/node_modules/argparse/lib/argparse.js +14 -0
  191. package/node_modules/argparse/lib/argument/error.js +50 -0
  192. package/node_modules/argparse/lib/argument/exclusive.js +54 -0
  193. package/node_modules/argparse/lib/argument/group.js +75 -0
  194. package/node_modules/argparse/lib/argument_parser.js +1161 -0
  195. package/node_modules/argparse/lib/const.js +21 -0
  196. package/node_modules/argparse/lib/help/added_formatters.js +87 -0
  197. package/node_modules/argparse/lib/help/formatter.js +795 -0
  198. package/node_modules/argparse/lib/namespace.js +76 -0
  199. package/node_modules/argparse/lib/utils.js +57 -0
  200. package/node_modules/argparse/package.json +34 -0
  201. package/node_modules/esprima/LICENSE.BSD +21 -0
  202. package/node_modules/esprima/README.md +46 -0
  203. package/node_modules/esprima/bin/esparse.js +139 -0
  204. package/node_modules/esprima/bin/esvalidate.js +236 -0
  205. package/node_modules/esprima/dist/esprima.js +6709 -0
  206. package/node_modules/esprima/package.json +112 -0
  207. package/node_modules/extend-shallow/LICENSE +21 -0
  208. package/node_modules/extend-shallow/README.md +61 -0
  209. package/node_modules/extend-shallow/index.js +33 -0
  210. package/node_modules/extend-shallow/package.json +56 -0
  211. package/node_modules/graceful-fs/LICENSE +15 -0
  212. package/node_modules/graceful-fs/README.md +143 -0
  213. package/node_modules/graceful-fs/clone.js +23 -0
  214. package/node_modules/graceful-fs/graceful-fs.js +448 -0
  215. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  216. package/node_modules/graceful-fs/package.json +53 -0
  217. package/node_modules/graceful-fs/polyfills.js +355 -0
  218. package/node_modules/gray-matter/LICENSE +21 -0
  219. package/node_modules/gray-matter/README.md +565 -0
  220. package/node_modules/gray-matter/gray-matter.d.ts +114 -0
  221. package/node_modules/gray-matter/index.js +228 -0
  222. package/node_modules/gray-matter/lib/defaults.js +18 -0
  223. package/node_modules/gray-matter/lib/engine.js +30 -0
  224. package/node_modules/gray-matter/lib/engines.js +54 -0
  225. package/node_modules/gray-matter/lib/excerpt.js +32 -0
  226. package/node_modules/gray-matter/lib/parse.js +13 -0
  227. package/node_modules/gray-matter/lib/stringify.js +56 -0
  228. package/node_modules/gray-matter/lib/to-file.js +43 -0
  229. package/node_modules/gray-matter/lib/utils.js +66 -0
  230. package/node_modules/gray-matter/package.json +127 -0
  231. package/node_modules/is-extendable/LICENSE +21 -0
  232. package/node_modules/is-extendable/README.md +72 -0
  233. package/node_modules/is-extendable/index.js +13 -0
  234. package/node_modules/is-extendable/package.json +51 -0
  235. package/node_modules/js-yaml/LICENSE +21 -0
  236. package/node_modules/js-yaml/README.md +302 -0
  237. package/node_modules/js-yaml/bin/js-yaml.js +132 -0
  238. package/node_modules/js-yaml/dist/js-yaml.js +4024 -0
  239. package/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  240. package/node_modules/js-yaml/index.js +7 -0
  241. package/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  242. package/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  243. package/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  244. package/node_modules/js-yaml/lib/js-yaml/loader.js +1679 -0
  245. package/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  246. package/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  247. package/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  248. package/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  249. package/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  250. package/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  251. package/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  252. package/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  253. package/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  254. package/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  255. package/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  256. package/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  257. package/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  258. package/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  259. package/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  260. package/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  261. package/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  262. package/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  263. package/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  264. package/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  265. package/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  266. package/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  267. package/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  268. package/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  269. package/node_modules/js-yaml/lib/js-yaml.js +39 -0
  270. package/node_modules/js-yaml/package.json +52 -0
  271. package/node_modules/kind-of/LICENSE +21 -0
  272. package/node_modules/kind-of/README.md +367 -0
  273. package/node_modules/kind-of/index.js +129 -0
  274. package/node_modules/kind-of/package.json +88 -0
  275. package/node_modules/pi-toggle-skills/README.md +213 -0
  276. package/node_modules/pi-toggle-skills/package.json +60 -0
  277. package/node_modules/pi-toggle-skills/src/index.ts +112 -0
  278. package/node_modules/pi-toggle-skills/src/skill-discovery.ts +258 -0
  279. package/node_modules/pi-toggle-skills/src/skill-selector.ts +435 -0
  280. package/node_modules/pi-toggle-skills/toggle-skills.ts +316 -0
  281. package/node_modules/pi-toggle-skills/vitest.config.ts +15 -0
  282. package/node_modules/proper-lockfile/LICENSE +21 -0
  283. package/node_modules/proper-lockfile/README.md +183 -0
  284. package/node_modules/proper-lockfile/index.js +40 -0
  285. package/node_modules/proper-lockfile/lib/adapter.js +85 -0
  286. package/node_modules/proper-lockfile/lib/lockfile.js +342 -0
  287. package/node_modules/proper-lockfile/lib/mtime-precision.js +55 -0
  288. package/node_modules/proper-lockfile/node_modules/retry/.npmignore +3 -0
  289. package/node_modules/proper-lockfile/node_modules/retry/.travis.yml +15 -0
  290. package/node_modules/proper-lockfile/node_modules/retry/License +21 -0
  291. package/node_modules/proper-lockfile/node_modules/retry/Makefile +18 -0
  292. package/node_modules/proper-lockfile/node_modules/retry/README.md +227 -0
  293. package/node_modules/proper-lockfile/node_modules/retry/equation.gif +0 -0
  294. package/node_modules/proper-lockfile/node_modules/retry/example/dns.js +31 -0
  295. package/node_modules/proper-lockfile/node_modules/retry/example/stop.js +40 -0
  296. package/node_modules/proper-lockfile/node_modules/retry/index.js +1 -0
  297. package/node_modules/proper-lockfile/node_modules/retry/lib/retry.js +100 -0
  298. package/node_modules/proper-lockfile/node_modules/retry/lib/retry_operation.js +158 -0
  299. package/node_modules/proper-lockfile/node_modules/retry/package.json +32 -0
  300. package/node_modules/proper-lockfile/node_modules/retry/test/common.js +10 -0
  301. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-forever.js +24 -0
  302. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-retry-operation.js +258 -0
  303. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-retry-wrap.js +101 -0
  304. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-timeouts.js +69 -0
  305. package/node_modules/proper-lockfile/package.json +71 -0
  306. package/node_modules/section-matter/LICENSE +21 -0
  307. package/node_modules/section-matter/README.md +236 -0
  308. package/node_modules/section-matter/index.js +136 -0
  309. package/node_modules/section-matter/package.json +55 -0
  310. package/node_modules/signal-exit/LICENSE.txt +16 -0
  311. package/node_modules/signal-exit/README.md +39 -0
  312. package/node_modules/signal-exit/index.js +202 -0
  313. package/node_modules/signal-exit/package.json +38 -0
  314. package/node_modules/signal-exit/signals.js +53 -0
  315. package/node_modules/sprintf-js/.npmignore +1 -0
  316. package/node_modules/sprintf-js/LICENSE +24 -0
  317. package/node_modules/sprintf-js/README.md +88 -0
  318. package/node_modules/sprintf-js/bower.json +14 -0
  319. package/node_modules/sprintf-js/demo/angular.html +20 -0
  320. package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
  321. package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
  322. package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
  323. package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
  324. package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
  325. package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
  326. package/node_modules/sprintf-js/gruntfile.js +36 -0
  327. package/node_modules/sprintf-js/package.json +22 -0
  328. package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
  329. package/node_modules/sprintf-js/src/sprintf.js +208 -0
  330. package/node_modules/sprintf-js/test/test.js +82 -0
  331. package/node_modules/strip-bom-string/LICENSE +21 -0
  332. package/node_modules/strip-bom-string/README.md +66 -0
  333. package/node_modules/strip-bom-string/index.js +15 -0
  334. package/node_modules/strip-bom-string/package.json +60 -0
  335. package/package.json +13 -4
  336. package/dist/confirmation.d.ts +0 -33
  337. package/dist/confirmation.js +0 -64
  338. package/dist/yolo.d.ts +0 -6
  339. package/dist/yolo.js +0 -33
@@ -0,0 +1,105 @@
1
+ const TRAILING_PUNCTUATION = new Set([".", ",", ";", ":", "!", "?", ")", "}", "]"]);
2
+
3
+ export type ParsedMention = {
4
+ readonly name: string;
5
+ readonly suffix: string;
6
+ };
7
+
8
+ export type MentionPrefix = {
9
+ readonly prefix: string;
10
+ readonly query: string;
11
+ };
12
+
13
+ export function escapeRegExp(value: string): string {
14
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
15
+ }
16
+
17
+ export function autocompleteTriggerCharacter(trigger: string): string {
18
+ return Array.from(trigger)[0] ?? trigger;
19
+ }
20
+
21
+ export function mentionPattern(trigger: string): RegExp {
22
+ return new RegExp(`(^|\\s)${escapeRegExp(trigger)}(?:"((?:\\\\.|[^"\\\\])*)"|([^\\s]+))`, "g");
23
+ }
24
+
25
+ function unescapeQuotedName(value: string): string {
26
+ return value.replace(/\\(["\\])/g, "$1");
27
+ }
28
+
29
+ function escapeQuotedName(value: string): string {
30
+ return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
31
+ }
32
+
33
+ function isBareName(name: string, trigger: string): boolean {
34
+ if (name.length === 0 || name.includes(trigger)) return false;
35
+ return /^[^\s"'/]+$/.test(name);
36
+ }
37
+
38
+ export function formatMention(name: string, trigger: string): string {
39
+ if (isBareName(name, trigger)) return `${trigger}${name}`;
40
+ return `${trigger}"${escapeQuotedName(name)}"`;
41
+ }
42
+
43
+ function parseUnquotedName(
44
+ rawName: string,
45
+ knownNames: ReadonlySet<string>,
46
+ ): ParsedMention | undefined {
47
+ if (knownNames.has(rawName)) return { name: rawName, suffix: "" };
48
+
49
+ let end = rawName.length;
50
+ while (end > 0) {
51
+ const last = rawName.at(end - 1);
52
+ if (last === undefined || !TRAILING_PUNCTUATION.has(last)) break;
53
+
54
+ end -= 1;
55
+
56
+ const candidate = rawName.slice(0, end);
57
+ if (knownNames.has(candidate)) {
58
+ return { name: candidate, suffix: rawName.slice(end) };
59
+ }
60
+ }
61
+
62
+ return undefined;
63
+ }
64
+
65
+ export function parseMentionName(
66
+ quotedName: string | undefined,
67
+ unquotedName: string | undefined,
68
+ knownNames: ReadonlySet<string>,
69
+ ): ParsedMention | undefined {
70
+ if (quotedName !== undefined) {
71
+ const name = unescapeQuotedName(quotedName);
72
+ if (!knownNames.has(name)) return undefined;
73
+
74
+ return { name, suffix: "" };
75
+ }
76
+
77
+ if (unquotedName === undefined) return undefined;
78
+ return parseUnquotedName(unquotedName, knownNames);
79
+ }
80
+
81
+ export function extractMentionPrefix(
82
+ textBeforeCursor: string,
83
+ trigger: string,
84
+ ): MentionPrefix | undefined {
85
+ const escapedTrigger = escapeRegExp(trigger);
86
+ const quotedMatch = new RegExp(`(?:^|\\s)(${escapedTrigger}"([^"]*)$)`).exec(textBeforeCursor);
87
+ const quotedPrefix = quotedMatch?.at(1);
88
+ const quotedQuery = quotedMatch?.at(2);
89
+ if (quotedPrefix !== undefined && quotedQuery !== undefined) {
90
+ return { prefix: quotedPrefix, query: quotedQuery };
91
+ }
92
+
93
+ const match = new RegExp(`(?:^|\\s)(${escapedTrigger}([^\\s"]*)$)`).exec(textBeforeCursor);
94
+ const prefix = match?.at(1);
95
+ const query = match?.at(2);
96
+ if (prefix !== undefined && query !== undefined) {
97
+ return { prefix, query };
98
+ }
99
+
100
+ return undefined;
101
+ }
102
+
103
+ export function isMentionContext(text: string, trigger: string): boolean {
104
+ return extractMentionPrefix(text, trigger) !== undefined;
105
+ }
@@ -0,0 +1,89 @@
1
+ import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
2
+ import type { InitialSuggestions } from "./initial-suggestions.ts";
3
+ import type { SourceControllerOptions } from "./source-controller.ts";
4
+ import type { Candidate, Provider } from "./source-contract.ts";
5
+ import { sharedHub, type MentionHub } from "./mention-hub.ts";
6
+
7
+ export type MentionProviderContext = Pick<ExtensionContext, "cwd" | "isProjectTrusted">;
8
+ export type MentionContext = MentionProviderContext;
9
+ export type MentionExtensionApi = Pick<ExtensionAPI, "on">;
10
+
11
+ type ControllerConfiguration<T> = T extends SourceControllerOptions
12
+ ? Omit<T, "sourceId" | "cwd" | "trusted" | "onError">
13
+ : never;
14
+
15
+ export type MentionConfiguration = ControllerConfiguration<SourceControllerOptions> & {
16
+ readonly trigger: string;
17
+ readonly separator?: string;
18
+ readonly completionSuffix?: string;
19
+ readonly initialSuggestions?: InitialSuggestions;
20
+ readonly expansionPolicy?: "selected-only" | "selected-or-resolved";
21
+ readonly replacementTemplate?: string;
22
+ };
23
+
24
+ export type MentionRegistration = {
25
+ readonly id: string;
26
+ readonly configuration: (ctx: MentionProviderContext) => MentionConfiguration;
27
+ readonly provider: (ctx: MentionProviderContext) => Provider;
28
+
29
+ readonly replacement?: (
30
+ path: readonly Candidate[],
31
+ ctx: MentionProviderContext,
32
+ options: { readonly signal?: AbortSignal },
33
+ ) => string | Promise<string>;
34
+ };
35
+
36
+ /** Composition seam used by settings to construct the same registrations as TypeScript providers. */
37
+ export function registerMentionSources(
38
+ pi: Pick<ExtensionAPI, "on">,
39
+ load: (ctx: MentionProviderContext) => readonly MentionRegistration[],
40
+ ): void {
41
+ let hub: MentionHub | undefined;
42
+ let owned: symbol[] = [];
43
+
44
+ pi.on("session_start", async (_event, ctx) => {
45
+ if (hub !== undefined) for (const handle of owned) await hub.remove(handle);
46
+
47
+ owned = [];
48
+
49
+ const registrations = load(ctx);
50
+
51
+ hub = undefined;
52
+
53
+ if (registrations.length === 0) return;
54
+
55
+ hub = sharedHub(ctx);
56
+ for (const registration of registrations) owned.push(hub.add(registration));
57
+ });
58
+
59
+ pi.on("input", (event) => {
60
+ hub?.input(event.text);
61
+ return { action: "continue" };
62
+ });
63
+
64
+ pi.on("context", async (event, ctx) => {
65
+ if (hub === undefined) return undefined;
66
+
67
+ const messages = await hub.context(event.messages, ctx.signal);
68
+ if (messages !== event.messages) return { messages };
69
+ return undefined;
70
+ });
71
+
72
+ pi.on("session_shutdown", async () => {
73
+ const previous = hub;
74
+ hub = undefined;
75
+
76
+ const handles = owned;
77
+ owned = [];
78
+
79
+ if (previous !== undefined) for (const handle of handles) await previous.remove(handle);
80
+ });
81
+ }
82
+
83
+ /** Register a domain provider; the shared hub owns editor, cache and expansion lifetimes. */
84
+ export function registerMention(
85
+ pi: Pick<ExtensionAPI, "on">,
86
+ registration: MentionRegistration,
87
+ ): void {
88
+ registerMentionSources(pi, () => [registration]);
89
+ }
@@ -0,0 +1,53 @@
1
+ import { mentionPattern, parseMentionName } from "./mention-syntax.ts";
2
+
3
+ export type MentionColorContext = {
4
+ readonly ui: {
5
+ readonly theme: {
6
+ fg(role: string, text: string): string;
7
+ };
8
+ };
9
+ };
10
+
11
+ export function colorMentions(
12
+ line: string,
13
+ ctx: MentionColorContext,
14
+ trigger: string,
15
+ knownNames: ReadonlySet<string>,
16
+ ): string {
17
+ if (!line.includes(trigger) || knownNames.size === 0) return line;
18
+
19
+ return line.replace(
20
+ mentionPattern(trigger),
21
+ (
22
+ match: string,
23
+ leading: string,
24
+ quotedName: string | undefined,
25
+ unquotedName: string | undefined,
26
+ ) => {
27
+ const parsed = parseMentionName(quotedName, unquotedName, knownNames);
28
+ if (parsed === undefined) return match;
29
+
30
+ const mentionEnd = match.length - parsed.suffix.length;
31
+ const mentionText = match.slice(leading.length, mentionEnd);
32
+ return `${leading}${ctx.ui.theme.fg("accent", mentionText)}${parsed.suffix}`;
33
+ },
34
+ );
35
+ }
36
+
37
+ const ANSI_ESCAPE_PATTERN = new RegExp(
38
+ `${String.fromCharCode(27)}(?:[@-Z\\\\-_]|\\[[0-?]*[ -/]*[@-~])`,
39
+ "g",
40
+ );
41
+
42
+ function stripAnsi(value: string): string {
43
+ return value.replace(ANSI_ESCAPE_PATTERN, "");
44
+ }
45
+
46
+ export function autocompleteStartIndex(renderedLines: string[]): number {
47
+ for (let index = renderedLines.length - 1; index >= 0; index -= 1) {
48
+ const line = renderedLines.at(index);
49
+ if (line !== undefined && stripAnsi(line).startsWith("─")) return index + 1;
50
+ }
51
+
52
+ return renderedLines.length;
53
+ }
@@ -0,0 +1,21 @@
1
+ export function includeSelectedItems<T>(
2
+ currentItems: readonly T[],
3
+ selectedItems: ReadonlyMap<string, T>,
4
+ nameOf: (item: T) => string,
5
+ ): T[] {
6
+ const items = [...currentItems];
7
+ const currentNames = new Set(items.map(nameOf));
8
+ for (const selectedItem of selectedItems.values()) {
9
+ if (!currentNames.has(nameOf(selectedItem))) items.push(selectedItem);
10
+ }
11
+
12
+ return items;
13
+ }
14
+
15
+ export function selectedOrCurrentItem<T>(
16
+ currentItem: T,
17
+ selectedItems: ReadonlyMap<string, T>,
18
+ nameOf: (item: T) => string,
19
+ ): T {
20
+ return selectedItems.get(nameOf(currentItem)) ?? currentItem;
21
+ }
@@ -0,0 +1,135 @@
1
+ import { getAgentDir } from "@earendil-works/pi-coding-agent";
2
+ import fs from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { Type, type Static } from "typebox";
5
+ import { Value } from "typebox/value";
6
+
7
+ import type {
8
+ Selection,
9
+ SelectionHistory,
10
+ SelectionHistoryOptions,
11
+ } from "./initial-suggestions.ts";
12
+
13
+ const HISTORY_VERSION = 1;
14
+ const MAX_HISTORY_ENTRIES = 1_000;
15
+
16
+ const selectionSchema = Type.Object(
17
+ {
18
+ count: Type.Integer({ minimum: 1 }),
19
+ lastSelectedAt: Type.Integer({ minimum: 0 }),
20
+ },
21
+ { additionalProperties: false },
22
+ );
23
+
24
+ const selectionHistorySchema = Type.Object(
25
+ {
26
+ version: Type.Literal(HISTORY_VERSION),
27
+ selections: Type.Record(Type.String({ minLength: 1 }), selectionSchema),
28
+ },
29
+ { additionalProperties: false },
30
+ );
31
+
32
+ type SelectionHistoryFile = Static<typeof selectionHistorySchema>;
33
+
34
+ function isNodeErrorWithCode(cause: unknown): cause is Error & { readonly code: string } {
35
+ return cause instanceof Error && "code" in cause && typeof cause.code === "string";
36
+ }
37
+
38
+ function parseHistory(text: string): Map<string, Selection> {
39
+ const parsed: unknown = JSON.parse(text);
40
+ if (!Value.Check(selectionHistorySchema, parsed)) {
41
+ throw new Error("selection history has an invalid structure");
42
+ }
43
+
44
+ const history = Value.Parse(selectionHistorySchema, parsed);
45
+ return new Map(Object.entries(history.selections));
46
+ }
47
+
48
+ function historyFile(selections: ReadonlyMap<string, Selection>): SelectionHistoryFile {
49
+ const recentSelections = [...selections.entries()]
50
+ .sort((left, right) => right[1].lastSelectedAt - left[1].lastSelectedAt)
51
+ .slice(0, MAX_HISTORY_ENTRIES);
52
+
53
+ return {
54
+ version: HISTORY_VERSION,
55
+ selections: Object.fromEntries(recentSelections),
56
+ };
57
+ }
58
+
59
+ async function atomicWrite(filePath: string, content: string): Promise<void> {
60
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
61
+
62
+ const temporaryPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
63
+
64
+ try {
65
+ await fs.writeFile(temporaryPath, content, { encoding: "utf8", flag: "wx" });
66
+ await fs.rename(temporaryPath, filePath);
67
+ } catch (cause) {
68
+ await fs.rm(temporaryPath, { force: true }).catch(() => undefined);
69
+
70
+ throw cause;
71
+ }
72
+ }
73
+
74
+ export function createSelectionHistory(options: SelectionHistoryOptions): SelectionHistory {
75
+ const filePath = options.filePath ?? path.join(getAgentDir(), "state", options.stateFileName);
76
+ const now = options.now ?? Date.now;
77
+ let selections = new Map<string, Selection>();
78
+ let loadTask: Promise<void> | undefined;
79
+ let pendingWrites = Promise.resolve();
80
+ let errorReported = false;
81
+
82
+ const reportError = (): void => {
83
+ if (errorReported) return;
84
+
85
+ errorReported = true;
86
+ options.onError?.(options.errorMessage);
87
+ };
88
+
89
+ const ensureLoaded = async (): Promise<void> => {
90
+ if (loadTask !== undefined) return loadTask;
91
+
92
+ loadTask = fs
93
+ .readFile(filePath, "utf8")
94
+ .then((text) => {
95
+ selections = parseHistory(text);
96
+ })
97
+ .catch((cause: unknown) => {
98
+ if (!isNodeErrorWithCode(cause) || cause.code !== "ENOENT") reportError();
99
+ selections = new Map();
100
+ });
101
+
102
+ return loadTask;
103
+ };
104
+
105
+ const persist = async (): Promise<void> => {
106
+ const content = `${JSON.stringify(historyFile(selections), null, 2)}\n`;
107
+ await atomicWrite(filePath, content);
108
+ };
109
+
110
+ return {
111
+ async load() {
112
+ await ensureLoaded();
113
+ return new Map(selections);
114
+ },
115
+ recordSelection(name) {
116
+ pendingWrites = pendingWrites
117
+ .then(async () => {
118
+ await ensureLoaded();
119
+
120
+ const previous = selections.get(name);
121
+ selections.set(name, {
122
+ count: (previous?.count ?? 0) + 1,
123
+ lastSelectedAt: now(),
124
+ });
125
+ await persist();
126
+ })
127
+ .catch(() => {
128
+ reportError();
129
+ });
130
+ },
131
+ async flush() {
132
+ await pendingWrites;
133
+ },
134
+ };
135
+ }