@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,144 @@
1
+ /**
2
+ * init command - Initialize a new Stoneforge workspace
3
+ *
4
+ * Creates the .stoneforge/ directory with:
5
+ * - Empty database with default operator entity
6
+ * - Default configuration file
7
+ * - gitignore file
8
+ */
9
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
10
+ import { join } from 'node:path';
11
+ import { success, failure, ExitCode } from '../types.js';
12
+ import { createStorage, initializeSchema } from '@stoneforge/storage';
13
+ import { createQuarryAPI } from '../../api/quarry-api.js';
14
+ import { ElementType, createTimestamp, } from '@stoneforge/core';
15
+ import { EntityTypeValue } from '@stoneforge/core';
16
+ // ============================================================================
17
+ // Constants
18
+ // ============================================================================
19
+ const STONEFORGE_DIR = '.stoneforge';
20
+ const CONFIG_FILENAME = 'config.yaml';
21
+ const GITIGNORE_FILENAME = '.gitignore';
22
+ const DEFAULT_DB_NAME = 'stoneforge.db';
23
+ /**
24
+ * Default operator entity ID - used as the CLI user and default actor
25
+ */
26
+ export const OPERATOR_ENTITY_ID = 'el-0000';
27
+ /**
28
+ * Default operator entity name
29
+ */
30
+ export const OPERATOR_ENTITY_NAME = 'operator';
31
+ // ============================================================================
32
+ // Default Content
33
+ // ============================================================================
34
+ const DEFAULT_CONFIG = `# Stoneforge Configuration
35
+ # See https://github.com/stoneforge/stoneforge for documentation
36
+
37
+ # Default actor for operations (optional)
38
+ # actor: my-agent
39
+
40
+ # Database path (relative to .stoneforge/)
41
+ database: stoneforge.db
42
+
43
+ # Sync settings
44
+ sync:
45
+ auto_export: false
46
+ elements_file: elements.jsonl
47
+ dependencies_file: dependencies.jsonl
48
+
49
+ # Playbook search paths
50
+ playbooks:
51
+ paths:
52
+ - playbooks
53
+
54
+ # Identity settings
55
+ identity:
56
+ mode: soft
57
+ `;
58
+ const DEFAULT_GITIGNORE = `# Stoneforge gitignore
59
+ *.db
60
+ *.db-journal
61
+ *.db-wal
62
+ *.db-shm
63
+ `;
64
+ // ============================================================================
65
+ // Handler
66
+ // ============================================================================
67
+ async function initHandler(_args, options) {
68
+ const workDir = process.cwd();
69
+ const stoneforgeDir = join(workDir, STONEFORGE_DIR);
70
+ // Check if already initialized
71
+ if (existsSync(stoneforgeDir)) {
72
+ return failure(`Workspace already initialized at ${stoneforgeDir}`, ExitCode.VALIDATION);
73
+ }
74
+ try {
75
+ // Create .stoneforge directory
76
+ mkdirSync(stoneforgeDir, { recursive: true });
77
+ // Create config file
78
+ let config = DEFAULT_CONFIG;
79
+ if (options.actor) {
80
+ config = config.replace('# actor: my-agent', `actor: ${options.actor}`);
81
+ }
82
+ writeFileSync(join(stoneforgeDir, CONFIG_FILENAME), config);
83
+ // Create gitignore
84
+ writeFileSync(join(stoneforgeDir, GITIGNORE_FILENAME), DEFAULT_GITIGNORE);
85
+ // Create playbooks directory
86
+ mkdirSync(join(stoneforgeDir, 'playbooks'), { recursive: true });
87
+ // Create the database and operator entity
88
+ const dbPath = join(stoneforgeDir, DEFAULT_DB_NAME);
89
+ const backend = createStorage({ path: dbPath, create: true });
90
+ initializeSchema(backend);
91
+ const api = createQuarryAPI(backend);
92
+ // Create the default operator entity (el-0000)
93
+ const now = createTimestamp();
94
+ const operatorEntity = {
95
+ id: OPERATOR_ENTITY_ID,
96
+ type: ElementType.ENTITY,
97
+ createdAt: now,
98
+ updatedAt: now,
99
+ createdBy: OPERATOR_ENTITY_ID,
100
+ tags: [],
101
+ metadata: {},
102
+ name: OPERATOR_ENTITY_NAME,
103
+ entityType: EntityTypeValue.HUMAN,
104
+ };
105
+ await api.create(operatorEntity);
106
+ return success({ path: stoneforgeDir, operatorId: OPERATOR_ENTITY_ID }, `Initialized Stoneforge workspace at ${stoneforgeDir}\nCreated default operator entity: ${OPERATOR_ENTITY_ID}`);
107
+ }
108
+ catch (err) {
109
+ const message = err instanceof Error ? err.message : String(err);
110
+ return failure(`Failed to initialize workspace: ${message}`, ExitCode.GENERAL_ERROR);
111
+ }
112
+ }
113
+ // ============================================================================
114
+ // Command Definition
115
+ // ============================================================================
116
+ export const initCommand = {
117
+ name: 'init',
118
+ description: 'Initialize a new Stoneforge workspace',
119
+ usage: 'sf init [--name <name>] [--actor <actor>]',
120
+ help: `Initialize a new Stoneforge workspace in the current directory.
121
+
122
+ Creates a .stoneforge/ directory containing:
123
+ - config.yaml Default configuration file
124
+ - stoneforge.db SQLite database with default operator entity
125
+ - .gitignore Git ignore patterns for database files
126
+ - playbooks/ Directory for playbook definitions
127
+
128
+ The database is created with a default "operator" entity (el-0000) that serves
129
+ as the default actor for CLI operations and web applications.`,
130
+ options: [
131
+ {
132
+ name: 'name',
133
+ description: 'Workspace name (optional)',
134
+ hasValue: true,
135
+ },
136
+ {
137
+ name: 'actor',
138
+ description: 'Default actor for operations',
139
+ hasValue: true,
140
+ },
141
+ ],
142
+ handler: initHandler,
143
+ };
144
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Install Commands - Install stoneforge extensions to the workspace
3
+ *
4
+ * Provides CLI commands for installing skills and other extensions:
5
+ * - install skills: Copy bundled skills to .claude/skills/
6
+ */
7
+ import type { Command } from '../types.js';
8
+ export declare const installCommand: Command;
9
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,aAAa,CAAC;AA+MzE,eAAO,MAAM,cAAc,EAAE,OAgC5B,CAAC"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Install Commands - Install stoneforge extensions to the workspace
3
+ *
4
+ * Provides CLI commands for installing skills and other extensions:
5
+ * - install skills: Copy bundled skills to .claude/skills/
6
+ */
7
+ import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, statSync } from 'node:fs';
8
+ import { join, dirname } from 'node:path';
9
+ import { fileURLToPath } from 'node:url';
10
+ import { success, failure, ExitCode } from '../types.js';
11
+ import { suggestCommands } from '../suggest.js';
12
+ // ============================================================================
13
+ // Constants
14
+ // ============================================================================
15
+ const CLAUDE_DIR = '.claude';
16
+ const SKILLS_DIR = 'skills';
17
+ const SKILL_FILE = 'SKILL.md';
18
+ // ============================================================================
19
+ // Skill Discovery
20
+ // ============================================================================
21
+ /**
22
+ * Attempts to find the skills directory from orchestrator-sdk package
23
+ */
24
+ function findSkillsSourceDir() {
25
+ // Try multiple locations to find the skills
26
+ // 1. Check if orchestrator-sdk is in node_modules
27
+ const nodeModulesPath = join(process.cwd(), 'node_modules', '@stoneforge', 'orchestrator-sdk');
28
+ const nodeModulesSkillsPath = join(nodeModulesPath, 'dist', 'skills');
29
+ if (existsSync(nodeModulesSkillsPath)) {
30
+ return nodeModulesSkillsPath;
31
+ }
32
+ // 2. Check src/skills in node_modules (in case dist doesn't have skills)
33
+ const nodeModulesSrcSkillsPath = join(nodeModulesPath, 'src', 'skills');
34
+ if (existsSync(nodeModulesSrcSkillsPath)) {
35
+ return nodeModulesSrcSkillsPath;
36
+ }
37
+ // 3. Try to find it relative to this package (for monorepo development)
38
+ try {
39
+ const thisFile = fileURLToPath(import.meta.url);
40
+ const sdkRoot = dirname(dirname(dirname(dirname(thisFile)))); // Go up from commands -> cli -> src -> sdk
41
+ const orchestratorSdkPath = join(dirname(sdkRoot), 'orchestrator-sdk', 'src', 'skills');
42
+ if (existsSync(orchestratorSdkPath)) {
43
+ return orchestratorSdkPath;
44
+ }
45
+ }
46
+ catch {
47
+ // Ignore errors when trying to resolve paths
48
+ }
49
+ // 4. Try global node_modules
50
+ const globalNodeModulesPath = join(dirname(process.execPath), '..', 'lib', 'node_modules', '@stoneforge', 'orchestrator-sdk', 'dist', 'skills');
51
+ if (existsSync(globalNodeModulesPath)) {
52
+ return globalNodeModulesPath;
53
+ }
54
+ return null;
55
+ }
56
+ /**
57
+ * Gets list of skill directories (each containing a SKILL.md file)
58
+ */
59
+ function getSkillDirs(skillsDir) {
60
+ if (!existsSync(skillsDir)) {
61
+ return [];
62
+ }
63
+ return readdirSync(skillsDir)
64
+ .filter(name => {
65
+ const skillPath = join(skillsDir, name);
66
+ const skillFile = join(skillPath, SKILL_FILE);
67
+ return statSync(skillPath).isDirectory() && existsSync(skillFile);
68
+ });
69
+ }
70
+ /**
71
+ * Recursively copies a directory
72
+ */
73
+ function copyDir(src, dest) {
74
+ mkdirSync(dest, { recursive: true });
75
+ for (const entry of readdirSync(src)) {
76
+ const srcPath = join(src, entry);
77
+ const destPath = join(dest, entry);
78
+ if (statSync(srcPath).isDirectory()) {
79
+ copyDir(srcPath, destPath);
80
+ }
81
+ else {
82
+ const content = readFileSync(srcPath);
83
+ writeFileSync(destPath, content);
84
+ }
85
+ }
86
+ }
87
+ async function installSkillsHandler(_args, options) {
88
+ // Find skills source directory
89
+ const skillsSourceDir = findSkillsSourceDir();
90
+ if (!skillsSourceDir) {
91
+ return failure('Could not find skills to install. Make sure @stoneforge/smithy is installed.', ExitCode.GENERAL_ERROR);
92
+ }
93
+ // Get skill directories
94
+ const skillDirs = getSkillDirs(skillsSourceDir);
95
+ if (skillDirs.length === 0) {
96
+ return failure(`No skills found in ${skillsSourceDir}`, ExitCode.GENERAL_ERROR);
97
+ }
98
+ // Create target directory
99
+ const targetDir = join(process.cwd(), CLAUDE_DIR, SKILLS_DIR);
100
+ if (!existsSync(targetDir)) {
101
+ mkdirSync(targetDir, { recursive: true });
102
+ }
103
+ // Copy skills
104
+ const installed = [];
105
+ const skipped = [];
106
+ const errors = [];
107
+ for (const skillName of skillDirs) {
108
+ const srcPath = join(skillsSourceDir, skillName);
109
+ const destPath = join(targetDir, skillName);
110
+ // Check if already exists
111
+ if (existsSync(destPath) && !options.force) {
112
+ skipped.push(skillName);
113
+ continue;
114
+ }
115
+ try {
116
+ copyDir(srcPath, destPath);
117
+ installed.push(skillName);
118
+ }
119
+ catch (err) {
120
+ errors.push(`${skillName}: ${err instanceof Error ? err.message : String(err)}`);
121
+ }
122
+ }
123
+ // Build output message
124
+ const lines = [];
125
+ if (installed.length > 0) {
126
+ lines.push(`Installed ${installed.length} skill(s):`);
127
+ for (const skill of installed) {
128
+ lines.push(` - ${skill}/`);
129
+ }
130
+ }
131
+ if (skipped.length > 0) {
132
+ if (lines.length > 0)
133
+ lines.push('');
134
+ lines.push(`Skipped ${skipped.length} existing skill(s) (use --force to overwrite):`);
135
+ for (const skill of skipped) {
136
+ lines.push(` - ${skill}/`);
137
+ }
138
+ }
139
+ if (errors.length > 0) {
140
+ if (lines.length > 0)
141
+ lines.push('');
142
+ lines.push(`Failed to install ${errors.length} skill(s):`);
143
+ for (const error of errors) {
144
+ lines.push(` - ${error}`);
145
+ }
146
+ }
147
+ if (installed.length === 0 && skipped.length === 0 && errors.length === 0) {
148
+ return failure('No skills were installed', ExitCode.GENERAL_ERROR);
149
+ }
150
+ lines.push('');
151
+ lines.push(`Skills directory: ${targetDir}`);
152
+ return success({ installed, skipped, errors, targetDir }, lines.join('\n'));
153
+ }
154
+ const skillsCommand = {
155
+ name: 'skills',
156
+ description: 'Install Claude skills to .claude/skills/',
157
+ usage: 'sf install skills [--force]',
158
+ options: [
159
+ {
160
+ name: 'force',
161
+ short: 'f',
162
+ description: 'Overwrite existing skill files',
163
+ },
164
+ ],
165
+ handler: installSkillsHandler,
166
+ };
167
+ // ============================================================================
168
+ // Install Command
169
+ // ============================================================================
170
+ export const installCommand = {
171
+ name: 'install',
172
+ description: 'Install stoneforge extensions',
173
+ usage: 'sf install <subcommand> [options]',
174
+ help: `Install stoneforge extensions to the workspace.
175
+
176
+ Subcommands:
177
+ skills Install Claude skills to .claude/skills/
178
+
179
+ Examples:
180
+ sf install skills Install Claude skills to workspace
181
+ sf install skills --force Overwrite existing skills`,
182
+ subcommands: {
183
+ skills: skillsCommand,
184
+ },
185
+ handler: async (args, _options) => {
186
+ if (args.length === 0) {
187
+ return failure(`Missing subcommand. Use 'sf install skills'. Run 'sf install --help' for more information.`, ExitCode.INVALID_ARGUMENTS);
188
+ }
189
+ // Show "did you mean?" for unknown subcommands
190
+ const subNames = Object.keys(installCommand.subcommands);
191
+ const suggestions = suggestCommands(args[0], subNames);
192
+ let msg = `Unknown subcommand: ${args[0]}`;
193
+ if (suggestions.length > 0) {
194
+ msg += `\n\nDid you mean?\n${suggestions.map(s => ` ${s}`).join('\n')}`;
195
+ }
196
+ msg += '\n\nRun "sf install --help" to see available subcommands.';
197
+ return failure(msg, ExitCode.INVALID_ARGUMENTS);
198
+ },
199
+ };
200
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Library Commands - Collection command interface for libraries
3
+ *
4
+ * Provides CLI commands for library operations:
5
+ * - library create: Create a new library
6
+ * - library list: List libraries
7
+ * - library add: Add document to library
8
+ * - library remove: Remove document from library
9
+ */
10
+ import type { Command } from '../types.js';
11
+ export declare const libraryCommand: Command;
12
+ //# sourceMappingURL=library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/library.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAA+C,MAAM,aAAa,CAAC;AAkwBxF,eAAO,MAAM,cAAc,EAAE,OA8D5B,CAAC"}