@soddong/agentic-application-methodology-workbench 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 (46) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +115 -0
  3. package/dist/artifact-standard-document-loader.d.ts +35 -0
  4. package/dist/artifact-standard-document-loader.d.ts.map +1 -0
  5. package/dist/artifact-standard-document-loader.js +363 -0
  6. package/dist/artifact-standard-document-loader.js.map +1 -0
  7. package/dist/authoring-draft-store.d.ts +8 -0
  8. package/dist/authoring-draft-store.d.ts.map +1 -0
  9. package/dist/authoring-draft-store.js +232 -0
  10. package/dist/authoring-draft-store.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +54 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/index.d.ts +17 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +12 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/seed-view-model-loader.d.ts +9 -0
  20. package/dist/seed-view-model-loader.d.ts.map +1 -0
  21. package/dist/seed-view-model-loader.js +359 -0
  22. package/dist/seed-view-model-loader.js.map +1 -0
  23. package/dist/server/workbench-server.d.ts +22 -0
  24. package/dist/server/workbench-server.d.ts.map +1 -0
  25. package/dist/server/workbench-server.js +1553 -0
  26. package/dist/server/workbench-server.js.map +1 -0
  27. package/dist/task-authoring-source.d.ts +9 -0
  28. package/dist/task-authoring-source.d.ts.map +1 -0
  29. package/dist/task-authoring-source.js +163 -0
  30. package/dist/task-authoring-source.js.map +1 -0
  31. package/dist/view-models.d.ts +211 -0
  32. package/dist/view-models.d.ts.map +1 -0
  33. package/dist/view-models.js +2 -0
  34. package/dist/view-models.js.map +1 -0
  35. package/dist/workbench-config.d.ts +37 -0
  36. package/dist/workbench-config.d.ts.map +1 -0
  37. package/dist/workbench-config.js +110 -0
  38. package/dist/workbench-config.js.map +1 -0
  39. package/docs/build.md +14 -0
  40. package/docs/configuration.md +65 -0
  41. package/docs/delivery.md +15 -0
  42. package/docs/operations.md +28 -0
  43. package/docs/publishing.md +19 -0
  44. package/docs/usage.md +113 -0
  45. package/package.json +26 -0
  46. package/schemas/workbench-config.schema.json +112 -0
