@peerllm/client-core 0.1.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 (709) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +49 -0
  3. package/dist/Approvals.d.ts +10 -0
  4. package/dist/Approvals.d.ts.map +1 -0
  5. package/dist/Approvals.js +48 -0
  6. package/dist/Approvals.js.map +1 -0
  7. package/dist/Connections.d.ts +20 -0
  8. package/dist/Connections.d.ts.map +1 -0
  9. package/dist/Connections.js +103 -0
  10. package/dist/Connections.js.map +1 -0
  11. package/dist/Offerings.d.ts +8 -0
  12. package/dist/Offerings.d.ts.map +1 -0
  13. package/dist/Offerings.js +21 -0
  14. package/dist/Offerings.js.map +1 -0
  15. package/dist/Sessions.d.ts +33 -0
  16. package/dist/Sessions.d.ts.map +1 -0
  17. package/dist/Sessions.js +221 -0
  18. package/dist/Sessions.js.map +1 -0
  19. package/dist/brokers/accounts/AccountBroker.d.ts +13 -0
  20. package/dist/brokers/accounts/AccountBroker.d.ts.map +1 -0
  21. package/dist/brokers/accounts/AccountBroker.js +2 -0
  22. package/dist/brokers/accounts/AccountBroker.js.map +1 -0
  23. package/dist/brokers/accounts/PeerLlmAccountBroker.d.ts +20 -0
  24. package/dist/brokers/accounts/PeerLlmAccountBroker.d.ts.map +1 -0
  25. package/dist/brokers/accounts/PeerLlmAccountBroker.js +109 -0
  26. package/dist/brokers/accounts/PeerLlmAccountBroker.js.map +1 -0
  27. package/dist/brokers/brains/BrainBroker.d.ts +5 -0
  28. package/dist/brokers/brains/BrainBroker.d.ts.map +1 -0
  29. package/dist/brokers/brains/BrainBroker.js +2 -0
  30. package/dist/brokers/brains/BrainBroker.js.map +1 -0
  31. package/dist/brokers/brains/PeerLlmBrainBroker.d.ts +7 -0
  32. package/dist/brokers/brains/PeerLlmBrainBroker.d.ts.map +1 -0
  33. package/dist/brokers/brains/PeerLlmBrainBroker.js +38 -0
  34. package/dist/brokers/brains/PeerLlmBrainBroker.js.map +1 -0
  35. package/dist/brokers/configs/ConfigBroker.d.ts +8 -0
  36. package/dist/brokers/configs/ConfigBroker.d.ts.map +1 -0
  37. package/dist/brokers/configs/ConfigBroker.js +2 -0
  38. package/dist/brokers/configs/ConfigBroker.js.map +1 -0
  39. package/dist/brokers/configs/FileConfigBroker.d.ts +9 -0
  40. package/dist/brokers/configs/FileConfigBroker.d.ts.map +1 -0
  41. package/dist/brokers/configs/FileConfigBroker.js +41 -0
  42. package/dist/brokers/configs/FileConfigBroker.js.map +1 -0
  43. package/dist/brokers/generators/ScriptedGeneratorBroker.d.ts +9 -0
  44. package/dist/brokers/generators/ScriptedGeneratorBroker.d.ts.map +1 -0
  45. package/dist/brokers/generators/ScriptedGeneratorBroker.js +17 -0
  46. package/dist/brokers/generators/ScriptedGeneratorBroker.js.map +1 -0
  47. package/dist/brokers/mcps/ChildProcessMcpChannel.d.ts +18 -0
  48. package/dist/brokers/mcps/ChildProcessMcpChannel.d.ts.map +1 -0
  49. package/dist/brokers/mcps/ChildProcessMcpChannel.js +126 -0
  50. package/dist/brokers/mcps/ChildProcessMcpChannel.js.map +1 -0
  51. package/dist/brokers/mcps/CompositeMcpBroker.d.ts +8 -0
  52. package/dist/brokers/mcps/CompositeMcpBroker.d.ts.map +1 -0
  53. package/dist/brokers/mcps/CompositeMcpBroker.js +41 -0
  54. package/dist/brokers/mcps/CompositeMcpBroker.js.map +1 -0
  55. package/dist/brokers/mcps/McpChannel.d.ts +6 -0
  56. package/dist/brokers/mcps/McpChannel.d.ts.map +1 -0
  57. package/dist/brokers/mcps/McpChannel.js +2 -0
  58. package/dist/brokers/mcps/McpChannel.js.map +1 -0
  59. package/dist/brokers/mcps/StdioMcpBroker.d.ts +16 -0
  60. package/dist/brokers/mcps/StdioMcpBroker.d.ts.map +1 -0
  61. package/dist/brokers/mcps/StdioMcpBroker.js +117 -0
  62. package/dist/brokers/mcps/StdioMcpBroker.js.map +1 -0
  63. package/dist/brokers/processes/NodeProcessBroker.d.ts +6 -0
  64. package/dist/brokers/processes/NodeProcessBroker.d.ts.map +1 -0
  65. package/dist/brokers/processes/NodeProcessBroker.js +57 -0
  66. package/dist/brokers/processes/NodeProcessBroker.js.map +1 -0
  67. package/dist/brokers/processes/ProcessBroker.d.ts +16 -0
  68. package/dist/brokers/processes/ProcessBroker.d.ts.map +1 -0
  69. package/dist/brokers/processes/ProcessBroker.js +2 -0
  70. package/dist/brokers/processes/ProcessBroker.js.map +1 -0
  71. package/dist/brokers/registries/PeerLlmSkillRegistryBroker.d.ts +13 -0
  72. package/dist/brokers/registries/PeerLlmSkillRegistryBroker.d.ts.map +1 -0
  73. package/dist/brokers/registries/PeerLlmSkillRegistryBroker.js +63 -0
  74. package/dist/brokers/registries/PeerLlmSkillRegistryBroker.js.map +1 -0
  75. package/dist/brokers/registries/SkillRegistryBroker.d.ts +6 -0
  76. package/dist/brokers/registries/SkillRegistryBroker.d.ts.map +1 -0
  77. package/dist/brokers/registries/SkillRegistryBroker.js +2 -0
  78. package/dist/brokers/registries/SkillRegistryBroker.js.map +1 -0
  79. package/dist/brokers/secrets/FileSecretBroker.d.ts +12 -0
  80. package/dist/brokers/secrets/FileSecretBroker.d.ts.map +1 -0
  81. package/dist/brokers/secrets/FileSecretBroker.js +43 -0
  82. package/dist/brokers/secrets/FileSecretBroker.js.map +1 -0
  83. package/dist/brokers/secrets/SecretBroker.d.ts +8 -0
  84. package/dist/brokers/secrets/SecretBroker.d.ts.map +1 -0
  85. package/dist/brokers/secrets/SecretBroker.js +2 -0
  86. package/dist/brokers/secrets/SecretBroker.js.map +1 -0
  87. package/dist/brokers/skills/CompositeSkillBroker.d.ts +7 -0
  88. package/dist/brokers/skills/CompositeSkillBroker.d.ts.map +1 -0
  89. package/dist/brokers/skills/CompositeSkillBroker.js +22 -0
  90. package/dist/brokers/skills/CompositeSkillBroker.js.map +1 -0
  91. package/dist/exposers/tools/CreateNewFileTool.d.ts +4 -0
  92. package/dist/exposers/tools/CreateNewFileTool.d.ts.map +1 -0
  93. package/dist/exposers/tools/CreateNewFileTool.js +39 -0
  94. package/dist/exposers/tools/CreateNewFileTool.js.map +1 -0
  95. package/dist/exposers/tools/DeletePathTool.d.ts +4 -0
  96. package/dist/exposers/tools/DeletePathTool.d.ts.map +1 -0
  97. package/dist/exposers/tools/DeletePathTool.js +43 -0
  98. package/dist/exposers/tools/DeletePathTool.js.map +1 -0
  99. package/dist/exposers/tools/GitTools.d.ts +5 -0
  100. package/dist/exposers/tools/GitTools.d.ts.map +1 -0
  101. package/dist/exposers/tools/GitTools.js +53 -0
  102. package/dist/exposers/tools/GitTools.js.map +1 -0
  103. package/dist/exposers/tools/GlobFilesTool.d.ts +4 -0
  104. package/dist/exposers/tools/GlobFilesTool.d.ts.map +1 -0
  105. package/dist/exposers/tools/GlobFilesTool.js +41 -0
  106. package/dist/exposers/tools/GlobFilesTool.js.map +1 -0
  107. package/dist/exposers/tools/GrepFilesTool.d.ts +4 -0
  108. package/dist/exposers/tools/GrepFilesTool.d.ts.map +1 -0
  109. package/dist/exposers/tools/GrepFilesTool.js +56 -0
  110. package/dist/exposers/tools/GrepFilesTool.js.map +1 -0
  111. package/dist/exposers/tools/ListDirectoryTool.d.ts +4 -0
  112. package/dist/exposers/tools/ListDirectoryTool.d.ts.map +1 -0
  113. package/dist/exposers/tools/ListDirectoryTool.js +45 -0
  114. package/dist/exposers/tools/ListDirectoryTool.js.map +1 -0
  115. package/dist/exposers/tools/ReadFileTool.d.ts +4 -0
  116. package/dist/exposers/tools/ReadFileTool.d.ts.map +1 -0
  117. package/dist/exposers/tools/ReadFileTool.js +65 -0
  118. package/dist/exposers/tools/ReadFileTool.js.map +1 -0
  119. package/dist/exposers/tools/Refusals.d.ts +6 -0
  120. package/dist/exposers/tools/Refusals.d.ts.map +1 -0
  121. package/dist/exposers/tools/Refusals.js +91 -0
  122. package/dist/exposers/tools/Refusals.js.map +1 -0
  123. package/dist/exposers/tools/RunCommandTool.d.ts +4 -0
  124. package/dist/exposers/tools/RunCommandTool.d.ts.map +1 -0
  125. package/dist/exposers/tools/RunCommandTool.js +51 -0
  126. package/dist/exposers/tools/RunCommandTool.js.map +1 -0
  127. package/dist/exposers/tools/SingleFindAndReplaceTool.d.ts +4 -0
  128. package/dist/exposers/tools/SingleFindAndReplaceTool.d.ts.map +1 -0
  129. package/dist/exposers/tools/SingleFindAndReplaceTool.js +42 -0
  130. package/dist/exposers/tools/SingleFindAndReplaceTool.js.map +1 -0
  131. package/dist/exposers/tools/WriteFileTool.d.ts +4 -0
  132. package/dist/exposers/tools/WriteFileTool.d.ts.map +1 -0
  133. package/dist/exposers/tools/WriteFileTool.js +54 -0
  134. package/dist/exposers/tools/WriteFileTool.js.map +1 -0
  135. package/dist/index.d.ts +64 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +196 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/models/aggregations/doctors/exceptions/DoctorAggregationServiceException.d.ts +6 -0
  140. package/dist/models/aggregations/doctors/exceptions/DoctorAggregationServiceException.d.ts.map +1 -0
  141. package/dist/models/aggregations/doctors/exceptions/DoctorAggregationServiceException.js +12 -0
  142. package/dist/models/aggregations/doctors/exceptions/DoctorAggregationServiceException.js.map +1 -0
  143. package/dist/models/aggregations/doctors/exceptions/FailedDoctorAggregationServiceException.d.ts +5 -0
  144. package/dist/models/aggregations/doctors/exceptions/FailedDoctorAggregationServiceException.d.ts.map +1 -0
  145. package/dist/models/aggregations/doctors/exceptions/FailedDoctorAggregationServiceException.js +11 -0
  146. package/dist/models/aggregations/doctors/exceptions/FailedDoctorAggregationServiceException.js.map +1 -0
  147. package/dist/models/brokers/accounts/AccountKey.d.ts +14 -0
  148. package/dist/models/brokers/accounts/AccountKey.d.ts.map +1 -0
  149. package/dist/models/brokers/accounts/AccountKey.js +2 -0
  150. package/dist/models/brokers/accounts/AccountKey.js.map +1 -0
  151. package/dist/models/brokers/accounts/AccountSession.d.ts +6 -0
  152. package/dist/models/brokers/accounts/AccountSession.d.ts.map +1 -0
  153. package/dist/models/brokers/accounts/AccountSession.js +2 -0
  154. package/dist/models/brokers/accounts/AccountSession.js.map +1 -0
  155. package/dist/models/brokers/accounts/TokenBalance.d.ts +6 -0
  156. package/dist/models/brokers/accounts/TokenBalance.d.ts.map +1 -0
  157. package/dist/models/brokers/accounts/TokenBalance.js +2 -0
  158. package/dist/models/brokers/accounts/TokenBalance.js.map +1 -0
  159. package/dist/models/brokers/registries/RegistrySkill.d.ts +15 -0
  160. package/dist/models/brokers/registries/RegistrySkill.d.ts.map +1 -0
  161. package/dist/models/brokers/registries/RegistrySkill.js +2 -0
  162. package/dist/models/brokers/registries/RegistrySkill.js.map +1 -0
  163. package/dist/models/foundations/accounts/exceptions/AccountDependencyException.d.ts +6 -0
  164. package/dist/models/foundations/accounts/exceptions/AccountDependencyException.d.ts.map +1 -0
  165. package/dist/models/foundations/accounts/exceptions/AccountDependencyException.js +11 -0
  166. package/dist/models/foundations/accounts/exceptions/AccountDependencyException.js.map +1 -0
  167. package/dist/models/foundations/accounts/exceptions/AccountDependencyValidationException.d.ts +6 -0
  168. package/dist/models/foundations/accounts/exceptions/AccountDependencyValidationException.d.ts.map +1 -0
  169. package/dist/models/foundations/accounts/exceptions/AccountDependencyValidationException.js +11 -0
  170. package/dist/models/foundations/accounts/exceptions/AccountDependencyValidationException.js.map +1 -0
  171. package/dist/models/foundations/accounts/exceptions/AccountServiceException.d.ts +6 -0
  172. package/dist/models/foundations/accounts/exceptions/AccountServiceException.d.ts.map +1 -0
  173. package/dist/models/foundations/accounts/exceptions/AccountServiceException.js +11 -0
  174. package/dist/models/foundations/accounts/exceptions/AccountServiceException.js.map +1 -0
  175. package/dist/models/foundations/accounts/exceptions/AccountValidationException.d.ts +6 -0
  176. package/dist/models/foundations/accounts/exceptions/AccountValidationException.d.ts.map +1 -0
  177. package/dist/models/foundations/accounts/exceptions/AccountValidationException.js +11 -0
  178. package/dist/models/foundations/accounts/exceptions/AccountValidationException.js.map +1 -0
  179. package/dist/models/foundations/accounts/exceptions/FailedAccountDependencyException.d.ts +6 -0
  180. package/dist/models/foundations/accounts/exceptions/FailedAccountDependencyException.d.ts.map +1 -0
  181. package/dist/models/foundations/accounts/exceptions/FailedAccountDependencyException.js +10 -0
  182. package/dist/models/foundations/accounts/exceptions/FailedAccountDependencyException.js.map +1 -0
  183. package/dist/models/foundations/accounts/exceptions/FailedAccountServiceException.d.ts +6 -0
  184. package/dist/models/foundations/accounts/exceptions/FailedAccountServiceException.d.ts.map +1 -0
  185. package/dist/models/foundations/accounts/exceptions/FailedAccountServiceException.js +10 -0
  186. package/dist/models/foundations/accounts/exceptions/FailedAccountServiceException.js.map +1 -0
  187. package/dist/models/foundations/accounts/exceptions/InvalidAccountException.d.ts +7 -0
  188. package/dist/models/foundations/accounts/exceptions/InvalidAccountException.d.ts.map +1 -0
  189. package/dist/models/foundations/accounts/exceptions/InvalidAccountException.js +22 -0
  190. package/dist/models/foundations/accounts/exceptions/InvalidAccountException.js.map +1 -0
  191. package/dist/models/foundations/accounts/exceptions/NotFoundAccountException.d.ts +6 -0
  192. package/dist/models/foundations/accounts/exceptions/NotFoundAccountException.d.ts.map +1 -0
  193. package/dist/models/foundations/accounts/exceptions/NotFoundAccountException.js +10 -0
  194. package/dist/models/foundations/accounts/exceptions/NotFoundAccountException.js.map +1 -0
  195. package/dist/models/foundations/configs/ConfigDocument.d.ts +50 -0
  196. package/dist/models/foundations/configs/ConfigDocument.d.ts.map +1 -0
  197. package/dist/models/foundations/configs/ConfigDocument.js +25 -0
  198. package/dist/models/foundations/configs/ConfigDocument.js.map +1 -0
  199. package/dist/models/foundations/configs/LockHolder.d.ts +5 -0
  200. package/dist/models/foundations/configs/LockHolder.d.ts.map +1 -0
  201. package/dist/models/foundations/configs/LockHolder.js +2 -0
  202. package/dist/models/foundations/configs/LockHolder.js.map +1 -0
  203. package/dist/models/foundations/configs/exceptions/ConfigDependencyException.d.ts +6 -0
  204. package/dist/models/foundations/configs/exceptions/ConfigDependencyException.d.ts.map +1 -0
  205. package/dist/models/foundations/configs/exceptions/ConfigDependencyException.js +12 -0
  206. package/dist/models/foundations/configs/exceptions/ConfigDependencyException.js.map +1 -0
  207. package/dist/models/foundations/configs/exceptions/ConfigDependencyValidationException.d.ts +6 -0
  208. package/dist/models/foundations/configs/exceptions/ConfigDependencyValidationException.d.ts.map +1 -0
  209. package/dist/models/foundations/configs/exceptions/ConfigDependencyValidationException.js +13 -0
  210. package/dist/models/foundations/configs/exceptions/ConfigDependencyValidationException.js.map +1 -0
  211. package/dist/models/foundations/configs/exceptions/ConfigServiceException.d.ts +6 -0
  212. package/dist/models/foundations/configs/exceptions/ConfigServiceException.d.ts.map +1 -0
  213. package/dist/models/foundations/configs/exceptions/ConfigServiceException.js +12 -0
  214. package/dist/models/foundations/configs/exceptions/ConfigServiceException.js.map +1 -0
  215. package/dist/models/foundations/configs/exceptions/ConfigValidationException.d.ts +6 -0
  216. package/dist/models/foundations/configs/exceptions/ConfigValidationException.d.ts.map +1 -0
  217. package/dist/models/foundations/configs/exceptions/ConfigValidationException.js +12 -0
  218. package/dist/models/foundations/configs/exceptions/ConfigValidationException.js.map +1 -0
  219. package/dist/models/foundations/configs/exceptions/FailedConfigDependencyException.d.ts +5 -0
  220. package/dist/models/foundations/configs/exceptions/FailedConfigDependencyException.d.ts.map +1 -0
  221. package/dist/models/foundations/configs/exceptions/FailedConfigDependencyException.js +11 -0
  222. package/dist/models/foundations/configs/exceptions/FailedConfigDependencyException.js.map +1 -0
  223. package/dist/models/foundations/configs/exceptions/FailedConfigServiceException.d.ts +5 -0
  224. package/dist/models/foundations/configs/exceptions/FailedConfigServiceException.d.ts.map +1 -0
  225. package/dist/models/foundations/configs/exceptions/FailedConfigServiceException.js +11 -0
  226. package/dist/models/foundations/configs/exceptions/FailedConfigServiceException.js.map +1 -0
  227. package/dist/models/foundations/configs/exceptions/InvalidConfigException.d.ts +7 -0
  228. package/dist/models/foundations/configs/exceptions/InvalidConfigException.d.ts.map +1 -0
  229. package/dist/models/foundations/configs/exceptions/InvalidConfigException.js +25 -0
  230. package/dist/models/foundations/configs/exceptions/InvalidConfigException.js.map +1 -0
  231. package/dist/models/foundations/configs/exceptions/LockedConfigException.d.ts +5 -0
  232. package/dist/models/foundations/configs/exceptions/LockedConfigException.d.ts.map +1 -0
  233. package/dist/models/foundations/configs/exceptions/LockedConfigException.js +11 -0
  234. package/dist/models/foundations/configs/exceptions/LockedConfigException.js.map +1 -0
  235. package/dist/models/foundations/configs/exceptions/NotFoundConfigException.d.ts +5 -0
  236. package/dist/models/foundations/configs/exceptions/NotFoundConfigException.d.ts.map +1 -0
  237. package/dist/models/foundations/configs/exceptions/NotFoundConfigException.js +12 -0
  238. package/dist/models/foundations/configs/exceptions/NotFoundConfigException.js.map +1 -0
  239. package/dist/models/foundations/processes/exceptions/FailedProcessServiceException.d.ts +5 -0
  240. package/dist/models/foundations/processes/exceptions/FailedProcessServiceException.d.ts.map +1 -0
  241. package/dist/models/foundations/processes/exceptions/FailedProcessServiceException.js +10 -0
  242. package/dist/models/foundations/processes/exceptions/FailedProcessServiceException.js.map +1 -0
  243. package/dist/models/foundations/processes/exceptions/InvalidProcessException.d.ts +7 -0
  244. package/dist/models/foundations/processes/exceptions/InvalidProcessException.d.ts.map +1 -0
  245. package/dist/models/foundations/processes/exceptions/InvalidProcessException.js +23 -0
  246. package/dist/models/foundations/processes/exceptions/InvalidProcessException.js.map +1 -0
  247. package/dist/models/foundations/processes/exceptions/NotFoundProcessException.d.ts +5 -0
  248. package/dist/models/foundations/processes/exceptions/NotFoundProcessException.d.ts.map +1 -0
  249. package/dist/models/foundations/processes/exceptions/NotFoundProcessException.js +11 -0
  250. package/dist/models/foundations/processes/exceptions/NotFoundProcessException.js.map +1 -0
  251. package/dist/models/foundations/processes/exceptions/ProcessDependencyValidationException.d.ts +6 -0
  252. package/dist/models/foundations/processes/exceptions/ProcessDependencyValidationException.d.ts.map +1 -0
  253. package/dist/models/foundations/processes/exceptions/ProcessDependencyValidationException.js +12 -0
  254. package/dist/models/foundations/processes/exceptions/ProcessDependencyValidationException.js.map +1 -0
  255. package/dist/models/foundations/processes/exceptions/ProcessServiceException.d.ts +6 -0
  256. package/dist/models/foundations/processes/exceptions/ProcessServiceException.d.ts.map +1 -0
  257. package/dist/models/foundations/processes/exceptions/ProcessServiceException.js +12 -0
  258. package/dist/models/foundations/processes/exceptions/ProcessServiceException.js.map +1 -0
  259. package/dist/models/foundations/processes/exceptions/ProcessValidationException.d.ts +6 -0
  260. package/dist/models/foundations/processes/exceptions/ProcessValidationException.d.ts.map +1 -0
  261. package/dist/models/foundations/processes/exceptions/ProcessValidationException.js +12 -0
  262. package/dist/models/foundations/processes/exceptions/ProcessValidationException.js.map +1 -0
  263. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillDependencyException.d.ts +6 -0
  264. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillDependencyException.d.ts.map +1 -0
  265. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillDependencyException.js +10 -0
  266. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillDependencyException.js.map +1 -0
  267. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillServiceException.d.ts +6 -0
  268. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillServiceException.d.ts.map +1 -0
  269. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillServiceException.js +10 -0
  270. package/dist/models/foundations/registrySkills/exceptions/FailedRegistrySkillServiceException.js.map +1 -0
  271. package/dist/models/foundations/registrySkills/exceptions/InvalidRegistrySkillException.d.ts +7 -0
  272. package/dist/models/foundations/registrySkills/exceptions/InvalidRegistrySkillException.d.ts.map +1 -0
  273. package/dist/models/foundations/registrySkills/exceptions/InvalidRegistrySkillException.js +22 -0
  274. package/dist/models/foundations/registrySkills/exceptions/InvalidRegistrySkillException.js.map +1 -0
  275. package/dist/models/foundations/registrySkills/exceptions/NotFoundRegistrySkillException.d.ts +6 -0
  276. package/dist/models/foundations/registrySkills/exceptions/NotFoundRegistrySkillException.d.ts.map +1 -0
  277. package/dist/models/foundations/registrySkills/exceptions/NotFoundRegistrySkillException.js +10 -0
  278. package/dist/models/foundations/registrySkills/exceptions/NotFoundRegistrySkillException.js.map +1 -0
  279. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyException.d.ts +6 -0
  280. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyException.d.ts.map +1 -0
  281. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyException.js +11 -0
  282. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyException.js.map +1 -0
  283. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyValidationException.d.ts +6 -0
  284. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyValidationException.d.ts.map +1 -0
  285. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyValidationException.js +11 -0
  286. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillDependencyValidationException.js.map +1 -0
  287. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillServiceException.d.ts +6 -0
  288. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillServiceException.d.ts.map +1 -0
  289. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillServiceException.js +11 -0
  290. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillServiceException.js.map +1 -0
  291. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillValidationException.d.ts +6 -0
  292. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillValidationException.d.ts.map +1 -0
  293. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillValidationException.js +11 -0
  294. package/dist/models/foundations/registrySkills/exceptions/RegistrySkillValidationException.js.map +1 -0
  295. package/dist/models/foundations/secrets/exceptions/FailedSecretDependencyException.d.ts +5 -0
  296. package/dist/models/foundations/secrets/exceptions/FailedSecretDependencyException.d.ts.map +1 -0
  297. package/dist/models/foundations/secrets/exceptions/FailedSecretDependencyException.js +10 -0
  298. package/dist/models/foundations/secrets/exceptions/FailedSecretDependencyException.js.map +1 -0
  299. package/dist/models/foundations/secrets/exceptions/FailedSecretServiceException.d.ts +5 -0
  300. package/dist/models/foundations/secrets/exceptions/FailedSecretServiceException.d.ts.map +1 -0
  301. package/dist/models/foundations/secrets/exceptions/FailedSecretServiceException.js +11 -0
  302. package/dist/models/foundations/secrets/exceptions/FailedSecretServiceException.js.map +1 -0
  303. package/dist/models/foundations/secrets/exceptions/InvalidSecretException.d.ts +7 -0
  304. package/dist/models/foundations/secrets/exceptions/InvalidSecretException.d.ts.map +1 -0
  305. package/dist/models/foundations/secrets/exceptions/InvalidSecretException.js +24 -0
  306. package/dist/models/foundations/secrets/exceptions/InvalidSecretException.js.map +1 -0
  307. package/dist/models/foundations/secrets/exceptions/LockedSecretException.d.ts +5 -0
  308. package/dist/models/foundations/secrets/exceptions/LockedSecretException.d.ts.map +1 -0
  309. package/dist/models/foundations/secrets/exceptions/LockedSecretException.js +11 -0
  310. package/dist/models/foundations/secrets/exceptions/LockedSecretException.js.map +1 -0
  311. package/dist/models/foundations/secrets/exceptions/NotFoundSecretException.d.ts +5 -0
  312. package/dist/models/foundations/secrets/exceptions/NotFoundSecretException.d.ts.map +1 -0
  313. package/dist/models/foundations/secrets/exceptions/NotFoundSecretException.js +12 -0
  314. package/dist/models/foundations/secrets/exceptions/NotFoundSecretException.js.map +1 -0
  315. package/dist/models/foundations/secrets/exceptions/SecretDependencyException.d.ts +6 -0
  316. package/dist/models/foundations/secrets/exceptions/SecretDependencyException.d.ts.map +1 -0
  317. package/dist/models/foundations/secrets/exceptions/SecretDependencyException.js +12 -0
  318. package/dist/models/foundations/secrets/exceptions/SecretDependencyException.js.map +1 -0
  319. package/dist/models/foundations/secrets/exceptions/SecretDependencyValidationException.d.ts +6 -0
  320. package/dist/models/foundations/secrets/exceptions/SecretDependencyValidationException.d.ts.map +1 -0
  321. package/dist/models/foundations/secrets/exceptions/SecretDependencyValidationException.js +12 -0
  322. package/dist/models/foundations/secrets/exceptions/SecretDependencyValidationException.js.map +1 -0
  323. package/dist/models/foundations/secrets/exceptions/SecretServiceException.d.ts +6 -0
  324. package/dist/models/foundations/secrets/exceptions/SecretServiceException.d.ts.map +1 -0
  325. package/dist/models/foundations/secrets/exceptions/SecretServiceException.js +12 -0
  326. package/dist/models/foundations/secrets/exceptions/SecretServiceException.js.map +1 -0
  327. package/dist/models/foundations/secrets/exceptions/SecretValidationException.d.ts +6 -0
  328. package/dist/models/foundations/secrets/exceptions/SecretValidationException.d.ts.map +1 -0
  329. package/dist/models/foundations/secrets/exceptions/SecretValidationException.js +12 -0
  330. package/dist/models/foundations/secrets/exceptions/SecretValidationException.js.map +1 -0
  331. package/dist/models/foundations/workspaceFiles/WorkspaceEntry.d.ts +9 -0
  332. package/dist/models/foundations/workspaceFiles/WorkspaceEntry.d.ts.map +1 -0
  333. package/dist/models/foundations/workspaceFiles/WorkspaceEntry.js +2 -0
  334. package/dist/models/foundations/workspaceFiles/WorkspaceEntry.js.map +1 -0
  335. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileDependencyException.d.ts +6 -0
  336. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileDependencyException.d.ts.map +1 -0
  337. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileDependencyException.js +10 -0
  338. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileDependencyException.js.map +1 -0
  339. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileServiceException.d.ts +6 -0
  340. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileServiceException.d.ts.map +1 -0
  341. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileServiceException.js +10 -0
  342. package/dist/models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileServiceException.js.map +1 -0
  343. package/dist/models/foundations/workspaceFiles/exceptions/InvalidWorkspaceFileException.d.ts +7 -0
  344. package/dist/models/foundations/workspaceFiles/exceptions/InvalidWorkspaceFileException.d.ts.map +1 -0
  345. package/dist/models/foundations/workspaceFiles/exceptions/InvalidWorkspaceFileException.js +22 -0
  346. package/dist/models/foundations/workspaceFiles/exceptions/InvalidWorkspaceFileException.js.map +1 -0
  347. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileDependencyException.d.ts +6 -0
  348. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileDependencyException.d.ts.map +1 -0
  349. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileDependencyException.js +11 -0
  350. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileDependencyException.js.map +1 -0
  351. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileServiceException.d.ts +6 -0
  352. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileServiceException.d.ts.map +1 -0
  353. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileServiceException.js +11 -0
  354. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileServiceException.js.map +1 -0
  355. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileValidationException.d.ts +6 -0
  356. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileValidationException.d.ts.map +1 -0
  357. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileValidationException.js +11 -0
  358. package/dist/models/foundations/workspaceFiles/exceptions/WorkspaceFileValidationException.js.map +1 -0
  359. package/dist/models/orchestrations/connections/ResolvedConnection.d.ts +7 -0
  360. package/dist/models/orchestrations/connections/ResolvedConnection.d.ts.map +1 -0
  361. package/dist/models/orchestrations/connections/ResolvedConnection.js +2 -0
  362. package/dist/models/orchestrations/connections/ResolvedConnection.js.map +1 -0
  363. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyException.d.ts +6 -0
  364. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyException.d.ts.map +1 -0
  365. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyException.js +12 -0
  366. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyException.js.map +1 -0
  367. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyValidationException.d.ts +6 -0
  368. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyValidationException.d.ts.map +1 -0
  369. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyValidationException.js +12 -0
  370. package/dist/models/orchestrations/connections/exceptions/ConnectionDependencyValidationException.js.map +1 -0
  371. package/dist/models/orchestrations/connections/exceptions/ConnectionServiceException.d.ts +6 -0
  372. package/dist/models/orchestrations/connections/exceptions/ConnectionServiceException.d.ts.map +1 -0
  373. package/dist/models/orchestrations/connections/exceptions/ConnectionServiceException.js +12 -0
  374. package/dist/models/orchestrations/connections/exceptions/ConnectionServiceException.js.map +1 -0
  375. package/dist/models/orchestrations/connections/exceptions/ConnectionValidationException.d.ts +6 -0
  376. package/dist/models/orchestrations/connections/exceptions/ConnectionValidationException.d.ts.map +1 -0
  377. package/dist/models/orchestrations/connections/exceptions/ConnectionValidationException.js +12 -0
  378. package/dist/models/orchestrations/connections/exceptions/ConnectionValidationException.js.map +1 -0
  379. package/dist/models/orchestrations/connections/exceptions/FailedConnectionServiceException.d.ts +5 -0
  380. package/dist/models/orchestrations/connections/exceptions/FailedConnectionServiceException.d.ts.map +1 -0
  381. package/dist/models/orchestrations/connections/exceptions/FailedConnectionServiceException.js +10 -0
  382. package/dist/models/orchestrations/connections/exceptions/FailedConnectionServiceException.js.map +1 -0
  383. package/dist/models/orchestrations/connections/exceptions/NoConnectionException.d.ts +4 -0
  384. package/dist/models/orchestrations/connections/exceptions/NoConnectionException.d.ts.map +1 -0
  385. package/dist/models/orchestrations/connections/exceptions/NoConnectionException.js +10 -0
  386. package/dist/models/orchestrations/connections/exceptions/NoConnectionException.js.map +1 -0
  387. package/dist/models/processings/accounts/SignedInAccount.d.ts +7 -0
  388. package/dist/models/processings/accounts/SignedInAccount.d.ts.map +1 -0
  389. package/dist/models/processings/accounts/SignedInAccount.js +2 -0
  390. package/dist/models/processings/accounts/SignedInAccount.js.map +1 -0
  391. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyException.d.ts +6 -0
  392. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyException.d.ts.map +1 -0
  393. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyException.js +11 -0
  394. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyException.js.map +1 -0
  395. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyValidationException.d.ts +6 -0
  396. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyValidationException.d.ts.map +1 -0
  397. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyValidationException.js +11 -0
  398. package/dist/models/processings/accounts/exceptions/AccountProcessingDependencyValidationException.js.map +1 -0
  399. package/dist/models/processings/accounts/exceptions/AccountProcessingServiceException.d.ts +6 -0
  400. package/dist/models/processings/accounts/exceptions/AccountProcessingServiceException.d.ts.map +1 -0
  401. package/dist/models/processings/accounts/exceptions/AccountProcessingServiceException.js +11 -0
  402. package/dist/models/processings/accounts/exceptions/AccountProcessingServiceException.js.map +1 -0
  403. package/dist/models/processings/accounts/exceptions/AccountProcessingValidationException.d.ts +6 -0
  404. package/dist/models/processings/accounts/exceptions/AccountProcessingValidationException.d.ts.map +1 -0
  405. package/dist/models/processings/accounts/exceptions/AccountProcessingValidationException.js +11 -0
  406. package/dist/models/processings/accounts/exceptions/AccountProcessingValidationException.js.map +1 -0
  407. package/dist/models/processings/accounts/exceptions/FailedAccountProcessingServiceException.d.ts +6 -0
  408. package/dist/models/processings/accounts/exceptions/FailedAccountProcessingServiceException.d.ts.map +1 -0
  409. package/dist/models/processings/accounts/exceptions/FailedAccountProcessingServiceException.js +10 -0
  410. package/dist/models/processings/accounts/exceptions/FailedAccountProcessingServiceException.js.map +1 -0
  411. package/dist/models/processings/accounts/exceptions/InvalidAccountProcessingException.d.ts +7 -0
  412. package/dist/models/processings/accounts/exceptions/InvalidAccountProcessingException.d.ts.map +1 -0
  413. package/dist/models/processings/accounts/exceptions/InvalidAccountProcessingException.js +22 -0
  414. package/dist/models/processings/accounts/exceptions/InvalidAccountProcessingException.js.map +1 -0
  415. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyException.d.ts +6 -0
  416. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyException.d.ts.map +1 -0
  417. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyException.js +12 -0
  418. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyException.js.map +1 -0
  419. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyValidationException.d.ts +6 -0
  420. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyValidationException.d.ts.map +1 -0
  421. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyValidationException.js +12 -0
  422. package/dist/models/processings/configs/exceptions/ConfigProcessingDependencyValidationException.js.map +1 -0
  423. package/dist/models/processings/configs/exceptions/ConfigProcessingServiceException.d.ts +6 -0
  424. package/dist/models/processings/configs/exceptions/ConfigProcessingServiceException.d.ts.map +1 -0
  425. package/dist/models/processings/configs/exceptions/ConfigProcessingServiceException.js +12 -0
  426. package/dist/models/processings/configs/exceptions/ConfigProcessingServiceException.js.map +1 -0
  427. package/dist/models/processings/configs/exceptions/ConfigProcessingValidationException.d.ts +6 -0
  428. package/dist/models/processings/configs/exceptions/ConfigProcessingValidationException.d.ts.map +1 -0
  429. package/dist/models/processings/configs/exceptions/ConfigProcessingValidationException.js +12 -0
  430. package/dist/models/processings/configs/exceptions/ConfigProcessingValidationException.js.map +1 -0
  431. package/dist/models/processings/configs/exceptions/FailedConfigProcessingServiceException.d.ts +5 -0
  432. package/dist/models/processings/configs/exceptions/FailedConfigProcessingServiceException.d.ts.map +1 -0
  433. package/dist/models/processings/configs/exceptions/FailedConfigProcessingServiceException.js +10 -0
  434. package/dist/models/processings/configs/exceptions/FailedConfigProcessingServiceException.js.map +1 -0
  435. package/dist/models/processings/configs/exceptions/LockUnavailableConfigProcessingException.d.ts +5 -0
  436. package/dist/models/processings/configs/exceptions/LockUnavailableConfigProcessingException.d.ts.map +1 -0
  437. package/dist/models/processings/configs/exceptions/LockUnavailableConfigProcessingException.js +11 -0
  438. package/dist/models/processings/configs/exceptions/LockUnavailableConfigProcessingException.js.map +1 -0
  439. package/dist/models/processings/health/HealthCheck.d.ts +9 -0
  440. package/dist/models/processings/health/HealthCheck.d.ts.map +1 -0
  441. package/dist/models/processings/health/HealthCheck.js +19 -0
  442. package/dist/models/processings/health/HealthCheck.js.map +1 -0
  443. package/dist/models/processings/processes/exceptions/FailedProcessProcessingServiceException.d.ts +5 -0
  444. package/dist/models/processings/processes/exceptions/FailedProcessProcessingServiceException.d.ts.map +1 -0
  445. package/dist/models/processings/processes/exceptions/FailedProcessProcessingServiceException.js +10 -0
  446. package/dist/models/processings/processes/exceptions/FailedProcessProcessingServiceException.js.map +1 -0
  447. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyException.d.ts +6 -0
  448. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyException.d.ts.map +1 -0
  449. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyException.js +12 -0
  450. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyException.js.map +1 -0
  451. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyValidationException.d.ts +6 -0
  452. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyValidationException.d.ts.map +1 -0
  453. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyValidationException.js +12 -0
  454. package/dist/models/processings/processes/exceptions/ProcessProcessingDependencyValidationException.js.map +1 -0
  455. package/dist/models/processings/processes/exceptions/ProcessProcessingServiceException.d.ts +6 -0
  456. package/dist/models/processings/processes/exceptions/ProcessProcessingServiceException.d.ts.map +1 -0
  457. package/dist/models/processings/processes/exceptions/ProcessProcessingServiceException.js +12 -0
  458. package/dist/models/processings/processes/exceptions/ProcessProcessingServiceException.js.map +1 -0
  459. package/dist/models/processings/processes/exceptions/ProcessProcessingValidationException.d.ts +6 -0
  460. package/dist/models/processings/processes/exceptions/ProcessProcessingValidationException.d.ts.map +1 -0
  461. package/dist/models/processings/processes/exceptions/ProcessProcessingValidationException.js +12 -0
  462. package/dist/models/processings/processes/exceptions/ProcessProcessingValidationException.js.map +1 -0
  463. package/dist/models/processings/registrySkills/InstalledSkill.d.ts +8 -0
  464. package/dist/models/processings/registrySkills/InstalledSkill.d.ts.map +1 -0
  465. package/dist/models/processings/registrySkills/InstalledSkill.js +2 -0
  466. package/dist/models/processings/registrySkills/InstalledSkill.js.map +1 -0
  467. package/dist/models/processings/registrySkills/exceptions/FailedRegistrySkillProcessingServiceException.d.ts +6 -0
  468. package/dist/models/processings/registrySkills/exceptions/FailedRegistrySkillProcessingServiceException.d.ts.map +1 -0
  469. package/dist/models/processings/registrySkills/exceptions/FailedRegistrySkillProcessingServiceException.js +10 -0
  470. package/dist/models/processings/registrySkills/exceptions/FailedRegistrySkillProcessingServiceException.js.map +1 -0
  471. package/dist/models/processings/registrySkills/exceptions/InvalidRegistrySkillProcessingException.d.ts +7 -0
  472. package/dist/models/processings/registrySkills/exceptions/InvalidRegistrySkillProcessingException.d.ts.map +1 -0
  473. package/dist/models/processings/registrySkills/exceptions/InvalidRegistrySkillProcessingException.js +22 -0
  474. package/dist/models/processings/registrySkills/exceptions/InvalidRegistrySkillProcessingException.js.map +1 -0
  475. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyException.d.ts +6 -0
  476. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyException.d.ts.map +1 -0
  477. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyException.js +11 -0
  478. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyException.js.map +1 -0
  479. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyValidationException.d.ts +6 -0
  480. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyValidationException.d.ts.map +1 -0
  481. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyValidationException.js +11 -0
  482. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingDependencyValidationException.js.map +1 -0
  483. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingServiceException.d.ts +6 -0
  484. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingServiceException.d.ts.map +1 -0
  485. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingServiceException.js +11 -0
  486. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingServiceException.js.map +1 -0
  487. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingValidationException.d.ts +6 -0
  488. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingValidationException.d.ts.map +1 -0
  489. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingValidationException.js +11 -0
  490. package/dist/models/processings/registrySkills/exceptions/RegistrySkillProcessingValidationException.js.map +1 -0
  491. package/dist/models/processings/secrets/exceptions/FailedSecretProcessingServiceException.d.ts +5 -0
  492. package/dist/models/processings/secrets/exceptions/FailedSecretProcessingServiceException.d.ts.map +1 -0
  493. package/dist/models/processings/secrets/exceptions/FailedSecretProcessingServiceException.js +10 -0
  494. package/dist/models/processings/secrets/exceptions/FailedSecretProcessingServiceException.js.map +1 -0
  495. package/dist/models/processings/secrets/exceptions/LockUnavailableSecretProcessingException.d.ts +5 -0
  496. package/dist/models/processings/secrets/exceptions/LockUnavailableSecretProcessingException.d.ts.map +1 -0
  497. package/dist/models/processings/secrets/exceptions/LockUnavailableSecretProcessingException.js +11 -0
  498. package/dist/models/processings/secrets/exceptions/LockUnavailableSecretProcessingException.js.map +1 -0
  499. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyException.d.ts +6 -0
  500. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyException.d.ts.map +1 -0
  501. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyException.js +12 -0
  502. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyException.js.map +1 -0
  503. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyValidationException.d.ts +6 -0
  504. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyValidationException.d.ts.map +1 -0
  505. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyValidationException.js +12 -0
  506. package/dist/models/processings/secrets/exceptions/SecretProcessingDependencyValidationException.js.map +1 -0
  507. package/dist/models/processings/secrets/exceptions/SecretProcessingServiceException.d.ts +6 -0
  508. package/dist/models/processings/secrets/exceptions/SecretProcessingServiceException.d.ts.map +1 -0
  509. package/dist/models/processings/secrets/exceptions/SecretProcessingServiceException.js +12 -0
  510. package/dist/models/processings/secrets/exceptions/SecretProcessingServiceException.js.map +1 -0
  511. package/dist/models/processings/secrets/exceptions/SecretProcessingValidationException.d.ts +6 -0
  512. package/dist/models/processings/secrets/exceptions/SecretProcessingValidationException.d.ts.map +1 -0
  513. package/dist/models/processings/secrets/exceptions/SecretProcessingValidationException.js +12 -0
  514. package/dist/models/processings/secrets/exceptions/SecretProcessingValidationException.js.map +1 -0
  515. package/dist/models/processings/workspaceFiles/AppliedEdit.d.ts +5 -0
  516. package/dist/models/processings/workspaceFiles/AppliedEdit.d.ts.map +1 -0
  517. package/dist/models/processings/workspaceFiles/AppliedEdit.js +2 -0
  518. package/dist/models/processings/workspaceFiles/AppliedEdit.js.map +1 -0
  519. package/dist/models/processings/workspaceFiles/GrepMatch.d.ts +8 -0
  520. package/dist/models/processings/workspaceFiles/GrepMatch.d.ts.map +1 -0
  521. package/dist/models/processings/workspaceFiles/GrepMatch.js +2 -0
  522. package/dist/models/processings/workspaceFiles/GrepMatch.js.map +1 -0
  523. package/dist/models/processings/workspaceFiles/PagedFile.d.ts +10 -0
  524. package/dist/models/processings/workspaceFiles/PagedFile.d.ts.map +1 -0
  525. package/dist/models/processings/workspaceFiles/PagedFile.js +2 -0
  526. package/dist/models/processings/workspaceFiles/PagedFile.js.map +1 -0
  527. package/dist/models/processings/workspaceFiles/RestoredRun.d.ts +5 -0
  528. package/dist/models/processings/workspaceFiles/RestoredRun.d.ts.map +1 -0
  529. package/dist/models/processings/workspaceFiles/RestoredRun.js +2 -0
  530. package/dist/models/processings/workspaceFiles/RestoredRun.js.map +1 -0
  531. package/dist/models/processings/workspaceFiles/exceptions/FailedWorkspaceFileProcessingServiceException.d.ts +6 -0
  532. package/dist/models/processings/workspaceFiles/exceptions/FailedWorkspaceFileProcessingServiceException.d.ts.map +1 -0
  533. package/dist/models/processings/workspaceFiles/exceptions/FailedWorkspaceFileProcessingServiceException.js +10 -0
  534. package/dist/models/processings/workspaceFiles/exceptions/FailedWorkspaceFileProcessingServiceException.js.map +1 -0
  535. package/dist/models/processings/workspaceFiles/exceptions/InvalidWorkspaceFileProcessingException.d.ts +7 -0
  536. package/dist/models/processings/workspaceFiles/exceptions/InvalidWorkspaceFileProcessingException.d.ts.map +1 -0
  537. package/dist/models/processings/workspaceFiles/exceptions/InvalidWorkspaceFileProcessingException.js +22 -0
  538. package/dist/models/processings/workspaceFiles/exceptions/InvalidWorkspaceFileProcessingException.js.map +1 -0
  539. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyException.d.ts +6 -0
  540. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyException.d.ts.map +1 -0
  541. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyException.js +11 -0
  542. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyException.js.map +1 -0
  543. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyValidationException.d.ts +6 -0
  544. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyValidationException.d.ts.map +1 -0
  545. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyValidationException.js +11 -0
  546. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingDependencyValidationException.js.map +1 -0
  547. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingServiceException.d.ts +6 -0
  548. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingServiceException.d.ts.map +1 -0
  549. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingServiceException.js +11 -0
  550. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingServiceException.js.map +1 -0
  551. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingValidationException.d.ts +6 -0
  552. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingValidationException.d.ts.map +1 -0
  553. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingValidationException.js +11 -0
  554. package/dist/models/processings/workspaceFiles/exceptions/WorkspaceFileProcessingValidationException.js.map +1 -0
  555. package/dist/services/aggregations/doctors/DoctorAggregationService.Exceptions.d.ts +4 -0
  556. package/dist/services/aggregations/doctors/DoctorAggregationService.Exceptions.d.ts.map +1 -0
  557. package/dist/services/aggregations/doctors/DoctorAggregationService.Exceptions.js +18 -0
  558. package/dist/services/aggregations/doctors/DoctorAggregationService.Exceptions.js.map +1 -0
  559. package/dist/services/aggregations/doctors/DoctorAggregationService.d.ts +16 -0
  560. package/dist/services/aggregations/doctors/DoctorAggregationService.d.ts.map +1 -0
  561. package/dist/services/aggregations/doctors/DoctorAggregationService.js +36 -0
  562. package/dist/services/aggregations/doctors/DoctorAggregationService.js.map +1 -0
  563. package/dist/services/foundations/accounts/AccountService.Exceptions.d.ts +4 -0
  564. package/dist/services/foundations/accounts/AccountService.Exceptions.d.ts.map +1 -0
  565. package/dist/services/foundations/accounts/AccountService.Exceptions.js +55 -0
  566. package/dist/services/foundations/accounts/AccountService.Exceptions.js.map +1 -0
  567. package/dist/services/foundations/accounts/AccountService.Validations.d.ts +8 -0
  568. package/dist/services/foundations/accounts/AccountService.Validations.d.ts.map +1 -0
  569. package/dist/services/foundations/accounts/AccountService.Validations.js +55 -0
  570. package/dist/services/foundations/accounts/AccountService.Validations.js.map +1 -0
  571. package/dist/services/foundations/accounts/AccountService.d.ts +18 -0
  572. package/dist/services/foundations/accounts/AccountService.d.ts.map +1 -0
  573. package/dist/services/foundations/accounts/AccountService.js +68 -0
  574. package/dist/services/foundations/accounts/AccountService.js.map +1 -0
  575. package/dist/services/foundations/configs/ConfigService.Exceptions.d.ts +4 -0
  576. package/dist/services/foundations/configs/ConfigService.Exceptions.d.ts.map +1 -0
  577. package/dist/services/foundations/configs/ConfigService.Exceptions.js +51 -0
  578. package/dist/services/foundations/configs/ConfigService.Exceptions.js.map +1 -0
  579. package/dist/services/foundations/configs/ConfigService.Validations.d.ts +6 -0
  580. package/dist/services/foundations/configs/ConfigService.Validations.d.ts.map +1 -0
  581. package/dist/services/foundations/configs/ConfigService.Validations.js +118 -0
  582. package/dist/services/foundations/configs/ConfigService.Validations.js.map +1 -0
  583. package/dist/services/foundations/configs/ConfigService.d.ts +17 -0
  584. package/dist/services/foundations/configs/ConfigService.d.ts.map +1 -0
  585. package/dist/services/foundations/configs/ConfigService.js +215 -0
  586. package/dist/services/foundations/configs/ConfigService.js.map +1 -0
  587. package/dist/services/foundations/processes/ProcessService.Exceptions.d.ts +4 -0
  588. package/dist/services/foundations/processes/ProcessService.Exceptions.d.ts.map +1 -0
  589. package/dist/services/foundations/processes/ProcessService.Exceptions.js +30 -0
  590. package/dist/services/foundations/processes/ProcessService.Exceptions.js.map +1 -0
  591. package/dist/services/foundations/processes/ProcessService.Validations.d.ts +2 -0
  592. package/dist/services/foundations/processes/ProcessService.Validations.d.ts.map +1 -0
  593. package/dist/services/foundations/processes/ProcessService.Validations.js +22 -0
  594. package/dist/services/foundations/processes/ProcessService.Validations.js.map +1 -0
  595. package/dist/services/foundations/processes/ProcessService.d.ts +11 -0
  596. package/dist/services/foundations/processes/ProcessService.d.ts.map +1 -0
  597. package/dist/services/foundations/processes/ProcessService.js +23 -0
  598. package/dist/services/foundations/processes/ProcessService.js.map +1 -0
  599. package/dist/services/foundations/registrySkills/RegistrySkillService.Exceptions.d.ts +4 -0
  600. package/dist/services/foundations/registrySkills/RegistrySkillService.Exceptions.d.ts.map +1 -0
  601. package/dist/services/foundations/registrySkills/RegistrySkillService.Exceptions.js +42 -0
  602. package/dist/services/foundations/registrySkills/RegistrySkillService.Exceptions.js.map +1 -0
  603. package/dist/services/foundations/registrySkills/RegistrySkillService.Validations.d.ts +5 -0
  604. package/dist/services/foundations/registrySkills/RegistrySkillService.Validations.d.ts.map +1 -0
  605. package/dist/services/foundations/registrySkills/RegistrySkillService.Validations.js +37 -0
  606. package/dist/services/foundations/registrySkills/RegistrySkillService.Validations.js.map +1 -0
  607. package/dist/services/foundations/registrySkills/RegistrySkillService.d.ts +11 -0
  608. package/dist/services/foundations/registrySkills/RegistrySkillService.d.ts.map +1 -0
  609. package/dist/services/foundations/registrySkills/RegistrySkillService.js +28 -0
  610. package/dist/services/foundations/registrySkills/RegistrySkillService.js.map +1 -0
  611. package/dist/services/foundations/secrets/SecretService.Exceptions.d.ts +4 -0
  612. package/dist/services/foundations/secrets/SecretService.Exceptions.d.ts.map +1 -0
  613. package/dist/services/foundations/secrets/SecretService.Exceptions.js +49 -0
  614. package/dist/services/foundations/secrets/SecretService.Exceptions.js.map +1 -0
  615. package/dist/services/foundations/secrets/SecretService.Validations.d.ts +4 -0
  616. package/dist/services/foundations/secrets/SecretService.Validations.d.ts.map +1 -0
  617. package/dist/services/foundations/secrets/SecretService.Validations.js +42 -0
  618. package/dist/services/foundations/secrets/SecretService.Validations.js.map +1 -0
  619. package/dist/services/foundations/secrets/SecretService.d.ts +15 -0
  620. package/dist/services/foundations/secrets/SecretService.d.ts.map +1 -0
  621. package/dist/services/foundations/secrets/SecretService.js +82 -0
  622. package/dist/services/foundations/secrets/SecretService.js.map +1 -0
  623. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Exceptions.d.ts +4 -0
  624. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Exceptions.d.ts.map +1 -0
  625. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Exceptions.js +49 -0
  626. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Exceptions.js.map +1 -0
  627. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Validations.d.ts +14 -0
  628. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Validations.d.ts.map +1 -0
  629. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Validations.js +119 -0
  630. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.Validations.js.map +1 -0
  631. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.d.ts +21 -0
  632. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.d.ts.map +1 -0
  633. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.js +195 -0
  634. package/dist/services/foundations/workspaceFiles/WorkspaceFileService.js.map +1 -0
  635. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.Exceptions.d.ts +4 -0
  636. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.Exceptions.d.ts.map +1 -0
  637. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.Exceptions.js +41 -0
  638. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.Exceptions.js.map +1 -0
  639. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.d.ts +27 -0
  640. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.d.ts.map +1 -0
  641. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.js +155 -0
  642. package/dist/services/orchestrations/connections/ConnectionOrchestrationService.js.map +1 -0
  643. package/dist/services/processings/accounts/AccountProcessingService.Exceptions.d.ts +4 -0
  644. package/dist/services/processings/accounts/AccountProcessingService.Exceptions.d.ts.map +1 -0
  645. package/dist/services/processings/accounts/AccountProcessingService.Exceptions.js +35 -0
  646. package/dist/services/processings/accounts/AccountProcessingService.Exceptions.js.map +1 -0
  647. package/dist/services/processings/accounts/AccountProcessingService.d.ts +18 -0
  648. package/dist/services/processings/accounts/AccountProcessingService.d.ts.map +1 -0
  649. package/dist/services/processings/accounts/AccountProcessingService.js +53 -0
  650. package/dist/services/processings/accounts/AccountProcessingService.js.map +1 -0
  651. package/dist/services/processings/configs/ConfigProcessingService.Exceptions.d.ts +4 -0
  652. package/dist/services/processings/configs/ConfigProcessingService.Exceptions.d.ts.map +1 -0
  653. package/dist/services/processings/configs/ConfigProcessingService.Exceptions.js +38 -0
  654. package/dist/services/processings/configs/ConfigProcessingService.Exceptions.js.map +1 -0
  655. package/dist/services/processings/configs/ConfigProcessingService.d.ts +24 -0
  656. package/dist/services/processings/configs/ConfigProcessingService.d.ts.map +1 -0
  657. package/dist/services/processings/configs/ConfigProcessingService.js +157 -0
  658. package/dist/services/processings/configs/ConfigProcessingService.js.map +1 -0
  659. package/dist/services/processings/processes/ProcessProcessingService.Exceptions.d.ts +4 -0
  660. package/dist/services/processings/processes/ProcessProcessingService.Exceptions.d.ts.map +1 -0
  661. package/dist/services/processings/processes/ProcessProcessingService.Exceptions.js +33 -0
  662. package/dist/services/processings/processes/ProcessProcessingService.Exceptions.js.map +1 -0
  663. package/dist/services/processings/processes/ProcessProcessingService.d.ts +13 -0
  664. package/dist/services/processings/processes/ProcessProcessingService.d.ts.map +1 -0
  665. package/dist/services/processings/processes/ProcessProcessingService.js +66 -0
  666. package/dist/services/processings/processes/ProcessProcessingService.js.map +1 -0
  667. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.Exceptions.d.ts +4 -0
  668. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.Exceptions.d.ts.map +1 -0
  669. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.Exceptions.js +36 -0
  670. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.Exceptions.js.map +1 -0
  671. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.d.ts +16 -0
  672. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.d.ts.map +1 -0
  673. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.js +67 -0
  674. package/dist/services/processings/registrySkills/RegistrySkillProcessingService.js.map +1 -0
  675. package/dist/services/processings/secrets/SecretProcessingService.Exceptions.d.ts +4 -0
  676. package/dist/services/processings/secrets/SecretProcessingService.Exceptions.d.ts.map +1 -0
  677. package/dist/services/processings/secrets/SecretProcessingService.Exceptions.js +38 -0
  678. package/dist/services/processings/secrets/SecretProcessingService.Exceptions.js.map +1 -0
  679. package/dist/services/processings/secrets/SecretProcessingService.d.ts +25 -0
  680. package/dist/services/processings/secrets/SecretProcessingService.d.ts.map +1 -0
  681. package/dist/services/processings/secrets/SecretProcessingService.js +180 -0
  682. package/dist/services/processings/secrets/SecretProcessingService.js.map +1 -0
  683. package/dist/services/processings/workspaceFiles/Globs.d.ts +2 -0
  684. package/dist/services/processings/workspaceFiles/Globs.d.ts.map +1 -0
  685. package/dist/services/processings/workspaceFiles/Globs.js +18 -0
  686. package/dist/services/processings/workspaceFiles/Globs.js.map +1 -0
  687. package/dist/services/processings/workspaceFiles/IgnoreRules.d.ts +9 -0
  688. package/dist/services/processings/workspaceFiles/IgnoreRules.d.ts.map +1 -0
  689. package/dist/services/processings/workspaceFiles/IgnoreRules.js +72 -0
  690. package/dist/services/processings/workspaceFiles/IgnoreRules.js.map +1 -0
  691. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Exceptions.d.ts +4 -0
  692. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Exceptions.d.ts.map +1 -0
  693. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Exceptions.js +34 -0
  694. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Exceptions.js.map +1 -0
  695. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Validations.d.ts +9 -0
  696. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Validations.d.ts.map +1 -0
  697. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Validations.js +76 -0
  698. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.Validations.js.map +1 -0
  699. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.d.ts +59 -0
  700. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.d.ts.map +1 -0
  701. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.js +493 -0
  702. package/dist/services/processings/workspaceFiles/WorkspaceFileProcessingService.js.map +1 -0
  703. package/dist/shared/client-version.d.ts +2 -0
  704. package/dist/shared/client-version.d.ts.map +1 -0
  705. package/dist/shared/client-version.js +5 -0
  706. package/dist/shared/client-version.js.map +1 -0
  707. package/package.json +62 -0
  708. package/skills/native/coding-agent.md +33 -0
  709. package/skills/text/coding-agent.md +28 -0
