@context-forge/cli 0.6.20 → 0.6.22

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 (38) hide show
  1. package/dist/commands/arch.d.ts +6 -2
  2. package/dist/commands/arch.d.ts.map +1 -1
  3. package/dist/commands/arch.js +76 -91
  4. package/dist/commands/arch.js.map +1 -1
  5. package/dist/commands/build.d.ts +6 -0
  6. package/dist/commands/build.d.ts.map +1 -1
  7. package/dist/commands/build.js +31 -0
  8. package/dist/commands/build.js.map +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +18 -17
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/list.d.ts +3 -0
  13. package/dist/commands/list.d.ts.map +1 -0
  14. package/dist/commands/list.js +106 -0
  15. package/dist/commands/list.js.map +1 -0
  16. package/dist/commands/plan.d.ts +6 -2
  17. package/dist/commands/plan.d.ts.map +1 -1
  18. package/dist/commands/plan.js +86 -101
  19. package/dist/commands/plan.js.map +1 -1
  20. package/dist/commands/project.d.ts +4 -0
  21. package/dist/commands/project.d.ts.map +1 -1
  22. package/dist/commands/project.js +37 -33
  23. package/dist/commands/project.js.map +1 -1
  24. package/dist/commands/slice.d.ts +5 -2
  25. package/dist/commands/slice.d.ts.map +1 -1
  26. package/dist/commands/slice.js +80 -94
  27. package/dist/commands/slice.js.map +1 -1
  28. package/dist/commands/task.d.ts +11 -2
  29. package/dist/commands/task.d.ts.map +1 -1
  30. package/dist/commands/task.js +39 -63
  31. package/dist/commands/task.js.map +1 -1
  32. package/dist/commands/workflow.d.ts +3 -0
  33. package/dist/commands/workflow.d.ts.map +1 -0
  34. package/dist/commands/workflow.js +185 -0
  35. package/dist/commands/workflow.js.map +1 -0
  36. package/dist/index.js +7 -9
  37. package/dist/index.js.map +1 -1
  38. package/package.json +2 -2
@@ -1,3 +1,7 @@
1
- import { Command } from 'commander';
2
- export declare function registerArchCommand(program: Command): void;
1
+ /** Shared action handler for listing architecture initiatives. */
2
+ export declare function archListAction(opts: {
3
+ json?: boolean;
4
+ all?: boolean;
5
+ project?: string;
6
+ }): Promise<void>;
3
7
  //# sourceMappingURL=arch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arch.d.ts","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsH1D"}
