jfl 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +77 -7
  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 +516 -319
  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/gtm-process-update.d.ts +10 -0
  13. package/dist/commands/gtm-process-update.d.ts.map +1 -0
  14. package/dist/commands/gtm-process-update.js +101 -0
  15. package/dist/commands/gtm-process-update.js.map +1 -0
  16. package/dist/commands/onboard.d.ts.map +1 -1
  17. package/dist/commands/onboard.js +203 -15
  18. package/dist/commands/onboard.js.map +1 -1
  19. package/dist/commands/openclaw.d.ts +56 -0
  20. package/dist/commands/openclaw.d.ts.map +1 -0
  21. package/dist/commands/openclaw.js +700 -0
  22. package/dist/commands/openclaw.js.map +1 -0
  23. package/dist/commands/service-validate.d.ts +12 -0
  24. package/dist/commands/service-validate.d.ts.map +1 -0
  25. package/dist/commands/service-validate.js +611 -0
  26. package/dist/commands/service-validate.js.map +1 -0
  27. package/dist/commands/services-create.d.ts +15 -0
  28. package/dist/commands/services-create.d.ts.map +1 -0
  29. package/dist/commands/services-create.js +1452 -0
  30. package/dist/commands/services-create.js.map +1 -0
  31. package/dist/commands/services-sync-agents.d.ts +23 -0
  32. package/dist/commands/services-sync-agents.d.ts.map +1 -0
  33. package/dist/commands/services-sync-agents.js +207 -0
  34. package/dist/commands/services-sync-agents.js.map +1 -0
  35. package/dist/commands/services.d.ts +7 -1
  36. package/dist/commands/services.d.ts.map +1 -1
  37. package/dist/commands/services.js +347 -22
  38. package/dist/commands/services.js.map +1 -1
  39. package/dist/commands/update.js +0 -0
  40. package/dist/commands/validate-settings.d.ts +37 -0
  41. package/dist/commands/validate-settings.d.ts.map +1 -0
  42. package/dist/commands/validate-settings.js +197 -0
  43. package/dist/commands/validate-settings.js.map +1 -0
  44. package/dist/index.js +155 -60
  45. package/dist/index.js.map +1 -1
  46. package/dist/lib/agent-generator.d.ts.map +1 -1
  47. package/dist/lib/agent-generator.js +94 -1
  48. package/dist/lib/agent-generator.js.map +1 -1
  49. package/dist/lib/openclaw-registry.d.ts +48 -0
  50. package/dist/lib/openclaw-registry.d.ts.map +1 -0
  51. package/dist/lib/openclaw-registry.js +181 -0
  52. package/dist/lib/openclaw-registry.js.map +1 -0
  53. package/dist/lib/openclaw-sdk.d.ts +107 -0
  54. package/dist/lib/openclaw-sdk.d.ts.map +1 -0
  55. package/dist/lib/openclaw-sdk.js +208 -0
  56. package/dist/lib/openclaw-sdk.js.map +1 -0
  57. package/dist/lib/peer-agent-generator.d.ts +44 -0
  58. package/dist/lib/peer-agent-generator.d.ts.map +1 -0
  59. package/dist/lib/peer-agent-generator.js +286 -0
  60. package/dist/lib/peer-agent-generator.js.map +1 -0
  61. package/dist/lib/service-detector.d.ts +1 -1
  62. package/dist/lib/service-detector.d.ts.map +1 -1
  63. package/dist/lib/service-detector.js +118 -5
  64. package/dist/lib/service-detector.js.map +1 -1
  65. package/dist/lib/service-gtm.d.ts +157 -0
  66. package/dist/lib/service-gtm.d.ts.map +1 -0
  67. package/dist/lib/service-gtm.js +786 -0
  68. package/dist/lib/service-gtm.js.map +1 -0
  69. package/dist/lib/service-mcp-base.d.ts +10 -1
  70. package/dist/lib/service-mcp-base.d.ts.map +1 -1
  71. package/dist/lib/service-mcp-base.js +20 -1
  72. package/dist/lib/service-mcp-base.js.map +1 -1
  73. package/dist/mcp/service-peer-mcp.d.ts +36 -0
  74. package/dist/mcp/service-peer-mcp.d.ts.map +1 -0
  75. package/dist/mcp/service-peer-mcp.js +220 -0
  76. package/dist/mcp/service-peer-mcp.js.map +1 -0
  77. package/dist/mcp/service-registry-mcp.js +0 -0
  78. package/dist/utils/settings-validator.d.ts +4 -1
  79. package/dist/utils/settings-validator.d.ts.map +1 -1
  80. package/dist/utils/settings-validator.js +25 -1
  81. package/dist/utils/settings-validator.js.map +1 -1
  82. package/package.json +2 -1
  83. package/template/.claude/service-settings.json +32 -0
  84. package/template/.claude/settings.json +10 -0
  85. package/template/.claude/skills/end/SKILL.md +1780 -0
  86. package/template/.jfl/config.json +2 -1
  87. package/template/.mcp.json +1 -7
  88. package/template/CLAUDE.md +1042 -248
  89. package/template/CLAUDE.md.bak +1187 -0
  90. package/template/scripts/commit-gtm.sh +56 -0
  91. package/template/scripts/commit-product.sh +68 -0
  92. package/template/scripts/migrate-to-branch-sessions.sh +201 -0
  93. package/template/scripts/session/auto-commit.sh +4 -3
  94. package/template/scripts/session/jfl-doctor.sh +222 -83
  95. package/template/scripts/session/session-cleanup.sh +109 -21
  96. package/template/scripts/session/session-end.sh +26 -13
  97. package/template/scripts/session/session-init.sh +280 -98
  98. package/template/scripts/session/test-critical-infrastructure.sh +293 -0
  99. package/template/scripts/session/test-experience-level.sh +336 -0
  100. package/template/scripts/session/test-session-cleanup.sh +268 -0
  101. package/template/scripts/session/test-session-sync.sh +320 -0
  102. package/template/scripts/where-am-i.sh +78 -0
  103. package/template/templates/service-agent/.claude/settings.json +32 -0
  104. package/template/templates/service-agent/CLAUDE.md +334 -0
  105. package/template/templates/service-agent/knowledge/ARCHITECTURE.md +115 -0
  106. package/template/templates/service-agent/knowledge/DEPLOYMENT.md +199 -0
  107. package/template/templates/service-agent/knowledge/RUNBOOK.md +412 -0
  108. package/template/templates/service-agent/knowledge/SERVICE_SPEC.md +77 -0
  109. package/dist/commands/session-mgmt.d.ts +0 -33
  110. package/dist/commands/session-mgmt.d.ts.map +0 -1
  111. package/dist/commands/session-mgmt.js +0 -404
  112. package/dist/commands/session-mgmt.js.map +0 -1
