gobananas-cli 1.0.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 (103) hide show
  1. package/bin/gobananas-mcp.js +10 -0
  2. package/bin/gobananas.js +8 -0
  3. package/dist/commands/account.d.ts +8 -0
  4. package/dist/commands/account.d.ts.map +1 -0
  5. package/dist/commands/account.js +200 -0
  6. package/dist/commands/account.js.map +1 -0
  7. package/dist/commands/character.d.ts +8 -0
  8. package/dist/commands/character.d.ts.map +1 -0
  9. package/dist/commands/character.js +493 -0
  10. package/dist/commands/character.js.map +1 -0
  11. package/dist/commands/config.d.ts +8 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +232 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/edit.d.ts +19 -0
  16. package/dist/commands/edit.d.ts.map +1 -0
  17. package/dist/commands/edit.js +279 -0
  18. package/dist/commands/edit.js.map +1 -0
  19. package/dist/commands/generate.d.ts +8 -0
  20. package/dist/commands/generate.d.ts.map +1 -0
  21. package/dist/commands/generate.js +177 -0
  22. package/dist/commands/generate.js.map +1 -0
  23. package/dist/commands/image.d.ts +8 -0
  24. package/dist/commands/image.d.ts.map +1 -0
  25. package/dist/commands/image.js +212 -0
  26. package/dist/commands/image.js.map +1 -0
  27. package/dist/commands/index.d.ts +19 -0
  28. package/dist/commands/index.d.ts.map +1 -0
  29. package/dist/commands/index.js +19 -0
  30. package/dist/commands/index.js.map +1 -0
  31. package/dist/commands/mcp-help.d.ts +8 -0
  32. package/dist/commands/mcp-help.d.ts.map +1 -0
  33. package/dist/commands/mcp-help.js +264 -0
  34. package/dist/commands/mcp-help.js.map +1 -0
  35. package/dist/commands/mcp.d.ts +9 -0
  36. package/dist/commands/mcp.d.ts.map +1 -0
  37. package/dist/commands/mcp.js +25 -0
  38. package/dist/commands/mcp.js.map +1 -0
  39. package/dist/commands/product.d.ts +8 -0
  40. package/dist/commands/product.d.ts.map +1 -0
  41. package/dist/commands/product.js +316 -0
  42. package/dist/commands/product.js.map +1 -0
  43. package/dist/commands/scene.d.ts +8 -0
  44. package/dist/commands/scene.d.ts.map +1 -0
  45. package/dist/commands/scene.js +448 -0
  46. package/dist/commands/scene.js.map +1 -0
  47. package/dist/commands/search.d.ts +8 -0
  48. package/dist/commands/search.d.ts.map +1 -0
  49. package/dist/commands/search.js +123 -0
  50. package/dist/commands/search.js.map +1 -0
  51. package/dist/commands/session.d.ts +8 -0
  52. package/dist/commands/session.d.ts.map +1 -0
  53. package/dist/commands/session.js +167 -0
  54. package/dist/commands/session.js.map +1 -0
  55. package/dist/commands/style.d.ts +8 -0
  56. package/dist/commands/style.d.ts.map +1 -0
  57. package/dist/commands/style.js +297 -0
  58. package/dist/commands/style.js.map +1 -0
  59. package/dist/commands/usage.d.ts +8 -0
  60. package/dist/commands/usage.d.ts.map +1 -0
  61. package/dist/commands/usage.js +144 -0
  62. package/dist/commands/usage.js.map +1 -0
  63. package/dist/config/config.d.ts +65 -0
  64. package/dist/config/config.d.ts.map +1 -0
  65. package/dist/config/config.js +156 -0
  66. package/dist/config/config.js.map +1 -0
  67. package/dist/index.d.ts +22 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +130 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/mcp/stdio-proxy.d.ts +8 -0
  72. package/dist/mcp/stdio-proxy.d.ts.map +1 -0
  73. package/dist/mcp/stdio-proxy.js +297 -0
  74. package/dist/mcp/stdio-proxy.js.map +1 -0
  75. package/dist/mcp-stdio.d.ts +3 -0
  76. package/dist/mcp-stdio.d.ts.map +1 -0
  77. package/dist/mcp-stdio.js +8 -0
  78. package/dist/mcp-stdio.js.map +1 -0
  79. package/dist/transport/index.d.ts +29 -0
  80. package/dist/transport/index.d.ts.map +1 -0
  81. package/dist/transport/index.js +72 -0
  82. package/dist/transport/index.js.map +1 -0
  83. package/dist/transport/mcp-client.d.ts +342 -0
  84. package/dist/transport/mcp-client.d.ts.map +1 -0
  85. package/dist/transport/mcp-client.js +478 -0
  86. package/dist/transport/mcp-client.js.map +1 -0
  87. package/dist/transport/rest-client.d.ts +297 -0
  88. package/dist/transport/rest-client.d.ts.map +1 -0
  89. package/dist/transport/rest-client.js +461 -0
  90. package/dist/transport/rest-client.js.map +1 -0
  91. package/dist/types/responses.d.ts +230 -0
  92. package/dist/types/responses.d.ts.map +1 -0
  93. package/dist/types/responses.js +46 -0
  94. package/dist/types/responses.js.map +1 -0
  95. package/dist/utils/file-handler.d.ts +51 -0
  96. package/dist/utils/file-handler.d.ts.map +1 -0
  97. package/dist/utils/file-handler.js +189 -0
  98. package/dist/utils/file-handler.js.map +1 -0
  99. package/dist/utils/output.d.ts +111 -0
  100. package/dist/utils/output.d.ts.map +1 -0
  101. package/dist/utils/output.js +240 -0
  102. package/dist/utils/output.js.map +1 -0
  103. package/package.json +54 -0
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Go Bananas MCP STDIO Proxy Entry Point
4
+ *
5
+ * Bridges STDIO MCP clients (Claude Desktop, Cursor, Codex, etc) to the remote
6
+ * Go Bananas server using Streamable HTTP (preferred) with SSE fallback.
7
+ */
8
+
9
+ import '../dist/mcp-stdio.js';
10
+
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Go Bananas CLI Entry Point
4
+ *
5
+ * This script bootstraps the CLI by importing the compiled TypeScript.
6
+ */
7
+
8
+ import '../dist/index.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Account Command
3
+ *
4
+ * Get account summary, quotas, and usage overview.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare function createAccountCommand(): Command;
8
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/commands/account.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,IAAI,OAAO,CA2M9C"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Account Command
3
+ *
4
+ * Get account summary, quotas, and usage overview.
5
+ */
6
+ import { Command } from 'commander';
7
+ import { createTransport, getTransportName } from '../transport/index.js';
8
+ import * as output from '../utils/output.js';
9
+ import { getSecurityWarning } from '../config/config.js';
10
+ export function createAccountCommand() {
11
+ const cmd = new Command('account')
12
+ .alias('acct')
13
+ .description('Account information and quotas')
14
+ .option('--json', 'Output raw JSON response')
15
+ .action(async (options) => {
16
+ const securityWarning = getSecurityWarning();
17
+ if (securityWarning) {
18
+ output.warning(securityWarning);
19
+ }
20
+ const spin = output.spinner('Fetching account summary...');
21
+ try {
22
+ const transport = await createTransport();
23
+ spin.text = `Connected via ${getTransportName(transport.type)}. Loading...`;
24
+ let result;
25
+ if (transport.type === 'mcp' && transport.mcp) {
26
+ const mcpResult = await transport.mcp.getAccountSummary();
27
+ const text = mcpResult.content?.[0]?.text || '';
28
+ try {
29
+ result = JSON.parse(text);
30
+ }
31
+ catch {
32
+ result = { raw: text };
33
+ }
34
+ }
35
+ else if (transport.rest) {
36
+ const restResult = await transport.rest.getProfile();
37
+ result = restResult.data;
38
+ }
39
+ else {
40
+ throw new Error('No transport available');
41
+ }
42
+ spin.stop();
43
+ if (options.json) {
44
+ output.json(result);
45
+ }
46
+ else {
47
+ const data = result;
48
+ // Tenant info
49
+ const tenant = data.tenant;
50
+ if (tenant) {
51
+ output.header('Account');
52
+ output.keyValue('Tenant ID', tenant.tenantId);
53
+ output.keyValue('Name', tenant.name);
54
+ output.keyValue('Status', tenant.isActive ? '✓ Active' : '✗ Inactive');
55
+ }
56
+ // Quotas
57
+ const quotas = data.quotas;
58
+ if (quotas) {
59
+ output.newline();
60
+ output.header('Storage Quotas');
61
+ const usedMb = (quotas.usedMb || quotas.used_mb || 0);
62
+ const monthlyMb = (quotas.monthlyQuotaMb || quotas.monthly_quota_mb || 0);
63
+ const remainingMb = (quotas.remainingMb || quotas.remaining_mb || 0);
64
+ const percentUsed = (quotas.percentUsed || quotas.percent_used || 0);
65
+ output.keyValue('Used', `${usedMb.toFixed(2)} MB`);
66
+ output.keyValue('Monthly Quota', `${monthlyMb} MB`);
67
+ output.keyValue('Remaining', `${remainingMb.toFixed(2)} MB`);
68
+ // Visual progress bar
69
+ const barWidth = 30;
70
+ const filledWidth = Math.round((percentUsed / 100) * barWidth);
71
+ const bar = '█'.repeat(filledWidth) + '░'.repeat(barWidth - filledWidth);
72
+ console.log(` ${bar} ${percentUsed.toFixed(1)}%`);
73
+ }
74
+ // Libraries
75
+ const libraries = data.libraries;
76
+ if (libraries) {
77
+ output.newline();
78
+ output.header('Libraries');
79
+ output.keyValue('Characters', libraries.characters);
80
+ output.keyValue('Style Presets', (libraries.stylePresets || libraries.style_presets));
81
+ output.keyValue('Product References', (libraries.productReferences || libraries.product_references));
82
+ }
83
+ // Images
84
+ const images = data.images;
85
+ if (images) {
86
+ output.newline();
87
+ output.header('Images');
88
+ output.keyValue('Total', images.total);
89
+ output.keyValue('Generated', images.generated);
90
+ output.keyValue('Edited', images.edited);
91
+ }
92
+ // Sessions
93
+ const sessions = data.sessions;
94
+ if (sessions) {
95
+ output.newline();
96
+ output.header('Sessions');
97
+ output.keyValue('Total', sessions.total);
98
+ output.keyValue('Active', sessions.active);
99
+ }
100
+ // Most used (if available)
101
+ const mostUsed = data.mostUsed;
102
+ if (mostUsed) {
103
+ const chars = mostUsed.characters;
104
+ if (chars && chars.length > 0) {
105
+ output.newline();
106
+ output.header('Top Characters');
107
+ for (const char of chars.slice(0, 5)) {
108
+ console.log(` • ${char.name} (${char.timesUsed} uses)`);
109
+ }
110
+ }
111
+ const presets = mostUsed.stylePresets;
112
+ if (presets && presets.length > 0) {
113
+ output.newline();
114
+ output.header('Top Style Presets');
115
+ for (const preset of presets.slice(0, 5)) {
116
+ console.log(` • ${preset.name} (${preset.timesUsed} uses)`);
117
+ }
118
+ }
119
+ const products = mostUsed.productReferences;
120
+ if (products && products.length > 0) {
121
+ output.newline();
122
+ output.header('Top Products');
123
+ for (const product of products.slice(0, 5)) {
124
+ console.log(` • ${product.name} (${product.timesUsed} uses)`);
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ catch (err) {
131
+ spin.stop();
132
+ output.error(err instanceof Error ? err.message : 'Failed to get account summary');
133
+ process.exit(1);
134
+ }
135
+ });
136
+ // Quotas subcommand for quick quota check
137
+ cmd
138
+ .command('quotas')
139
+ .description('Show just quota information')
140
+ .option('--json', 'Output raw JSON response')
141
+ .action(async (options) => {
142
+ const spin = output.spinner('Checking quotas...');
143
+ try {
144
+ const transport = await createTransport();
145
+ let result;
146
+ if (transport.type === 'mcp' && transport.mcp) {
147
+ const mcpResult = await transport.mcp.getAccountSummary();
148
+ const text = mcpResult.content?.[0]?.text || '';
149
+ try {
150
+ result = JSON.parse(text);
151
+ }
152
+ catch {
153
+ result = { raw: text };
154
+ }
155
+ }
156
+ else if (transport.rest) {
157
+ const restResult = await transport.rest.getProfile();
158
+ result = restResult.data;
159
+ }
160
+ else {
161
+ throw new Error('No transport available');
162
+ }
163
+ spin.stop();
164
+ const data = result;
165
+ const quotas = data.quotas;
166
+ if (options.json) {
167
+ output.json(quotas || {});
168
+ }
169
+ else if (quotas) {
170
+ const usedMb = (quotas.usedMb || quotas.used_mb || 0);
171
+ const monthlyMb = (quotas.monthlyQuotaMb || quotas.monthly_quota_mb || 0);
172
+ const remainingMb = (quotas.remainingMb || quotas.remaining_mb || 0);
173
+ const percentUsed = (quotas.percentUsed || quotas.percent_used || 0);
174
+ output.header('Storage Quotas');
175
+ output.keyValue('Used', `${usedMb.toFixed(2)} MB`);
176
+ output.keyValue('Monthly Quota', `${monthlyMb} MB`);
177
+ output.keyValue('Remaining', `${remainingMb.toFixed(2)} MB`);
178
+ // Visual progress bar
179
+ const barWidth = 30;
180
+ const filledWidth = Math.round((percentUsed / 100) * barWidth);
181
+ const bar = '█'.repeat(filledWidth) + '░'.repeat(barWidth - filledWidth);
182
+ console.log(` ${bar} ${percentUsed.toFixed(1)}%`);
183
+ if (percentUsed > 80) {
184
+ output.newline();
185
+ output.warning('Storage usage is above 80%. Consider cleaning up old images.');
186
+ }
187
+ }
188
+ else {
189
+ output.info('Quota information not available.');
190
+ }
191
+ }
192
+ catch (err) {
193
+ spin.stop();
194
+ output.error(err instanceof Error ? err.message : 'Failed to get quotas');
195
+ process.exit(1);
196
+ }
197
+ });
198
+ return cmd;
199
+ }
200
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/commands/account.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SAC/B,KAAK,CAAC,MAAM,CAAC;SACb,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAC7C,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;YAE5E,IAAI,MAAe,CAAC;YACpB,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrD,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAiC,CAAC;gBAE/C,cAAc;gBACd,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6C,CAAC;gBAClE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACzB,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,QAAkB,CAAC,CAAC;oBACxD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAc,CAAC,CAAC;oBAC/C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAC,QAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACtF,CAAC;gBAED,SAAS;gBACT,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6C,CAAC;gBAClE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;oBAChC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAW,CAAC;oBAChE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAW,CAAC;oBACpF,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAW,CAAC;oBAC/E,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAW,CAAC;oBAE/E,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;oBACpD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAE7D,sBAAsB;oBACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;oBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;gBAED,YAAY;gBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAgD,CAAC;gBACxE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC3B,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,UAAoB,CAAC,CAAC;oBAC9D,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,aAAa,CAAW,CAAC,CAAC;oBAChG,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,kBAAkB,CAAW,CAAC,CAAC;gBACjH,CAAC;gBAED,SAAS;gBACT,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6C,CAAC;gBAClE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAe,CAAC,CAAC;oBACjD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,SAAmB,CAAC,CAAC;oBACzD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAgB,CAAC,CAAC;gBACrD,CAAC;gBAED,WAAW;gBACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA+C,CAAC;gBACtE,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAe,CAAC,CAAC;oBACnD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAgB,CAAC,CAAC;gBACvD,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA+C,CAAC;gBACtE,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAoE,CAAC;oBAC5F,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;wBAChC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;4BACrC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,QAAQ,CAAC,CAAC;wBAC3D,CAAC;oBACH,CAAC;oBAED,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAsE,CAAC;oBAChG,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;wBACnC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;4BACzC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC;wBAC/D,CAAC;oBACH,CAAC;oBAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAA2E,CAAC;oBACtG,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;wBAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;4BAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,QAAQ,CAAC,CAAC;wBACjE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,0CAA0C;IAC1C,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAElD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;YAE1C,IAAI,MAAe,CAAC;YACpB,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrD,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,MAAM,IAAI,GAAG,MAAiC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6C,CAAC;YAElE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAW,CAAC;gBAChE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAW,CAAC;gBACpF,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAW,CAAC;gBAC/E,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAW,CAAC;gBAE/E,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;gBACpD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAE7D,sBAAsB;gBACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAEnD,IAAI,WAAW,GAAG,EAAE,EAAE,CAAC;oBACrB,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Character Commands
3
+ *
4
+ * Commands for managing and using saved characters.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare function createCharacterCommand(): Command;
8
+ //# sourceMappingURL=character.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../src/commands/character.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,sBAAsB,IAAI,OAAO,CAgehD"}