@stoneforge/quarry 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 (330) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +160 -0
  3. package/dist/api/index.d.ts +8 -0
  4. package/dist/api/index.d.ts.map +1 -0
  5. package/dist/api/index.js +8 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/quarry-api.d.ts +268 -0
  8. package/dist/api/quarry-api.d.ts.map +1 -0
  9. package/dist/api/quarry-api.js +3905 -0
  10. package/dist/api/quarry-api.js.map +1 -0
  11. package/dist/api/types.d.ts +1359 -0
  12. package/dist/api/types.d.ts.map +1 -0
  13. package/dist/api/types.js +204 -0
  14. package/dist/api/types.js.map +1 -0
  15. package/dist/bin/sf.d.ts +3 -0
  16. package/dist/bin/sf.d.ts.map +1 -0
  17. package/dist/bin/sf.js +9 -0
  18. package/dist/bin/sf.js.map +1 -0
  19. package/dist/cli/commands/admin.d.ts +11 -0
  20. package/dist/cli/commands/admin.d.ts.map +1 -0
  21. package/dist/cli/commands/admin.js +465 -0
  22. package/dist/cli/commands/admin.js.map +1 -0
  23. package/dist/cli/commands/alias.d.ts +8 -0
  24. package/dist/cli/commands/alias.d.ts.map +1 -0
  25. package/dist/cli/commands/alias.js +70 -0
  26. package/dist/cli/commands/alias.js.map +1 -0
  27. package/dist/cli/commands/channel.d.ts +13 -0
  28. package/dist/cli/commands/channel.d.ts.map +1 -0
  29. package/dist/cli/commands/channel.js +680 -0
  30. package/dist/cli/commands/channel.js.map +1 -0
  31. package/dist/cli/commands/completion.d.ts +8 -0
  32. package/dist/cli/commands/completion.d.ts.map +1 -0
  33. package/dist/cli/commands/completion.js +87 -0
  34. package/dist/cli/commands/completion.js.map +1 -0
  35. package/dist/cli/commands/config.d.ts +12 -0
  36. package/dist/cli/commands/config.d.ts.map +1 -0
  37. package/dist/cli/commands/config.js +242 -0
  38. package/dist/cli/commands/config.js.map +1 -0
  39. package/dist/cli/commands/crud.d.ts +64 -0
  40. package/dist/cli/commands/crud.d.ts.map +1 -0
  41. package/dist/cli/commands/crud.js +805 -0
  42. package/dist/cli/commands/crud.js.map +1 -0
  43. package/dist/cli/commands/dep.d.ts +16 -0
  44. package/dist/cli/commands/dep.d.ts.map +1 -0
  45. package/dist/cli/commands/dep.js +499 -0
  46. package/dist/cli/commands/dep.js.map +1 -0
  47. package/dist/cli/commands/document.d.ts +12 -0
  48. package/dist/cli/commands/document.d.ts.map +1 -0
  49. package/dist/cli/commands/document.js +1039 -0
  50. package/dist/cli/commands/document.js.map +1 -0
  51. package/dist/cli/commands/embeddings.d.ts +12 -0
  52. package/dist/cli/commands/embeddings.d.ts.map +1 -0
  53. package/dist/cli/commands/embeddings.js +273 -0
  54. package/dist/cli/commands/embeddings.js.map +1 -0
  55. package/dist/cli/commands/entity.d.ts +16 -0
  56. package/dist/cli/commands/entity.d.ts.map +1 -0
  57. package/dist/cli/commands/entity.js +522 -0
  58. package/dist/cli/commands/entity.js.map +1 -0
  59. package/dist/cli/commands/gc.d.ts +10 -0
  60. package/dist/cli/commands/gc.d.ts.map +1 -0
  61. package/dist/cli/commands/gc.js +257 -0
  62. package/dist/cli/commands/gc.js.map +1 -0
  63. package/dist/cli/commands/help.d.ts +11 -0
  64. package/dist/cli/commands/help.d.ts.map +1 -0
  65. package/dist/cli/commands/help.js +169 -0
  66. package/dist/cli/commands/help.js.map +1 -0
  67. package/dist/cli/commands/history.d.ts +9 -0
  68. package/dist/cli/commands/history.d.ts.map +1 -0
  69. package/dist/cli/commands/history.js +160 -0
  70. package/dist/cli/commands/history.js.map +1 -0
  71. package/dist/cli/commands/identity.d.ts +18 -0
  72. package/dist/cli/commands/identity.d.ts.map +1 -0
  73. package/dist/cli/commands/identity.js +698 -0
  74. package/dist/cli/commands/identity.js.map +1 -0
  75. package/dist/cli/commands/inbox.d.ts +20 -0
  76. package/dist/cli/commands/inbox.d.ts.map +1 -0
  77. package/dist/cli/commands/inbox.js +493 -0
  78. package/dist/cli/commands/inbox.js.map +1 -0
  79. package/dist/cli/commands/init.d.ts +20 -0
  80. package/dist/cli/commands/init.d.ts.map +1 -0
  81. package/dist/cli/commands/init.js +144 -0
  82. package/dist/cli/commands/init.js.map +1 -0
  83. package/dist/cli/commands/install.d.ts +9 -0
  84. package/dist/cli/commands/install.d.ts.map +1 -0
  85. package/dist/cli/commands/install.js +200 -0
  86. package/dist/cli/commands/install.js.map +1 -0
  87. package/dist/cli/commands/library.d.ts +12 -0
  88. package/dist/cli/commands/library.d.ts.map +1 -0
  89. package/dist/cli/commands/library.js +665 -0
  90. package/dist/cli/commands/library.js.map +1 -0
  91. package/dist/cli/commands/message.d.ts +11 -0
  92. package/dist/cli/commands/message.d.ts.map +1 -0
  93. package/dist/cli/commands/message.js +608 -0
  94. package/dist/cli/commands/message.js.map +1 -0
  95. package/dist/cli/commands/plan.d.ts +17 -0
  96. package/dist/cli/commands/plan.d.ts.map +1 -0
  97. package/dist/cli/commands/plan.js +698 -0
  98. package/dist/cli/commands/plan.js.map +1 -0
  99. package/dist/cli/commands/playbook.d.ts +12 -0
  100. package/dist/cli/commands/playbook.d.ts.map +1 -0
  101. package/dist/cli/commands/playbook.js +730 -0
  102. package/dist/cli/commands/playbook.js.map +1 -0
  103. package/dist/cli/commands/reset.d.ts +12 -0
  104. package/dist/cli/commands/reset.d.ts.map +1 -0
  105. package/dist/cli/commands/reset.js +306 -0
  106. package/dist/cli/commands/reset.js.map +1 -0
  107. package/dist/cli/commands/serve.d.ts +11 -0
  108. package/dist/cli/commands/serve.d.ts.map +1 -0
  109. package/dist/cli/commands/serve.js +106 -0
  110. package/dist/cli/commands/serve.js.map +1 -0
  111. package/dist/cli/commands/stats.d.ts +8 -0
  112. package/dist/cli/commands/stats.d.ts.map +1 -0
  113. package/dist/cli/commands/stats.js +82 -0
  114. package/dist/cli/commands/stats.js.map +1 -0
  115. package/dist/cli/commands/sync.d.ts +14 -0
  116. package/dist/cli/commands/sync.d.ts.map +1 -0
  117. package/dist/cli/commands/sync.js +370 -0
  118. package/dist/cli/commands/sync.js.map +1 -0
  119. package/dist/cli/commands/task.d.ts +25 -0
  120. package/dist/cli/commands/task.d.ts.map +1 -0
  121. package/dist/cli/commands/task.js +1153 -0
  122. package/dist/cli/commands/task.js.map +1 -0
  123. package/dist/cli/commands/team.d.ts +13 -0
  124. package/dist/cli/commands/team.d.ts.map +1 -0
  125. package/dist/cli/commands/team.js +471 -0
  126. package/dist/cli/commands/team.js.map +1 -0
  127. package/dist/cli/commands/workflow.d.ts +16 -0
  128. package/dist/cli/commands/workflow.d.ts.map +1 -0
  129. package/dist/cli/commands/workflow.js +753 -0
  130. package/dist/cli/commands/workflow.js.map +1 -0
  131. package/dist/cli/completion.d.ts +28 -0
  132. package/dist/cli/completion.d.ts.map +1 -0
  133. package/dist/cli/completion.js +295 -0
  134. package/dist/cli/completion.js.map +1 -0
  135. package/dist/cli/db.d.ts +38 -0
  136. package/dist/cli/db.d.ts.map +1 -0
  137. package/dist/cli/db.js +90 -0
  138. package/dist/cli/db.js.map +1 -0
  139. package/dist/cli/formatter.d.ts +87 -0
  140. package/dist/cli/formatter.d.ts.map +1 -0
  141. package/dist/cli/formatter.js +464 -0
  142. package/dist/cli/formatter.js.map +1 -0
  143. package/dist/cli/index.d.ts +33 -0
  144. package/dist/cli/index.d.ts.map +1 -0
  145. package/dist/cli/index.js +38 -0
  146. package/dist/cli/index.js.map +1 -0
  147. package/dist/cli/parser.d.ts +45 -0
  148. package/dist/cli/parser.d.ts.map +1 -0
  149. package/dist/cli/parser.js +256 -0
  150. package/dist/cli/parser.js.map +1 -0
  151. package/dist/cli/plugin-loader.d.ts +39 -0
  152. package/dist/cli/plugin-loader.d.ts.map +1 -0
  153. package/dist/cli/plugin-loader.js +165 -0
  154. package/dist/cli/plugin-loader.js.map +1 -0
  155. package/dist/cli/plugin-registry.d.ts +50 -0
  156. package/dist/cli/plugin-registry.d.ts.map +1 -0
  157. package/dist/cli/plugin-registry.js +206 -0
  158. package/dist/cli/plugin-registry.js.map +1 -0
  159. package/dist/cli/plugin-types.d.ts +106 -0
  160. package/dist/cli/plugin-types.d.ts.map +1 -0
  161. package/dist/cli/plugin-types.js +103 -0
  162. package/dist/cli/plugin-types.js.map +1 -0
  163. package/dist/cli/runner.d.ts +35 -0
  164. package/dist/cli/runner.d.ts.map +1 -0
  165. package/dist/cli/runner.js +340 -0
  166. package/dist/cli/runner.js.map +1 -0
  167. package/dist/cli/suggest.d.ts +15 -0
  168. package/dist/cli/suggest.d.ts.map +1 -0
  169. package/dist/cli/suggest.js +49 -0
  170. package/dist/cli/suggest.js.map +1 -0
  171. package/dist/cli/types.d.ts +138 -0
  172. package/dist/cli/types.d.ts.map +1 -0
  173. package/dist/cli/types.js +63 -0
  174. package/dist/cli/types.js.map +1 -0
  175. package/dist/config/config.d.ts +86 -0
  176. package/dist/config/config.d.ts.map +1 -0
  177. package/dist/config/config.js +348 -0
  178. package/dist/config/config.js.map +1 -0
  179. package/dist/config/defaults.d.ts +66 -0
  180. package/dist/config/defaults.d.ts.map +1 -0
  181. package/dist/config/defaults.js +114 -0
  182. package/dist/config/defaults.js.map +1 -0
  183. package/dist/config/duration.d.ts +75 -0
  184. package/dist/config/duration.d.ts.map +1 -0
  185. package/dist/config/duration.js +190 -0
  186. package/dist/config/duration.js.map +1 -0
  187. package/dist/config/env.d.ts +67 -0
  188. package/dist/config/env.d.ts.map +1 -0
  189. package/dist/config/env.js +207 -0
  190. package/dist/config/env.js.map +1 -0
  191. package/dist/config/file.d.ts +97 -0
  192. package/dist/config/file.d.ts.map +1 -0
  193. package/dist/config/file.js +365 -0
  194. package/dist/config/file.js.map +1 -0
  195. package/dist/config/index.d.ts +35 -0
  196. package/dist/config/index.d.ts.map +1 -0
  197. package/dist/config/index.js +41 -0
  198. package/dist/config/index.js.map +1 -0
  199. package/dist/config/merge.d.ts +53 -0
  200. package/dist/config/merge.d.ts.map +1 -0
  201. package/dist/config/merge.js +226 -0
  202. package/dist/config/merge.js.map +1 -0
  203. package/dist/config/types.d.ts +257 -0
  204. package/dist/config/types.d.ts.map +1 -0
  205. package/dist/config/types.js +72 -0
  206. package/dist/config/types.js.map +1 -0
  207. package/dist/config/validation.d.ts +55 -0
  208. package/dist/config/validation.d.ts.map +1 -0
  209. package/dist/config/validation.js +251 -0
  210. package/dist/config/validation.js.map +1 -0
  211. package/dist/http/index.d.ts +8 -0
  212. package/dist/http/index.d.ts.map +1 -0
  213. package/dist/http/index.js +12 -0
  214. package/dist/http/index.js.map +1 -0
  215. package/dist/http/sync-handlers.d.ts +162 -0
  216. package/dist/http/sync-handlers.d.ts.map +1 -0
  217. package/dist/http/sync-handlers.js +271 -0
  218. package/dist/http/sync-handlers.js.map +1 -0
  219. package/dist/index.d.ts +25 -0
  220. package/dist/index.d.ts.map +1 -0
  221. package/dist/index.js +69 -0
  222. package/dist/index.js.map +1 -0
  223. package/dist/server/index.d.ts +34 -0
  224. package/dist/server/index.d.ts.map +1 -0
  225. package/dist/server/index.js +3329 -0
  226. package/dist/server/index.js.map +1 -0
  227. package/dist/server/static.d.ts +18 -0
  228. package/dist/server/static.d.ts.map +1 -0
  229. package/dist/server/static.js +71 -0
  230. package/dist/server/static.js.map +1 -0
  231. package/dist/server/ws/broadcaster.d.ts +8 -0
  232. package/dist/server/ws/broadcaster.d.ts.map +1 -0
  233. package/dist/server/ws/broadcaster.js +7 -0
  234. package/dist/server/ws/broadcaster.js.map +1 -0
  235. package/dist/server/ws/handler.d.ts +55 -0
  236. package/dist/server/ws/handler.d.ts.map +1 -0
  237. package/dist/server/ws/handler.js +160 -0
  238. package/dist/server/ws/handler.js.map +1 -0
  239. package/dist/services/blocked-cache.d.ts +297 -0
  240. package/dist/services/blocked-cache.d.ts.map +1 -0
  241. package/dist/services/blocked-cache.js +755 -0
  242. package/dist/services/blocked-cache.js.map +1 -0
  243. package/dist/services/dependency.d.ts +205 -0
  244. package/dist/services/dependency.d.ts.map +1 -0
  245. package/dist/services/dependency.js +566 -0
  246. package/dist/services/dependency.js.map +1 -0
  247. package/dist/services/embeddings/fusion.d.ts +33 -0
  248. package/dist/services/embeddings/fusion.d.ts.map +1 -0
  249. package/dist/services/embeddings/fusion.js +34 -0
  250. package/dist/services/embeddings/fusion.js.map +1 -0
  251. package/dist/services/embeddings/index.d.ts +12 -0
  252. package/dist/services/embeddings/index.d.ts.map +1 -0
  253. package/dist/services/embeddings/index.js +10 -0
  254. package/dist/services/embeddings/index.js.map +1 -0
  255. package/dist/services/embeddings/local-provider.d.ts +31 -0
  256. package/dist/services/embeddings/local-provider.d.ts.map +1 -0
  257. package/dist/services/embeddings/local-provider.js +80 -0
  258. package/dist/services/embeddings/local-provider.js.map +1 -0
  259. package/dist/services/embeddings/service.d.ts +76 -0
  260. package/dist/services/embeddings/service.d.ts.map +1 -0
  261. package/dist/services/embeddings/service.js +153 -0
  262. package/dist/services/embeddings/service.js.map +1 -0
  263. package/dist/services/embeddings/types.d.ts +70 -0
  264. package/dist/services/embeddings/types.d.ts.map +1 -0
  265. package/dist/services/embeddings/types.js +8 -0
  266. package/dist/services/embeddings/types.js.map +1 -0
  267. package/dist/services/id-length-cache.d.ts +156 -0
  268. package/dist/services/id-length-cache.d.ts.map +1 -0
  269. package/dist/services/id-length-cache.js +197 -0
  270. package/dist/services/id-length-cache.js.map +1 -0
  271. package/dist/services/inbox.d.ts +147 -0
  272. package/dist/services/inbox.d.ts.map +1 -0
  273. package/dist/services/inbox.js +428 -0
  274. package/dist/services/inbox.js.map +1 -0
  275. package/dist/services/index.d.ts +10 -0
  276. package/dist/services/index.d.ts.map +1 -0
  277. package/dist/services/index.js +10 -0
  278. package/dist/services/index.js.map +1 -0
  279. package/dist/services/priority-service.d.ts +145 -0
  280. package/dist/services/priority-service.d.ts.map +1 -0
  281. package/dist/services/priority-service.js +272 -0
  282. package/dist/services/priority-service.js.map +1 -0
  283. package/dist/services/search-utils.d.ts +47 -0
  284. package/dist/services/search-utils.d.ts.map +1 -0
  285. package/dist/services/search-utils.js +83 -0
  286. package/dist/services/search-utils.js.map +1 -0
  287. package/dist/sync/hash.d.ts +48 -0
  288. package/dist/sync/hash.d.ts.map +1 -0
  289. package/dist/sync/hash.js +136 -0
  290. package/dist/sync/hash.js.map +1 -0
  291. package/dist/sync/index.d.ts +11 -0
  292. package/dist/sync/index.d.ts.map +1 -0
  293. package/dist/sync/index.js +16 -0
  294. package/dist/sync/index.js.map +1 -0
  295. package/dist/sync/merge.d.ts +80 -0
  296. package/dist/sync/merge.d.ts.map +1 -0
  297. package/dist/sync/merge.js +310 -0
  298. package/dist/sync/merge.js.map +1 -0
  299. package/dist/sync/serialization.d.ts +132 -0
  300. package/dist/sync/serialization.d.ts.map +1 -0
  301. package/dist/sync/serialization.js +306 -0
  302. package/dist/sync/serialization.js.map +1 -0
  303. package/dist/sync/service.d.ts +102 -0
  304. package/dist/sync/service.d.ts.map +1 -0
  305. package/dist/sync/service.js +493 -0
  306. package/dist/sync/service.js.map +1 -0
  307. package/dist/sync/types.d.ts +275 -0
  308. package/dist/sync/types.d.ts.map +1 -0
  309. package/dist/sync/types.js +76 -0
  310. package/dist/sync/types.js.map +1 -0
  311. package/dist/systems/identity.d.ts +479 -0
  312. package/dist/systems/identity.d.ts.map +1 -0
  313. package/dist/systems/identity.js +817 -0
  314. package/dist/systems/identity.js.map +1 -0
  315. package/dist/systems/index.d.ts +8 -0
  316. package/dist/systems/index.d.ts.map +1 -0
  317. package/dist/systems/index.js +29 -0
  318. package/dist/systems/index.js.map +1 -0
  319. package/package.json +121 -0
  320. package/web/assets/charts-vendor-D1YcbGux.js +55 -0
  321. package/web/assets/dnd-vendor-DmxE-_ZH.js +5 -0
  322. package/web/assets/editor-vendor-BxraAWts.js +279 -0
  323. package/web/assets/index-B77vv208.js +341 -0
  324. package/web/assets/index-CF_XnVLh.css +1 -0
  325. package/web/assets/router-vendor-BCKpRBrB.js +41 -0
  326. package/web/assets/ui-vendor-DUahGnbT.js +45 -0
  327. package/web/assets/utils-vendor-CfYKiENT.js +813 -0
  328. package/web/favicon.ico +0 -0
  329. package/web/index.html +23 -0
  330. package/web/logo.png +0 -0
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Configuration Access API
3
+ *
4
+ * Main interface for loading, accessing, and modifying configuration.
5
+ * Implements the precedence hierarchy: CLI > Environment > File > Defaults
6
+ */
7
+ import type { Configuration, LoadConfigOptions, ConfigPath, ConfigPathTypes, ConfigSource, TrackedConfiguration, TrackedValue } from './types.js';
8
+ /**
9
+ * Loads configuration with full precedence chain
10
+ *
11
+ * Precedence (highest to lowest):
12
+ * 1. CLI overrides (if provided)
13
+ * 2. Environment variables
14
+ * 3. Config file
15
+ * 4. Built-in defaults
16
+ *
17
+ * @param options - Loading options
18
+ * @returns Complete configuration
19
+ */
20
+ export declare function loadConfig(options?: LoadConfigOptions): Configuration;
21
+ /**
22
+ * Gets the current configuration, loading if necessary
23
+ */
24
+ export declare function getConfig(): Configuration;
25
+ /**
26
+ * Gets the tracked configuration with source attribution
27
+ */
28
+ export declare function getTrackedConfig(): TrackedConfiguration;
29
+ /**
30
+ * Reloads configuration from all sources
31
+ */
32
+ export declare function reloadConfig(options?: LoadConfigOptions): Configuration;
33
+ /**
34
+ * Clears the configuration cache
35
+ */
36
+ export declare function clearConfigCache(): void;
37
+ /**
38
+ * Gets a configuration value by path
39
+ *
40
+ * @param path - Dot-notation path to the value
41
+ * @returns The configuration value
42
+ *
43
+ * @example
44
+ * getValue('actor') // 'my-agent'
45
+ * getValue('sync.autoExport') // true
46
+ * getValue('identity.mode') // 'soft'
47
+ */
48
+ export declare function getValue<P extends ConfigPath>(path: P): ConfigPathTypes[P];
49
+ /**
50
+ * Gets a configuration value from a config object by path
51
+ */
52
+ export declare function getValueFromConfig<P extends ConfigPath>(config: Configuration, path: P): ConfigPathTypes[P];
53
+ /**
54
+ * Gets the source of a configuration value
55
+ */
56
+ export declare function getValueSource(path: ConfigPath): ConfigSource;
57
+ /**
58
+ * Gets a value with its source
59
+ */
60
+ export declare function getValueWithSource<P extends ConfigPath>(path: P): TrackedValue<ConfigPathTypes[P]>;
61
+ /**
62
+ * Sets a configuration value in the config file
63
+ *
64
+ * @param path - Dot-notation path to the value
65
+ * @param value - New value to set
66
+ */
67
+ export declare function setValue<P extends ConfigPath>(path: P, value: ConfigPathTypes[P]): void;
68
+ /**
69
+ * Unsets a configuration value in the config file
70
+ * Note: This removes the value from the file, falling back to defaults
71
+ */
72
+ export declare function unsetValue(path: ConfigPath): void;
73
+ /**
74
+ * Gets the active configuration file path
75
+ */
76
+ export declare function getConfigPath(): string | undefined;
77
+ /**
78
+ * Checks if the configuration file exists
79
+ */
80
+ export declare function configFileExists(): boolean;
81
+ /**
82
+ * Saves the entire configuration to file
83
+ */
84
+ export declare function saveConfig(config: Configuration, filePath?: string): void;
85
+ export { type Configuration, type PartialConfiguration, type ConfigPath, type ConfigSource, type TrackedConfiguration, type LoadConfigOptions, } from './types.js';
86
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AA8BpB;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,aAAa,CA8CzE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAKzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,oBAAoB,CAKvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,iBAAsB,GAAG,aAAa,CAI3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,EACrD,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,CAAC,GACN,eAAe,CAAC,CAAC,CAAC,CAUpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAY7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,EACrD,IAAI,EAAE,CAAC,GACN,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAIlC;AAMD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAavF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAkBjD;AAMD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAMlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAazE;AAsID,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,348 @@
1
+ /**
2
+ * Configuration Access API
3
+ *
4
+ * Main interface for loading, accessing, and modifying configuration.
5
+ * Implements the precedence hierarchy: CLI > Environment > File > Defaults
6
+ */
7
+ import { ConfigSource as ConfigSourceEnum } from './types.js';
8
+ import { getDefaultConfig, DEFAULT_CONFIG } from './defaults.js';
9
+ import { mergeConfiguration, cloneConfiguration } from './merge.js';
10
+ import { validateConfiguration, validatePartialConfiguration } from './validation.js';
11
+ import { discoverConfigFile, readConfigFile, writeConfigFile, updateConfigFile, } from './file.js';
12
+ import { loadEnvConfig, getEnvConfigPath } from './env.js';
13
+ // ============================================================================
14
+ // Configuration State
15
+ // ============================================================================
16
+ /** Cached configuration instance */
17
+ let cachedConfig = null;
18
+ /** Tracked configuration for source attribution */
19
+ let trackedConfig = null;
20
+ /** Path to the active config file */
21
+ let activeConfigPath;
22
+ // ============================================================================
23
+ // Configuration Loading
24
+ // ============================================================================
25
+ /**
26
+ * Loads configuration with full precedence chain
27
+ *
28
+ * Precedence (highest to lowest):
29
+ * 1. CLI overrides (if provided)
30
+ * 2. Environment variables
31
+ * 3. Config file
32
+ * 4. Built-in defaults
33
+ *
34
+ * @param options - Loading options
35
+ * @returns Complete configuration
36
+ */
37
+ export function loadConfig(options = {}) {
38
+ // Start with defaults
39
+ let config = getDefaultConfig();
40
+ let tracked = createTrackedDefaults();
41
+ // Discover config file (check env override first, skip if requested)
42
+ const envConfigPath = options.skipEnv ? undefined : getEnvConfigPath();
43
+ const discovery = options.skipFile
44
+ ? { exists: false, path: undefined }
45
+ : discoverConfigFile(options.configPath ?? envConfigPath);
46
+ activeConfigPath = discovery.path;
47
+ // Load from file if exists (and not skipped)
48
+ if (!options.skipFile && discovery.exists && discovery.path) {
49
+ try {
50
+ const fileConfig = readConfigFile(discovery.path);
51
+ config = mergeConfiguration(config, fileConfig);
52
+ tracked = mergeTrackedConfig(tracked, fileConfig, ConfigSourceEnum.FILE);
53
+ }
54
+ catch {
55
+ // Config file exists but failed to load - use defaults
56
+ // Error will be surfaced when user explicitly accesses config
57
+ }
58
+ }
59
+ // Apply environment variables
60
+ if (!options.skipEnv) {
61
+ const envConfig = loadEnvConfig();
62
+ config = mergeConfiguration(config, envConfig);
63
+ tracked = mergeTrackedConfig(tracked, envConfig, ConfigSourceEnum.ENVIRONMENT);
64
+ }
65
+ // Apply CLI overrides
66
+ if (options.cliOverrides) {
67
+ validatePartialConfiguration(options.cliOverrides);
68
+ config = mergeConfiguration(config, options.cliOverrides);
69
+ tracked = mergeTrackedConfig(tracked, options.cliOverrides, ConfigSourceEnum.CLI);
70
+ }
71
+ // Validate final configuration
72
+ validateConfiguration(config);
73
+ // Cache and return
74
+ cachedConfig = config;
75
+ trackedConfig = tracked;
76
+ return config;
77
+ }
78
+ /**
79
+ * Gets the current configuration, loading if necessary
80
+ */
81
+ export function getConfig() {
82
+ if (cachedConfig === null) {
83
+ loadConfig();
84
+ }
85
+ return cloneConfiguration(cachedConfig);
86
+ }
87
+ /**
88
+ * Gets the tracked configuration with source attribution
89
+ */
90
+ export function getTrackedConfig() {
91
+ if (trackedConfig === null) {
92
+ loadConfig();
93
+ }
94
+ return trackedConfig;
95
+ }
96
+ /**
97
+ * Reloads configuration from all sources
98
+ */
99
+ export function reloadConfig(options = {}) {
100
+ cachedConfig = null;
101
+ trackedConfig = null;
102
+ return loadConfig(options);
103
+ }
104
+ /**
105
+ * Clears the configuration cache
106
+ */
107
+ export function clearConfigCache() {
108
+ cachedConfig = null;
109
+ trackedConfig = null;
110
+ activeConfigPath = undefined;
111
+ }
112
+ // ============================================================================
113
+ // Value Access
114
+ // ============================================================================
115
+ /**
116
+ * Gets a configuration value by path
117
+ *
118
+ * @param path - Dot-notation path to the value
119
+ * @returns The configuration value
120
+ *
121
+ * @example
122
+ * getValue('actor') // 'my-agent'
123
+ * getValue('sync.autoExport') // true
124
+ * getValue('identity.mode') // 'soft'
125
+ */
126
+ export function getValue(path) {
127
+ const config = getConfig();
128
+ return getValueFromConfig(config, path);
129
+ }
130
+ /**
131
+ * Gets a configuration value from a config object by path
132
+ */
133
+ export function getValueFromConfig(config, path) {
134
+ const parts = path.split('.');
135
+ if (parts.length === 1) {
136
+ return config[path];
137
+ }
138
+ const [section, key] = parts;
139
+ const sectionObj = config[section];
140
+ return sectionObj[key];
141
+ }
142
+ /**
143
+ * Gets the source of a configuration value
144
+ */
145
+ export function getValueSource(path) {
146
+ const tracked = getTrackedConfig();
147
+ const parts = path.split('.');
148
+ if (parts.length === 1) {
149
+ const value = tracked[path];
150
+ return value?.source ?? ConfigSourceEnum.DEFAULT;
151
+ }
152
+ const [section, key] = parts;
153
+ const sectionObj = tracked[section];
154
+ return sectionObj[key]?.source ?? ConfigSourceEnum.DEFAULT;
155
+ }
156
+ /**
157
+ * Gets a value with its source
158
+ */
159
+ export function getValueWithSource(path) {
160
+ const value = getValue(path);
161
+ const source = getValueSource(path);
162
+ return { value, source };
163
+ }
164
+ // ============================================================================
165
+ // Value Setting (Config File)
166
+ // ============================================================================
167
+ /**
168
+ * Sets a configuration value in the config file
169
+ *
170
+ * @param path - Dot-notation path to the value
171
+ * @param value - New value to set
172
+ */
173
+ export function setValue(path, value) {
174
+ if (!activeConfigPath) {
175
+ const discovery = discoverConfigFile();
176
+ activeConfigPath = discovery.path;
177
+ }
178
+ const partial = pathToPartialConfig(path, value);
179
+ validatePartialConfiguration(partial);
180
+ updateConfigFile(activeConfigPath, partial);
181
+ // Invalidate cache
182
+ cachedConfig = null;
183
+ trackedConfig = null;
184
+ }
185
+ /**
186
+ * Unsets a configuration value in the config file
187
+ * Note: This removes the value from the file, falling back to defaults
188
+ */
189
+ export function unsetValue(path) {
190
+ if (!activeConfigPath) {
191
+ const discovery = discoverConfigFile();
192
+ activeConfigPath = discovery.path;
193
+ }
194
+ // Read current file config
195
+ const current = readConfigFile(activeConfigPath);
196
+ // Remove the specified path
197
+ const updated = removeFromPartialConfig(current, path);
198
+ // Write back
199
+ writeConfigFile(activeConfigPath, updated);
200
+ // Invalidate cache
201
+ cachedConfig = null;
202
+ trackedConfig = null;
203
+ }
204
+ // ============================================================================
205
+ // Configuration File Management
206
+ // ============================================================================
207
+ /**
208
+ * Gets the active configuration file path
209
+ */
210
+ export function getConfigPath() {
211
+ if (!activeConfigPath) {
212
+ const discovery = discoverConfigFile();
213
+ activeConfigPath = discovery.path;
214
+ }
215
+ return activeConfigPath;
216
+ }
217
+ /**
218
+ * Checks if the configuration file exists
219
+ */
220
+ export function configFileExists() {
221
+ const discovery = discoverConfigFile();
222
+ return discovery.exists;
223
+ }
224
+ /**
225
+ * Saves the entire configuration to file
226
+ */
227
+ export function saveConfig(config, filePath) {
228
+ const path = filePath ?? getConfigPath();
229
+ if (!path) {
230
+ throw new Error('No config file path specified');
231
+ }
232
+ validateConfiguration(config);
233
+ writeConfigFile(path, config);
234
+ // Update cache
235
+ if (!filePath || filePath === activeConfigPath) {
236
+ cachedConfig = config;
237
+ trackedConfig = null; // Will be rebuilt on next access
238
+ }
239
+ }
240
+ // ============================================================================
241
+ // Helper Functions
242
+ // ============================================================================
243
+ /**
244
+ * Creates tracked defaults
245
+ */
246
+ function createTrackedDefaults() {
247
+ return {
248
+ actor: undefined,
249
+ database: { value: DEFAULT_CONFIG.database, source: ConfigSourceEnum.DEFAULT },
250
+ sync: {
251
+ autoExport: { value: DEFAULT_CONFIG.sync.autoExport, source: ConfigSourceEnum.DEFAULT },
252
+ exportDebounce: { value: DEFAULT_CONFIG.sync.exportDebounce, source: ConfigSourceEnum.DEFAULT },
253
+ elementsFile: { value: DEFAULT_CONFIG.sync.elementsFile, source: ConfigSourceEnum.DEFAULT },
254
+ dependenciesFile: { value: DEFAULT_CONFIG.sync.dependenciesFile, source: ConfigSourceEnum.DEFAULT },
255
+ },
256
+ playbooks: {
257
+ paths: { value: [...DEFAULT_CONFIG.playbooks.paths], source: ConfigSourceEnum.DEFAULT },
258
+ },
259
+ tombstone: {
260
+ ttl: { value: DEFAULT_CONFIG.tombstone.ttl, source: ConfigSourceEnum.DEFAULT },
261
+ minTtl: { value: DEFAULT_CONFIG.tombstone.minTtl, source: ConfigSourceEnum.DEFAULT },
262
+ },
263
+ identity: {
264
+ mode: { value: DEFAULT_CONFIG.identity.mode, source: ConfigSourceEnum.DEFAULT },
265
+ timeTolerance: { value: DEFAULT_CONFIG.identity.timeTolerance, source: ConfigSourceEnum.DEFAULT },
266
+ },
267
+ plugins: {
268
+ packages: { value: [...DEFAULT_CONFIG.plugins.packages], source: ConfigSourceEnum.DEFAULT },
269
+ },
270
+ };
271
+ }
272
+ /**
273
+ * Merges tracked config with new values from a source
274
+ */
275
+ function mergeTrackedConfig(base, partial, source) {
276
+ const result = { ...base };
277
+ if (partial.actor !== undefined) {
278
+ result.actor = { value: partial.actor, source };
279
+ }
280
+ if (partial.database !== undefined) {
281
+ result.database = { value: partial.database, source };
282
+ }
283
+ if (partial.sync?.autoExport !== undefined) {
284
+ result.sync = { ...result.sync, autoExport: { value: partial.sync.autoExport, source } };
285
+ }
286
+ if (partial.sync?.exportDebounce !== undefined) {
287
+ result.sync = { ...result.sync, exportDebounce: { value: partial.sync.exportDebounce, source } };
288
+ }
289
+ if (partial.sync?.elementsFile !== undefined) {
290
+ result.sync = { ...result.sync, elementsFile: { value: partial.sync.elementsFile, source } };
291
+ }
292
+ if (partial.sync?.dependenciesFile !== undefined) {
293
+ result.sync = { ...result.sync, dependenciesFile: { value: partial.sync.dependenciesFile, source } };
294
+ }
295
+ if (partial.playbooks?.paths !== undefined) {
296
+ result.playbooks = { paths: { value: partial.playbooks.paths, source } };
297
+ }
298
+ if (partial.tombstone?.ttl !== undefined) {
299
+ result.tombstone = { ...result.tombstone, ttl: { value: partial.tombstone.ttl, source } };
300
+ }
301
+ if (partial.tombstone?.minTtl !== undefined) {
302
+ result.tombstone = { ...result.tombstone, minTtl: { value: partial.tombstone.minTtl, source } };
303
+ }
304
+ if (partial.identity?.mode !== undefined) {
305
+ result.identity = { ...result.identity, mode: { value: partial.identity.mode, source } };
306
+ }
307
+ if (partial.identity?.timeTolerance !== undefined) {
308
+ result.identity = { ...result.identity, timeTolerance: { value: partial.identity.timeTolerance, source } };
309
+ }
310
+ if (partial.plugins?.packages !== undefined) {
311
+ result.plugins = { packages: { value: partial.plugins.packages, source } };
312
+ }
313
+ return result;
314
+ }
315
+ /**
316
+ * Converts a config path and value to a partial config object
317
+ */
318
+ function pathToPartialConfig(path, value) {
319
+ const parts = path.split('.');
320
+ if (parts.length === 1) {
321
+ return { [path]: value };
322
+ }
323
+ const [section, key] = parts;
324
+ return {
325
+ [section]: { [key]: value },
326
+ };
327
+ }
328
+ /**
329
+ * Removes a path from a partial config
330
+ */
331
+ function removeFromPartialConfig(config, path) {
332
+ const result = { ...config };
333
+ const parts = path.split('.');
334
+ if (parts.length === 1) {
335
+ delete result[path];
336
+ }
337
+ else {
338
+ const [section, key] = parts;
339
+ const sectionKey = section;
340
+ if (result[sectionKey]) {
341
+ const sectionObj = { ...result[sectionKey] };
342
+ delete sectionObj[key];
343
+ result[sectionKey] = sectionObj;
344
+ }
345
+ }
346
+ return result;
347
+ }
348
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Configuration Defaults
3
+ *
4
+ * Built-in default values for all configuration options.
5
+ * These are the lowest precedence values, overridden by file, env, and CLI.
6
+ */
7
+ import type { Configuration, SyncConfig, PlaybookConfig, TombstoneConfig, IdentityConfigSection, PluginsConfig } from './types.js';
8
+ /** One second in milliseconds */
9
+ export declare const ONE_SECOND = 1000;
10
+ /** One minute in milliseconds */
11
+ export declare const ONE_MINUTE: number;
12
+ /** One hour in milliseconds */
13
+ export declare const ONE_HOUR: number;
14
+ /** One day in milliseconds */
15
+ export declare const ONE_DAY: number;
16
+ /**
17
+ * Default sync configuration
18
+ */
19
+ export declare const DEFAULT_SYNC_CONFIG: SyncConfig;
20
+ /**
21
+ * Default playbook configuration
22
+ */
23
+ export declare const DEFAULT_PLAYBOOK_CONFIG: PlaybookConfig;
24
+ /**
25
+ * Default tombstone configuration
26
+ */
27
+ export declare const DEFAULT_TOMBSTONE_CONFIG: TombstoneConfig;
28
+ /**
29
+ * Default identity configuration
30
+ */
31
+ export declare const DEFAULT_IDENTITY_CONFIG: IdentityConfigSection;
32
+ /**
33
+ * Default plugins configuration
34
+ */
35
+ export declare const DEFAULT_PLUGINS_CONFIG: PluginsConfig;
36
+ /**
37
+ * Complete default configuration
38
+ */
39
+ export declare const DEFAULT_CONFIG: Configuration;
40
+ /**
41
+ * Minimum allowed export debounce (100ms)
42
+ */
43
+ export declare const MIN_EXPORT_DEBOUNCE = 100;
44
+ /**
45
+ * Maximum allowed export debounce (1 hour)
46
+ */
47
+ export declare const MAX_EXPORT_DEBOUNCE: number;
48
+ /**
49
+ * Maximum allowed time tolerance (24 hours)
50
+ */
51
+ export declare const MAX_TIME_TOLERANCE: number;
52
+ /**
53
+ * Minimum allowed time tolerance (1 second)
54
+ */
55
+ export declare const MIN_TIME_TOLERANCE = 1000;
56
+ /**
57
+ * Maximum TTL (1 year)
58
+ */
59
+ export declare const MAX_TTL: number;
60
+ /**
61
+ * Creates a deep clone of the default configuration
62
+ * Always use this instead of referencing DEFAULT_CONFIG directly
63
+ * to avoid accidental mutation
64
+ */
65
+ export declare function getDefaultConfig(): Configuration;
66
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMnI,iCAAiC;AACjC,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,iCAAiC;AACjC,eAAO,MAAM,UAAU,QAAkB,CAAC;AAE1C,+BAA+B;AAC/B,eAAO,MAAM,QAAQ,QAAkB,CAAC;AAExC,8BAA8B;AAC9B,eAAO,MAAM,OAAO,QAAgB,CAAC;AAMrC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAKjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAKrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAGtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,qBAGrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAEpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,aAQ5B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAW,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAa,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,OAAO,QAAgB,CAAC;AAMrC;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAUhD"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Configuration Defaults
3
+ *
4
+ * Built-in default values for all configuration options.
5
+ * These are the lowest precedence values, overridden by file, env, and CLI.
6
+ */
7
+ import { IdentityMode } from '../systems/identity.js';
8
+ // ============================================================================
9
+ // Time Constants (in milliseconds)
10
+ // ============================================================================
11
+ /** One second in milliseconds */
12
+ export const ONE_SECOND = 1000;
13
+ /** One minute in milliseconds */
14
+ export const ONE_MINUTE = 60 * ONE_SECOND;
15
+ /** One hour in milliseconds */
16
+ export const ONE_HOUR = 60 * ONE_MINUTE;
17
+ /** One day in milliseconds */
18
+ export const ONE_DAY = 24 * ONE_HOUR;
19
+ // ============================================================================
20
+ // Default Values
21
+ // ============================================================================
22
+ /**
23
+ * Default sync configuration
24
+ */
25
+ export const DEFAULT_SYNC_CONFIG = {
26
+ autoExport: true,
27
+ exportDebounce: 500, // 500ms
28
+ elementsFile: 'elements.jsonl',
29
+ dependenciesFile: 'dependencies.jsonl',
30
+ };
31
+ /**
32
+ * Default playbook configuration
33
+ */
34
+ export const DEFAULT_PLAYBOOK_CONFIG = {
35
+ paths: [
36
+ '.stoneforge/playbooks',
37
+ '~/.stoneforge/playbooks',
38
+ ],
39
+ };
40
+ /**
41
+ * Default tombstone configuration
42
+ */
43
+ export const DEFAULT_TOMBSTONE_CONFIG = {
44
+ ttl: 30 * ONE_DAY, // 30 days
45
+ minTtl: 7 * ONE_DAY, // 7 days
46
+ };
47
+ /**
48
+ * Default identity configuration
49
+ */
50
+ export const DEFAULT_IDENTITY_CONFIG = {
51
+ mode: IdentityMode.SOFT,
52
+ timeTolerance: 5 * ONE_MINUTE, // 5 minutes
53
+ };
54
+ /**
55
+ * Default plugins configuration
56
+ */
57
+ export const DEFAULT_PLUGINS_CONFIG = {
58
+ packages: [],
59
+ };
60
+ /**
61
+ * Complete default configuration
62
+ */
63
+ export const DEFAULT_CONFIG = {
64
+ actor: undefined,
65
+ database: 'stoneforge.db',
66
+ sync: DEFAULT_SYNC_CONFIG,
67
+ playbooks: DEFAULT_PLAYBOOK_CONFIG,
68
+ tombstone: DEFAULT_TOMBSTONE_CONFIG,
69
+ identity: DEFAULT_IDENTITY_CONFIG,
70
+ plugins: DEFAULT_PLUGINS_CONFIG,
71
+ };
72
+ // ============================================================================
73
+ // Validation Constants
74
+ // ============================================================================
75
+ /**
76
+ * Minimum allowed export debounce (100ms)
77
+ */
78
+ export const MIN_EXPORT_DEBOUNCE = 100;
79
+ /**
80
+ * Maximum allowed export debounce (1 hour)
81
+ */
82
+ export const MAX_EXPORT_DEBOUNCE = ONE_HOUR;
83
+ /**
84
+ * Maximum allowed time tolerance (24 hours)
85
+ */
86
+ export const MAX_TIME_TOLERANCE = 24 * ONE_HOUR;
87
+ /**
88
+ * Minimum allowed time tolerance (1 second)
89
+ */
90
+ export const MIN_TIME_TOLERANCE = ONE_SECOND;
91
+ /**
92
+ * Maximum TTL (1 year)
93
+ */
94
+ export const MAX_TTL = 365 * ONE_DAY;
95
+ // ============================================================================
96
+ // Deep Clone
97
+ // ============================================================================
98
+ /**
99
+ * Creates a deep clone of the default configuration
100
+ * Always use this instead of referencing DEFAULT_CONFIG directly
101
+ * to avoid accidental mutation
102
+ */
103
+ export function getDefaultConfig() {
104
+ return {
105
+ actor: undefined,
106
+ database: DEFAULT_CONFIG.database,
107
+ sync: { ...DEFAULT_SYNC_CONFIG },
108
+ playbooks: { paths: [...DEFAULT_PLAYBOOK_CONFIG.paths] },
109
+ tombstone: { ...DEFAULT_TOMBSTONE_CONFIG },
110
+ identity: { ...DEFAULT_IDENTITY_CONFIG },
111
+ plugins: { packages: [...DEFAULT_PLUGINS_CONFIG.packages] },
112
+ };
113
+ }
114
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,iCAAiC;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAE/B,iCAAiC;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,UAAU,CAAC;AAE1C,+BAA+B;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,GAAG,UAAU,CAAC;AAExC,8BAA8B;AAC9B,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,CAAC;AAErC,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,GAAG,EAAE,QAAQ;IAC7B,YAAY,EAAE,gBAAgB;IAC9B,gBAAgB,EAAE,oBAAoB;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,KAAK,EAAE;QACL,uBAAuB;QACvB,yBAAyB;KAC1B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU;IAC7B,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,SAAS;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,aAAa,EAAE,CAAC,GAAG,UAAU,EAAE,YAAY;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,uBAAuB;IAClC,SAAS,EAAE,wBAAwB;IACnC,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE,sBAAsB;CAChC,CAAC;AAEF,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,QAAQ,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;AAErC,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,IAAI,EAAE,EAAE,GAAG,mBAAmB,EAAE;QAChC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE;QACxD,SAAS,EAAE,EAAE,GAAG,wBAAwB,EAAE;QAC1C,QAAQ,EAAE,EAAE,GAAG,uBAAuB,EAAE;QACxC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,sBAAsB,CAAC,QAAQ,CAAC,EAAE;KAC5D,CAAC;AACJ,CAAC"}