@@ -0,0 +1,42 @@
1
+ import { InvalidSecretException } from "../../../models/foundations/secrets/exceptions/InvalidSecretException.js";
2
+ // The names the store uses are machine-made: `api-key:<profileId>`, `refresh-token:<accountId>`,
3
+ // `registry-token`. A name outside that alphabet is a caller building one by hand out of something
4
+ // a user typed, and the store is not the place to find that out.
5
+ const SECRET_NAME = /^[A-Za-z0-9_.:-]{1,200}$/;
6
+ export function validateName(name) {
7
+ if (name.trim().length === 0) {
8
+ throw new InvalidSecretException("could not read the secret: no name was given");
9
+ }
10
+ if (!SECRET_NAME.test(name)) {
11
+ throw new InvalidSecretException(`could not read the secret: '${name}' is not a secret name`);
12
+ }
13
+ }
14
+ // The store is read into the one shape both applications write. A file that is not that shape is
15
+ // refused rather than guessed at, because guessing here hands back the wrong key or none.
16
+ export function validateStore(document) {
17
+ const store = parseOrRefuse(document);
18
+ if (store === null || typeof store !== "object" || Array.isArray(store)) {
19
+ throw new InvalidSecretException("could not read the secret: the store is not a JSON object");
20
+ }
21
+ const secrets = store.secrets;
22
+ if (secrets === null || secrets === undefined || typeof secrets !== "object" || Array.isArray(secrets)) {
23
+ throw new InvalidSecretException("could not read the secret: the store carries no secrets map");
24
+ }
25
+ return secrets;
26
+ }
27
+ function parseOrRefuse(document) {
28
+ try {
29
+ return JSON.parse(document);
30
+ }
31
+ catch {
32
+ throw new InvalidSecretException("could not read the secret: the store is not valid JSON");
33
+ }
34
+ }
35
+ // A secret nobody set is not a secret. Writing an empty one would look like success and read back
36
+ // as "no such name", and the sign-in that follows would fail somewhere else entirely.
37
+ export function validateValue(value, name) {
38
+ if (value.length === 0) {
39
+ throw new InvalidSecretException(`could not write the secret: '${name}' was given no value`);
40
+ }
41
+ }
42
+ //# sourceMappingURL=SecretService.Validations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretService.Validations.js","sourceRoot":"","sources":["../../../../src/services/foundations/secrets/SecretService.Validations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0EAA0E,CAAC;AAElH,iGAAiG;AACjG,mGAAmG;AACnG,iEAAiE;AACjE,MAAM,WAAW,GAAG,0BAA0B,CAAC;AAE/C,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,sBAAsB,CAAC,8CAA8C,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,sBAAsB,CAAC,+BAA+B,IAAI,wBAAwB,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,sBAAsB,CAAC,2DAA2D,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,OAAO,GAAI,KAA+B,CAAC,OAAO,CAAC;IAEzD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,sBAAsB,CAAC,6DAA6D,CAAC,CAAC;IAClG,CAAC;IAED,OAAO,OAAiC,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,sBAAsB,CAAC,wDAAwD,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,IAAY;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,sBAAsB,CAAC,gCAAgC,IAAI,sBAAsB,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { LoggingBroker } from "@hassanhabib/standard-agents";
2
+ import type { SecretBroker } from "../../../brokers/secrets/SecretBroker.js";
3
+ export declare class SecretService {
4
+ private readonly secretBroker;
5
+ private readonly loggingBroker;
6
+ private readonly tryCatch;
7
+ constructor(secretBroker: SecretBroker, loggingBroker: LoggingBroker);
8
+ retrieveSecret(name: string): Promise<string | null>;
9
+ modifySecret(name: string, value: string): Promise<void>;
10
+ removeSecret(name: string): Promise<void>;
11
+ acquireLock(holder: string): Promise<void>;
12
+ private readStoreOrEmpty;
13
+ releaseLock(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=SecretService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretService.d.ts","sourceRoot":"","sources":["../../../../src/services/foundations/secrets/SecretService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAS7E,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAEjB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa;IAMpE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcpD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YASnC,gBAAgB;IAYvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpC"}
@@ -0,0 +1,82 @@
1
+ import { createTryCatch } from "./SecretService.Exceptions.js";
2
+ import { validateName, validateStore, validateValue } from "./SecretService.Validations.js";
3
+ // One secret out of the store (SPEC.md 14.4). The broker hands over the whole store because that is
4
+ // what the file holds; naming a secret and finding it is this service's work.
5
+ //
6
+ // A name the store does not hold answers null rather than raising. Not having signed in yet is the
7
+ // ordinary case, and an exception is not how the ordinary case is said.
8
+ export class SecretService {
9
+ secretBroker;
10
+ loggingBroker;
11
+ tryCatch;
12
+ constructor(secretBroker, loggingBroker) {
13
+ this.secretBroker = secretBroker;
14
+ this.loggingBroker = loggingBroker;
15
+ this.tryCatch = createTryCatch(this.loggingBroker);
16
+ }
17
+ retrieveSecret(name) {
18
+ return this.tryCatch(async () => {
19
+ validateName(name);
20
+ const document = await this.secretBroker.selectStore();
21
+ const secrets = validateStore(document);
22
+ return secrets[name] ?? null;
23
+ });
24
+ }
25
+ // One secret into the store, leaving every other one exactly as it was. The whole blob is
26
+ // rewritten because that is what the file holds, which is why this must be done under the lock:
27
+ // two writers each reading and writing back would each lose the other's key.
28
+ modifySecret(name, value) {
29
+ return this.tryCatch(async () => {
30
+ validateName(name);
31
+ validateValue(value, name);
32
+ const secrets = await this.readStoreOrEmpty();
33
+ await this.secretBroker.upsertStore(JSON.stringify({ schemaVersion: SECRET_STORE_SCHEMA_VERSION, secrets: { ...secrets, [name]: value } }, null, 2));
34
+ });
35
+ }
36
+ // One secret out of the store. A different act from writing an empty one: an empty secret is
37
+ // refused because it would look like success and read back as "no such name", and a signing out
38
+ // that used it to forget a key would fail on the one machine that most needs to forget.
39
+ removeSecret(name) {
40
+ return this.tryCatch(async () => {
41
+ validateName(name);
42
+ const secrets = await this.readStoreOrEmpty();
43
+ // Forgetting something already forgotten is not a failure, and rewriting the whole store to
44
+ // change nothing is a chance for two writers to lose each other's work.
45
+ if (!(name in secrets)) {
46
+ return;
47
+ }
48
+ const kept = Object.fromEntries(Object.entries(secrets).filter(([held]) => held !== name));
49
+ await this.secretBroker.upsertStore(JSON.stringify({ schemaVersion: SECRET_STORE_SCHEMA_VERSION, secrets: kept }, null, 2));
50
+ });
51
+ }
52
+ // One attempt and no waiting. Whether to try again, and whether a holder has been there long
53
+ // enough to be taken from, is the acquisition loop's judgement.
54
+ acquireLock(holder) {
55
+ return this.tryCatch(async () => {
56
+ await this.secretBroker.insertLock(holder);
57
+ });
58
+ }
59
+ // A write into a store that is not there creates it. That is what upsert means, and it is the
60
+ // same rule `addFile` follows: a read reports what is there, a write makes what it needs. The
61
+ // errno is read here, in the foundation, because that is the only tier allowed to know one.
62
+ async readStoreOrEmpty() {
63
+ try {
64
+ return validateStore(await this.secretBroker.selectStore());
65
+ }
66
+ catch (error) {
67
+ if (error?.code === "ENOENT") {
68
+ return {};
69
+ }
70
+ throw error;
71
+ }
72
+ }
73
+ releaseLock() {
74
+ return this.tryCatch(async () => {
75
+ await this.secretBroker.deleteLock();
76
+ });
77
+ }
78
+ }
79
+ // The shape both applications write (SPEC.md 14.4). Named here because this service is what puts it
80
+ // on disk; the broker hands over whatever text it finds.
81
+ const SECRET_STORE_SCHEMA_VERSION = 1;
82
+ //# sourceMappingURL=SecretService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretService.js","sourceRoot":"","sources":["../../../../src/services/foundations/secrets/SecretService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { LoggingBroker } from "@hassanhabib/standard-agents";
2
+ export type TryCatch = <T>(routine: () => Promise<T>) => Promise<T>;
3
+ export declare function createTryCatch(loggingBroker: LoggingBroker): TryCatch;
4
+ //# sourceMappingURL=WorkspaceFileService.Exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceFileService.Exceptions.d.ts","sourceRoot":"","sources":["../../../../src/services/foundations/workspaceFiles/WorkspaceFileService.Exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAalE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAIpE,wBAAgB,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,QAAQ,CAqBrE"}
@@ -0,0 +1,49 @@
1
+ import { FailedWorkspaceFileDependencyException } from "../../../models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileDependencyException.js";
2
+ import { FailedWorkspaceFileServiceException } from "../../../models/foundations/workspaceFiles/exceptions/FailedWorkspaceFileServiceException.js";
3
+ import { InvalidWorkspaceFileException } from "../../../models/foundations/workspaceFiles/exceptions/InvalidWorkspaceFileException.js";
4
+ import { WorkspaceFileDependencyException } from "../../../models/foundations/workspaceFiles/exceptions/WorkspaceFileDependencyException.js";
5
+ import { WorkspaceFileServiceException } from "../../../models/foundations/workspaceFiles/exceptions/WorkspaceFileServiceException.js";
6
+ import { WorkspaceFileValidationException } from "../../../models/foundations/workspaceFiles/exceptions/WorkspaceFileValidationException.js";
7
+ const FILE_SYSTEM_CODES = new Set(["EACCES", "EPERM", "EBUSY", "EMFILE", "ENFILE", "EIO", "ELOOP", "ENOTDIR", "ENAMETOOLONG"]);
8
+ export function createTryCatch(loggingBroker) {
9
+ return async function tryCatch(routine) {
10
+ try {
11
+ return await routine();
12
+ }
13
+ catch (error) {
14
+ if (error instanceof InvalidWorkspaceFileException) {
15
+ throw await createAndLogValidationException(loggingBroker, error);
16
+ }
17
+ if (isFileSystemFault(error)) {
18
+ throw await createAndLogDependencyException(loggingBroker, error);
19
+ }
20
+ const failedWorkspaceFileServiceException = new FailedWorkspaceFileServiceException("Failed workspace file service error occurred, contact support.", error instanceof Error ? error : new Error(String(error)));
21
+ throw await createAndLogServiceException(loggingBroker, failedWorkspaceFileServiceException);
22
+ }
23
+ };
24
+ }
25
+ // Read by code rather than by message, because the message is the operating system's and it
26
+ // changes with the locale.
27
+ function isFileSystemFault(error) {
28
+ return (typeof error === "object" &&
29
+ error !== null &&
30
+ "code" in error &&
31
+ FILE_SYSTEM_CODES.has(String(error.code)));
32
+ }
33
+ async function createAndLogValidationException(loggingBroker, error) {
34
+ const workspaceFileValidationException = new WorkspaceFileValidationException("Workspace file validation error occurred, fix the error and try again.", error);
35
+ await loggingBroker.logError(workspaceFileValidationException);
36
+ return workspaceFileValidationException;
37
+ }
38
+ async function createAndLogDependencyException(loggingBroker, error) {
39
+ const failedWorkspaceFileDependencyException = new FailedWorkspaceFileDependencyException("Failed workspace file dependency error occurred, contact support.", error);
40
+ const workspaceFileDependencyException = new WorkspaceFileDependencyException("Workspace file dependency error occurred, contact support.", failedWorkspaceFileDependencyException);
41
+ await loggingBroker.logError(workspaceFileDependencyException);
42
+ return workspaceFileDependencyException;
43
+ }
44
+ async function createAndLogServiceException(loggingBroker, error) {
45
+ const workspaceFileServiceException = new WorkspaceFileServiceException("Workspace file service error occurred, contact support.", error);
46
+ await loggingBroker.logError(workspaceFileServiceException);
47
+ return workspaceFileServiceException;
48
+ }
49
+ //# sourceMappingURL=WorkspaceFileService.Exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceFileService.Exceptions.js","sourceRoot":"","sources":["../../../../src/services/foundations/workspaceFiles/WorkspaceFileService.Exceptions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sCAAsC,EAAE,MAAM,iGAAiG,CAAC;AACzJ,OAAO,EAAE,mCAAmC,EAAE,MAAM,8FAA8F,CAAC;AACnJ,OAAO,EAAE,6BAA6B,EAAE,MAAM,wFAAwF,CAAC;AACvI,OAAO,EAAE,gCAAgC,EAAE,MAAM,2FAA2F,CAAC;AAC7I,OAAO,EAAE,6BAA6B,EAAE,MAAM,wFAAwF,CAAC;AACvI,OAAO,EAAE,gCAAgC,EAAE,MAAM,2FAA2F,CAAC;AAQ7I,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AAE/H,MAAM,UAAU,cAAc,CAAC,aAA4B;IACzD,OAAO,KAAK,UAAU,QAAQ,CAAI,OAAyB;QACzD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,6BAA6B,EAAE,CAAC;gBACnD,MAAM,MAAM,+BAA+B,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,MAAM,+BAA+B,CAAC,aAAa,EAAE,KAAc,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,mCAAmC,GAAG,IAAI,mCAAmC,CACjF,gEAAgE,EAChE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;YAEF,MAAM,MAAM,4BAA4B,CAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,2BAA2B;AAC3B,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAE,KAA2B,CAAC,IAAI,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,aAA4B,EAC5B,KAAY;IAEZ,MAAM,gCAAgC,GAAG,IAAI,gCAAgC,CAC3E,wEAAwE,EACxE,KAAK,CACN,CAAC;IAEF,MAAM,aAAa,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAE/D,OAAO,gCAAgC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,aAA4B,EAC5B,KAAY;IAEZ,MAAM,sCAAsC,GAAG,IAAI,sCAAsC,CACvF,mEAAmE,EACnE,KAAK,CACN,CAAC;IAEF,MAAM,gCAAgC,GAAG,IAAI,gCAAgC,CAC3E,4DAA4D,EAC5D,sCAAsC,CACvC,CAAC;IAEF,MAAM,aAAa,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAE/D,OAAO,gCAAgC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,aAA4B,EAC5B,KAAY;IAEZ,MAAM,6BAA6B,GAAG,IAAI,6BAA6B,CACrE,yDAAyD,EACzD,KAAK,CACN,CAAC;IAEF,MAAM,aAAa,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAE5D,OAAO,6BAA6B,CAAC;AACvC,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const MAXIMUM_FILE_BYTES = 1048576;
2
+ export declare function validatePath(path: string): void;
3
+ export declare function validateInsideWorkspace(resolvedPath: string, resolvedRoot: string): void;
4
+ export declare function validateNotSensitive(resolvedPath: string): void;
5
+ export declare function validateExists(exists: boolean, path: string): void;
6
+ export declare function validateIsFile(isDirectory: boolean, path: string): void;
7
+ export declare function validateIsDirectory(isDirectory: boolean, path: string): void;
8
+ export declare function validateSize(bytes: number, path: string): void;
9
+ export declare function validateIsText(content: string, path: string): void;
10
+ export declare function validateDoesNotExist(exists: boolean, path: string): void;
11
+ export declare function validateSnapshotKey(key: string): void;
12
+ export declare function validateSnapshotsRoot(snapshotsRoot: string): void;
13
+ export declare function validateIsNotDirectory(isDirectory: boolean, path: string): void;
14
+ //# sourceMappingURL=WorkspaceFileService.Validations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceFileService.Validations.d.ts","sourceRoot":"","sources":["../../../../src/services/foundations/workspaceFiles/WorkspaceFileService.Validations.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAS5C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI/C;AAID,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAOxF;AAKD,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAc/D;AAUD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQlE;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIvE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI5E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI9D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIlE;AAaD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIxE;AAOD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIrD;AAID,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAIjE;AAKD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAM/E"}
@@ -0,0 +1,119 @@
1
+ import { InvalidWorkspaceFileException } from "../../../models/foundations/workspaceFiles/exceptions/InvalidWorkspaceFileException.js";
2
+ // The read floor (SPEC.md 6.1, 7.4). These refusals are not the perimeter and are not a
3
+ // permission mode: they are the things this agent will not read whatever anybody permits, checked
4
+ // before any tool logic runs, so a tool cannot be written that forgets them.
5
+ //
6
+ // Every message begins with a marker the orchestrator's loop-breaker recognises, because the
7
+ // model reads these words and a refusal it cannot classify is one it will retry forever.
8
+ // The hard ceiling. The read tool pages by line range with its own smaller cap; this is the point
9
+ // at which a file is not something to page through but something to refuse.
10
+ export const MAXIMUM_FILE_BYTES = 1_048_576;
11
+ const SENSITIVE_NAMES = new Set([".npmrc", ".netrc", "secrets.json"]);
12
+ const SENSITIVE_SUFFIXES = [".pem", ".key", ".pfx"];
13
+ // A NUL byte is the cheapest honest test for "this is not text". Handing a model the decoded bytes
14
+ // of an image teaches it nothing and costs a fortune in tokens.
15
+ const NOT_TEXT = /\u0000/;
16
+ export function validatePath(path) {
17
+ if (path.trim().length === 0) {
18
+ throw new InvalidWorkspaceFileException("could not read: no path was given");
19
+ }
20
+ }
21
+ // The boundary is checked against the resolved path, never the one that was asked for, because a
22
+ // symbolic link is exactly how a path inside the workspace becomes a file outside it.
23
+ export function validateInsideWorkspace(resolvedPath, resolvedRoot) {
24
+ const path = withSeparators(resolvedPath);
25
+ const root = withSeparators(resolvedRoot);
26
+ if (path !== root && !path.startsWith(root.endsWith("/") ? root : `${root}/`)) {
27
+ throw new InvalidWorkspaceFileException(`permission denied: ${resolvedPath} is outside the workspace`);
28
+ }
29
+ }
30
+ // Named by shape rather than by list, so a secret in a file nobody thought of is still refused as
31
+ // long as it is shaped like one. The whole of .git is refused because a repository's object store
32
+ // holds every version of everything, including the secret that was committed and then removed.
33
+ export function validateNotSensitive(resolvedPath) {
34
+ const segments = withSeparators(resolvedPath).split("/");
35
+ const name = (segments[segments.length - 1] ?? "").toLowerCase();
36
+ const isSensitive = segments.includes(".git") ||
37
+ name.startsWith(".env") ||
38
+ name.startsWith("id_") ||
39
+ SENSITIVE_NAMES.has(name) ||
40
+ SENSITIVE_SUFFIXES.some((suffix) => name.endsWith(suffix));
41
+ if (isSensitive) {
42
+ throw new InvalidWorkspaceFileException(`permission denied: ${resolvedPath} is a sensitive file`);
43
+ }
44
+ }
45
+ // Nothing is there, and what to do about it.
46
+ //
47
+ // The fact alone was true and useless. A model that read a path it was about to write was told the
48
+ // path is not there, learned nothing it could act on, and read it again with the same path until
49
+ // the loop was broken for it and the person was told their file might be too large to read.
50
+ //
51
+ // Both ways out are named because both are real: the path may be wrong, in which case looking is
52
+ // the move, or the file may simply not exist yet, in which case making it is.
53
+ export function validateExists(exists, path) {
54
+ if (!exists) {
55
+ throw new InvalidWorkspaceFileException(`does not exist: ${path}. Nothing is at that path. ` +
56
+ `Look with list_directory or glob_files if you expected something there, ` +
57
+ `and use create_new_file if this is a file you mean to write`);
58
+ }
59
+ }
60
+ export function validateIsFile(isDirectory, path) {
61
+ if (isDirectory) {
62
+ throw new InvalidWorkspaceFileException(`could not read: ${path} is a directory`);
63
+ }
64
+ }
65
+ export function validateIsDirectory(isDirectory, path) {
66
+ if (!isDirectory) {
67
+ throw new InvalidWorkspaceFileException(`could not read: ${path} is not a directory`);
68
+ }
69
+ }
70
+ export function validateSize(bytes, path) {
71
+ if (bytes > MAXIMUM_FILE_BYTES) {
72
+ throw new InvalidWorkspaceFileException(`too large: ${path} is ${bytes} bytes; read it by line range instead`);
73
+ }
74
+ }
75
+ export function validateIsText(content, path) {
76
+ if (NOT_TEXT.test(content)) {
77
+ throw new InvalidWorkspaceFileException(`could not read: ${path} is not a text file`);
78
+ }
79
+ }
80
+ function withSeparators(path) {
81
+ return path.replace(/\\/g, "/");
82
+ }
83
+ // A create that found something there is a create that would have destroyed it. Refusing is the
84
+ // only answer that cannot lose work the user did not mention.
85
+ //
86
+ // And the refusal names the way on. It used to stop at the fact, and a model told only that its
87
+ // call did not happen goes looking for a reason: it concluded its edit had been held for review,
88
+ // told the user so, and waited for an approval nobody could give. A refusal that does not say what
89
+ // to do next is how a run gets stuck.
90
+ export function validateDoesNotExist(exists, path) {
91
+ if (exists) {
92
+ throw new InvalidWorkspaceFileException(`already exists: ${path}. Use write_file to replace it, after reading it.`);
93
+ }
94
+ }
95
+ // A key names one snapshot inside the snapshots directory and nothing outside it. A key with a
96
+ // separator or a dot-dot in it is a path, and a path is how a restore writes somewhere nobody
97
+ // asked it to.
98
+ const SNAPSHOT_KEY = /^[A-Za-z0-9_.-]{1,120}$/;
99
+ export function validateSnapshotKey(key) {
100
+ if (!SNAPSHOT_KEY.test(key) || key.includes("..")) {
101
+ throw new InvalidWorkspaceFileException(`could not read: '${key}' is not a snapshot key`);
102
+ }
103
+ }
104
+ // A composition that named no snapshots directory cannot keep one. Saying so is better than writing
105
+ // the bytes to a path that begins with a slash and hoping nobody notices.
106
+ export function validateSnapshotsRoot(snapshotsRoot) {
107
+ if (snapshotsRoot.trim().length === 0) {
108
+ throw new InvalidWorkspaceFileException("could not write: this composition keeps no snapshots");
109
+ }
110
+ }
111
+ // A directory is not a file, and taking one out means taking out everything inside it. This client
112
+ // will not do that from a model's request: the blast radius of a wrong path is the whole of it, and
113
+ // there is no anchor, no diff and no preview that can show a person what they are agreeing to.
114
+ export function validateIsNotDirectory(isDirectory, path) {
115
+ if (isDirectory) {
116
+ throw new InvalidWorkspaceFileException(`could not delete: ${path} is a directory. This client deletes files, one at a time.`);
117
+ }
118
+ }
119
+ //# sourceMappingURL=WorkspaceFileService.Validations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceFileService.Validations.js","sourceRoot":"","sources":["../../../../src/services/foundations/workspaceFiles/WorkspaceFileService.Validations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { FileBroker, LoggingBroker } from "@hassanhabib/standard-agents";
2
+ import type { WorkspaceEntry } from "../../../models/foundations/workspaceFiles/WorkspaceEntry.js";
3
+ export declare class WorkspaceFileService {
4
+ private readonly fileBroker;
5
+ private readonly loggingBroker;
6
+ private readonly workspaceRoot;
7
+ private readonly snapshotsRoot;
8
+ private readonly tryCatch;
9
+ constructor(fileBroker: FileBroker, loggingBroker: LoggingBroker, workspaceRoot: string, snapshotsRoot?: string);
10
+ retrieveFile(asked: string): Promise<string>;
11
+ retrieveEntries(asked: string): Promise<readonly WorkspaceEntry[]>;
12
+ addFile(asked: string, content: string): Promise<void>;
13
+ modifyFile(asked: string, content: string): Promise<void>;
14
+ removePath(asked: string): Promise<void>;
15
+ addSnapshot(key: string, content: string): Promise<void>;
16
+ retrieveSnapshot(key: string): Promise<string>;
17
+ private inWorkspace;
18
+ private writeInside;
19
+ private resolveWritePath;
20
+ }
21
+ //# sourceMappingURL=WorkspaceFileService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceFileService.d.ts","sourceRoot":"","sources":["../../../../src/services/foundations/workspaceFiles/WorkspaceFileService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAyBnG,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAGlC,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,EACrB,aAAa,SAAK;IASb,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B5C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;IAgDlE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAetD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BxC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBrD,OAAO,CAAC,WAAW;YAML,WAAW;YAYX,gBAAgB;CAa/B"}
@@ -0,0 +1,195 @@
1
+ import { isAbsolute } from "node:path";
2
+ import { createTryCatch } from "./WorkspaceFileService.Exceptions.js";
3
+ import { validateDoesNotExist, validateExists, validateInsideWorkspace, validateIsDirectory, validateIsFile, validateIsNotDirectory, validateIsText, validateNotSensitive, validatePath, validateSize, validateSnapshotKey, validateSnapshotsRoot, } from "./WorkspaceFileService.Validations.js";
4
+ // The workspace's files, as the agent is allowed to see them (SPEC.md 6.1, 7.4). One broker, and
5
+ // a floor under every tool that reads: outside the workspace, sensitive by shape, absent, a
6
+ // directory, too large, or not text, and the read never happens.
7
+ //
8
+ // The floor lives here rather than in the tools because a tool is a thing somebody writes next
9
+ // week. A rule enforced in the foundation is one a new tool inherits by existing; a rule enforced
10
+ // in a tool is one the next tool forgets.
11
+ export class WorkspaceFileService {
12
+ fileBroker;
13
+ loggingBroker;
14
+ workspaceRoot;
15
+ snapshotsRoot;
16
+ tryCatch;
17
+ constructor(fileBroker, loggingBroker, workspaceRoot, snapshotsRoot = "") {
18
+ this.fileBroker = fileBroker;
19
+ this.loggingBroker = loggingBroker;
20
+ this.workspaceRoot = workspaceRoot;
21
+ this.snapshotsRoot = snapshotsRoot;
22
+ this.tryCatch = createTryCatch(this.loggingBroker);
23
+ }
24
+ retrieveFile(asked) {
25
+ return this.tryCatch(async () => {
26
+ validatePath(asked);
27
+ const path = this.inWorkspace(asked);
28
+ const stat = await this.fileBroker.stat(path);
29
+ validateExists(stat !== null, path);
30
+ validateIsFile(stat?.isDirectory === true, path);
31
+ // Resolved before the boundary is judged, because a symbolic link is exactly how a path
32
+ // inside the workspace becomes a file outside it.
33
+ const resolvedPath = await this.fileBroker.realpath(path);
34
+ const resolvedRoot = await this.fileBroker.realpath(this.workspaceRoot);
35
+ validateInsideWorkspace(resolvedPath, resolvedRoot);
36
+ validateNotSensitive(resolvedPath);
37
+ validateSize(stat?.size ?? 0, path);
38
+ const content = await this.fileBroker.readFile(resolvedPath);
39
+ validateIsText(content, path);
40
+ return content;
41
+ });
42
+ }
43
+ // What a directory holds. The boundary and the sensitive shapes are judged for the directory
44
+ // itself; what is inside is listed as it is, because the existence of a file is not the secret,
45
+ // its contents are, and a model that can see a name it may not read can say so honestly.
46
+ //
47
+ // The repository store is the exception and is never listed, because walking it is never what
48
+ // anybody meant and it is enormous.
49
+ retrieveEntries(asked) {
50
+ return this.tryCatch(async () => {
51
+ validatePath(asked);
52
+ const path = this.inWorkspace(asked);
53
+ const stat = await this.fileBroker.stat(path);
54
+ validateExists(stat !== null, path);
55
+ validateIsDirectory(stat?.isDirectory === true, path);
56
+ const resolvedPath = await this.fileBroker.realpath(path);
57
+ const resolvedRoot = await this.fileBroker.realpath(this.workspaceRoot);
58
+ validateInsideWorkspace(resolvedPath, resolvedRoot);
59
+ validateNotSensitive(resolvedPath);
60
+ const names = await this.fileBroker.readdir(resolvedPath);
61
+ const entries = [];
62
+ for (const name of names) {
63
+ if (name === ".git") {
64
+ continue;
65
+ }
66
+ const entryPath = `${resolvedPath}/${name}`;
67
+ const entryStat = await this.fileBroker.stat(entryPath);
68
+ // A name that vanished between the listing and the look is simply gone; it is not a
69
+ // fault, and reporting it as one would make a listing race with the file system.
70
+ if (entryStat === null) {
71
+ continue;
72
+ }
73
+ entries.push({
74
+ name,
75
+ path: entryPath,
76
+ relativePath: relativeTo(resolvedRoot, entryPath),
77
+ modifiedOn: entryStat.modifiedOn,
78
+ isDirectory: entryStat.isDirectory,
79
+ size: entryStat.size,
80
+ });
81
+ }
82
+ return entries;
83
+ });
84
+ }
85
+ // A file the workspace does not have yet. The parent is resolved rather than the file, because a
86
+ // path that is not there has no real path of its own, and the boundary must still be judged
87
+ // against something the file system actually resolved.
88
+ addFile(asked, content) {
89
+ return this.tryCatch(async () => {
90
+ validatePath(asked);
91
+ const path = this.inWorkspace(asked);
92
+ validateIsText(content, path);
93
+ validateSize(Buffer.byteLength(content, "utf8"), path);
94
+ validateDoesNotExist((await this.fileBroker.stat(path)) !== null, path);
95
+ await this.writeInside(path, content);
96
+ });
97
+ }
98
+ // A file the workspace already has. Refusing a path that is not there is what keeps a modify from
99
+ // quietly becoming a create, which is the difference between editing a file and inventing one.
100
+ modifyFile(asked, content) {
101
+ return this.tryCatch(async () => {
102
+ validatePath(asked);
103
+ const path = this.inWorkspace(asked);
104
+ validateIsText(content, path);
105
+ validateSize(Buffer.byteLength(content, "utf8"), path);
106
+ const stat = await this.fileBroker.stat(path);
107
+ validateExists(stat !== null, path);
108
+ validateIsFile(stat?.isDirectory === true, path);
109
+ await this.writeInside(path, content);
110
+ });
111
+ }
112
+ // A file taken out of the workspace.
113
+ //
114
+ // The same floor as every other write: inside the workspace once the links are resolved, and
115
+ // never a path shaped like a secret. A delete needs it more than a write does, because a write
116
+ // to the wrong place leaves the right place alone and a delete does not.
117
+ removePath(asked) {
118
+ return this.tryCatch(async () => {
119
+ validatePath(asked);
120
+ const path = this.inWorkspace(asked);
121
+ const stat = await this.fileBroker.stat(path);
122
+ validateExists(stat !== null, path);
123
+ validateIsNotDirectory(stat?.isDirectory === true, path);
124
+ const resolvedPath = await this.fileBroker.realpath(path);
125
+ const resolvedRoot = await this.fileBroker.realpath(this.workspaceRoot);
126
+ validateInsideWorkspace(resolvedPath, resolvedRoot);
127
+ validateNotSensitive(resolvedPath);
128
+ await this.fileBroker.unlink(resolvedPath);
129
+ });
130
+ }
131
+ // What a file looked like before the agent touched it.
132
+ //
133
+ // Snapshots live outside the workspace, not inside it. A copy kept beside the original is a copy
134
+ // the next glob finds, the next grep searches and the next commit includes, and an undo that
135
+ // dirties the repository it is undoing in is not much of an undo.
136
+ //
137
+ // The key is opaque here: the tier above decides what a snapshot belongs to, and this only has to
138
+ // put the bytes somewhere it can find them again.
139
+ addSnapshot(key, content) {
140
+ return this.tryCatch(async () => {
141
+ validateSnapshotKey(key);
142
+ validateSnapshotsRoot(this.snapshotsRoot);
143
+ await this.fileBroker.writeFileAtomic(`${this.snapshotsRoot}/${key}`, content);
144
+ });
145
+ }
146
+ retrieveSnapshot(key) {
147
+ return this.tryCatch(async () => {
148
+ validateSnapshotKey(key);
149
+ validateSnapshotsRoot(this.snapshotsRoot);
150
+ const path = `${this.snapshotsRoot}/${key}`;
151
+ validateExists((await this.fileBroker.stat(path)) !== null, path);
152
+ return await this.fileBroker.readFile(path);
153
+ });
154
+ }
155
+ // What a path means in this workspace.
156
+ //
157
+ // A relative path is relative to the workspace, which is what every tool description promises and
158
+ // what a model naturally writes after a search answers with `src/index.ts`. Until now it was
159
+ // relative to whatever directory the process was sitting in. For the terminal those are the same
160
+ // directory by accident; for one process holding two workspaces they are not, and an accident
161
+ // that holds in one door and not the other is the kind that is found in the field.
162
+ //
163
+ // Forward slashes rather than the platform's own separator, because the rest of this service
164
+ // joins that way and the file system takes either.
165
+ inWorkspace(path) {
166
+ return isAbsolute(path) ? path : `${this.workspaceRoot}/${path}`;
167
+ }
168
+ // The floor under every write, exactly as `retrieveFile` is the floor under every read: inside
169
+ // the workspace once the links are resolved, and never a path shaped like a secret.
170
+ async writeInside(path, content) {
171
+ const resolvedRoot = await this.fileBroker.realpath(this.workspaceRoot);
172
+ const resolvedPath = await this.resolveWritePath(path);
173
+ validateInsideWorkspace(resolvedPath, resolvedRoot);
174
+ validateNotSensitive(resolvedPath);
175
+ await this.fileBroker.writeFileAtomic(resolvedPath, content);
176
+ }
177
+ // An existing file resolves itself; a new one borrows its parent's resolution, because a symbolic
178
+ // link in the parent is the way a path inside the workspace becomes a file outside it.
179
+ async resolveWritePath(path) {
180
+ const stat = await this.fileBroker.stat(path);
181
+ if (stat !== null) {
182
+ return await this.fileBroker.realpath(path);
183
+ }
184
+ const separator = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\"));
185
+ const parent = separator <= 0 ? this.workspaceRoot : path.slice(0, separator);
186
+ const name = separator <= 0 ? path : path.slice(separator + 1);
187
+ return `${await this.fileBroker.realpath(parent)}/${name}`;
188
+ }
189
+ }
190
+ function relativeTo(resolvedRoot, entryPath) {
191
+ const root = resolvedRoot.replace(/\\/g, "/").replace(/\/+$/, "");
192
+ const entry = entryPath.replace(/\\/g, "/");
193
+ return entry.startsWith(`${root}/`) ? entry.slice(root.length + 1) : entry;
194
+ }
195
+ //# sourceMappingURL=WorkspaceFileService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceFileService.js","sourceRoot":"","sources":["../../../../src/services/foundations/workspaceFiles/WorkspaceFileService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { LoggingBroker } from "@hassanhabib/standard-agents";
2
+ export type TryCatch = <T>(routine: () => Promise<T>) => Promise<T>;
3
+ export declare function createTryCatch(loggingBroker: LoggingBroker): TryCatch;
4
+ //# sourceMappingURL=ConnectionOrchestrationService.Exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionOrchestrationService.Exceptions.d.ts","sourceRoot":"","sources":["../../../../src/services/orchestrations/connections/ConnectionOrchestrationService.Exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAmBlE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpE,wBAAgB,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,QAAQ,CAqDrE"}