1
+ {"version":3,"file":"arch.d.ts","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"AAUA,kEAAkE;AAClE,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG7G"}
@@ -3,100 +3,85 @@ import { extractSliceIndex } from '@context-forge/core/node';
3
3
  import { resolveProjectWorktree } from '../utils/project.js';
4
4
  import { resolveProject } from '@context-forge/core';
5
5
  import { resolveOperationPath, getWorktreeIndexRange, isInIndexRange, resolveAllOperationPaths } from '../utils/worktree-overlay.js';
6
- import { handleError, UserError } from '../utils/errors.js';
6
+ import { UserError } from '../utils/errors.js';
7
7
  import { printJson } from '../output/formatter.js';
8
8
  import { renderTable } from '../output/tables.js';
9
9
  import { label, success, dim } from '../output/styles.js';
10
- export function registerArchCommand(program) {
11
- const cmd = program
12
- .command('arch')
13
- .description('Manage architecture');
14
- cmd
15
- .command('list')
16
- .description('List architecture initiatives from the project')
17
- .option('--json', 'Output as JSON')
18
- .option('--all', 'Show initiatives from all worktrees')
19
- .option('--project <name|id>', 'Project name or ID (overrides default)')
20
- .action(async (opts) => {
21
- try {
22
- const store = new FileProjectStore();
23
- const { id, worktreeId } = await resolveProjectWorktree({ project: opts.project }, store);
24
- const rawProject = await store.getById(id);
25
- if (!rawProject) {
26
- throw new UserError(`Project not found: '${id}'.`);
27
- }
28
- const project = await resolveProject(store, id, worktreeId);
29
- if (!project) {
30
- throw new UserError(`Project not found: '${id}'.`);
31
- }
32
- if (!project.projectPath) {
33
- throw new UserError('No projectPath configured. Set one with: cf set projectPath /path/to/project');
34
- }
35
- let model;
36
- let indexRange;
37
- if (opts.all && rawProject.worktrees?.length) {
38
- const paths = resolveAllOperationPaths(rawProject);
39
- const models = (await Promise.all(paths.map((p) => buildModel(p).catch(() => null)))).filter((m) => m !== null);
40
- model = mergeProjectModels(models);
41
- // No index filtering in --all mode
42
- }
43
- else {
44
- const operationPath = resolveOperationPath(project, worktreeId) ?? project.projectPath;
45
- indexRange = getWorktreeIndexRange(rawProject, worktreeId);
46
- model = await buildModel(operationPath);
47
- }
48
- const initiativeKeys = Object.keys(model.initiatives)
49
- .filter((key) => isInIndexRange(parseInt(key, 10), indexRange))
50
- .sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
51
- if (initiativeKeys.length === 0) {
52
- console.log(dim('No initiatives found in project.'));
53
- return;
54
- }
55
- const activeIndex = extractSliceIndex(project.fileSlice);
56
- const entries = initiativeKeys.map((key) => {
57
- const init = model.initiatives[key];
58
- const baseIndex = parseInt(key, 10);
59
- const archName = init.arch?.name ?? '—';
60
- const planName = init.slicePlan?.name ?? '—';
61
- const completedSlices = init.slices.filter((s) => s.status === 'complete').length;
62
- const totalSlices = init.slices.length;
63
- const progress = totalSlices > 0
64
- ? `${completedSlices}/${totalSlices}`
65
- : '—';
66
- // Determine if this initiative contains the active slice
67
- const isActive = activeIndex !== null && init.slices.some((s) => parseInt(s.index, 10) === activeIndex);
68
- return {
69
- index: key,
70
- baseIndex,
71
- name: init.name,
72
- archDoc: archName,
73
- slicePlan: planName,
74
- progress,
75
- completedSlices,
76
- totalSlices,
77
- isActive,
78
- };
79
- });
80
- if (opts.json) {
81
- printJson(entries);
82
- return;
83
- }
84
- console.log(label('\nArchitecture Initiatives'));
85
- const rows = entries.map((e) => {
86
- const indicator = e.isActive ? success(' ← active') : '';
87
- return [
88
- e.index,
89
- e.name,
90
- dim(e.archDoc),
91
- dim(e.slicePlan),
92
- e.progress + indicator,
93
- ];
94
- });
95
- console.log(renderTable(['Index', 'Initiative', 'Arch Doc', 'Slice Plan', 'Progress'], rows));
96
- }
97
- catch (err) {
98
- handleError(err);
99
- }
10
+ /** Shared action handler for listing architecture initiatives. */
11
+ export async function archListAction(opts) {
12
+ const store = new FileProjectStore();
13
+ const { id, worktreeId } = await resolveProjectWorktree({ project: opts.project }, store);
14
+ const rawProject = await store.getById(id);
15
+ if (!rawProject) {
16
+ throw new UserError(`Project not found: '${id}'.`);
17
+ }
18
+ const project = await resolveProject(store, id, worktreeId);
19
+ if (!project) {
20
+ throw new UserError(`Project not found: '${id}'.`);
21
+ }
22
+ if (!project.projectPath) {
23
+ throw new UserError('No projectPath configured. Set one with: cf set projectPath /path/to/project');
24
+ }
25
+ let model;
26
+ let indexRange;
27
+ if (opts.all && rawProject.worktrees?.length) {
28
+ const paths = resolveAllOperationPaths(rawProject);
29
+ const models = (await Promise.all(paths.map((p) => buildModel(p).catch(() => null)))).filter((m) => m !== null);
30
+ model = mergeProjectModels(models);
31
+ // No index filtering in --all mode
32
+ }
33
+ else {
34
+ const operationPath = resolveOperationPath(project, worktreeId) ?? project.projectPath;
35
+ indexRange = getWorktreeIndexRange(rawProject, worktreeId);
36
+ model = await buildModel(operationPath);
37
+ }
38
+ const initiativeKeys = Object.keys(model.initiatives)
39
+ .filter((key) => isInIndexRange(parseInt(key, 10), indexRange))
40
+ .sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
41
+ if (initiativeKeys.length === 0) {
42
+ console.log(dim('No initiatives found in project.'));
43
+ return;
44
+ }
45
+ const activeIndex = extractSliceIndex(project.fileSlice);
46
+ const entries = initiativeKeys.map((key) => {
47
+ const init = model.initiatives[key];
48
+ const baseIndex = parseInt(key, 10);
49
+ const archName = init.arch?.name ?? '—';
50
+ const planName = init.slicePlan?.name ?? '—';
51
+ const completedSlices = init.slices.filter((s) => s.status === 'complete').length;
52
+ const totalSlices = init.slices.length;
53
+ const progress = totalSlices > 0
54
+ ? `${completedSlices}/${totalSlices}`
55
+ : '—';
56
+ // Determine if this initiative contains the active slice
57
+ const isActive = activeIndex !== null && init.slices.some((s) => parseInt(s.index, 10) === activeIndex);
58
+ return {
59
+ index: key,
60
+ baseIndex,
61
+ name: init.name,
62
+ archDoc: archName,
63
+ slicePlan: planName,
64
+ progress,
65
+ completedSlices,
66
+ totalSlices,
67
+ isActive,
68
+ };
100
69
  });
70
+ if (opts.json) {
71
+ printJson(entries);
72
+ return;
73
+ }
74
+ console.log(label('\nArchitecture Initiatives'));
75
+ const rows = entries.map((e) => {
76
+ const indicator = e.isActive ? success(' ← active') : '';
77
+ return [
78
+ e.index,
79
+ e.name,
80
+ dim(e.archDoc),
81
+ dim(e.slicePlan),
82
+ e.progress + indicator,
83
+ ];
84
+ });
85
+ console.log(renderTable(['Index', 'Initiative', 'Arch Doc', 'Slice Plan', 'Progress'], rows));
101
86
  }
102
87
  //# sourceMappingURL=arch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arch.js","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arch.js","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
1
  import { Command } from 'commander';
2
+ /** Core build logic: resolves project, generates context, prints to stdout. */
3
+ export declare function buildAndPrint(opts: {
4
+ project?: string;
5
+ phase?: string;
6
+ slice?: string;
7
+ }): Promise<void>;
2
8
  export declare function registerBuildCommand(program: Command): void;
3
9
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+D3D"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,+EAA+E;AAC/E,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC7G;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+D3D"}
@@ -4,6 +4,37 @@ import { resolveProject } from '@context-forge/core';
4
4
  import { resolveProjectWorktree } from '../utils/project.js';
5
5
  import { handleError, UserError } from '../utils/errors.js';
6
6
  import { printRaw } from '../output/formatter.js';
7
+ /** Core build logic: resolves project, generates context, prints to stdout. */
8
+ export async function buildAndPrint(opts) {
9
+ const store = new FileProjectStore();
10
+ const { id, worktreeId } = await resolveProjectWorktree({ project: opts.project }, store);
11
+ const project = await resolveProject(store, id, worktreeId);
12
+ if (!project) {
13
+ throw new UserError(`Project not found: '${id}'. Run cf project list to see available projects.`);
14
+ }
15
+ if (!project.projectPath) {
16
+ throw new UserError(`Project '${project.name}' has no projectPath configured.\n` +
17
+ ' cf project set projectPath /path/to/project');
18
+ }
19
+ // Status message goes to stderr so stdout stays clean for piping
20
+ process.stderr.write(`Building context for ${project.name}...\n`);
21
+ // Apply overrides to a working copy
22
+ const workingCopy = { ...project };
23
+ if (opts.phase) {
24
+ const resolved = resolvePhaseValue(opts.phase);
25
+ if (!resolved) {
26
+ process.stderr.write(`Warning: '${opts.phase}' is not a recognized phase. Use a number (0-7), name (implementation), or shorthand (P6).\n`);
27
+ }
28
+ const phaseValue = resolved ?? opts.phase;
29
+ workingCopy.developmentPhase = phaseValue;
30
+ workingCopy.instruction = phaseValue;
31
+ }
32
+ if (opts.slice)
33
+ workingCopy.fileSlice = opts.slice;
34
+ const { integrator } = createContextPipeline(workingCopy.projectPath);
35
+ const contextString = await integrator.generateContextFromProject(workingCopy, worktreeId);
36
+ printRaw(contextString);
37
+ }
7
38
  export function registerBuildCommand(program) {
8
39
  program
9
40
  .command('build')
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwF1D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuF1D"}
@@ -56,27 +56,28 @@ export function registerInitCommand(program) {
56
56
  console.log(warn('git init failed, continuing without git'));
57
57
  }
58
58
  }
59
- // Detection 2: CF project already registered at CWD
59
+ // Detection 2: CF project already registered at CWD — skip creation but continue setup
60
60
  const existing = all.find((p) => p.projectPath === cwd);
61
61
  if (existing) {
62
- console.log(warn(`Project '${existing.name}' is already registered. Run cf status for details.`));
63
- return;
62
+ console.log(dim(`Project '${existing.name}' already registered running setup steps`));
64
63
  }
65
- // Detection 3: Git worktree of a registered project
66
- const registeredPaths = all
67
- .filter((p) => p.projectPath)
68
- .map((p) => p.projectPath);
69
- if (isGitWorktreeOf(cwd, registeredPaths)) {
70
- console.log(warn('This looks like a worktree. Run cf worktree init instead.'));
71
- return;
64
+ else {
65
+ // Detection 3: Git worktree of a registered project
66
+ const registeredPaths = all
67
+ .filter((p) => p.projectPath)
68
+ .map((p) => p.projectPath);
69
+ if (isGitWorktreeOf(cwd, registeredPaths)) {
70
+ console.log(warn('This looks like a worktree. Run cf worktree init instead.'));
71
+ return;
72
+ }
73
+ // Create project
74
+ const projectName = opts.name || path.basename(cwd);
75
+ await store.create(buildProjectCreationDefaults({
76
+ name: projectName,
77
+ projectPath: cwd,
78
+ }));
79
+ console.log(success(`Project '${projectName}' registered`));
72
80
  }
73
- // Step 1: Create project
74
- const projectName = opts.name || path.basename(cwd);
75
- await store.create(buildProjectCreationDefaults({
76
- name: projectName,
77
- projectPath: cwd,
78
- }));
79
- console.log(success(`Project '${projectName}' registered`));
80
81
  if (!opts.lite) {
81
82
  // Step 2: Install guides
82
83
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerListCommand(program: Command): void;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkG1D"}
@@ -0,0 +1,106 @@
1
+ import { projectListAction } from './project.js';
2
+ import { archListAction } from './arch.js';
3
+ import { planListAction } from './plan.js';
4
+ import { sliceListAction } from './slice.js';
5
+ import { taskListAction, taskItemsAction } from './task.js';
6
+ import { handleError } from '../utils/errors.js';
7
+ export function registerListCommand(program) {
8
+ const cmd = program
9
+ .command('list')
10
+ .description('List project artifacts');
11
+ cmd
12
+ .command('projects')
13
+ .description('List all projects')
14
+ .option('--json', 'Output as JSON')
15
+ .action(async (opts) => {
16
+ try {
17
+ await projectListAction(opts);
18
+ }
19
+ catch (err) {
20
+ handleError(err);
21
+ }
22
+ });
23
+ cmd
24
+ .command('initiatives')
25
+ .description('List architecture initiatives')
26
+ .option('--json', 'Output as JSON')
27
+ .option('--all', 'Show initiatives from all worktrees')
28
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
29
+ .action(async (opts) => {
30
+ try {
31
+ await archListAction(opts);
32
+ }
33
+ catch (err) {
34
+ handleError(err);
35
+ }
36
+ });
37
+ cmd
38
+ .command('arch')
39
+ .description('Alias for "cf list initiatives"')
40
+ .option('--json', 'Output as JSON')
41
+ .option('--all', 'Show initiatives from all worktrees')
42
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
43
+ .action(async (opts) => {
44
+ try {
45
+ await archListAction(opts);
46
+ }
47
+ catch (err) {
48
+ handleError(err);
49
+ }
50
+ });
51
+ cmd
52
+ .command('plans')
53
+ .description('List slice plan files')
54
+ .option('--json', 'Output as JSON')
55
+ .option('--all', 'Show slice plans from all worktrees')
56
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
57
+ .action(async (opts) => {
58
+ try {
59
+ await planListAction(opts);
60
+ }
61
+ catch (err) {
62
+ handleError(err);
63
+ }
64
+ });
65
+ cmd
66
+ .command('slices')
67
+ .description('List slices from active plan')
68
+ .option('--json', 'Output as JSON')
69
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
70
+ .action(async (opts) => {
71
+ try {
72
+ await sliceListAction(opts);
73
+ }
74
+ catch (err) {
75
+ handleError(err);
76
+ }
77
+ });
78
+ cmd
79
+ .command('tasks')
80
+ .description('List task files from plan')
81
+ .option('--json', 'Output as JSON')
82
+ .option('--all', 'Show task files from all worktrees')
83
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
84
+ .action(async (opts) => {
85
+ try {
86
+ await taskListAction(opts);
87
+ }
88
+ catch (err) {
89
+ handleError(err);
90
+ }
91
+ });
92
+ cmd
93
+ .command('items')
94
+ .description('Show items from active task file')
95
+ .option('--json', 'Output as JSON')
96
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
97
+ .action(async (opts) => {
98
+ try {
99
+ await taskItemsAction(opts);
100
+ }
101
+ catch (err) {
102
+ handleError(err);
103
+ }
104
+ });
105
+ }
106
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
- import { Command } from 'commander';
2
- export declare function registerPlanCommand(program: Command): void;
1
+ /** Shared action handler for listing slice plans. */
2
+ export declare function planListAction(opts: {
3
+ json?: boolean;
4
+ all?: boolean;
5
+ project?: string;
6
+ }): Promise<void>;
3
7
  //# sourceMappingURL=plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuH1D"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAcA,qDAAqD;AACrD,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuG7G"}