@ibgib/web-gib 0.0.1

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 (372) hide show
  1. package/.ibgibignore +30 -0
  2. package/.vscode/ibgib-snippets.code-snippets +309 -0
  3. package/.vscode/launch.json +25 -0
  4. package/.vscode/settings.json +68 -0
  5. package/.vscode/tasks.json +38 -0
  6. package/CHANGELOG.md +427 -0
  7. package/README.md +66 -0
  8. package/dist/agent-texts/common-agent-texts.d.mts +14 -0
  9. package/dist/agent-texts/common-agent-texts.d.mts.map +1 -0
  10. package/dist/agent-texts/common-agent-texts.mjs +51 -0
  11. package/dist/agent-texts/common-agent-texts.mjs.map +1 -0
  12. package/dist/agent-texts/primary-agent-texts.d.mts +16 -0
  13. package/dist/agent-texts/primary-agent-texts.d.mts.map +1 -0
  14. package/dist/agent-texts/primary-agent-texts.mjs +27 -0
  15. package/dist/agent-texts/primary-agent-texts.mjs.map +1 -0
  16. package/dist/agent-texts/project-agent-texts.d.mts +8 -0
  17. package/dist/agent-texts/project-agent-texts.d.mts.map +1 -0
  18. package/dist/agent-texts/project-agent-texts.mjs +29 -0
  19. package/dist/agent-texts/project-agent-texts.mjs.map +1 -0
  20. package/dist/agent-texts/project-child-text-agent-texts.d.mts +5 -0
  21. package/dist/agent-texts/project-child-text-agent-texts.d.mts.map +1 -0
  22. package/dist/agent-texts/project-child-text-agent-texts.mjs +26 -0
  23. package/dist/agent-texts/project-child-text-agent-texts.mjs.map +1 -0
  24. package/dist/agent-texts/projects-agent-texts.d.mts +4 -0
  25. package/dist/agent-texts/projects-agent-texts.d.mts.map +1 -0
  26. package/dist/agent-texts/projects-agent-texts.mjs +15 -0
  27. package/dist/agent-texts/projects-agent-texts.mjs.map +1 -0
  28. package/dist/agent-texts/raw-agent-texts.d.mts +4 -0
  29. package/dist/agent-texts/raw-agent-texts.d.mts.map +1 -0
  30. package/dist/agent-texts/raw-agent-texts.mjs +17 -0
  31. package/dist/agent-texts/raw-agent-texts.mjs.map +1 -0
  32. package/dist/agent-texts/text-editor-agent-texts.d.mts +6 -0
  33. package/dist/agent-texts/text-editor-agent-texts.d.mts.map +1 -0
  34. package/dist/agent-texts/text-editor-agent-texts.mjs +19 -0
  35. package/dist/agent-texts/text-editor-agent-texts.mjs.map +1 -0
  36. package/dist/api/api-constants.d.mts +9 -0
  37. package/dist/api/api-constants.d.mts.map +1 -0
  38. package/dist/api/api-constants.mjs +9 -0
  39. package/dist/api/api-constants.mjs.map +1 -0
  40. package/dist/api/api-index.d.mts +10 -0
  41. package/dist/api/api-index.d.mts.map +1 -0
  42. package/dist/api/api-index.mjs +121 -0
  43. package/dist/api/api-index.mjs.map +1 -0
  44. package/dist/api/api-types.d.mts +36 -0
  45. package/dist/api/api-types.d.mts.map +1 -0
  46. package/dist/api/api-types.mjs +2 -0
  47. package/dist/api/api-types.mjs.map +1 -0
  48. package/dist/api/commands/chat/chat-index.d.mts +3 -0
  49. package/dist/api/commands/chat/chat-index.d.mts.map +1 -0
  50. package/dist/api/commands/chat/chat-index.mjs +9 -0
  51. package/dist/api/commands/chat/chat-index.mjs.map +1 -0
  52. package/dist/api/commands/chat/get-context-info.d.mts +71 -0
  53. package/dist/api/commands/chat/get-context-info.d.mts.map +1 -0
  54. package/dist/api/commands/chat/get-context-info.mjs +130 -0
  55. package/dist/api/commands/chat/get-context-info.mjs.map +1 -0
  56. package/dist/api/commands/chat/hello-world.d.mts +63 -0
  57. package/dist/api/commands/chat/hello-world.d.mts.map +1 -0
  58. package/dist/api/commands/chat/hello-world.mjs +132 -0
  59. package/dist/api/commands/chat/hello-world.mjs.map +1 -0
  60. package/dist/api/commands/chat/tell-user.d.mts +57 -0
  61. package/dist/api/commands/chat/tell-user.d.mts.map +1 -0
  62. package/dist/api/commands/chat/tell-user.mjs +199 -0
  63. package/dist/api/commands/chat/tell-user.mjs.map +1 -0
  64. package/dist/api/commands/command-constants.d.mts +22 -0
  65. package/dist/api/commands/command-constants.d.mts.map +1 -0
  66. package/dist/api/commands/command-constants.mjs +17 -0
  67. package/dist/api/commands/command-constants.mjs.map +1 -0
  68. package/dist/api/commands/command-helpers.d.mts +47 -0
  69. package/dist/api/commands/command-helpers.d.mts.map +1 -0
  70. package/dist/api/commands/command-helpers.mjs +76 -0
  71. package/dist/api/commands/command-helpers.mjs.map +1 -0
  72. package/dist/api/commands/command-service-v1.d.mts +28 -0
  73. package/dist/api/commands/command-service-v1.d.mts.map +1 -0
  74. package/dist/api/commands/command-service-v1.mjs +122 -0
  75. package/dist/api/commands/command-service-v1.mjs.map +1 -0
  76. package/dist/api/commands/command-service.respec.d.mts +7 -0
  77. package/dist/api/commands/command-service.respec.d.mts.map +1 -0
  78. package/dist/api/commands/command-service.respec.mjs +66 -0
  79. package/dist/api/commands/command-service.respec.mjs.map +1 -0
  80. package/dist/api/commands/command-types.d.mts +48 -0
  81. package/dist/api/commands/command-types.d.mts.map +1 -0
  82. package/dist/api/commands/command-types.mjs +12 -0
  83. package/dist/api/commands/command-types.mjs.map +1 -0
  84. package/dist/api/commands/ibgib/get-ibgibs.d.mts +94 -0
  85. package/dist/api/commands/ibgib/get-ibgibs.d.mts.map +1 -0
  86. package/dist/api/commands/ibgib/get-ibgibs.mjs +219 -0
  87. package/dist/api/commands/ibgib/get-ibgibs.mjs.map +1 -0
  88. package/dist/api/commands/ibgib/ibgib-index.d.mts +3 -0
  89. package/dist/api/commands/ibgib/ibgib-index.d.mts.map +1 -0
  90. package/dist/api/commands/ibgib/ibgib-index.mjs +7 -0
  91. package/dist/api/commands/ibgib/ibgib-index.mjs.map +1 -0
  92. package/dist/api/commands/ibgib/mut8-ibgib.d.mts +135 -0
  93. package/dist/api/commands/ibgib/mut8-ibgib.d.mts.map +1 -0
  94. package/dist/api/commands/ibgib/mut8-ibgib.mjs +318 -0
  95. package/dist/api/commands/ibgib/mut8-ibgib.mjs.map +1 -0
  96. package/dist/api/commands/templates/api-function-info.template.d.mts +73 -0
  97. package/dist/api/commands/templates/api-function-info.template.d.mts.map +1 -0
  98. package/dist/api/commands/templates/api-function-info.template.mjs +161 -0
  99. package/dist/api/commands/templates/api-function-info.template.mjs.map +1 -0
  100. package/dist/api/commands/text/text-edit.d.mts +54 -0
  101. package/dist/api/commands/text/text-edit.d.mts.map +1 -0
  102. package/dist/api/commands/text/text-edit.mjs +170 -0
  103. package/dist/api/commands/text/text-edit.mjs.map +1 -0
  104. package/dist/api/commands/text/text-index.d.mts +3 -0
  105. package/dist/api/commands/text/text-index.d.mts.map +1 -0
  106. package/dist/api/commands/text/text-index.mjs +5 -0
  107. package/dist/api/commands/text/text-index.mjs.map +1 -0
  108. package/dist/api/commands/ui/ui-index.d.mts +3 -0
  109. package/dist/api/commands/ui/ui-index.d.mts.map +1 -0
  110. package/dist/api/commands/ui/ui-index.mjs +5 -0
  111. package/dist/api/commands/ui/ui-index.mjs.map +1 -0
  112. package/dist/api/commands/ui/update-css-variables.d.mts +48 -0
  113. package/dist/api/commands/ui/update-css-variables.d.mts.map +1 -0
  114. package/dist/api/commands/ui/update-css-variables.mjs +145 -0
  115. package/dist/api/commands/ui/update-css-variables.mjs.map +1 -0
  116. package/dist/api/function-infos.web.d.mts +15 -0
  117. package/dist/api/function-infos.web.d.mts.map +1 -0
  118. package/dist/api/function-infos.web.mjs +63 -0
  119. package/dist/api/function-infos.web.mjs.map +1 -0
  120. package/dist/assumptions.respec.d.mts +2 -0
  121. package/dist/assumptions.respec.d.mts.map +1 -0
  122. package/dist/assumptions.respec.mjs +41 -0
  123. package/dist/assumptions.respec.mjs.map +1 -0
  124. package/dist/common/project/project-constants.d.mts +38 -0
  125. package/dist/common/project/project-constants.d.mts.map +1 -0
  126. package/dist/common/project/project-constants.mjs +71 -0
  127. package/dist/common/project/project-constants.mjs.map +1 -0
  128. package/dist/common/project/project-helper.d.mts +127 -0
  129. package/dist/common/project/project-helper.d.mts.map +1 -0
  130. package/dist/common/project/project-helper.mjs +683 -0
  131. package/dist/common/project/project-helper.mjs.map +1 -0
  132. package/dist/common/project/project-types.d.mts +91 -0
  133. package/dist/common/project/project-types.d.mts.map +1 -0
  134. package/dist/common/project/project-types.mjs +31 -0
  135. package/dist/common/project/project-types.mjs.map +1 -0
  136. package/dist/common/prompt-functions.web.d.mts +90 -0
  137. package/dist/common/prompt-functions.web.d.mts.map +1 -0
  138. package/dist/common/prompt-functions.web.mjs +426 -0
  139. package/dist/common/prompt-functions.web.mjs.map +1 -0
  140. package/dist/common/settings/settings-constants.d.mts +33 -0
  141. package/dist/common/settings/settings-constants.d.mts.map +1 -0
  142. package/dist/common/settings/settings-constants.mjs +54 -0
  143. package/dist/common/settings/settings-constants.mjs.map +1 -0
  144. package/dist/common/settings/settings-helpers.d.mts +59 -0
  145. package/dist/common/settings/settings-helpers.d.mts.map +1 -0
  146. package/dist/common/settings/settings-helpers.mjs +253 -0
  147. package/dist/common/settings/settings-helpers.mjs.map +1 -0
  148. package/dist/common/settings/settings-types.d.mts +118 -0
  149. package/dist/common/settings/settings-types.d.mts.map +1 -0
  150. package/dist/common/settings/settings-types.mjs +13 -0
  151. package/dist/common/settings/settings-types.mjs.map +1 -0
  152. package/dist/constants.d.mts +34 -0
  153. package/dist/constants.d.mts.map +1 -0
  154. package/dist/constants.mjs +35 -0
  155. package/dist/constants.mjs.map +1 -0
  156. package/dist/foo.d.mts +2 -0
  157. package/dist/foo.d.mts.map +1 -0
  158. package/dist/foo.mjs +19 -0
  159. package/dist/foo.mjs.map +1 -0
  160. package/dist/helpers.d.mts +137 -0
  161. package/dist/helpers.d.mts.map +1 -0
  162. package/dist/helpers.mjs +514 -0
  163. package/dist/helpers.mjs.map +1 -0
  164. package/dist/helpers.web.d.mts +324 -0
  165. package/dist/helpers.web.d.mts.map +1 -0
  166. package/dist/helpers.web.mjs +1133 -0
  167. package/dist/helpers.web.mjs.map +1 -0
  168. package/dist/helpers.web.respec.d.mts +2 -0
  169. package/dist/helpers.web.respec.d.mts.map +1 -0
  170. package/dist/helpers.web.respec.mjs +12 -0
  171. package/dist/helpers.web.respec.mjs.map +1 -0
  172. package/dist/index.d.mts +2 -0
  173. package/dist/index.d.mts.map +1 -0
  174. package/dist/index.mjs +3 -0
  175. package/dist/index.mjs.map +1 -0
  176. package/dist/respec-gib.node.d.mts +2 -0
  177. package/dist/respec-gib.node.d.mts.map +1 -0
  178. package/dist/respec-gib.node.mjs +211 -0
  179. package/dist/respec-gib.node.mjs.map +1 -0
  180. package/dist/spec-helper.node.respec.d.mts +13 -0
  181. package/dist/spec-helper.node.respec.d.mts.map +1 -0
  182. package/dist/spec-helper.node.respec.mjs +50 -0
  183. package/dist/spec-helper.node.respec.mjs.map +1 -0
  184. package/dist/storage/storage-helpers.web.d.mts +108 -0
  185. package/dist/storage/storage-helpers.web.d.mts.map +1 -0
  186. package/dist/storage/storage-helpers.web.mjs +757 -0
  187. package/dist/storage/storage-helpers.web.mjs.map +1 -0
  188. package/dist/storage/storage-types.web.d.mts +30 -0
  189. package/dist/storage/storage-types.web.d.mts.map +1 -0
  190. package/dist/storage/storage-types.web.mjs +2 -0
  191. package/dist/storage/storage-types.web.mjs.map +1 -0
  192. package/dist/types.web.d.mts +42 -0
  193. package/dist/types.web.d.mts.map +1 -0
  194. package/dist/types.web.mjs +2 -0
  195. package/dist/types.web.mjs.map +1 -0
  196. package/dist/ui/component/component-types.d.mts +225 -0
  197. package/dist/ui/component/component-types.d.mts.map +1 -0
  198. package/dist/ui/component/component-types.mjs +2 -0
  199. package/dist/ui/component/component-types.mjs.map +1 -0
  200. package/dist/ui/component/ibgib-component-service.d.mts +70 -0
  201. package/dist/ui/component/ibgib-component-service.d.mts.map +1 -0
  202. package/dist/ui/component/ibgib-component-service.mjs +201 -0
  203. package/dist/ui/component/ibgib-component-service.mjs.map +1 -0
  204. package/dist/ui/component/ibgib-dynamic-component-bases.d.mts +338 -0
  205. package/dist/ui/component/ibgib-dynamic-component-bases.d.mts.map +1 -0
  206. package/dist/ui/component/ibgib-dynamic-component-bases.mjs +1304 -0
  207. package/dist/ui/component/ibgib-dynamic-component-bases.mjs.map +1 -0
  208. package/dist/ui/ui-constants.d.mts +12 -0
  209. package/dist/ui/ui-constants.d.mts.map +1 -0
  210. package/dist/ui/ui-constants.mjs +93 -0
  211. package/dist/ui/ui-constants.mjs.map +1 -0
  212. package/dist/ui/ui-helpers.d.mts +42 -0
  213. package/dist/ui/ui-helpers.d.mts.map +1 -0
  214. package/dist/ui/ui-helpers.mjs +198 -0
  215. package/dist/ui/ui-helpers.mjs.map +1 -0
  216. package/dist/ui/ui-types.d.mts +13 -0
  217. package/dist/ui/ui-types.d.mts.map +1 -0
  218. package/dist/ui/ui-types.mjs +2 -0
  219. package/dist/ui/ui-types.mjs.map +1 -0
  220. package/dist/witness/agent/agent-constants.d.mts +97 -0
  221. package/dist/witness/agent/agent-constants.d.mts.map +1 -0
  222. package/dist/witness/agent/agent-constants.mjs +98 -0
  223. package/dist/witness/agent/agent-constants.mjs.map +1 -0
  224. package/dist/witness/agent/agent-helpers.d.mts +106 -0
  225. package/dist/witness/agent/agent-helpers.d.mts.map +1 -0
  226. package/dist/witness/agent/agent-helpers.mjs +601 -0
  227. package/dist/witness/agent/agent-helpers.mjs.map +1 -0
  228. package/dist/witness/agent/agent-one-file.app.d.mts +2 -0
  229. package/dist/witness/agent/agent-one-file.app.d.mts.map +1 -0
  230. package/dist/witness/agent/agent-one-file.app.mjs +8 -0
  231. package/dist/witness/agent/agent-one-file.app.mjs.map +1 -0
  232. package/dist/witness/agent/agent-one-file.d.mts +478 -0
  233. package/dist/witness/agent/agent-one-file.d.mts.map +1 -0
  234. package/dist/witness/agent/agent-one-file.mjs +1462 -0
  235. package/dist/witness/agent/agent-one-file.mjs.map +1 -0
  236. package/dist/witness/agent/agent-types.d.mts +83 -0
  237. package/dist/witness/agent/agent-types.d.mts.map +1 -0
  238. package/dist/witness/agent/agent-types.mjs +2 -0
  239. package/dist/witness/agent/agent-types.mjs.map +1 -0
  240. package/dist/witness/agent/agents-service-v1.d.mts +99 -0
  241. package/dist/witness/agent/agents-service-v1.d.mts.map +1 -0
  242. package/dist/witness/agent/agents-service-v1.mjs +453 -0
  243. package/dist/witness/agent/agents-service-v1.mjs.map +1 -0
  244. package/dist/witness/agent/function-info/function-info-one-file.d.mts +192 -0
  245. package/dist/witness/agent/function-info/function-info-one-file.d.mts.map +1 -0
  246. package/dist/witness/agent/function-info/function-info-one-file.mjs +192 -0
  247. package/dist/witness/agent/function-info/function-info-one-file.mjs.map +1 -0
  248. package/dist/witness/agent/gemini/agent-witness-gemini-v1.d.mts +51 -0
  249. package/dist/witness/agent/gemini/agent-witness-gemini-v1.d.mts.map +1 -0
  250. package/dist/witness/agent/gemini/agent-witness-gemini-v1.mjs +928 -0
  251. package/dist/witness/agent/gemini/agent-witness-gemini-v1.mjs.map +1 -0
  252. package/dist/witness/agent/gemini/gemini-agent-factory.d.mts +27 -0
  253. package/dist/witness/agent/gemini/gemini-agent-factory.d.mts.map +1 -0
  254. package/dist/witness/agent/gemini/gemini-agent-factory.mjs +144 -0
  255. package/dist/witness/agent/gemini/gemini-agent-factory.mjs.map +1 -0
  256. package/dist/witness/agent/gemini/gemini-constants.d.mts +36 -0
  257. package/dist/witness/agent/gemini/gemini-constants.d.mts.map +1 -0
  258. package/dist/witness/agent/gemini/gemini-constants.mjs +47 -0
  259. package/dist/witness/agent/gemini/gemini-constants.mjs.map +1 -0
  260. package/dist/witness/agent/gemini/gemini-helpers.d.mts +58 -0
  261. package/dist/witness/agent/gemini/gemini-helpers.d.mts.map +1 -0
  262. package/dist/witness/agent/gemini/gemini-helpers.mjs +210 -0
  263. package/dist/witness/agent/gemini/gemini-helpers.mjs.map +1 -0
  264. package/dist/witness/agent/gemini/gemini-types.d.mts +82 -0
  265. package/dist/witness/agent/gemini/gemini-types.d.mts.map +1 -0
  266. package/dist/witness/agent/gemini/gemini-types.mjs +3 -0
  267. package/dist/witness/agent/gemini/gemini-types.mjs.map +1 -0
  268. package/dist/witness/live-proxy-ibgib/live-proxy-ibgib-one-file.d.mts +136 -0
  269. package/dist/witness/live-proxy-ibgib/live-proxy-ibgib-one-file.d.mts.map +1 -0
  270. package/dist/witness/live-proxy-ibgib/live-proxy-ibgib-one-file.mjs +334 -0
  271. package/dist/witness/live-proxy-ibgib/live-proxy-ibgib-one-file.mjs.map +1 -0
  272. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace-helper.d.mts +35 -0
  273. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace-helper.d.mts.map +1 -0
  274. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace-helper.mjs +267 -0
  275. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace-helper.mjs.map +1 -0
  276. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace.d.mts +134 -0
  277. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace.d.mts.map +1 -0
  278. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace.mjs +389 -0
  279. package/dist/witness/space/metaspace/metaspace-webspace/metaspace-webspace.mjs.map +1 -0
  280. package/dist/witness/space/web-filesystem-space/web-filesystem-space-constants.d.mts +2 -0
  281. package/dist/witness/space/web-filesystem-space/web-filesystem-space-constants.d.mts.map +1 -0
  282. package/dist/witness/space/web-filesystem-space/web-filesystem-space-constants.mjs +2 -0
  283. package/dist/witness/space/web-filesystem-space/web-filesystem-space-constants.mjs.map +1 -0
  284. package/dist/witness/space/web-filesystem-space/web-filesystem-space-helper.d.mts +104 -0
  285. package/dist/witness/space/web-filesystem-space/web-filesystem-space-helper.d.mts.map +1 -0
  286. package/dist/witness/space/web-filesystem-space/web-filesystem-space-helper.mjs +457 -0
  287. package/dist/witness/space/web-filesystem-space/web-filesystem-space-helper.mjs.map +1 -0
  288. package/dist/witness/space/web-filesystem-space/web-filesystem-space-types.d.mts +93 -0
  289. package/dist/witness/space/web-filesystem-space/web-filesystem-space-types.d.mts.map +1 -0
  290. package/dist/witness/space/web-filesystem-space/web-filesystem-space-types.mjs +98 -0
  291. package/dist/witness/space/web-filesystem-space/web-filesystem-space-types.mjs.map +1 -0
  292. package/dist/witness/space/web-filesystem-space/web-filesystem-space-v1.d.mts +73 -0
  293. package/dist/witness/space/web-filesystem-space/web-filesystem-space-v1.d.mts.map +1 -0
  294. package/dist/witness/space/web-filesystem-space/web-filesystem-space-v1.mjs +650 -0
  295. package/dist/witness/space/web-filesystem-space/web-filesystem-space-v1.mjs.map +1 -0
  296. package/generate-version-file.js +29 -0
  297. package/package.json +60 -0
  298. package/src/agent-texts/common-agent-texts.mts +61 -0
  299. package/src/agent-texts/primary-agent-texts.mts +32 -0
  300. package/src/agent-texts/project-agent-texts.mts +29 -0
  301. package/src/agent-texts/project-child-text-agent-texts.mts +30 -0
  302. package/src/agent-texts/projects-agent-texts.mts +17 -0
  303. package/src/agent-texts/raw-agent-texts.mts +18 -0
  304. package/src/agent-texts/text-editor-agent-texts.mts +20 -0
  305. package/src/api/api-constants.mts +8 -0
  306. package/src/api/api-index.mts +110 -0
  307. package/src/api/api-types.mts +36 -0
  308. package/src/api/commands/chat/chat-index.mts +10 -0
  309. package/src/api/commands/chat/get-context-info.mts +196 -0
  310. package/src/api/commands/chat/hello-world.mts +183 -0
  311. package/src/api/commands/chat/tell-user.mts +241 -0
  312. package/src/api/commands/command-constants.mts +17 -0
  313. package/src/api/commands/command-helpers.mts +105 -0
  314. package/src/api/commands/command-service-v1.mts +136 -0
  315. package/src/api/commands/command-service.respec.mts +72 -0
  316. package/src/api/commands/command-types.mts +71 -0
  317. package/src/api/commands/ibgib/get-ibgibs.mts +269 -0
  318. package/src/api/commands/ibgib/ibgib-index.mts +8 -0
  319. package/src/api/commands/ibgib/mut8-ibgib.mts +418 -0
  320. package/src/api/commands/templates/api-function-info.template.mts +212 -0
  321. package/src/api/commands/text/text-edit.mts +217 -0
  322. package/src/api/commands/text/text-index.mts +6 -0
  323. package/src/api/commands/ui/ui-index.mts +6 -0
  324. package/src/api/commands/ui/update-css-variables.mts +187 -0
  325. package/src/api/function-infos.web.mts +66 -0
  326. package/src/assets/fullscreen-dialog.html +18 -0
  327. package/src/assumptions.respec.mts +51 -0
  328. package/src/common/project/project-constants.mts +83 -0
  329. package/src/common/project/project-helper.mts +730 -0
  330. package/src/common/project/project-types.mts +121 -0
  331. package/src/common/prompt-functions.web.mts +447 -0
  332. package/src/common/settings/settings-constants.mts +72 -0
  333. package/src/common/settings/settings-helpers.mts +280 -0
  334. package/src/common/settings/settings-types.mts +137 -0
  335. package/src/constants.mts +39 -0
  336. package/src/foo.mts +13 -0
  337. package/src/helpers.mts +574 -0
  338. package/src/helpers.web.mts +1277 -0
  339. package/src/helpers.web.respec.mts +16 -0
  340. package/src/index.mts +3 -0
  341. package/src/respec-gib.node.mts +199 -0
  342. package/src/spec-helper.node.respec.mts +50 -0
  343. package/src/storage/storage-helpers.web.mts +728 -0
  344. package/src/storage/storage-types.web.mts +29 -0
  345. package/src/types.web.mts +42 -0
  346. package/src/ui/component/component-types.mts +241 -0
  347. package/src/ui/component/ibgib-component-service.mts +201 -0
  348. package/src/ui/component/ibgib-dynamic-component-bases.mts +1369 -0
  349. package/src/ui/ui-constants.mts +101 -0
  350. package/src/ui/ui-helpers.mts +222 -0
  351. package/src/ui/ui-types.mts +11 -0
  352. package/src/witness/agent/agent-constants.mts +122 -0
  353. package/src/witness/agent/agent-helpers.mts +681 -0
  354. package/src/witness/agent/agent-one-file.app.mts +8 -0
  355. package/src/witness/agent/agent-one-file.mts +1665 -0
  356. package/src/witness/agent/agent-types.mts +92 -0
  357. package/src/witness/agent/agents-service-v1.mts +482 -0
  358. package/src/witness/agent/function-info/function-info-one-file.mts +362 -0
  359. package/src/witness/agent/gemini/agent-witness-gemini-v1.mts +910 -0
  360. package/src/witness/agent/gemini/gemini-agent-factory.mts +135 -0
  361. package/src/witness/agent/gemini/gemini-constants.mts +79 -0
  362. package/src/witness/agent/gemini/gemini-helpers.mts +216 -0
  363. package/src/witness/agent/gemini/gemini-types.mts +88 -0
  364. package/src/witness/live-proxy-ibgib/live-proxy-ibgib-one-file.mts +321 -0
  365. package/src/witness/space/metaspace/metaspace-webspace/metaspace-webspace-helper.mts +290 -0
  366. package/src/witness/space/metaspace/metaspace-webspace/metaspace-webspace.mts +407 -0
  367. package/src/witness/space/web-filesystem-space/web-filesystem-space-constants.mts +1 -0
  368. package/src/witness/space/web-filesystem-space/web-filesystem-space-helper.mts +491 -0
  369. package/src/witness/space/web-filesystem-space/web-filesystem-space-types.mts +172 -0
  370. package/src/witness/space/web-filesystem-space/web-filesystem-space-v1.mts +670 -0
  371. package/tsconfig.json +17 -0
  372. package/tsconfig.test.json +10 -0