@@ -0,0 +1,232 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { basename, dirname, resolve } from "node:path";
3
+ import { loadActivityWorkbench } from "./seed-view-model-loader.js";
4
+ function stringInput(value) {
5
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
6
+ }
7
+ function isDraftInput(value) {
8
+ return typeof value === "object" && value !== null;
9
+ }
10
+ function draftRoot(project) {
11
+ return resolve(project.projectRoot, project.config.authoringSources?.draftsRoot ?? "methodology-authoring/drafts");
12
+ }
13
+ function draftPath(project, targetKind, targetCode) {
14
+ return resolve(draftRoot(project), targetKind, `${basename(targetCode)}.json`);
15
+ }
16
+ function seedStepsPath(project) {
17
+ return resolve(project.projectRoot, project.config.seedRoot, "steps.json");
18
+ }
19
+ function isRecord(value) {
20
+ return typeof value === "object" && value !== null && !Array.isArray(value);
21
+ }
22
+ function readDraft(path) {
23
+ if (!existsSync(path)) {
24
+ return undefined;
25
+ }
26
+ return JSON.parse(readFileSync(path, "utf8"));
27
+ }
28
+ function readSeedRecords(path) {
29
+ const value = JSON.parse(readFileSync(path, "utf8"));
30
+ if (!Array.isArray(value) || !value.every(isRecord)) {
31
+ throw new Error(`Seed file must be a JSON object array: ${path}`);
32
+ }
33
+ return value;
34
+ }
35
+ function fieldChange(field, before, after) {
36
+ return Object.is(before, after) ? undefined : { field, before, after };
37
+ }
38
+ function validateDraft(targetKind, draft) {
39
+ const issues = [];
40
+ const executionModeCode = stringInput(draft.executionModeCode);
41
+ const instruction = stringInput(draft.instruction);
42
+ const scriptPath = stringInput(draft.scriptPath);
43
+ const title = stringInput(draft.title);
44
+ if (targetKind === "step" && title === undefined) {
45
+ issues.push({
46
+ field: "title",
47
+ severity: "error",
48
+ message: "Step title is required."
49
+ });
50
+ }
51
+ if (executionModeCode === undefined) {
52
+ issues.push({
53
+ field: "executionModeCode",
54
+ severity: "error",
55
+ message: "Execution mode is required."
56
+ });
57
+ }
58
+ if (executionModeCode === "LLM" && instruction === undefined) {
59
+ issues.push({
60
+ field: "instruction",
61
+ severity: "error",
62
+ message: "LLM execution mode requires an instruction."
63
+ });
64
+ }
65
+ if (executionModeCode === "SCRIPT" && scriptPath === undefined) {
66
+ issues.push({
67
+ field: "scriptPath",
68
+ severity: "error",
69
+ message: "SCRIPT execution mode requires a script path."
70
+ });
71
+ }
72
+ if (scriptPath !== undefined && scriptPath.startsWith("/")) {
73
+ issues.push({
74
+ field: "scriptPath",
75
+ severity: "warning",
76
+ message: "Script path should be project-relative for portable seed authoring."
77
+ });
78
+ }
79
+ return {
80
+ valid: issues.every((issue) => issue.severity !== "error"),
81
+ issues
82
+ };
83
+ }
84
+ export function loadAuthoringDraft(project, targetKind, targetCode) {
85
+ return readDraft(draftPath(project, targetKind, targetCode));
86
+ }
87
+ export function saveAuthoringDraft(project, targetKind, targetCode, value) {
88
+ const input = isDraftInput(value) ? value : {};
89
+ const now = new Date().toISOString();
90
+ const existing = loadAuthoringDraft(project, targetKind, targetCode);
91
+ const mergedInput = {
92
+ activityCode: stringInput(input.activityCode) ?? existing?.activityCode,
93
+ taskCode: stringInput(input.taskCode) ?? existing?.taskCode,
94
+ title: stringInput(input.title) ?? existing?.title,
95
+ executionModeCode: stringInput(input.executionModeCode) ?? existing?.executionModeCode,
96
+ instruction: stringInput(input.instruction) ?? existing?.instruction,
97
+ scriptPath: stringInput(input.scriptPath) ?? existing?.scriptPath,
98
+ notes: stringInput(input.notes) ?? existing?.notes
99
+ };
100
+ const merged = {
101
+ schemaVersion: "0.1",
102
+ draftId: existing?.draftId ?? `${targetKind}:${targetCode}`,
103
+ targetKind,
104
+ targetCode,
105
+ activityCode: stringInput(mergedInput.activityCode),
106
+ taskCode: stringInput(mergedInput.taskCode),
107
+ title: stringInput(mergedInput.title),
108
+ executionModeCode: stringInput(mergedInput.executionModeCode),
109
+ instruction: stringInput(mergedInput.instruction),
110
+ scriptPath: stringInput(mergedInput.scriptPath),
111
+ notes: stringInput(mergedInput.notes),
112
+ updatedAt: now,
113
+ validation: validateDraft(targetKind, mergedInput)
114
+ };
115
+ const path = draftPath(project, targetKind, targetCode);
116
+ mkdirSync(dirname(path), { recursive: true });
117
+ writeFileSync(path, `${JSON.stringify(merged, null, 2)}\n`, "utf8");
118
+ return merged;
119
+ }
120
+ export function loadActivityAuthoring(project, activityCode) {
121
+ const activity = loadActivityWorkbench(project, activityCode);
122
+ const drafts = activity.tasks.flatMap((taskEntry) => {
123
+ const taskDraft = loadAuthoringDraft(project, "task", taskEntry.task.code);
124
+ const stepDrafts = taskEntry.steps
125
+ .map((step) => loadAuthoringDraft(project, "step", step.code))
126
+ .filter((draft) => draft !== undefined);
127
+ return taskDraft === undefined ? stepDrafts : [taskDraft, ...stepDrafts];
128
+ });
129
+ return {
130
+ activity,
131
+ draftRoot: draftRoot(project),
132
+ drafts
133
+ };
134
+ }
135
+ export function planStepDraftApply(project, stepCode) {
136
+ const seedPath = seedStepsPath(project);
137
+ const draft = loadAuthoringDraft(project, "step", stepCode);
138
+ if (draft === undefined) {
139
+ return {
140
+ targetKind: "step",
141
+ targetCode: stepCode,
142
+ seedPath,
143
+ applicable: false,
144
+ changedFields: [],
145
+ validation: {
146
+ valid: false,
147
+ issues: [
148
+ {
149
+ field: "draft",
150
+ severity: "error",
151
+ message: "Step draft does not exist."
152
+ }
153
+ ]
154
+ }
155
+ };
156
+ }
157
+ const steps = readSeedRecords(seedPath);
158
+ const step = steps.find((item) => item.stepCode === stepCode);
159
+ if (step === undefined) {
160
+ return {
161
+ targetKind: "step",
162
+ targetCode: stepCode,
163
+ seedPath,
164
+ applicable: false,
165
+ changedFields: [],
166
+ validation: {
167
+ valid: false,
168
+ issues: [
169
+ {
170
+ field: "stepCode",
171
+ severity: "error",
172
+ message: "Target step does not exist in seed steps.json."
173
+ }
174
+ ]
175
+ }
176
+ };
177
+ }
178
+ const changes = [
179
+ fieldChange("stepTitle", step.stepTitle, draft.title),
180
+ fieldChange("executionModeCode", step.executionModeCode, draft.executionModeCode),
181
+ fieldChange("stepInstruction", step.stepInstruction, draft.instruction)
182
+ ].filter((change) => change !== undefined);
183
+ return {
184
+ targetKind: "step",
185
+ targetCode: stepCode,
186
+ seedPath,
187
+ applicable: draft.validation.valid && changes.length > 0,
188
+ changedFields: changes,
189
+ validation: draft.validation
190
+ };
191
+ }
192
+ export function applyStepDraftToSeed(project, stepCode) {
193
+ const plan = planStepDraftApply(project, stepCode);
194
+ if (!plan.validation.valid) {
195
+ return {
196
+ ...plan,
197
+ applied: false
198
+ };
199
+ }
200
+ if (!plan.applicable) {
201
+ return {
202
+ ...plan,
203
+ applied: false
204
+ };
205
+ }
206
+ const draft = loadAuthoringDraft(project, "step", stepCode);
207
+ if (draft === undefined) {
208
+ return {
209
+ ...plan,
210
+ applied: false
211
+ };
212
+ }
213
+ const steps = readSeedRecords(plan.seedPath);
214
+ const nextSteps = steps.map((step) => {
215
+ if (step.stepCode !== stepCode) {
216
+ return step;
217
+ }
218
+ return {
219
+ ...step,
220
+ ...(draft.title === undefined ? {} : { stepTitle: draft.title }),
221
+ ...(draft.executionModeCode === undefined ? {} : { executionModeCode: draft.executionModeCode }),
222
+ ...(draft.instruction === undefined ? {} : { stepInstruction: draft.instruction })
223
+ };
224
+ });
225
+ writeFileSync(plan.seedPath, `${JSON.stringify(nextSteps, null, 2)}\n`, "utf8");
226
+ return {
227
+ ...plan,
228
+ applied: true,
229
+ appliedAt: new Date().toISOString()
230
+ };
231
+ }
232
+ //# sourceMappingURL=authoring-draft-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-draft-store.js","sourceRoot":"","sources":["../src/authoring-draft-store.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ import { startWorkbenchServer } from "./server/workbench-server.js";
3
+ import { scaffoldTaskAuthoringSource } from "./task-authoring-source.js";
4
+ import { loadWorkbenchConfig } from "./workbench-config.js";
5
+ function parseCliOptions(argv) {
6
+ let host = "127.0.0.1";
7
+ let port = 4783;
8
+ let projectRoot = process.cwd();
9
+ let command = "serve";
10
+ let taskCode;
11
+ for (let index = 0; index < argv.length; index += 1) {
12
+ const arg = argv[index];
13
+ if (arg === "scaffold-task-source") {
14
+ command = "scaffold-task-source";
15
+ }
16
+ else if (arg === "--host") {
17
+ host = argv[index + 1] ?? host;
18
+ index += 1;
19
+ }
20
+ else if (arg === "--port") {
21
+ const parsedPort = Number.parseInt(argv[index + 1] ?? "", 10);
22
+ if (Number.isFinite(parsedPort) && parsedPort > 0) {
23
+ port = parsedPort;
24
+ }
25
+ index += 1;
26
+ }
27
+ else if (arg === "--project") {
28
+ projectRoot = argv[index + 1] ?? projectRoot;
29
+ index += 1;
30
+ }
31
+ else if (arg === "--task") {
32
+ taskCode = argv[index + 1];
33
+ index += 1;
34
+ }
35
+ }
36
+ return { host, port, projectRoot, command, taskCode };
37
+ }
38
+ const options = parseCliOptions(process.argv.slice(2));
39
+ if (options.command === "scaffold-task-source") {
40
+ if (options.taskCode === undefined || options.taskCode.length === 0) {
41
+ throw new Error("Missing required --task <taskCode> option.");
42
+ }
43
+ const project = loadWorkbenchConfig(options.projectRoot);
44
+ const result = scaffoldTaskAuthoringSource(project, options.taskCode);
45
+ console.log(`Task authoring source: ${result.taskRoot}`);
46
+ console.log(`Created files: ${result.createdFiles.length}`);
47
+ console.log(`Skipped files: ${result.skippedFiles.length}`);
48
+ }
49
+ else {
50
+ const result = await startWorkbenchServer(options);
51
+ console.log(`Methodology Workbench listening on ${result.url}`);
52
+ console.log(`Project root: ${result.project.projectRoot}`);
53
+ }
54
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export { DEFAULT_WORKBENCH_CONFIG_PATH, loadWorkbenchConfig, resolveWorkbenchProject } from "./workbench-config.js";
2
+ export { createWorkbenchServer, startWorkbenchServer } from "./server/workbench-server.js";
3
+ export { loadActivityWorkbench, loadArtifactStandard, loadGovernance, loadLifecycleOverview, loadPhaseDetail, loadWorkbenchSummary } from "./seed-view-model-loader.js";
4
+ export { loadArtifactStandardDocuments, markdownToHtml } from "./artifact-standard-document-loader.js";
5
+ export { scaffoldTaskAuthoringSource } from "./task-authoring-source.js";
6
+ export type { MethodologyWorkbenchConfig, WorkbenchProject } from "./workbench-config.js";
7
+ export type { ActivitySummaryVM, ActivityWorkbenchVM, ArtifactRequirementSummaryVM, ArtifactSectionSummaryVM, ArtifactStandardSummaryVM, ArtifactStandardVM, GovernanceVM, LifecycleOverviewVM, LifecycleSummaryVM, MethodologySummaryVM, PhaseDetailVM, PhaseSummaryVM, StageSummaryVM, StageWithActivitiesVM, StepSummaryVM, TaskSummaryVM, TaskWithStepsVM, WorkbenchCountsVM, WorkbenchRouteVM, WorkbenchSummaryVM } from "./view-models.js";
8
+ export type { TaskAuthoringScaffoldResult } from "./task-authoring-source.js";
9
+ export type { ArtifactStandardDocumentMetricsVM, ArtifactStandardDocumentsVM, ArtifactStandardDocumentSetVM, ArtifactStandardDocumentVM } from "./artifact-standard-document-loader.js";
10
+ export type { WorkbenchServer, WorkbenchServerOptions, WorkbenchServerStartResult } from "./server/workbench-server.js";
11
+ export declare const methodologyWorkbenchPackage: {
12
+ readonly name: "@soddong/agentic-application-methodology-workbench";
13
+ readonly version: "0.1.0";
14
+ readonly layer: "application";
15
+ readonly purpose: "reusable-methodology-authoring-workbench";
16
+ };
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,cAAc,EACf,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,iCAAiC,EACjC,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC3B,MAAM,wCAAwC,CAAC;AAEhD,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,2BAA2B;;;;;CAK9B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ export { DEFAULT_WORKBENCH_CONFIG_PATH, loadWorkbenchConfig, resolveWorkbenchProject } from "./workbench-config.js";
2
+ export { createWorkbenchServer, startWorkbenchServer } from "./server/workbench-server.js";
3
+ export { loadActivityWorkbench, loadArtifactStandard, loadGovernance, loadLifecycleOverview, loadPhaseDetail, loadWorkbenchSummary } from "./seed-view-model-loader.js";
4
+ export { loadArtifactStandardDocuments, markdownToHtml } from "./artifact-standard-document-loader.js";
5
+ export { scaffoldTaskAuthoringSource } from "./task-authoring-source.js";
6
+ export const methodologyWorkbenchPackage = {
7
+ name: "@soddong/agentic-application-methodology-workbench",
8
+ version: "0.1.0",
9
+ layer: "application",
10
+ purpose: "reusable-methodology-authoring-workbench"
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,cAAc,EACf,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AA+CpC,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,oDAAoD;IAC1D,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,0CAA0C;CAC3C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { WorkbenchProject } from "./workbench-config.js";
2
+ import type { ActivityWorkbenchVM, ArtifactStandardVM, GovernanceVM, LifecycleOverviewVM, PhaseDetailVM, WorkbenchSummaryVM } from "./view-models.js";
3
+ export declare function loadWorkbenchSummary(project: WorkbenchProject): WorkbenchSummaryVM;
4
+ export declare function loadLifecycleOverview(project: WorkbenchProject): LifecycleOverviewVM;
5
+ export declare function loadPhaseDetail(project: WorkbenchProject, phaseCode?: string): PhaseDetailVM;
6
+ export declare function loadActivityWorkbench(project: WorkbenchProject, activityCode?: string): ActivityWorkbenchVM;
7
+ export declare function loadArtifactStandard(project: WorkbenchProject, artifactCode?: string): ArtifactStandardVM;
8
+ export declare function loadGovernance(project: WorkbenchProject): GovernanceVM;
9
+ //# sourceMappingURL=seed-view-model-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-view-model-loader.d.ts","sourceRoot":"","sources":["../src/seed-view-model-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAEV,mBAAmB,EAInB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EAGnB,aAAa,EAQb,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AA4S1B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAoBlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,mBAAmB,CAQpF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAsB5F;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAgC3G;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAiBzG;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAOtE"}