@@ -16,10 +16,42 @@ import { execSync } from "child_process";
16
16
  * Detect service type from codebase structure
17
17
  */
18
18
  export function detectServiceType(path) {
19
+ // Check for OpenClaw plugin - parse manifest for enriched type detection
20
+ if (existsSync(join(path, "openclaw.plugin.json"))) {
21
+ try {
22
+ const manifest = JSON.parse(readFileSync(join(path, "openclaw.plugin.json"), "utf-8"));
23
+ const runtimeType = manifest.runtime?.type;
24
+ // Map runtime types to service types
25
+ if (runtimeType === "clawdbot")
26
+ return "worker";
27
+ if (runtimeType === "claude-code" || runtimeType === "cursor")
28
+ return "cli";
29
+ // Default: infer from capabilities
30
+ const caps = manifest.agent?.capabilities || [];
31
+ if (caps.includes("session_create"))
32
+ return "worker";
33
+ }
34
+ catch {
35
+ // Malformed manifest, fall through
36
+ }
37
+ return "library";
38
+ }
19
39
  // Check for Docker
20
40
  if (existsSync(join(path, "Dockerfile")) || existsSync(join(path, "docker-compose.yml"))) {
21
41
  return "container";
22
42
  }
43
+ // Check for Mintlify docs project
44
+ const docsJson = join(path, "docs.json");
45
+ const mintJson = join(path, "mint.json");
46
+ if (existsSync(docsJson)) {
47
+ const content = readFileSync(docsJson, "utf-8");
48
+ if (content.includes("mintlify")) {
49
+ return "infrastructure"; // docs aren't operational services
50
+ }
51
+ }
52
+ else if (existsSync(mintJson)) {
53
+ return "infrastructure";
54
+ }
23
55
  // Check for package.json (Node.js)
24
56
  if (existsSync(join(path, "package.json"))) {
25
57
  const pkg = JSON.parse(readFileSync(join(path, "package.json"), "utf-8"));
@@ -33,6 +65,10 @@ export function detectServiceType(path) {
33
65
  pkg.dependencies?.["koa"]) {
34
66
  return "api";
35
67
  }
68
+ // Detect npm library (has exports/main but no start script)
69
+ if ((pkg.exports || pkg.main) && !pkg.scripts?.start && !pkg.scripts?.dev) {
70
+ return "library";
71
+ }
36
72
  // Generic Node.js app
37
73
  return "cli";
38
74
  }
@@ -205,6 +241,59 @@ export function detectVersion(path) {
205
241
  }
206
242
  return "unknown";
207
243
  }