@@ -0,0 +1,514 @@
1
+ import { clone, extractErrorMsg, getTimestampInTicks } from "@ibgib/helper-gib/dist/helpers/utils-helper.mjs";
2
+ import { Rel8n } from "@ibgib/ts-gib/dist/V1/types.mjs";
3
+ import { getIbAndGib, getIbGibAddr } from "@ibgib/ts-gib/dist/helper.mjs";
4
+ import { isPrimitive } from "@ibgib/ts-gib/dist/V1/transforms/transform-helper.mjs";
5
+ import { mut8 } from "@ibgib/ts-gib/dist/V1/transforms/mut8.mjs";
6
+ import { getSpecialConfigKey, getTjpAddr } from "@ibgib/core-gib/dist/common/other/ibgib-helper.mjs";
7
+ import { execInSpaceWithLocking, persistTransformResult } from "@ibgib/core-gib/dist/witness/space/space-helper.mjs";
8
+ import { SpecialIbGibType } from "@ibgib/core-gib/dist/common/other/other-types.mjs";
9
+ import { GLOBAL_LOG_A_LOT, } from "./constants.mjs";
10
+ const logalot = GLOBAL_LOG_A_LOT; // change this when you want to turn off verbose logging
11
+ export async function getTagsIbGib({ metaspace, space, }) {
12
+ const lc = `[${getTagsIbGib.name}]`;
13
+ try {
14
+ if (logalot) {
15
+ console.log(`${lc} starting... (I: 2ccb79537a75e7896bace84e6c710d25)`);
16
+ }
17
+ const tagsIbGib = await metaspace.getSpecialIbGib({ type: SpecialIbGibType.tags, space });
18
+ if (!tagsIbGib) {
19
+ throw new Error(`tagsIbGib not found in metaspace. space: ${!!space ? space.ib : 'default local user space'} (E: 4734c510a411274315c0add8f70e1925)`);
20
+ }
21
+ return tagsIbGib;
22
+ }
23
+ catch (error) {
24
+ console.error(`${lc} ${extractErrorMsg(error)}`);
25
+ throw error;
26
+ }
27
+ finally {
28
+ if (logalot) {
29
+ console.log(`${lc} complete.`);
30
+ }
31
+ }
32
+ }
33
+ /**
34
+ * NOTE: This was originally written only for agents and I'm generalizing it to
35
+ * any "coupled" ibgib. The idea is that for local-space-specific ibgibs that
36
+ * are related to domain ibgibs, but where we don't want to modify the domain
37
+ * ibgib directly, we create this "coupled" ibgib. We then index it in a local
38
+ * space special (index) ibgib and associate it by tjpAddr.
39
+ *
40
+ * Generates a consistent special name for the agent index ibGib based on the
41
+ * domain ibGib's primitive ancestor's ib or the ibGibAddr's ib atom.
42
+ *
43
+ * RIGHT NOW I"M PRIORITIZING THE ATOM. I THINK IT ALWAYS RETURNS THE ATOM, I.E., THE FIRST SPACE-DELIMITED PIECE OF THE `ib`.
44
+ *
45
+ * I am doing this because the project ibgib actually forks from a comment
46
+ * ibgib, so its primitive ancestor is "comment^gib".
47
+ *
48
+ * ## notes
49
+ *
50
+ * We are trying to get a special ibgib index that maps from ibgibs (the domain)
51
+ * to what local agent is registered to handle that ibgib's timeline.
52
+ *
53
+ * Concretely, we're working on the project ibgibs and we need a way to get at
54
+ * the agent that is assigned to that project. But we can't just mut8 the
55
+ * project itself because this would cause issues once the project is spread out
56
+ * among multiple execution contexts (similar to "remotes" in git).
57
+ *
58
+ * So we will have a special ibgib registered with the local space which will
59
+ * act as this index that maps ibgib -> handling agent. This function helps get
60
+ * the *name* of that special indexing ibgib.
61
+ *
62
+ * This can be driven either by the ibgib itself, via the last primitive ancestor
63
+ * ibgib's address, or via the ib's atom (the first space-delimited term in the
64
+ * `ib` metadata).
65
+ *
66
+ * So if an ancestor is [comment^gib, specialComment^gib, specialComment
67
+ * abc123^ABC123.DEF456] (where the abc123 things are representative of the full
68
+ * hashes 64 characters long atow since we're using sha256), then the *last*
69
+ * primitive address is specialComment^gib.
70
+ */
71
+ export function getIndexNameFromIbGib({ scope, ibGib, ibGibAddr, defaultNameIfError, }) {
72
+ const lc = `[${getIndexNameFromIbGib.name}]`;
73
+ try {
74
+ if (!ibGib && !ibGibAddr) {
75
+ throw new Error(`${lc} Must provide either ibGib or ibGibAddr. (E: genuuid)`);
76
+ }
77
+ if (scope.includes(' ')) {
78
+ console.warn(`${lc} scope includes one or more spaces. These will be converted to double underscores. (W: 1554a81454e8ae0a6858ea5dd17f8925)`);
79
+ scope = scope.replace(/ /g, '__');
80
+ }
81
+ /**
82
+ * note: non-alphanumerics are replaced with underscores
83
+ */
84
+ let primitiveAncestorIb = undefined;
85
+ let atom = undefined;
86
+ /**
87
+ * This is what we're trying to extract. once we have this, then we can
88
+ * simply append our index name, e.g. `${ancestorIbOrAtom}-agent-index`
89
+ */
90
+ let ancestorIbOrAtom = undefined;
91
+ if (ibGib) {
92
+ // go by the ibgib's full data
93
+ if (!ibGib.data) {
94
+ throw new Error(`(UNEXPECTED) ibGib.data falsy? (E: genuuid)`);
95
+ }
96
+ if (!ibGib.rel8ns) {
97
+ throw new Error(`(UNEXPECTED) ibGib.rel8ns falsy? (E: genuuid)`);
98
+ }
99
+ if (!ibGib.rel8ns.ancestor) {
100
+ throw new Error(`(UNEXPECTED) ibGib.rel8ns.ancestor falsy? (E: genuuid)`);
101
+ }
102
+ if (ibGib.rel8ns.ancestor.length === 0) {
103
+ throw new Error(`(UNEXPECTED) ibGib.rel8ns.ancestor.length === 0? there should be at least one ancestor (E: genuuid)`);
104
+ // this may turn into a warning later on down the road and return based on the ibGib's addr
105
+ }
106
+ if (ibGib && ibGibAddr) {
107
+ if (getIbGibAddr({ ibGib }) !== ibGibAddr) {
108
+ throw new Error(`(UNEXPECTED) both ibGib and ibGibAddr provided, but addr of ibGib doesn't equal ibGibAddr? (E: genuuid)`);
109
+ }
110
+ }
111
+ // const primitiveAncestor = getPrimitiveAncestor({ ibGib });
112
+ const primitiveAncestorAddrs = ibGib.rel8ns.ancestor.filter(x => isPrimitive({ gib: getIbAndGib({ ibGibAddr: x }).gib }));
113
+ if (primitiveAncestorAddrs.length === 0) {
114
+ debugger; // error no primitive ancestor addrs?
115
+ console.error(`${lc} ibGib has no primitive ancestor addrs? Still going to work off of the ib then, which should have the atom as the first space-delimited term. (E: genuuid)`);
116
+ }
117
+ const primitiveAncestorAddr = primitiveAncestorAddrs.at(-1);
118
+ primitiveAncestorIb =
119
+ getIbAndGib({ ibGibAddr: primitiveAncestorAddr }).ib;
120
+ // replace ALL spaces with underscores
121
+ ancestorIbOrAtom = primitiveAncestorIb;
122
+ }
123
+ // get the atom from the address
124
+ ibGibAddr ??= getIbGibAddr({ ibGib });
125
+ // try to get at it from the ibGibAddr
126
+ const { ib } = getIbAndGib({ ibGibAddr });
127
+ atom = (ib.split(' ').at(0) ?? '');
128
+ // at this point we have a raw atom and possibly a raw primitive
129
+ // ancestor ib. we want to compare the two, which usually should be the
130
+ // same (i think?). if different, warn and return
131
+ atom = atom.replace(/\W/g, '_');
132
+ primitiveAncestorIb ??= atom;
133
+ primitiveAncestorIb = primitiveAncestorIb.replace(/\W/g, '_');
134
+ if (!primitiveAncestorIb && !atom) {
135
+ throw new Error(`(UNEXPECTED) both primitiveAncestorIb and atom falsy? one should be truthy at this point. (E: genuuid)`);
136
+ }
137
+ // if (primitiveAncestorIb !== atom) {
138
+ // // warn and do per arg
139
+ // console.warn(`${lc} ibGib primitive ancestor ib (${primitiveAncestorIb}) doesn't match atom (${atom}). going with ancestorIbOrAtom: ${ancestorIbOrAtom} (W: genuuid)`);
140
+ // }
141
+ ancestorIbOrAtom = atom.toLowerCase();
142
+ if (logalot) {
143
+ console.log(`${lc} ancestorIbOrAtom: ${ancestorIbOrAtom} (I: genuuid)`);
144
+ }
145
+ /**
146
+ * I forgot, this cannot be kebab-cased because we only allow \w regexp
147
+ * on the special ibgib name. I don't remember the reasoning for this,
148
+ * may be arbitrary. But for now, going to change this to underscore,
149
+ * even though the atom or ancestor ib may have underscores in it. Ah
150
+ * well.
151
+ */
152
+ const indexName = `${ancestorIbOrAtom}_${scope}index`;
153
+ if (logalot) {
154
+ console.log(`${lc} indexName: ${indexName} (I: genuuid)`);
155
+ }
156
+ return indexName;
157
+ }
158
+ catch (error) {
159
+ if (!!defaultNameIfError) {
160
+ console.warn(`${lc} error happened but defaultNameIfError (${defaultNameIfError}) provided. So will return this value. error that was thrown: ${extractErrorMsg(error)}`);
161
+ return defaultNameIfError;
162
+ }
163
+ else {
164
+ console.error(`${lc} ${extractErrorMsg(error)}`);
165
+ throw error;
166
+ }
167
+ }
168
+ }
169
+ /**
170
+ * NOTE: This was originally written only for agents and I'm generalizing it to
171
+ * any "coupled" ibgib. The idea is that for local-space-specific ibgibs that
172
+ * are related to domain ibgibs, but where we don't want to modify the domain
173
+ * ibgib directly, we create this "coupled" ibgib. We then index it in a local
174
+ * space special (index) ibgib and associate it by tjpAddr.
175
+ * Retrieves the agent ibGib associated with a domain ibGib from the special agent index ibGib.
176
+ *
177
+ * may have to change this to require the ibgib, not give an optional
178
+ * domainIbGibAddr
179
+ */
180
+ export async function getLocalCoupledIbGibForDomainIbGib({ scope, ibGib, metaspace, space, skipGetLatest, }) {
181
+ const lc = `[${getLocalCoupledIbGibForDomainIbGib.name}]`;
182
+ try {
183
+ if (logalot) {
184
+ console.log(`${lc} starting... (I: f19dc86aab380fe809aef27ccc7a7425)`);
185
+ }
186
+ if (!scope) {
187
+ throw new Error(`scope required to be a non-empty string (E: 73e702495c38c7d8747d1cf8850af825)`);
188
+ }
189
+ if (!ibGib) {
190
+ throw new Error(`ibGib required (E: genuuid)`);
191
+ }
192
+ // Get the index name and domain TJP address
193
+ const indexSpecialIbGibType = getIndexNameFromIbGib({ scope, ibGib, });
194
+ const domainTjpAddr = getTjpAddr({ ibGib, defaultIfNone: 'incomingAddr' });
195
+ // Get the index ibGib
196
+ const fn = async () => {
197
+ const specialIndex = await metaspace.getSpecialIbGib({
198
+ type: indexSpecialIbGibType,
199
+ space,
200
+ initialize: false,
201
+ dontWarnIfNotExist: true,
202
+ lock: true,
203
+ });
204
+ // If the index ibGib doesn't exist, nothing is registered for this domain ibgib
205
+ if (!specialIndex || !specialIndex.data) {
206
+ if (logalot) {
207
+ console.log(`${lc} special ${scope} index ibGib not found for indexSpecialIbGibType (${indexSpecialIbGibType}). No coupled ibgib registered, returning undefined. (I: genuuid)`);
208
+ }
209
+ return undefined; /* <<<< returns early */
210
+ }
211
+ // Get the address from the map
212
+ const coupleMap = specialIndex.data.coupleMap ??
213
+ specialIndex.data.agentMap ??
214
+ {};
215
+ const coupledAddr = coupleMap[domainTjpAddr];
216
+ if (!coupledAddr) {
217
+ if (logalot) {
218
+ console.log(`${lc} No coupled ${scope} ibgib address found for domain ${domainTjpAddr} in the coupled index map. indexSpecialIbGibType: ${indexSpecialIbGibType}. returning undefined. (I: genuuid)`);
219
+ }
220
+ return undefined; /* <<<< returns early */
221
+ }
222
+ let addrToGet = skipGetLatest ?
223
+ coupledAddr :
224
+ await metaspace.getLatestAddr({ addr: coupledAddr, space }) ?? coupledAddr;
225
+ let resGet = await metaspace.get({
226
+ addrs: [addrToGet],
227
+ space,
228
+ });
229
+ if (resGet.errorMsg || (resGet.ibGibs ?? []).length !== 1) {
230
+ throw new Error(`couldn't get latest coupled ibgib (${addrToGet}) for domain ${domainTjpAddr}. (E: 8aa7b25f5cd4ebadd8bf2f8807dfe825)`);
231
+ }
232
+ return resGet.ibGibs[0];
233
+ };
234
+ const result = await execInSpaceWithLocking({
235
+ scope: indexSpecialIbGibType,
236
+ secondsValid: 180,
237
+ maxDelayMs: 100,
238
+ maxLockAttempts: 1800,
239
+ space,
240
+ callerInstanceId: lc + getTimestampInTicks(),
241
+ fn,
242
+ });
243
+ return result;
244
+ }
245
+ catch (error) {
246
+ console.error(`${lc} ${extractErrorMsg(error)}`);
247
+ throw error;
248
+ }
249
+ finally {
250
+ if (logalot) {
251
+ console.log(`${lc} complete.`);
252
+ }
253
+ }
254
+ }
255
+ /**
256
+ * Registers a domain ibGib with its associated agent ibGib in the special agent
257
+ * index ibGib. This creates or updates a mapping from the domain ibGib's TJP
258
+ * address to the agent's address.
259
+ *
260
+ * ## intent
261
+ *
262
+ * we want to rel8 ibgibs but not directly change the domain ibgib. Like if we
263
+ * have an ibgib that we want to collaborate on, we want a mechanism for the
264
+ * local space (later local user via keystone) to have settings, agents, etc.,
265
+ * for that domain ibgib. But each space has its own version, like a local/user
266
+ * settings vs. a workspace settings.
267
+ *
268
+ * So this gets/creates an index on the local space and associates the domain
269
+ * with the local.
270
+ *
271
+ * @example
272
+ * use this to couple a local agent to a domain ibgib or a local settings ibgib
273
+ * to a domain ibgib, that you do not want to share with others who will have
274
+ * their own versions.
275
+ */
276
+ export async function coupleDomainIbGibWithLocalIbGibViaIndex({ scope, domainIbGib, localIbGib, metaspace, space, }) {
277
+ const lc = `[${coupleDomainIbGibWithLocalIbGibViaIndex.name}]`;
278
+ try {
279
+ if (logalot) {
280
+ console.log(`${lc} starting... (I: 217ae68e0c820e48f4c00409f7f14325)`);
281
+ }
282
+ const indexSpecialIbGibType = getIndexNameFromIbGib({ scope, ibGib: domainIbGib, });
283
+ const domainTjpAddr = getTjpAddr({ ibGib: domainIbGib });
284
+ const localAddr = getIbGibAddr({ ibGib: localIbGib });
285
+ if (!domainTjpAddr) {
286
+ throw new Error(`${lc} Could not get TJP address for domain ibGib. (E: 35a4e8ac291b0b85cb958e28dd812f25)`);
287
+ }
288
+ if (!localAddr) {
289
+ throw new Error(`${lc} Could not get address for agent ibGib. (E: 2fce1187630b45934c4155a23204d125)`);
290
+ }
291
+ const fn = async () => {
292
+ // Get or create the agent index ibGib
293
+ const agentSpecialIndex = await metaspace.getSpecialIbGib({
294
+ type: indexSpecialIbGibType,
295
+ space,
296
+ initialize: true,
297
+ dontWarnIfNotExist: true,
298
+ lock: false,
299
+ });
300
+ if (!agentSpecialIndex) {
301
+ throw new Error(`${lc} Could not get or create agent index ibGib.`);
302
+ }
303
+ // Initialize data if it doesn't exist
304
+ if (!agentSpecialIndex.data) {
305
+ throw new Error(`(UNEXPECTED) agentSpecialIndex.data falsy? (E: 74299eed147debf6398ca37e7b8d5c25)`);
306
+ }
307
+ // Get the current mapping or initialize an empty one
308
+ const map = agentSpecialIndex.data.coupleMap ?? agentSpecialIndex.data.agentMap;
309
+ const coupleMap = !!map ? clone(map) : {};
310
+ // Update the mapping
311
+ const existingMappedAgentAddr = coupleMap[domainTjpAddr];
312
+ if (existingMappedAgentAddr) {
313
+ if (existingMappedAgentAddr === localAddr) {
314
+ if (logalot) {
315
+ console.log(`${lc} domain ibGib (${domainTjpAddr}) already mapped to agent (${localAddr}). returning early (I: cb5d4dcef8cf14de7336120fb8ffef25)`);
316
+ }
317
+ return; /* <<<< returns early */
318
+ }
319
+ else {
320
+ console.warn(`${lc} domainTjpAddr (${domainTjpAddr}) already assigned to existingMappedAgentAddr (${existingMappedAgentAddr}). We will be changing to new localAddr (${localAddr}). (W: eb993e33f7731e570fa76f24a2d80625)`);
321
+ }
322
+ }
323
+ coupleMap[domainTjpAddr] = localAddr;
324
+ // Assign the updated map back to data Save the updated index ibGib.
325
+ // there is extra plumbing involved with special index ibgibs. see
326
+ // `rel8ToSpecialIbGib` for an example in
327
+ // libs/core-gib/src/witness/space/space-helper.mts
328
+ // await updateSpecialIndex({
329
+ // metaspace,
330
+ // type: indexSpecialIbGibType,
331
+ // dataToAddOrPatch: { coupleMap },
332
+ // space,
333
+ // });
334
+ const resNewSpecial = await mut8({
335
+ src: agentSpecialIndex,
336
+ dataToAddOrPatch: { coupleMap },
337
+ dna: false,
338
+ linkedRel8ns: [Rel8n.past],
339
+ nCounter: true,
340
+ });
341
+ const newSpecialIbGib = resNewSpecial.newIbGib;
342
+ // persist
343
+ await persistTransformResult({ resTransform: resNewSpecial, space });
344
+ // update the space ibgib which contains the special/config information
345
+ const configKey = getSpecialConfigKey({ type: indexSpecialIbGibType });
346
+ await metaspace.setConfigAddr({
347
+ key: configKey,
348
+ addr: getIbGibAddr({ ibGib: newSpecialIbGib }),
349
+ space,
350
+ });
351
+ await metaspace.registerNewIbGib({ ibGib: newSpecialIbGib, space, });
352
+ };
353
+ await execInSpaceWithLocking({
354
+ scope: indexSpecialIbGibType,
355
+ secondsValid: 60,
356
+ maxDelayMs: 100,
357
+ maxLockAttempts: 600,
358
+ space,
359
+ // callerInstanceId: // You might need a way to generate a unique ID for the caller
360
+ fn,
361
+ });
362
+ if (logalot) {
363
+ console.log(`${lc} Registered domain ${domainTjpAddr} with agent ${localAddr}`);
364
+ }
365
+ }
366
+ catch (error) {
367
+ console.error(`${lc} ${extractErrorMsg(error)}`);
368
+ throw error;
369
+ }
370
+ finally {
371
+ if (logalot) {
372
+ console.log(`${lc} complete.`);
373
+ }
374
+ }
375
+ }
376
+ /**
377
+ * Returns a function, that, as long as it continues to be invoked, will not
378
+ * be triggered. The function will be called after it stops being called for
379
+ * N milliseconds. If `immediate` is passed, trigger the function on the
380
+ * leading edge, instead of the trailing.
381
+ *
382
+ * @param func The function to debounce.
383
+ * @param wait The number of milliseconds to wait after the last call.
384
+ * @param immediate If true, trigger the function on the leading edge.
385
+ * @returns A debounced version of the function.
386
+ */
387
+ export function debounce(func, wait, immediate) {
388
+ let timeout = null;
389
+ return function (...args) {
390
+ const context = this;
391
+ const later = function () {
392
+ timeout = null;
393
+ if (!immediate) {
394
+ func.apply(context, args);
395
+ }
396
+ };
397
+ const callNow = immediate && !timeout;
398
+ if (timeout) {
399
+ clearTimeout(timeout);
400
+ }
401
+ timeout = setTimeout(later, wait);
402
+ if (callNow) {
403
+ func.apply(context, args);
404
+ }
405
+ };
406
+ }
407
+ export function getMaskedSecret({ secret, countToShow }) {
408
+ const lc = `[${getMaskedSecret.name}]`;
409
+ try {
410
+ if (logalot) {
411
+ console.log(`${lc} starting... (I: 4d479c342b77f12568501c085b4b0425)`);
412
+ }
413
+ if (secret) {
414
+ if (countToShow > secret.length) {
415
+ if (secret.length === 1) {
416
+ console.warn(`${lc} secret is one character? (W: genuuid)`);
417
+ return secret; // whatever
418
+ }
419
+ else {
420
+ console.warn(`${lc} countToShow is longer than the entire secret! just showing the last two (W: genuuid)`);
421
+ return `****${secret.substring(secret.length - 2)}`;
422
+ }
423
+ }
424
+ else {
425
+ // show the last countToShow
426
+ const secretMasked = `****${secret.substring(secret.length - countToShow)}`;
427
+ return secretMasked;
428
+ }
429
+ }
430
+ else {
431
+ console.error(`${lc} secret falsy? empty? returning empty string. (E: genuuid)`);
432
+ return '';
433
+ }
434
+ }
435
+ catch (error) {
436
+ console.error(`${lc} ${extractErrorMsg(error)}`);
437
+ throw error;
438
+ }
439
+ finally {
440
+ if (logalot) {
441
+ console.log(`${lc} complete.`);
442
+ }
443
+ }
444
+ }
445
+ export function insertAt({ newItems, index, targetArray, }) {
446
+ const lc = `[${insertAt.name}]`;
447
+ try {
448
+ if (logalot) {
449
+ console.log(`${lc} starting... (I: 5fc3c84d9e08f4ee88978be8bd117a25)`);
450
+ }
451
+ if (index < 0 || index >= targetArray.length) {
452
+ throw new Error(`index (${index}) is out of bounds for targetArray (length ${targetArray.length}) (E: genuuid)`);
453
+ }
454
+ const arrayCopy = [...targetArray];
455
+ arrayCopy.splice(index, 0, ...newItems);
456
+ return arrayCopy;
457
+ }
458
+ catch (error) {
459
+ console.error(`${lc} ${extractErrorMsg(error)}`);
460
+ throw error;
461
+ }
462
+ finally {
463
+ if (logalot) {
464
+ console.log(`${lc} complete.`);
465
+ }
466
+ }
467
+ }
468
+ export function deleteAt({ targetArray, index, }) {
469
+ const lc = `[${deleteAt.name}]`;
470
+ try {
471
+ if (logalot) {
472
+ console.log(`${lc} starting... (I: 6f2df80039f897a0883714686af97925)`);
473
+ }
474
+ if (index < 0 || index >= targetArray.length) {
475
+ throw new Error(`index (${index}) is out of bounds for targetArray (length ${targetArray.length}) (E: genuuid)`);
476
+ }
477
+ const arrayCopy = [...targetArray];
478
+ arrayCopy.splice(index, 1);
479
+ return arrayCopy;
480
+ }
481
+ catch (error) {
482
+ console.error(`${lc} ${extractErrorMsg(error)}`);
483
+ throw error;
484
+ }
485
+ finally {
486
+ if (logalot) {
487
+ console.log(`${lc} complete.`);
488
+ }
489
+ }
490
+ }
491
+ export function getShortenedStringWithEllipsis({ str, maxChars, }) {
492
+ const lc = `[${getShortenedStringWithEllipsis.name}]`;
493
+ try {
494
+ if (logalot) {
495
+ console.log(`${lc} starting... (I: 228729c84d2805bc186e96c8cbc56825)`);
496
+ }
497
+ if (str.length <= maxChars) {
498
+ return str;
499
+ }
500
+ else {
501
+ return str.substring(0, maxChars - 1) + '…';
502
+ }
503
+ }
504
+ catch (error) {
505
+ console.error(`${lc} ${extractErrorMsg(error)}`);
506
+ throw error;
507
+ }
508
+ finally {
509
+ if (logalot) {
510
+ console.log(`${lc} complete.`);
511
+ }
512
+ }
513
+ }
514
+ //# sourceMappingURL=helpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.mjs","sourceRoot":"","sources":["../src/helpers.mts"],"names":[],"mappings":"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"}