@openweave/weave-cli 1.0.2 → 1.0.3

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 (63) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +136 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/errors.d.ts +32 -0
  6. package/dist/commands/errors.d.ts.map +1 -0
  7. package/dist/commands/errors.js +182 -0
  8. package/dist/commands/errors.js.map +1 -0
  9. package/dist/commands/init.d.ts +29 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +126 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/migrate.d.ts +23 -0
  14. package/dist/commands/migrate.d.ts.map +1 -0
  15. package/dist/commands/migrate.js +233 -0
  16. package/dist/commands/migrate.js.map +1 -0
  17. package/dist/commands/milestones.d.ts +32 -0
  18. package/dist/commands/milestones.d.ts.map +1 -0
  19. package/dist/commands/milestones.js +217 -0
  20. package/dist/commands/milestones.js.map +1 -0
  21. package/dist/commands/orphans.d.ts +38 -0
  22. package/dist/commands/orphans.d.ts.map +1 -0
  23. package/dist/commands/orphans.js +182 -0
  24. package/dist/commands/orphans.js.map +1 -0
  25. package/dist/commands/query.d.ts +30 -0
  26. package/dist/commands/query.d.ts.map +1 -0
  27. package/dist/commands/query.js +147 -0
  28. package/dist/commands/query.js.map +1 -0
  29. package/dist/commands/save-node.d.ts +45 -0
  30. package/dist/commands/save-node.d.ts.map +1 -0
  31. package/dist/commands/save-node.js +138 -0
  32. package/dist/commands/save-node.js.map +1 -0
  33. package/dist/commands/skills.d.ts +12 -0
  34. package/dist/commands/skills.d.ts.map +1 -0
  35. package/dist/commands/skills.js +202 -0
  36. package/dist/commands/skills.js.map +1 -0
  37. package/dist/commands/status.d.ts +25 -0
  38. package/dist/commands/status.d.ts.map +1 -0
  39. package/dist/commands/status.js +110 -0
  40. package/dist/commands/status.js.map +1 -0
  41. package/dist/commands/tools.d.ts +13 -0
  42. package/dist/commands/tools.d.ts.map +1 -0
  43. package/dist/commands/tools.js +341 -0
  44. package/dist/commands/tools.js.map +1 -0
  45. package/dist/index.d.ts +12 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +28 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/types.d.ts +46 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/types.js +6 -0
  52. package/dist/types.js.map +1 -0
  53. package/dist/utils.d.ts +17 -0
  54. package/dist/utils.d.ts.map +1 -0
  55. package/dist/utils.js +24 -0
  56. package/dist/utils.js.map +1 -0
  57. package/package.json +6 -7
  58. package/src/commands/errors.ts +1 -1
  59. package/src/commands/milestones.ts +1 -1
  60. package/src/commands/orphans.ts +1 -1
  61. package/src/commands/query.ts +1 -1
  62. package/src/commands/save-node.ts +1 -1
  63. package/src/commands/status.ts +1 -1
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skillsCommand = void 0;
4
+ const node_path_1 = require("node:path");
5
+ const utils_js_1 = require("../utils.js");
6
+ const weave_skills_1 = require("@openweave/weave-skills");
7
+ /**
8
+ * SkillsCommand — manage OpenWeave skill modules
9
+ *
10
+ * Subcommands:
11
+ * weave skills list List all skills and their enabled state
12
+ * weave skills enable <id> Enable a skill in .weave.config.json
13
+ * weave skills disable <id> Disable a skill in .weave.config.json
14
+ * weave skills info <id> Show config entry for a skill
15
+ */
16
+ exports.skillsCommand = {
17
+ name: 'skills',
18
+ description: 'Manage OpenWeave skill modules',
19
+ usage: 'weave skills <list|enable|disable|info> [skill-id]',
20
+ flags: {
21
+ json: {
22
+ short: 'j',
23
+ description: 'Output as JSON',
24
+ default: false,
25
+ },
26
+ },
27
+ async execute(args) {
28
+ const sub = args.args[0] ?? 'list';
29
+ const skillId = args.args[1];
30
+ const outputJson = Boolean(args.flags.json);
31
+ const projectRoot = (0, utils_js_1.resolveProjectRoot)();
32
+ switch (sub) {
33
+ case 'list':
34
+ return handleList(projectRoot, outputJson);
35
+ case 'enable': {
36
+ if (!skillId) {
37
+ return {
38
+ success: false,
39
+ message: '❌ Usage: weave skills enable <skill-id>',
40
+ error: 'Missing skill id',
41
+ };
42
+ }
43
+ return handleSetEnabled(projectRoot, skillId, true, outputJson);
44
+ }
45
+ case 'disable': {
46
+ if (!skillId) {
47
+ return {
48
+ success: false,
49
+ message: '❌ Usage: weave skills disable <skill-id>',
50
+ error: 'Missing skill id',
51
+ };
52
+ }
53
+ return handleSetEnabled(projectRoot, skillId, false, outputJson);
54
+ }
55
+ case 'info': {
56
+ if (!skillId) {
57
+ return {
58
+ success: false,
59
+ message: '❌ Usage: weave skills info <skill-id>',
60
+ error: 'Missing skill id',
61
+ };
62
+ }
63
+ return handleInfo(projectRoot, skillId, outputJson);
64
+ }
65
+ default:
66
+ return {
67
+ success: false,
68
+ message: `❌ Unknown subcommand: "${sub}"\n\nUsage: weave skills <list|enable|disable|info>`,
69
+ error: `Unknown subcommand: ${sub}`,
70
+ };
71
+ }
72
+ },
73
+ };
74
+ // ---------------------------------------------------------------------------
75
+ // Handlers
76
+ // ---------------------------------------------------------------------------
77
+ function handleList(projectRoot, outputJson) {
78
+ const config = (0, weave_skills_1.loadSkillConfig)(projectRoot);
79
+ const entries = Object.entries(config.skills);
80
+ if (outputJson) {
81
+ return {
82
+ success: true,
83
+ message: JSON.stringify(config.skills, null, 2),
84
+ data: config.skills,
85
+ };
86
+ }
87
+ const configFile = (0, node_path_1.join)(projectRoot, weave_skills_1.CONFIG_FILENAME);
88
+ if (entries.length === 0) {
89
+ return {
90
+ success: true,
91
+ message: [
92
+ '',
93
+ '🔧 OpenWeave Skills',
94
+ '─'.repeat(50),
95
+ '',
96
+ ' No skills configured yet.',
97
+ '',
98
+ ' Skills are enabled/disabled in:',
99
+ ` ${configFile}`,
100
+ '',
101
+ ' Example:',
102
+ ' weave skills enable auto-fix',
103
+ ' weave skills enable code-review',
104
+ '',
105
+ ' Available skill ids (Phase 9):',
106
+ ' auto-fix · code-review · test-gen · docs-gen · refactor',
107
+ ' pipeline-aware · dep-audit · perf-profile · container-advisor · deploy-provision',
108
+ ' onboarding · commit-composer · context-memory · multi-repo · cli-interactive',
109
+ '',
110
+ ].join('\n'),
111
+ };
112
+ }
113
+ const rows = entries.map(([id, enabled]) => {
114
+ const icon = enabled ? '✅' : '⬜';
115
+ const state = enabled ? 'enabled ' : 'disabled';
116
+ return ` ${icon} ${state} ${id}`;
117
+ });
118
+ return {
119
+ success: true,
120
+ message: [
121
+ '',
122
+ '🔧 OpenWeave Skills',
123
+ '─'.repeat(50),
124
+ '',
125
+ ...rows,
126
+ '',
127
+ ` Config: ${configFile}`,
128
+ '',
129
+ ' weave skills enable <id> — activate a skill',
130
+ ' weave skills disable <id> — deactivate a skill',
131
+ '',
132
+ ].join('\n'),
133
+ data: config.skills,
134
+ };
135
+ }
136
+ function handleSetEnabled(projectRoot, skillId, enabled, outputJson) {
137
+ try {
138
+ (0, weave_skills_1.setSkillEnabled)(skillId, enabled, projectRoot);
139
+ const action = enabled ? 'enabled' : 'disabled';
140
+ const icon = enabled ? '✅' : '⬜';
141
+ const data = { skillId, enabled };
142
+ if (outputJson) {
143
+ return { success: true, message: JSON.stringify(data, null, 2), data };
144
+ }
145
+ return {
146
+ success: true,
147
+ message: `\n${icon} Skill '${skillId}' ${action} in ${weave_skills_1.CONFIG_FILENAME}\n`,
148
+ data,
149
+ };
150
+ }
151
+ catch (err) {
152
+ return {
153
+ success: false,
154
+ message: `❌ Failed to update skill config`,
155
+ error: err instanceof Error ? err.message : String(err),
156
+ };
157
+ }
158
+ }
159
+ function handleInfo(projectRoot, skillId, outputJson) {
160
+ const config = (0, weave_skills_1.loadSkillConfig)(projectRoot);
161
+ const hasEntry = skillId in config.skills;
162
+ if (!hasEntry) {
163
+ if (outputJson) {
164
+ return {
165
+ success: false,
166
+ message: JSON.stringify({ skillId, configured: false }),
167
+ data: { skillId, configured: false },
168
+ };
169
+ }
170
+ return {
171
+ success: false,
172
+ message: [
173
+ '',
174
+ `⚠️ Skill '${skillId}' is not in ${weave_skills_1.CONFIG_FILENAME}`,
175
+ '',
176
+ ` To add it:`,
177
+ ` weave skills enable ${skillId}`,
178
+ ` weave skills disable ${skillId}`,
179
+ '',
180
+ ].join('\n'),
181
+ error: `Skill '${skillId}' not configured`,
182
+ };
183
+ }
184
+ const enabled = config.skills[skillId];
185
+ const data = { skillId, enabled, configured: true };
186
+ if (outputJson) {
187
+ return { success: true, message: JSON.stringify(data, null, 2), data };
188
+ }
189
+ return {
190
+ success: true,
191
+ message: [
192
+ '',
193
+ `🔧 Skill: ${skillId}`,
194
+ '─'.repeat(40),
195
+ ` Status : ${enabled ? '✅ enabled' : '⬜ disabled'}`,
196
+ ` Config : ${(0, node_path_1.join)(projectRoot, weave_skills_1.CONFIG_FILENAME)}`,
197
+ '',
198
+ ].join('\n'),
199
+ data,
200
+ };
201
+ }
202
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { CLIArgs, CommandResult, CliCommand } from '../types';
2
+ /**
3
+ * Status Command - Display project status
4
+ */
5
+ export declare class StatusCommand implements CliCommand {
6
+ name: string;
7
+ description: string;
8
+ usage: string;
9
+ flags: {
10
+ verbose: {
11
+ short: string;
12
+ description: string;
13
+ default: boolean;
14
+ };
15
+ json: {
16
+ short: string;
17
+ description: string;
18
+ default: boolean;
19
+ };
20
+ };
21
+ execute(args: CLIArgs): Promise<CommandResult>;
22
+ private getVerboseInfo;
23
+ }
24
+ export declare const statusCommand: StatusCommand;
25
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAC;AAGvF;;GAEG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,WAAW,SAA8C;IACzD,KAAK,SAA8B;IACnC,KAAK;;;;;;;;;;;MAWH;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAqFpD,OAAO,CAAC,cAAc;CASvB;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statusCommand = exports.StatusCommand = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const utils_1 = require("../utils");
7
+ /**
8
+ * Status Command - Display project status
9
+ */
10
+ class StatusCommand {
11
+ name = 'status';
12
+ description = 'Show current project status and progress';
13
+ usage = 'weave status [--verbose]';
14
+ flags = {
15
+ verbose: {
16
+ short: 'v',
17
+ description: 'Show detailed information',
18
+ default: false,
19
+ },
20
+ json: {
21
+ short: 'j',
22
+ description: 'Output as JSON',
23
+ default: false,
24
+ },
25
+ };
26
+ async execute(args) {
27
+ try {
28
+ const projectRoot = (0, utils_1.resolveProjectRoot)(args.flags.root);
29
+ const weaveDir = (0, path_1.join)(projectRoot, '.weave');
30
+ const configPath = (0, path_1.join)(weaveDir, 'config.json');
31
+ if (!(0, fs_1.existsSync)(configPath)) {
32
+ return {
33
+ success: false,
34
+ message: 'Error: .weave directory not found',
35
+ error: 'Please run "weave init <project-name>" first',
36
+ };
37
+ }
38
+ const configContent = (0, fs_1.readFileSync)(configPath, 'utf-8');
39
+ const config = JSON.parse(configContent);
40
+ const graphPath = (0, path_1.join)(weaveDir, 'graph.json');
41
+ let graphData = { nodes: [], edges: [], sessions: {} };
42
+ if ((0, fs_1.existsSync)(graphPath)) {
43
+ const graphContent = (0, fs_1.readFileSync)(graphPath, 'utf-8');
44
+ graphData = JSON.parse(graphContent);
45
+ }
46
+ const projectState = {
47
+ created_at: new Date(),
48
+ last_updated: new Date(),
49
+ session_id: `session_${Date.now()}`,
50
+ milestones: 0,
51
+ total_nodes: graphData.nodes.length,
52
+ total_edges: graphData.edges.length,
53
+ context_usage_percent: Math.min(100, ((graphData.nodes.length + graphData.edges.length) / 10000) * 100),
54
+ };
55
+ const outputJson = args.flags.json;
56
+ if (outputJson) {
57
+ return {
58
+ success: true,
59
+ message: JSON.stringify(projectState, null, 2),
60
+ data: projectState,
61
+ };
62
+ }
63
+ const verbose = args.flags.verbose;
64
+ const statusMessage = `
65
+ 📊 Project Status: ${config.project_name}
66
+ ${'-'.repeat(50)}
67
+
68
+ 📁 Location: ${config.project_root}
69
+ 🕒 Session: ${projectState.session_id}
70
+
71
+ 📈 Graph Statistics:
72
+ • Nodes: ${projectState.total_nodes}
73
+ • Edges: ${projectState.total_edges}
74
+ • Context Usage: ${projectState.context_usage_percent.toFixed(1)}%
75
+
76
+ ${verbose ? this.getVerboseInfo(config) : ''}
77
+
78
+ ✨ Quick Commands:
79
+ • weave query <term> - Search the knowledge graph
80
+ • weave orphans - Analyze code for unused exports
81
+ • weave milestones - View milestone progress
82
+ • weave errors - Show error registry
83
+ `;
84
+ return {
85
+ success: true,
86
+ message: statusMessage,
87
+ data: projectState,
88
+ };
89
+ }
90
+ catch (error) {
91
+ return {
92
+ success: false,
93
+ message: 'Error reading project status',
94
+ error: error instanceof Error ? error.message : String(error),
95
+ };
96
+ }
97
+ }
98
+ getVerboseInfo(config) {
99
+ return `
100
+ ⚙️ Configuration:
101
+ • Include Tests: ${config.include_tests}
102
+ • Max Context Depth: ${config.max_context_depth}
103
+ • Verbose Mode: ${config.verbose}
104
+ • Debug Mode: ${config.debug}
105
+ `;
106
+ }
107
+ }
108
+ exports.StatusCommand = StatusCommand;
109
+ exports.statusCommand = new StatusCommand();
110
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA4B;AAE5B,oCAA8C;AAE9C;;GAEG;AACH,MAAa,aAAa;IACxB,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,0CAA0C,CAAC;IACzD,KAAK,GAAG,0BAA0B,CAAC;IACnC,KAAK,GAAG;QACN,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,KAAK;SACf;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf;KACF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,IAA0B,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAEjD,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,mCAAmC;oBAC5C,KAAK,EAAE,8CAA8C;iBACtD,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,MAAM,GAAc,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAEpD,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC/C,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAEvD,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,YAAY,GAAG,IAAA,iBAAY,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACtD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,YAAY,GAAiB;gBACjC,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,YAAY,EAAE,IAAI,IAAI,EAAE;gBACxB,UAAU,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE;gBACnC,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;gBACnC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;gBACnC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAC7B,GAAG,EACH,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAClE;aACF,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAe,CAAC;YAE9C,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,IAAI,EAAE,YAAY;iBACnB,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAkB,CAAC;YAE9C,MAAM,aAAa,GAAG;qBACP,MAAM,CAAC,YAAY;EACtC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;;eAED,MAAM,CAAC,YAAY;cACpB,YAAY,CAAC,UAAU;;;cAGvB,YAAY,CAAC,WAAW;cACxB,YAAY,CAAC,WAAW;sBAChB,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;;EAEjE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;CAO3C,CAAC;YAEI,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,YAAY;aACnB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,8BAA8B;gBACvC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,MAAiB;QACtC,OAAO;;sBAEW,MAAM,CAAC,aAAa;0BAChB,MAAM,CAAC,iBAAiB;qBAC7B,MAAM,CAAC,OAAO;mBAChB,MAAM,CAAC,KAAK;CAC9B,CAAC;IACA,CAAC;CACF;AA/GD,sCA+GC;AAEY,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { CliCommand } from '../types.js';
2
+ /**
3
+ * ToolsCommand — manage external tool adapters
4
+ *
5
+ * Subcommands:
6
+ * weave tools list List all registered tools
7
+ * weave tools add <url|./path> Register tool from URL or local file
8
+ * weave tools remove <id> Remove a registered tool
9
+ * weave tools info <id> Show tool manifest and status
10
+ * weave tools test <id> <action> [--args={}] Invoke a tool action
11
+ */
12
+ export declare const toolsCommand: CliCommand;
13
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,UAAU,EAAE,MAAM,aAAa,CAAC;AAKjE;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,UAqF1B,CAAC"}