244
+ /**
245
+ * Detect package manager from lockfiles
246
+ */
247
+ function detectPackageManager(path) {
248
+ if (existsSync(join(path, "bun.lockb")))
249
+ return "bun";
250
+ if (existsSync(join(path, "pnpm-lock.yaml")))
251
+ return "pnpm";
252
+ if (existsSync(join(path, "yarn.lock")))
253
+ return "yarn";
254
+ if (existsSync(join(path, "package-lock.json")))
255
+ return "npm";
256
+ return null;
257
+ }
258
+ /**
259
+ * Scan README for start commands
260
+ * Returns detected command or null
261
+ */
262
+ function scanReadmeForCommand(path) {
263
+ // Find README file (case-insensitive)
264
+ const readmeFiles = ["README.md", "README.MD", "readme.md", "README", "readme"];
265
+ let readme = null;
266
+ for (const file of readmeFiles) {
267
+ const readmePath = join(path, file);
268
+ if (existsSync(readmePath)) {
269
+ readme = readFileSync(readmePath, "utf-8");
270
+ break;
271
+ }
272
+ }
273
+ if (!readme)
274
+ return null;
275
+ // Pattern 1: Code blocks with commands
276
+ // Match: ```bash\nnpm run dev\n```
277
+ const codeBlockPattern = /```(?:bash|sh|shell)?\s*\n\s*((?:npm|yarn|pnpm|bun|make|docker|mint|python|go)\s+[^\n]+)/gi;
278
+ const codeBlockMatch = codeBlockPattern.exec(readme);
279
+ if (codeBlockMatch) {
280
+ return codeBlockMatch[1].trim();
281
+ }
282
+ // Pattern 2: Command after $ or >
283
+ // Match: $ npm run dev
284
+ const dollarPattern = /[\$>]\s*((?:npm|yarn|pnpm|bun|make|docker|mint|python|go)\s+[^\n]+)/i;
285
+ const dollarMatch = dollarPattern.exec(readme);
286
+ if (dollarMatch) {
287
+ return dollarMatch[1].trim();
288
+ }
289
+ // Pattern 3: "Run: <command>" or "Start: <command>"
290
+ const runPattern = /(?:run|start|development):\s*((?:npm|yarn|pnpm|bun|make|docker|mint|python|go)\s+[^\n]+)/i;
291
+ const runMatch = runPattern.exec(readme);
292
+ if (runMatch) {
293
+ return runMatch[1].trim();
294
+ }
295
+ return null;
296
+ }
208
297
  /**
209
298
  * Generate commands for service management
210
299
  */
@@ -213,21 +302,22 @@ export function detectCommands(path, type, port) {
213
302
  // Node.js projects
214
303
  if (existsSync(join(path, "package.json"))) {
215
304
  const pkg = JSON.parse(readFileSync(join(path, "package.json"), "utf-8"));
305
+ const pkgManager = detectPackageManager(path) || "npm";
216
306
  if (pkg.scripts?.dev) {
217
- commands.start = `cd ${path} && npm run dev`;
307
+ commands.start = `cd ${path} && ${pkgManager} run dev`;
218
308
  }
219
309
  else if (pkg.scripts?.start) {
220
- commands.start = `cd ${path} && npm start`;
310
+ commands.start = `cd ${path} && ${pkgManager} start`;
221
311
  }
222
312
  if (pkg.scripts?.build) {
223
- commands.build = `cd ${path} && npm run build`;
313
+ commands.build = `cd ${path} && ${pkgManager} run build`;
224
314
  }
225
315
  if (pkg.scripts?.test) {
226
- commands.test = `cd ${path} && npm test`;
316
+ commands.test = `cd ${path} && ${pkgManager} test`;
227
317
  }
228
318
  if (port) {
229
319
  commands.stop = `lsof -ti :${port} | xargs kill -9 2>/dev/null || true`;
230
- commands.logs = `echo 'Check terminal where npm run dev is running'`;
320
+ commands.logs = `echo 'Check terminal where ${pkgManager} run dev is running'`;
231
321
  }
232
322
  }
233
323
  // Python projects
@@ -268,6 +358,13 @@ export function detectCommands(path, type, port) {
268
358
  commands.stop = `docker stop ${serviceName} && docker rm ${serviceName}`;
269
359
  commands.logs = `docker logs -f ${serviceName}`;
270
360
  }
361
+ // Fallback: Try README scanning if no start command detected
362
+ if (!commands.start) {
363
+ const readmeCommand = scanReadmeForCommand(path);
364
+ if (readmeCommand) {
365
+ commands.start = `cd ${path} && ${readmeCommand}`;
366
+ }
367
+ }
271
368
  return commands;
272
369
  }
273
370
  /**
@@ -377,6 +474,22 @@ export function extractServiceMetadata(path) {
377
474
  const healthcheck = detectHealthcheck(path, type, port);
378
475
  // Generate description
379
476
  let description = `${type.charAt(0).toUpperCase() + type.slice(1)} service`;
477
+ // Enrich from OpenClaw manifest if present
478
+ const openclawManifest = join(path, "openclaw.plugin.json");
479
+ if (existsSync(openclawManifest)) {
480
+ try {
481
+ const manifest = JSON.parse(readFileSync(openclawManifest, "utf-8"));
482
+ if (manifest.agent?.description) {
483
+ description = manifest.agent.description;
484
+ }
485
+ if (manifest.agent?.name && !name) {
486
+ // Use agent name as fallback service name
487
+ }
488
+ }
489
+ catch {
490
+ // Malformed manifest
491
+ }
492
+ }
380
493
  if (existsSync(join(path, "package.json"))) {
381
494
  const pkg = JSON.parse(readFileSync(join(path, "package.json"), "utf-8"));
382
495
  if (pkg.description) {
@@ -1 +1 @@
1
- {"version":3,"file":"service-detector.js","sourceRoot":"","sources":["../../src/lib/service-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-detector.js","sourceRoot":"","sources":["../../src/lib/service-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAoBxC;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,yEAAyE;IACzE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;YACtF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;YAC1C,qCAAqC;YACrC,IAAI,WAAW,KAAK,UAAU;gBAAE,OAAO,QAAQ,CAAA;YAC/C,IAAI,WAAW,KAAK,aAAa,IAAI,WAAW,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAA;YAC3E,mCAAmC;YACnC,MAAM,IAAI,GAAa,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE,CAAA;YACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAAE,OAAO,QAAQ,CAAA;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,mBAAmB;IACnB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACzF,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAExC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,gBAAgB,CAAA,CAAC,mCAAmC;QAC7D,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,mCAAmC;IACnC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QAEzE,gBAAgB;QAChB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAA;QACd,CAAC;QAED,4BAA4B;QAC5B,IACE,GAAG,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;YAC7B,GAAG,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;YAC7B,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EACzB,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YAC1E,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,sBAAsB;QACtB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,kCAAkC;IAClC,IACE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC1C,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAClC,CAAC;QACD,MAAM,QAAQ,GAAG;YACf,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;YAC5B,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;SACtB,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;gBAEzD,6BAA6B;gBAC7B,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3F,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,eAAe;IACf,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAEvE,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrF,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,iBAAiB;IACjB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAE3E,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,4BAA4B;IAC5B,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,6BAA6B;IAC7B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QAEzE,qCAAqC;QACrC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAE1E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM;gBAAE,SAAQ;YAErB,+CAA+C;YAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;IAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACnC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;YACjD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAChE,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACjC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAE7C,+CAA+C;YAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAA;QACvE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAChE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,wBAAwB;IACxB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACzE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAA;QACnE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,oCAAoC,EAAE;YAC5D,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC,IAAI,EAAE,CAAA;QAET,6BAA6B;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAA;IAClD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,mBAAmB;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,8BAA8B,EAAE;YACvD,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC,IAAI,EAAE,CAAA;QACT,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IAED,mBAAmB;IACnB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACzE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,OAAO,CAAA;QACpB,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAA;QACnE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACpE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACrD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IACtD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7D,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,sCAAsC;IACtC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC/E,IAAI,MAAM,GAAG,IAAI,CAAA;IAEjB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACnC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAC1C,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,uCAAuC;IACvC,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,4FAA4F,CAAA;IACrH,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IAED,kCAAkC;IAClC,uBAAuB;IACvB,MAAM,aAAa,GAAG,sEAAsE,CAAA;IAC5F,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9B,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,2FAA2F,CAAA;IAC9G,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC3B,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,IAA6B,EAC7B,IAAmB;IAEnB,MAAM,QAAQ,GAAgC,EAAE,CAAA;IAEhD,mBAAmB;IACnB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACzE,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAA;QAEtD,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YACrB,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,OAAO,UAAU,UAAU,CAAA;QACxD,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,OAAO,UAAU,QAAQ,CAAA;QACtD,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,OAAO,UAAU,YAAY,CAAA;QAC1D,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,GAAG,MAAM,IAAI,OAAO,UAAU,OAAO,CAAA;QACpD,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,IAAI,GAAG,aAAa,IAAI,sCAAsC,CAAA;YACvE,QAAQ,CAAC,IAAI,GAAG,8BAA8B,UAAU,sBAAsB,CAAA;QAChF,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC3F,gCAAgC;QAChC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;QAEvE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;gBAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAE9D,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;oBAChB,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,cAAc,IAAI,EAAE,CAAA;gBACjD,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,IAAI,GAAG,cAAc,IAAI,EAAE,CAAA;gBACxD,CAAC;gBACD,MAAK;YACP,CAAC;QACH,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,IAAI,GAAG,aAAa,IAAI,sCAAsC,CAAA;YACvE,QAAQ,CAAC,IAAI,GAAG,WAAW,IAAI,QAAQ,CAAA;QACzC,CAAC;QAED,mBAAmB;QACnB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACtE,QAAQ,CAAC,IAAI,GAAG,MAAM,IAAI,YAAY,CAAA;QACxC,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACjD,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,0BAA0B,CAAA;QACrD,QAAQ,CAAC,IAAI,GAAG,MAAM,IAAI,yBAAyB,CAAA;QACnD,QAAQ,CAAC,IAAI,GAAG,MAAM,IAAI,4BAA4B,CAAA;IACxD,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC3C,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,uBAAuB,WAAW,8BAA8B,WAAW,IAAI,WAAW,EAAE,CAAA;QACvH,QAAQ,CAAC,IAAI,GAAG,eAAe,WAAW,iBAAiB,WAAW,EAAE,CAAA;QACxE,QAAQ,CAAC,IAAI,GAAG,kBAAkB,WAAW,EAAE,CAAA;IACjD,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAChD,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,OAAO,aAAa,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAa,EAAE,CAAA;IAEzB,UAAU;IACV,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACzE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,SAAS;IACT,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnB,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;SAC7B,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;gBACzD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACjD,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS;IACT,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAE7E,KAAK;IACL,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAErD,OAAO;IACP,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE3D,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,IAA6B,EAC7B,IAAmB;IAEnB,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAE3B,6CAA6C;IAC7C,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACrC,UAAU;QACV,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAC3C,8BAA8B;YAC9B,MAAM,WAAW,GAAG;gBAClB,qBAAqB;gBACrB,qBAAqB;gBACrB,yBAAyB;gBACzB,yBAAyB;aAC1B,CAAA;YAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;oBACvC,OAAO,6BAA6B,IAAI,yBAAyB,CAAA;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QAED,SAAS;QACT,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAChE,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACjC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBACpE,OAAO,6BAA6B,IAAI,qBAAqB,CAAA;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,OAAO,6BAA6B,IAAI,eAAe,CAAA;IACzD,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACjD,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAEvD,uBAAuB;IACvB,IAAI,WAAW,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAA;IAE3E,2CAA2C;IAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;IAC3D,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;YACpE,IAAI,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;gBAChC,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAA;YAC1C,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClC,0CAA0C;YAC5C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACzE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,WAAW,GAAG,GAAG,CAAC,WAAW,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,WAAW;QACX,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,WAAW;KACZ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG;SACP,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,yBAAyB;SAChD,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,mCAAmC;SAC9D,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,0BAA0B;SAClD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA,CAAC,sBAAsB;AAC/C,CAAC"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Service-GTM Coordination Library
3
+ *
4
+ * Provides functions for coordinating between service projects and parent GTM workspaces.
5
+ *
6
+ * @purpose Service-GTM coordination helpers for sync and validation
7
+ * @spec Service /end Skill Deployment & GTM Sync Implementation Plan
8
+ */
9
+ export interface ServiceConfig {
10
+ name: string;
11
+ type: "service" | "gtm";
12
+ service_type?: "web" | "api" | "worker" | "daemon" | "cli" | "infrastructure" | "container" | "library";
13
+ description: string;
14
+ gtm_parent?: string;
15
+ working_branch?: string;
16
+ sync_to_parent?: {
17
+ journal: boolean;
18
+ knowledge: boolean;
19
+ content: boolean;
20
+ };
21
+ environments?: {
22
+ [key: string]: {
23
+ code_path: string;
24
+ start_command: string;
25
+ port: number | null;
26
+ env: Record<string, string>;
27
+ health_check: {
28
+ enabled: boolean;
29
+ url: string;
30
+ interval: number;
31
+ timeout: number;
32
+ } | null;
33
+ };
34
+ };
35
+ }
36
+ export interface ServiceRegistration {
37
+ name: string;
38
+ path: string;
39
+ type: string;
40
+ registered_at: string;
41
+ last_sync?: string;
42
+ status: "active" | "inactive";
43
+ }
44
+ export interface GTMConfig extends ServiceConfig {
45
+ registered_services?: ServiceRegistration[];
46
+ }
47
+ /**
48
+ * Find parent GTM path from service config
49
+ */
50
+ export declare function findGTMParent(servicePath: string): string | null;
51
+ /**
52
+ * Validate GTM parent exists and is valid GTM workspace
53
+ */
54
+ export declare function validateGTMParent(gtmPath: string): boolean;
55
+ /**
56
+ * Get registered services from GTM config
57
+ */
58
+ export declare function getRegisteredServices(gtmPath: string): ServiceRegistration[];
59
+ /**
60
+ * Add service to GTM's registered_services array
61
+ */
62
+ export declare function addServiceToGTM(gtmPath: string, serviceConfig: ServiceConfig): void;
63
+ /**
64
+ * Update service sync timestamp in GTM config
65
+ */
66
+ export declare function updateServiceSync(gtmPath: string, serviceName: string, timestamp: string): void;
67
+ /**
68
+ * Sync journal entries from service to GTM
69
+ */
70
+ export declare function syncJournalsToGTM(servicePath: string, gtmPath: string, serviceName: string): number;
71
+ /**
72
+ * Git commit summary for phone home payload
73
+ */
74
+ export interface GitCommitSummary {
75
+ hash: string;
76
+ message: string;
77
+ author: string;
78
+ timestamp: string;
79
+ files_changed: number;
80
+ }
81
+ /**
82
+ * Service sync payload - comprehensive session summary for GTM
83
+ */
84
+ export interface ServiceSyncPayload {
85
+ service_name: string;
86
+ sync_timestamp: string;
87
+ session_branch: string;
88
+ session: {
89
+ duration_seconds: number;
90
+ start_time: string;
91
+ end_time: string;
92
+ work_description?: string;
93
+ };
94
+ git: {
95
+ commits: GitCommitSummary[];
96
+ files_changed: number;
97
+ lines_added: number;
98
+ lines_removed: number;
99
+ branch_merged_to: string;
100
+ };
101
+ journal: {
102
+ entry_count: number;
103
+ types: {
104
+ feature: number;
105
+ fix: number;
106
+ decision: number;
107
+ discovery: number;
108
+ milestone: number;
109
+ other: number;
110
+ };
111
+ };
112
+ health: {
113
+ validation_results?: {
114
+ errors: number;
115
+ warnings: number;
116
+ passed: number;
117
+ };
118
+ context_hub_connected: boolean;
119
+ uncommitted_changes: boolean;
120
+ };
121
+ environment: {
122
+ node_version: string;
123
+ jfl_version: string;
124
+ dependencies?: Record<string, string>;
125
+ };
126
+ content_synced: {
127
+ knowledge_files: string[];
128
+ content_files: string[];
129
+ config_files: string[];
130
+ claude_md_synced: boolean;
131
+ custom_files: string[];
132
+ total_bytes: number;
133
+ };
134
+ sync_config: {
135
+ knowledge_enabled: boolean;
136
+ content_enabled: boolean;
137
+ config_enabled: boolean;
138
+ detection_method: "git-diff" | "full-scan";
139
+ };
140
+ agent_notified: boolean;
141
+ errors: string[];
142
+ }
143
+ /**
144
+ * Phone home to GTM - comprehensive sync with full session metadata
145
+ *
146
+ * Collects everything the GTM needs to understand what happened in the service session:
147
+ * - Session summary (duration, when it started/ended)
148
+ * - Git activity (commits, files changed, lines added/removed)
149
+ * - Journal data (entry count, types of work)
150
+ * - Health status (validation, context hub, uncommitted changes)
151
+ * - Environment metadata (versions, dependencies)
152
+ * - Content sync (knowledge, content, config files)
153
+ *
154
+ * IMPORTANT: Never blocks session end. Collects all errors and returns partial success.
155
+ */
156
+ export declare function phoneHomeToGTM(servicePath: string, gtmPath: string, sessionBranch: string): Promise<ServiceSyncPayload>;
157
+ //# sourceMappingURL=service-gtm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-gtm.d.ts","sourceRoot":"","sources":["../../src/lib/service-gtm.ts"],"names":[],"mappings":"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"}