jfl 0.1.0 → 0.2.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 (262) hide show
  1. package/README.md +443 -145
  2. package/clawdbot-plugin/clawdbot.plugin.json +20 -0
  3. package/clawdbot-plugin/index.js +555 -0
  4. package/clawdbot-plugin/index.ts +582 -0
  5. package/clawdbot-skill/SKILL.md +33 -336
  6. package/clawdbot-skill/index.ts +491 -321
  7. package/clawdbot-skill/skill.json +4 -13
  8. package/dist/commands/clawdbot.d.ts +11 -0
  9. package/dist/commands/clawdbot.d.ts.map +1 -0
  10. package/dist/commands/clawdbot.js +215 -0
  11. package/dist/commands/clawdbot.js.map +1 -0
  12. package/dist/commands/context-hub.d.ts +5 -0
  13. package/dist/commands/context-hub.d.ts.map +1 -1
  14. package/dist/commands/context-hub.js +394 -28
  15. package/dist/commands/context-hub.js.map +1 -1
  16. package/dist/commands/gtm-process-update.d.ts +10 -0
  17. package/dist/commands/gtm-process-update.d.ts.map +1 -0
  18. package/dist/commands/gtm-process-update.js +101 -0
  19. package/dist/commands/gtm-process-update.js.map +1 -0
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +278 -4
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/login.d.ts.map +1 -1
  24. package/dist/commands/login.js +32 -33
  25. package/dist/commands/login.js.map +1 -1
  26. package/dist/commands/memory.d.ts +38 -0
  27. package/dist/commands/memory.d.ts.map +1 -0
  28. package/dist/commands/memory.js +229 -0
  29. package/dist/commands/memory.js.map +1 -0
  30. package/dist/commands/migrate-services.d.ts +8 -0
  31. package/dist/commands/migrate-services.d.ts.map +1 -0
  32. package/dist/commands/migrate-services.js +182 -0
  33. package/dist/commands/migrate-services.js.map +1 -0
  34. package/dist/commands/onboard.d.ts +24 -0
  35. package/dist/commands/onboard.d.ts.map +1 -0
  36. package/dist/commands/onboard.js +663 -0
  37. package/dist/commands/onboard.js.map +1 -0
  38. package/dist/commands/openclaw.d.ts +56 -0
  39. package/dist/commands/openclaw.d.ts.map +1 -0
  40. package/dist/commands/openclaw.js +700 -0
  41. package/dist/commands/openclaw.js.map +1 -0
  42. package/dist/commands/orchestrate.d.ts +14 -0
  43. package/dist/commands/orchestrate.d.ts.map +1 -0
  44. package/dist/commands/orchestrate.js +270 -0
  45. package/dist/commands/orchestrate.js.map +1 -0
  46. package/dist/commands/profile.d.ts +46 -0
  47. package/dist/commands/profile.d.ts.map +1 -0
  48. package/dist/commands/profile.js +498 -0
  49. package/dist/commands/profile.js.map +1 -0
  50. package/dist/commands/repair.d.ts.map +1 -1
  51. package/dist/commands/repair.js +37 -0
  52. package/dist/commands/repair.js.map +1 -1
  53. package/dist/commands/service-agent.d.ts +16 -0
  54. package/dist/commands/service-agent.d.ts.map +1 -0
  55. package/dist/commands/service-agent.js +375 -0
  56. package/dist/commands/service-agent.js.map +1 -0
  57. package/dist/commands/service-manager.d.ts +12 -0
  58. package/dist/commands/service-manager.d.ts.map +1 -0
  59. package/dist/commands/service-manager.js +967 -0
  60. package/dist/commands/service-manager.js.map +1 -0
  61. package/dist/commands/service-validate.d.ts +12 -0
  62. package/dist/commands/service-validate.d.ts.map +1 -0
  63. package/dist/commands/service-validate.js +611 -0
  64. package/dist/commands/service-validate.js.map +1 -0
  65. package/dist/commands/services-create.d.ts +15 -0
  66. package/dist/commands/services-create.d.ts.map +1 -0
  67. package/dist/commands/services-create.js +1452 -0
  68. package/dist/commands/services-create.js.map +1 -0
  69. package/dist/commands/services-scan.d.ts +13 -0
  70. package/dist/commands/services-scan.d.ts.map +1 -0
  71. package/dist/commands/services-scan.js +251 -0
  72. package/dist/commands/services-scan.js.map +1 -0
  73. package/dist/commands/services-sync-agents.d.ts +23 -0
  74. package/dist/commands/services-sync-agents.d.ts.map +1 -0
  75. package/dist/commands/services-sync-agents.js +207 -0
  76. package/dist/commands/services-sync-agents.js.map +1 -0
  77. package/dist/commands/services.d.ts +19 -0
  78. package/dist/commands/services.d.ts.map +1 -0
  79. package/dist/commands/services.js +742 -0
  80. package/dist/commands/services.js.map +1 -0
  81. package/dist/commands/session.d.ts +5 -1
  82. package/dist/commands/session.d.ts.map +1 -1
  83. package/dist/commands/session.js +68 -586
  84. package/dist/commands/session.js.map +1 -1
  85. package/dist/commands/status.d.ts.map +1 -1
  86. package/dist/commands/status.js +17 -0
  87. package/dist/commands/status.js.map +1 -1
  88. package/dist/commands/update.d.ts.map +1 -1
  89. package/dist/commands/update.js +75 -21
  90. package/dist/commands/update.js.map +1 -1
  91. package/dist/commands/validate-settings.d.ts +37 -0
  92. package/dist/commands/validate-settings.d.ts.map +1 -0
  93. package/dist/commands/validate-settings.js +197 -0
  94. package/dist/commands/validate-settings.js.map +1 -0
  95. package/dist/commands/voice.d.ts +0 -1
  96. package/dist/commands/voice.d.ts.map +1 -1
  97. package/dist/commands/voice.js +16 -15
  98. package/dist/commands/voice.js.map +1 -1
  99. package/dist/index.js +395 -141
  100. package/dist/index.js.map +1 -1
  101. package/dist/lib/agent-generator.d.ts +26 -0
  102. package/dist/lib/agent-generator.d.ts.map +1 -0
  103. package/dist/lib/agent-generator.js +331 -0
  104. package/dist/lib/agent-generator.js.map +1 -0
  105. package/dist/lib/memory-db.d.ts +102 -0
  106. package/dist/lib/memory-db.d.ts.map +1 -0
  107. package/dist/lib/memory-db.js +313 -0
  108. package/dist/lib/memory-db.js.map +1 -0
  109. package/dist/lib/memory-indexer.d.ts +47 -0
  110. package/dist/lib/memory-indexer.d.ts.map +1 -0
  111. package/dist/lib/memory-indexer.js +215 -0
  112. package/dist/lib/memory-indexer.js.map +1 -0
  113. package/dist/lib/memory-search.d.ts +41 -0
  114. package/dist/lib/memory-search.d.ts.map +1 -0
  115. package/dist/lib/memory-search.js +246 -0
  116. package/dist/lib/memory-search.js.map +1 -0
  117. package/dist/lib/openclaw-registry.d.ts +48 -0
  118. package/dist/lib/openclaw-registry.d.ts.map +1 -0
  119. package/dist/lib/openclaw-registry.js +181 -0
  120. package/dist/lib/openclaw-registry.js.map +1 -0
  121. package/dist/lib/openclaw-sdk.d.ts +107 -0
  122. package/dist/lib/openclaw-sdk.d.ts.map +1 -0
  123. package/dist/lib/openclaw-sdk.js +208 -0
  124. package/dist/lib/openclaw-sdk.js.map +1 -0
  125. package/dist/lib/peer-agent-generator.d.ts +44 -0
  126. package/dist/lib/peer-agent-generator.d.ts.map +1 -0
  127. package/dist/lib/peer-agent-generator.js +286 -0
  128. package/dist/lib/peer-agent-generator.js.map +1 -0
  129. package/dist/lib/service-dependencies.d.ts +44 -0
  130. package/dist/lib/service-dependencies.d.ts.map +1 -0
  131. package/dist/lib/service-dependencies.js +314 -0
  132. package/dist/lib/service-dependencies.js.map +1 -0
  133. package/dist/lib/service-detector.d.ts +61 -0
  134. package/dist/lib/service-detector.d.ts.map +1 -0
  135. package/dist/lib/service-detector.js +521 -0
  136. package/dist/lib/service-detector.js.map +1 -0
  137. package/dist/lib/service-gtm.d.ts +157 -0
  138. package/dist/lib/service-gtm.d.ts.map +1 -0
  139. package/dist/lib/service-gtm.js +786 -0
  140. package/dist/lib/service-gtm.js.map +1 -0
  141. package/dist/lib/service-mcp-base.d.ts +103 -0
  142. package/dist/lib/service-mcp-base.d.ts.map +1 -0
  143. package/dist/lib/service-mcp-base.js +263 -0
  144. package/dist/lib/service-mcp-base.js.map +1 -0
  145. package/dist/lib/service-utils.d.ts +103 -0
  146. package/dist/lib/service-utils.d.ts.map +1 -0
  147. package/dist/lib/service-utils.js +368 -0
  148. package/dist/lib/service-utils.js.map +1 -0
  149. package/dist/lib/skill-generator.d.ts +21 -0
  150. package/dist/lib/skill-generator.d.ts.map +1 -0
  151. package/dist/lib/skill-generator.js +253 -0
  152. package/dist/lib/skill-generator.js.map +1 -0
  153. package/dist/lib/stratus-client.d.ts +100 -0
  154. package/dist/lib/stratus-client.d.ts.map +1 -0
  155. package/dist/lib/stratus-client.js +255 -0
  156. package/dist/lib/stratus-client.js.map +1 -0
  157. package/dist/mcp/context-hub-mcp.js +135 -53
  158. package/dist/mcp/context-hub-mcp.js.map +1 -1
  159. package/dist/mcp/service-mcp-server.d.ts +12 -0
  160. package/dist/mcp/service-mcp-server.d.ts.map +1 -0
  161. package/dist/mcp/service-mcp-server.js +434 -0
  162. package/dist/mcp/service-mcp-server.js.map +1 -0
  163. package/dist/mcp/service-peer-mcp.d.ts +36 -0
  164. package/dist/mcp/service-peer-mcp.d.ts.map +1 -0
  165. package/dist/mcp/service-peer-mcp.js +220 -0
  166. package/dist/mcp/service-peer-mcp.js.map +1 -0
  167. package/dist/mcp/service-registry-mcp.d.ts +13 -0
  168. package/dist/mcp/service-registry-mcp.d.ts.map +1 -0
  169. package/dist/mcp/service-registry-mcp.js +330 -0
  170. package/dist/mcp/service-registry-mcp.js.map +1 -0
  171. package/dist/ui/banner.js +1 -1
  172. package/dist/ui/banner.js.map +1 -1
  173. package/dist/ui/context-hub-logs.d.ts +10 -0
  174. package/dist/ui/context-hub-logs.d.ts.map +1 -0
  175. package/dist/ui/context-hub-logs.js +175 -0
  176. package/dist/ui/context-hub-logs.js.map +1 -0
  177. package/dist/ui/service-dashboard.d.ts +11 -0
  178. package/dist/ui/service-dashboard.d.ts.map +1 -0
  179. package/dist/ui/service-dashboard.js +357 -0
  180. package/dist/ui/service-dashboard.js.map +1 -0
  181. package/dist/ui/services-manager.d.ts +11 -0
  182. package/dist/ui/services-manager.d.ts.map +1 -0
  183. package/dist/ui/services-manager.js +507 -0
  184. package/dist/ui/services-manager.js.map +1 -0
  185. package/dist/utils/auth-guard.d.ts.map +1 -1
  186. package/dist/utils/auth-guard.js +8 -9
  187. package/dist/utils/auth-guard.js.map +1 -1
  188. package/dist/utils/claude-md-generator.d.ts +10 -0
  189. package/dist/utils/claude-md-generator.d.ts.map +1 -0
  190. package/dist/utils/claude-md-generator.js +215 -0
  191. package/dist/utils/claude-md-generator.js.map +1 -0
  192. package/dist/utils/ensure-context-hub.d.ts +20 -0
  193. package/dist/utils/ensure-context-hub.d.ts.map +1 -0
  194. package/dist/utils/ensure-context-hub.js +65 -0
  195. package/dist/utils/ensure-context-hub.js.map +1 -0
  196. package/dist/utils/ensure-project.d.ts.map +1 -1
  197. package/dist/utils/ensure-project.js +3 -4
  198. package/dist/utils/ensure-project.js.map +1 -1
  199. package/dist/utils/jfl-config.d.ts +19 -0
  200. package/dist/utils/jfl-config.d.ts.map +1 -0
  201. package/dist/utils/jfl-config.js +112 -0
  202. package/dist/utils/jfl-config.js.map +1 -0
  203. package/dist/utils/jfl-migration.d.ts +29 -0
  204. package/dist/utils/jfl-migration.d.ts.map +1 -0
  205. package/dist/utils/jfl-migration.js +142 -0
  206. package/dist/utils/jfl-migration.js.map +1 -0
  207. package/dist/utils/jfl-paths.d.ts +55 -0
  208. package/dist/utils/jfl-paths.d.ts.map +1 -0
  209. package/dist/utils/jfl-paths.js +120 -0
  210. package/dist/utils/jfl-paths.js.map +1 -0
  211. package/dist/utils/settings-validator.d.ts +73 -0
  212. package/dist/utils/settings-validator.d.ts.map +1 -0
  213. package/dist/utils/settings-validator.js +222 -0
  214. package/dist/utils/settings-validator.js.map +1 -0
  215. package/package.json +19 -3
  216. package/scripts/commit-gtm.sh +56 -0
  217. package/scripts/commit-product.sh +68 -0
  218. package/scripts/context-query.sh +45 -0
  219. package/scripts/session/auto-commit.sh +297 -0
  220. package/scripts/session/jfl-doctor.sh +707 -0
  221. package/scripts/session/session-cleanup.sh +268 -0
  222. package/scripts/session/session-end.sh +198 -0
  223. package/scripts/session/session-init.sh +350 -0
  224. package/scripts/session/session-init.sh.backup +292 -0
  225. package/scripts/session/session-sync.sh +167 -0
  226. package/scripts/session/test-context-preservation.sh +160 -0
  227. package/scripts/session/test-critical-infrastructure.sh +293 -0
  228. package/scripts/session/test-experience-level.sh +336 -0
  229. package/scripts/session/test-session-cleanup.sh +268 -0
  230. package/scripts/session/test-session-sync.sh +320 -0
  231. package/scripts/voice-start.sh +36 -8
  232. package/scripts/where-am-i.sh +78 -0
  233. package/template/.claude/service-settings.json +32 -0
  234. package/template/.claude/settings.json +14 -1
  235. package/template/.claude/skills/end/SKILL.md +1780 -0
  236. package/template/.jfl/config.json +2 -1
  237. package/template/CLAUDE.md +1039 -134
  238. package/template/CLAUDE.md.bak +1187 -0
  239. package/template/scripts/commit-gtm.sh +56 -0
  240. package/template/scripts/commit-product.sh +68 -0
  241. package/template/scripts/migrate-to-branch-sessions.sh +201 -0
  242. package/template/scripts/session/auto-commit.sh +58 -6
  243. package/template/scripts/session/jfl-doctor.sh +137 -17
  244. package/template/scripts/session/session-cleanup.sh +268 -0
  245. package/template/scripts/session/session-end.sh +4 -0
  246. package/template/scripts/session/session-init.sh +253 -66
  247. package/template/scripts/session/test-critical-infrastructure.sh +293 -0
  248. package/template/scripts/session/test-experience-level.sh +336 -0
  249. package/template/scripts/session/test-session-cleanup.sh +268 -0
  250. package/template/scripts/session/test-session-sync.sh +320 -0
  251. package/template/scripts/where-am-i.sh +78 -0
  252. package/template/templates/service-agent/.claude/settings.json +32 -0
  253. package/template/templates/service-agent/CLAUDE.md +334 -0
  254. package/template/templates/service-agent/knowledge/ARCHITECTURE.md +115 -0
  255. package/template/templates/service-agent/knowledge/DEPLOYMENT.md +199 -0
  256. package/template/templates/service-agent/knowledge/RUNBOOK.md +412 -0
  257. package/template/templates/service-agent/knowledge/SERVICE_SPEC.md +77 -0
  258. package/dist/commands/session-mgmt.d.ts +0 -33
  259. package/dist/commands/session-mgmt.d.ts.map +0 -1
  260. package/dist/commands/session-mgmt.js +0 -404
  261. package/dist/commands/session-mgmt.js.map +0 -1
  262. package/template/scripts/session/auto-merge.sh +0 -325
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-create.js","sourceRoot":"","sources":["../../src/commands/services-create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Services Auto-Discovery
3
+ *
4
+ * Automatically discovers services in a project and registers them.
5
+ * Scans for package.json, detects type, port, and configuration.
6
+ *
7
+ * @purpose Zero-config service discovery for GTM projects
8
+ */
9
+ export declare function scanServices(options?: {
10
+ path?: string;
11
+ dryRun?: boolean;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=services-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-scan.d.ts","sourceRoot":"","sources":["../../src/commands/services-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwNH,wBAAsB,YAAY,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGnG"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Services Auto-Discovery
3
+ *
4
+ * Automatically discovers services in a project and registers them.
5
+ * Scans for package.json, detects type, port, and configuration.
6
+ *
7
+ * @purpose Zero-config service discovery for GTM projects
8
+ */
9
+ import chalk from "chalk";
10
+ import ora from "ora";
11
+ import * as fs from "fs";
12
+ import * as path from "path";
13
+ import { JFL_PATHS } from "../utils/jfl-paths.js";
14
+ const GLOBAL_SERVICES_FILE = path.join(JFL_PATHS.data, "services.json");
15
+ // ============================================================================
16
+ // Service Detection
17
+ // ============================================================================
18
+ function findServiceDirectories(rootPath, maxDepth = 3) {
19
+ const services = [];
20
+ function scan(dir, depth) {
21
+ if (depth > maxDepth)
22
+ return;
23
+ try {
24
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
25
+ for (const entry of entries) {
26
+ if (!entry.isDirectory())
27
+ continue;
28
+ // Skip common non-service directories
29
+ if (entry.name.startsWith('.') ||
30
+ entry.name === 'node_modules' ||
31
+ entry.name === 'dist' ||
32
+ entry.name === 'build' ||
33
+ entry.name === 'out' ||
34
+ entry.name === '__pycache__') {
35
+ continue;
36
+ }
37
+ const fullPath = path.join(dir, entry.name);
38
+ // Check if this is a service (has package.json or Dockerfile)
39
+ const hasPackageJson = fs.existsSync(path.join(fullPath, 'package.json'));
40
+ const hasDockerfile = fs.existsSync(path.join(fullPath, 'Dockerfile'));
41
+ if (hasPackageJson || hasDockerfile) {
42
+ services.push(fullPath);
43
+ }
44
+ else {
45
+ // Continue scanning subdirectories
46
+ scan(fullPath, depth + 1);
47
+ }
48
+ }
49
+ }
50
+ catch (error) {
51
+ // Skip directories we can't read
52
+ }
53
+ }
54
+ scan(rootPath, 0);
55
+ return services;
56
+ }
57
+ function detectServiceConfig(servicePath) {
58
+ const packageJsonPath = path.join(servicePath, 'package.json');
59
+ if (!fs.existsSync(packageJsonPath)) {
60
+ return null;
61
+ }
62
+ try {
63
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
64
+ const serviceName = packageJson.name || path.basename(servicePath);
65
+ const description = packageJson.description || `Service: ${serviceName}`;
66
+ // Detect type
67
+ let type = 'server';
68
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
69
+ if (deps['next'] || deps['@remix-run/react']) {
70
+ type = 'web';
71
+ }
72
+ else if (deps['express'] || deps['fastify'] || deps['koa']) {
73
+ type = 'api';
74
+ }
75
+ else if (deps['bull'] || deps['agenda'] || serviceName.includes('worker')) {
76
+ type = 'worker';
77
+ }
78
+ else if (serviceName.includes('cli')) {
79
+ type = 'cli';
80
+ }
81
+ // Detect port
82
+ let port;
83
+ const envPath = path.join(servicePath, '.env');
84
+ if (fs.existsSync(envPath)) {
85
+ const envContent = fs.readFileSync(envPath, 'utf-8');
86
+ const portMatch = envContent.match(/PORT=(\d+)/);
87
+ if (portMatch) {
88
+ port = parseInt(portMatch[1], 10);
89
+ }
90
+ }
91
+ // Default ports by type
92
+ if (!port) {
93
+ switch (type) {
94
+ case 'web':
95
+ port = 3000;
96
+ break;
97
+ case 'api':
98
+ port = 4000;
99
+ break;
100
+ }
101
+ }
102
+ // Detect start command
103
+ let startCommand = `cd ${servicePath} && npm start`;
104
+ if (packageJson.scripts?.dev) {
105
+ startCommand = `cd ${servicePath} && npm run dev`;
106
+ }
107
+ else if (packageJson.scripts?.start) {
108
+ startCommand = `cd ${servicePath} && npm start`;
109
+ }
110
+ // Stop command
111
+ const stopCommand = port
112
+ ? `lsof -ti:${port} -sTCP:LISTEN | xargs kill -9 2>/dev/null || true`
113
+ : `pkill -f "${serviceName}"`;
114
+ // Detection command
115
+ const detectionCommand = port
116
+ ? `lsof -ti:${port} -sTCP:LISTEN`
117
+ : `pgrep -f "${serviceName}"`;
118
+ // Health URL
119
+ const healthUrl = port ? `http://localhost:${port}/health` : undefined;
120
+ return {
121
+ name: serviceName,
122
+ type,
123
+ description,
124
+ port,
125
+ start_command: startCommand,
126
+ stop_command: stopCommand,
127
+ detection_command: detectionCommand,
128
+ pid_file: `\${HOME}/.jfl/service-manager/pids/${serviceName}.pid`,
129
+ log_file: `\${HOME}/.jfl/service-manager/logs/${serviceName}.log`,
130
+ health_url: healthUrl,
131
+ path: servicePath,
132
+ mcp: {
133
+ enabled: true,
134
+ tools: []
135
+ }
136
+ };
137
+ }
138
+ catch (error) {
139
+ console.error(chalk.yellow(`Failed to parse package.json in ${servicePath}`));
140
+ return null;
141
+ }
142
+ }
143
+ // ============================================================================
144
+ // Services Config Management
145
+ // ============================================================================
146
+ function loadServicesConfig() {
147
+ if (!fs.existsSync(GLOBAL_SERVICES_FILE)) {
148
+ return { version: "1.0", services: {} };
149
+ }
150
+ const content = fs.readFileSync(GLOBAL_SERVICES_FILE, 'utf-8');
151
+ return JSON.parse(content);
152
+ }
153
+ function saveServicesConfig(config) {
154
+ const dir = path.dirname(GLOBAL_SERVICES_FILE);
155
+ if (!fs.existsSync(dir)) {
156
+ fs.mkdirSync(dir, { recursive: true });
157
+ }
158
+ fs.writeFileSync(GLOBAL_SERVICES_FILE, JSON.stringify(config, null, 2));
159
+ }
160
+ // ============================================================================
161
+ // Main Command
162
+ // ============================================================================
163
+ export async function scanServices(options = {}) {
164
+ const scanPath = options.path || process.cwd();
165
+ const spinner = ora(`Scanning for services in ${scanPath}...`).start();
166
+ try {
167
+ // Find all service directories
168
+ const serviceDirs = findServiceDirectories(scanPath);
169
+ if (serviceDirs.length === 0) {
170
+ spinner.info("No services found");
171
+ console.log(chalk.dim("\nLooking for directories with package.json or Dockerfile"));
172
+ console.log(chalk.dim(`Scanned: ${scanPath}`));
173
+ return;
174
+ }
175
+ spinner.text = `Found ${serviceDirs.length} potential service(s), detecting configuration...`;
176
+ // Detect configuration for each service
177
+ const services = [];
178
+ for (const dir of serviceDirs) {
179
+ const config = detectServiceConfig(dir);
180
+ if (config) {
181
+ services.push(config);
182
+ }
183
+ }
184
+ if (services.length === 0) {
185
+ spinner.warn("No services could be configured");
186
+ return;
187
+ }
188
+ spinner.succeed(`Discovered ${services.length} service(s)`);
189
+ // Display discovered services
190
+ console.log();
191
+ console.log(chalk.bold("Discovered Services:"));
192
+ console.log();
193
+ for (const service of services) {
194
+ console.log(chalk.green(`✓ ${service.name}`));
195
+ console.log(chalk.dim(` Type: ${service.type}`));
196
+ if (service.port) {
197
+ console.log(chalk.dim(` Port: ${service.port}`));
198
+ }
199
+ console.log(chalk.dim(` Path: ${service.path}`));
200
+ console.log(chalk.dim(` Start: ${service.start_command}`));
201
+ console.log();
202
+ }
203
+ // Dry run check
204
+ if (options.dryRun) {
205
+ console.log(chalk.yellow("Dry run - no changes made"));
206
+ console.log(chalk.dim("Run without --dry-run to register these services"));
207
+ return;
208
+ }
209
+ // Load existing config
210
+ const config = loadServicesConfig();
211
+ // Add/update services
212
+ let added = 0;
213
+ let updated = 0;
214
+ for (const service of services) {
215
+ if (config.services[service.name]) {
216
+ // Update existing
217
+ config.services[service.name] = {
218
+ ...config.services[service.name],
219
+ ...service,
220
+ name: service.name
221
+ };
222
+ updated++;
223
+ }
224
+ else {
225
+ // Add new
226
+ config.services[service.name] = {
227
+ ...service,
228
+ name: service.name
229
+ };
230
+ added++;
231
+ }
232
+ }
233
+ // Save config
234
+ saveServicesConfig(config);
235
+ console.log(chalk.green(`\n✓ Registered services to ${GLOBAL_SERVICES_FILE}`));
236
+ console.log(chalk.dim(` Added: ${added}`));
237
+ console.log(chalk.dim(` Updated: ${updated}`));
238
+ console.log();
239
+ console.log(chalk.bold("Next steps:"));
240
+ console.log(chalk.dim("1. Start Service Manager: jfl service-manager start"));
241
+ console.log(chalk.dim("2. View services: jfl services list"));
242
+ console.log(chalk.dim("3. Start a service: jfl services start <name>"));
243
+ console.log();
244
+ }
245
+ catch (error) {
246
+ spinner.fail("Failed to scan services");
247
+ console.error(chalk.red(error instanceof Error ? error.message : String(error)));
248
+ process.exit(1);
249
+ }
250
+ }
251
+ //# sourceMappingURL=services-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-scan.js","sourceRoot":"","sources":["../../src/commands/services-scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Services Sync Agents Command
3
+ *
4
+ * Syncs peer agent definitions across all services in a GTM workspace.
5
+ * Ensures each service can @-mention other registered services.
6
+ *
7
+ * Usage:
8
+ * jfl services sync-agents # Sync all services
9
+ * jfl services sync-agents <service> # Sync specific service
10
+ * jfl services sync-agents --dry-run # Preview changes
11
+ * jfl services sync-agents --current # Sync current service only
12
+ *
13
+ * @purpose Sync peer agent definitions for cross-service collaboration
14
+ */
15
+ export interface SyncAgentsOptions {
16
+ dryRun?: boolean;
17
+ current?: boolean;
18
+ }
19
+ /**
20
+ * Main sync-agents command
21
+ */
22
+ export declare function servicesSyncAgentsCommand(serviceName?: string, options?: SyncAgentsOptions): Promise<void>;
23
+ //# sourceMappingURL=services-sync-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-sync-agents.d.ts","sourceRoot":"","sources":["../../src/commands/services-sync-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AA6DD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgKf"}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Services Sync Agents Command
3
+ *
4
+ * Syncs peer agent definitions across all services in a GTM workspace.
5
+ * Ensures each service can @-mention other registered services.
6
+ *
7
+ * Usage:
8
+ * jfl services sync-agents # Sync all services
9
+ * jfl services sync-agents <service> # Sync specific service
10
+ * jfl services sync-agents --dry-run # Preview changes
11
+ * jfl services sync-agents --current # Sync current service only
12
+ *
13
+ * @purpose Sync peer agent definitions for cross-service collaboration
14
+ */
15
+ import chalk from "chalk";
16
+ import ora from "ora";
17
+ import * as p from "@clack/prompts";
18
+ import { existsSync, readFileSync } from "fs";
19
+ import { join } from "path";
20
+ import { syncPeerAgents, getRegisteredServices, } from "../lib/peer-agent-generator.js";
21
+ /**
22
+ * Find GTM directory (current dir or parent)
23
+ */
24
+ function findGTMDirectory() {
25
+ let currentDir = process.cwd();
26
+ // Check current directory and up to 3 levels up
27
+ for (let i = 0; i < 4; i++) {
28
+ const configPath = join(currentDir, ".jfl/config.json");
29
+ if (existsSync(configPath)) {
30
+ try {
31
+ const config = JSON.parse(readFileSync(configPath, "utf-8"));
32
+ if (config.type === "gtm") {
33
+ return currentDir;
34
+ }
35
+ }
36
+ catch {
37
+ // Invalid config, continue
38
+ }
39
+ }
40
+ const parent = join(currentDir, "..");
41
+ if (parent === currentDir)
42
+ break; // Reached root
43
+ currentDir = parent;
44
+ }
45
+ return null;
46
+ }
47
+ /**
48
+ * Find service directory (current dir if it's a service)
49
+ */
50
+ function findServiceDirectory() {
51
+ const configPath = join(process.cwd(), ".jfl/config.json");
52
+ if (existsSync(configPath)) {
53
+ try {
54
+ const config = JSON.parse(readFileSync(configPath, "utf-8"));
55
+ if (config.type === "service" && config.gtm_parent) {
56
+ return process.cwd();
57
+ }
58
+ }
59
+ catch {
60
+ // Invalid config
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+ /**
66
+ * Resolve service path (absolute or relative to GTM)
67
+ */
68
+ function resolveServicePath(servicePath, gtmPath) {
69
+ if (servicePath.startsWith("/")) {
70
+ return servicePath;
71
+ }
72
+ return join(gtmPath, servicePath);
73
+ }
74
+ /**
75
+ * Main sync-agents command
76
+ */
77
+ export async function servicesSyncAgentsCommand(serviceName, options = {}) {
78
+ p.intro(chalk.hex("#FFD700")("┌ JFL - Sync Peer Agents"));
79
+ // Handle --current flag (sync current service only)
80
+ if (options.current) {
81
+ const serviceDir = findServiceDirectory();
82
+ if (!serviceDir) {
83
+ p.log.error("Not in a service directory");
84
+ p.log.info("Run this command from inside a service, or use without --current");
85
+ p.outro(chalk.red("Sync failed"));
86
+ return;
87
+ }
88
+ // Get GTM path from service config
89
+ const serviceConfig = JSON.parse(readFileSync(join(serviceDir, ".jfl/config.json"), "utf-8"));
90
+ const gtmPath = serviceConfig.gtm_parent;
91
+ if (!gtmPath || !existsSync(gtmPath)) {
92
+ p.log.error(`GTM parent not found: ${gtmPath}`);
93
+ p.outro(chalk.red("Sync failed"));
94
+ return;
95
+ }
96
+ console.log(chalk.gray(`Service: ${serviceDir}`));
97
+ console.log(chalk.gray(`GTM: ${gtmPath}\n`));
98
+ if (options.dryRun) {
99
+ console.log(chalk.yellow("DRY RUN - No changes will be made\n"));
100
+ }
101
+ // Sync this service only
102
+ const spinner = ora(`Syncing peer agents for current service...`).start();
103
+ try {
104
+ const stats = syncPeerAgents(serviceDir, gtmPath);
105
+ spinner.succeed(`Synced: ${chalk.green(stats.added)} added, ${chalk.cyan(stats.updated)} updated, ${chalk.red(stats.removed)} removed`);
106
+ }
107
+ catch (err) {
108
+ spinner.fail(`Sync failed: ${err.message}`);
109
+ }
110
+ p.outro(chalk.green("✓ Done"));
111
+ return;
112
+ }
113
+ // Find GTM directory
114
+ const gtmPath = findGTMDirectory();
115
+ if (!gtmPath) {
116
+ p.log.error("Not in a GTM directory");
117
+ p.log.info("Run this command from inside a JFL GTM workspace");
118
+ p.log.info("Or run: jfl init to create a new GTM workspace");
119
+ p.outro(chalk.red("Sync failed"));
120
+ return;
121
+ }
122
+ console.log(chalk.gray(`GTM Path: ${gtmPath}\n`));
123
+ if (options.dryRun) {
124
+ console.log(chalk.yellow("DRY RUN - No changes will be made\n"));
125
+ }
126
+ // Get registered services
127
+ const services = getRegisteredServices(gtmPath);
128
+ if (services.length === 0) {
129
+ p.log.warn("No services registered in GTM");
130
+ p.log.info("Run: jfl onboard <path> to register services");
131
+ p.outro(chalk.yellow("Nothing to sync"));
132
+ return;
133
+ }
134
+ console.log(chalk.cyan(`Found ${services.length} registered services:\n`));
135
+ services.forEach((s) => {
136
+ console.log(chalk.gray(` - ${s.name} (${s.type})`));
137
+ });
138
+ console.log();
139
+ // Filter to specific service if provided
140
+ let servicesToSync = services;
141
+ if (serviceName) {
142
+ const targetService = services.find((s) => s.name === serviceName);
143
+ if (!targetService) {
144
+ p.log.error(`Service not found: ${serviceName}`);
145
+ p.log.info("Available services:");
146
+ services.forEach((s) => {
147
+ console.log(chalk.gray(` - ${s.name}`));
148
+ });
149
+ p.outro(chalk.red("Sync failed"));
150
+ return;
151
+ }
152
+ servicesToSync = [targetService];
153
+ console.log(chalk.cyan(`Syncing: ${serviceName}\n`));
154
+ }
155
+ else {
156
+ console.log(chalk.cyan(`Syncing all services...\n`));
157
+ }
158
+ // Sync each service
159
+ let totalAdded = 0;
160
+ let totalUpdated = 0;
161
+ let totalRemoved = 0;
162
+ let errorCount = 0;
163
+ for (const service of servicesToSync) {
164
+ const servicePath = resolveServicePath(service.path, gtmPath);
165
+ if (!existsSync(servicePath)) {
166
+ console.log(chalk.yellow(`⚠️ Service path not found: ${servicePath} (skipping)`));
167
+ errorCount++;
168
+ continue;
169
+ }
170
+ const spinner = ora(`Syncing ${service.name}...`).start();
171
+ try {
172
+ if (!options.dryRun) {
173
+ const stats = syncPeerAgents(servicePath, gtmPath);
174
+ totalAdded += stats.added;
175
+ totalUpdated += stats.updated;
176
+ totalRemoved += stats.removed;
177
+ spinner.succeed(`${service.name}: ${chalk.green(stats.added)} added, ${chalk.cyan(stats.updated)} updated, ${chalk.red(stats.removed)} removed`);
178
+ }
179
+ else {
180
+ // Dry run - just show what would happen
181
+ const stats = { added: 0, updated: 0, removed: 0 };
182
+ // TODO: Implement dry-run logic
183
+ spinner.succeed(`${service.name}: Would sync peer agents (dry run)`);
184
+ }
185
+ }
186
+ catch (err) {
187
+ spinner.fail(`${service.name}: ${err.message}`);
188
+ errorCount++;
189
+ }
190
+ }
191
+ console.log();
192
+ // Summary
193
+ if (!options.dryRun) {
194
+ p.note(`Total changes:\n` +
195
+ ` Added: ${chalk.green(totalAdded)}\n` +
196
+ ` Updated: ${chalk.cyan(totalUpdated)}\n` +
197
+ ` Removed: ${chalk.red(totalRemoved)}\n` +
198
+ ` Errors: ${errorCount > 0 ? chalk.red(errorCount) : chalk.gray(errorCount)}`, "📊 Summary");
199
+ }
200
+ if (errorCount > 0) {
201
+ p.outro(chalk.yellow("⚠️ Completed with errors"));
202
+ }
203
+ else {
204
+ p.outro(chalk.green("✓ All services synced successfully"));
205
+ }
206
+ }
207
+ //# sourceMappingURL=services-sync-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-sync-agents.js","sourceRoot":"","sources":["../../src/commands/services-sync-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Global Service Management
3
+ *
4
+ * Manages services across all GTM projects with port allocation.
5
+ *
6
+ * @purpose Global service management with dynamic port allocation
7
+ * @spec Multi-GTM Service Management Plan - Phase 2
8
+ */
9
+ /**
10
+ * Main services command
11
+ */
12
+ export declare function servicesCommand(action?: string, serviceName?: string, options?: {
13
+ fix?: boolean;
14
+ json?: boolean;
15
+ dryRun?: boolean;
16
+ current?: boolean;
17
+ skipAI?: boolean;
18
+ }): Promise<void>;
19
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/commands/services.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkvBH;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACrG,OAAO,CAAC,IAAI,CAAC,CAsLf"}