aui-agent-builder 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 (130) hide show
  1. package/README.md +311 -0
  2. package/bin/aui.js +2 -0
  3. package/dist/api-client/index.d.ts +208 -0
  4. package/dist/api-client/index.d.ts.map +1 -0
  5. package/dist/api-client/index.js +219 -0
  6. package/dist/api-client/index.js.map +1 -0
  7. package/dist/commands/add-integration.d.ts +26 -0
  8. package/dist/commands/add-integration.d.ts.map +1 -0
  9. package/dist/commands/add-integration.js +484 -0
  10. package/dist/commands/add-integration.js.map +1 -0
  11. package/dist/commands/add-param.d.ts +13 -0
  12. package/dist/commands/add-param.d.ts.map +1 -0
  13. package/dist/commands/add-param.js +140 -0
  14. package/dist/commands/add-param.js.map +1 -0
  15. package/dist/commands/add-tool.d.ts +17 -0
  16. package/dist/commands/add-tool.d.ts.map +1 -0
  17. package/dist/commands/add-tool.js +239 -0
  18. package/dist/commands/add-tool.js.map +1 -0
  19. package/dist/commands/connect.d.ts +20 -0
  20. package/dist/commands/connect.d.ts.map +1 -0
  21. package/dist/commands/connect.js +203 -0
  22. package/dist/commands/connect.js.map +1 -0
  23. package/dist/commands/create-agent.d.ts +25 -0
  24. package/dist/commands/create-agent.d.ts.map +1 -0
  25. package/dist/commands/create-agent.js +199 -0
  26. package/dist/commands/create-agent.js.map +1 -0
  27. package/dist/commands/diff.d.ts +17 -0
  28. package/dist/commands/diff.d.ts.map +1 -0
  29. package/dist/commands/diff.js +261 -0
  30. package/dist/commands/diff.js.map +1 -0
  31. package/dist/commands/import-agent.d.ts +21 -0
  32. package/dist/commands/import-agent.d.ts.map +1 -0
  33. package/dist/commands/import-agent.js +274 -0
  34. package/dist/commands/import-agent.js.map +1 -0
  35. package/dist/commands/index.d.ts +15 -0
  36. package/dist/commands/index.d.ts.map +1 -0
  37. package/dist/commands/index.js +27 -0
  38. package/dist/commands/index.js.map +1 -0
  39. package/dist/commands/init.d.ts +18 -0
  40. package/dist/commands/init.d.ts.map +1 -0
  41. package/dist/commands/init.js +173 -0
  42. package/dist/commands/init.js.map +1 -0
  43. package/dist/commands/list-agents.d.ts +12 -0
  44. package/dist/commands/list-agents.d.ts.map +1 -0
  45. package/dist/commands/list-agents.js +68 -0
  46. package/dist/commands/list-agents.js.map +1 -0
  47. package/dist/commands/login.d.ts +26 -0
  48. package/dist/commands/login.d.ts.map +1 -0
  49. package/dist/commands/login.js +200 -0
  50. package/dist/commands/login.js.map +1 -0
  51. package/dist/commands/pull.d.ts +17 -0
  52. package/dist/commands/pull.d.ts.map +1 -0
  53. package/dist/commands/pull.js +65 -0
  54. package/dist/commands/pull.js.map +1 -0
  55. package/dist/commands/push.d.ts +24 -0
  56. package/dist/commands/push.d.ts.map +1 -0
  57. package/dist/commands/push.js +160 -0
  58. package/dist/commands/push.js.map +1 -0
  59. package/dist/commands/status.d.ts +10 -0
  60. package/dist/commands/status.d.ts.map +1 -0
  61. package/dist/commands/status.js +155 -0
  62. package/dist/commands/status.js.map +1 -0
  63. package/dist/commands/sync.d.ts +19 -0
  64. package/dist/commands/sync.d.ts.map +1 -0
  65. package/dist/commands/sync.js +114 -0
  66. package/dist/commands/sync.js.map +1 -0
  67. package/dist/commands/validate.d.ts +20 -0
  68. package/dist/commands/validate.d.ts.map +1 -0
  69. package/dist/commands/validate.js +199 -0
  70. package/dist/commands/validate.js.map +1 -0
  71. package/dist/config/index.d.ts +102 -0
  72. package/dist/config/index.d.ts.map +1 -0
  73. package/dist/config/index.js +205 -0
  74. package/dist/config/index.js.map +1 -0
  75. package/dist/index.d.ts +18 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +163 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/mock-data/entities.aui.json +38 -0
  80. package/dist/mock-data/general_settings.aui.json +11 -0
  81. package/dist/mock-data/integrations.aui.json +806 -0
  82. package/dist/mock-data/parameters.aui.json +586 -0
  83. package/dist/mock-data/rules.aui.json +506 -0
  84. package/dist/mock-data/tools/conversation_forwarding.aui.json +32 -0
  85. package/dist/mock-data/tools/create_fraud_dispute.aui.json +112 -0
  86. package/dist/mock-data/tools/generative_ai.aui.json +29 -0
  87. package/dist/mock-data/tools/policies.aui.json +45 -0
  88. package/dist/mock-data/tools/transaction_and_card_details.aui.json +87 -0
  89. package/dist/mock-data/tools/transaction_search.aui.json +76 -0
  90. package/dist/mock-data/tools/update_credit_card_status.aui.json +45 -0
  91. package/dist/mock-data/tools/user_details.aui.json +57 -0
  92. package/dist/mock-data/tools/web_search.aui.json +54 -0
  93. package/dist/schema/aui.schema.json +418 -0
  94. package/dist/types/agent.d.ts +91 -0
  95. package/dist/types/agent.d.ts.map +1 -0
  96. package/dist/types/agent.js +9 -0
  97. package/dist/types/agent.js.map +1 -0
  98. package/dist/types/base.d.ts +15 -0
  99. package/dist/types/base.d.ts.map +1 -0
  100. package/dist/types/base.js +7 -0
  101. package/dist/types/base.js.map +1 -0
  102. package/dist/types/entity.d.ts +25 -0
  103. package/dist/types/entity.d.ts.map +1 -0
  104. package/dist/types/entity.js +9 -0
  105. package/dist/types/entity.js.map +1 -0
  106. package/dist/types/index.d.ts +11 -0
  107. package/dist/types/index.d.ts.map +1 -0
  108. package/dist/types/index.js +27 -0
  109. package/dist/types/index.js.map +1 -0
  110. package/dist/types/integration.d.ts +151 -0
  111. package/dist/types/integration.d.ts.map +1 -0
  112. package/dist/types/integration.js +9 -0
  113. package/dist/types/integration.js.map +1 -0
  114. package/dist/types/parameter.d.ts +38 -0
  115. package/dist/types/parameter.d.ts.map +1 -0
  116. package/dist/types/parameter.js +10 -0
  117. package/dist/types/parameter.js.map +1 -0
  118. package/dist/types/rule.d.ts +125 -0
  119. package/dist/types/rule.d.ts.map +1 -0
  120. package/dist/types/rule.js +10 -0
  121. package/dist/types/rule.js.map +1 -0
  122. package/dist/types/tool.d.ts +95 -0
  123. package/dist/types/tool.d.ts.map +1 -0
  124. package/dist/types/tool.js +12 -0
  125. package/dist/types/tool.js.map +1 -0
  126. package/dist/utils/index.d.ts +47 -0
  127. package/dist/utils/index.d.ts.map +1 -0
  128. package/dist/utils/index.js +267 -0
  129. package/dist/utils/index.js.map +1 -0
  130. package/package.json +56 -0
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ /**
3
+ * status command - Show current session, linked agent, and project file summary
4
+ *
5
+ * Usage: aui status
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.status = status;
45
+ const path = __importStar(require("path"));
46
+ const chalk_1 = __importDefault(require("chalk"));
47
+ const config_1 = require("../config");
48
+ const utils_1 = require("../utils");
49
+ /**
50
+ * Show status of current session and project
51
+ */
52
+ async function status() {
53
+ console.log(chalk_1.default.blue('\n AUI Agent Builder - Status\n'));
54
+ // ─── Session ───
55
+ const session = (0, config_1.loadSession)();
56
+ if (session) {
57
+ const expired = session.expires_at && new Date(session.expires_at).getTime() < Date.now();
58
+ const expLabel = expired
59
+ ? chalk_1.default.red('EXPIRED')
60
+ : session.expires_at
61
+ ? chalk_1.default.green(new Date(session.expires_at).toLocaleString())
62
+ : chalk_1.default.gray('unknown');
63
+ console.log(chalk_1.default.white(' Session'));
64
+ console.log(` Email: ${chalk_1.default.cyan(session.email)}`);
65
+ console.log(` Account: ${chalk_1.default.cyan(session.account_name || session.account_id || '-')}`);
66
+ console.log(` Organization: ${chalk_1.default.gray(session.organization_id || '-')}`);
67
+ console.log(` Environment: ${chalk_1.default.gray(session.environment)}`);
68
+ console.log(` Expires: ${expLabel}`);
69
+ if (expired) {
70
+ console.log(chalk_1.default.red('\n ⚠ Session expired. Run `aui login` to refresh.\n'));
71
+ }
72
+ }
73
+ else {
74
+ console.log(chalk_1.default.yellow(' Not logged in. Run `aui login` to authenticate.\n'));
75
+ }
76
+ // ─── Project ───
77
+ const projectRoot = (0, config_1.findProjectRoot)();
78
+ if (!projectRoot) {
79
+ console.log(chalk_1.default.gray('\n No AUI project found in current directory.\n'));
80
+ return;
81
+ }
82
+ const projectConfig = (0, config_1.loadProjectConfig)(projectRoot);
83
+ console.log(chalk_1.default.white('\n Project'));
84
+ console.log(` Directory: ${chalk_1.default.cyan(projectRoot)}`);
85
+ console.log(` Agent Code: ${chalk_1.default.cyan(projectConfig?.agent_code || '-')}`);
86
+ console.log(` Agent ID: ${chalk_1.default.gray(projectConfig?.agent_id || '-')}`);
87
+ console.log(` Environment: ${chalk_1.default.gray(projectConfig?.environment || '-')}`);
88
+ // ─── Files ───
89
+ const files = await (0, utils_1.findAuiFiles)(projectRoot);
90
+ let paramCount = 0;
91
+ let entityCount = 0;
92
+ let toolCount = 0;
93
+ let integrationCount = 0;
94
+ let ruleCount = 0;
95
+ let hasGeneralSettings = false;
96
+ const fileDetails = [];
97
+ for (const file of files) {
98
+ const relativePath = path.relative(projectRoot, file);
99
+ const parsed = (0, utils_1.parseAuiFile)(file);
100
+ if (!parsed) {
101
+ fileDetails.push({ name: relativePath, type: 'error', detail: 'invalid JSON' });
102
+ continue;
103
+ }
104
+ if (parsed.general_settings) {
105
+ hasGeneralSettings = true;
106
+ const gs = parsed.general_settings;
107
+ fileDetails.push({
108
+ name: relativePath,
109
+ type: 'general_settings',
110
+ detail: gs.name || ''
111
+ });
112
+ }
113
+ else if (parsed.parameters && Array.isArray(parsed.parameters)) {
114
+ paramCount = parsed.parameters.length;
115
+ fileDetails.push({ name: relativePath, type: 'parameters', detail: `${paramCount} params` });
116
+ }
117
+ else if (parsed.entities && Array.isArray(parsed.entities)) {
118
+ entityCount = parsed.entities.length;
119
+ fileDetails.push({ name: relativePath, type: 'entities', detail: `${entityCount} entities` });
120
+ }
121
+ else if (parsed.integrations && Array.isArray(parsed.integrations)) {
122
+ integrationCount = parsed.integrations.length;
123
+ fileDetails.push({ name: relativePath, type: 'integrations', detail: `${integrationCount} integrations` });
124
+ }
125
+ else if (parsed.rules && Array.isArray(parsed.rules)) {
126
+ ruleCount = parsed.rules.length;
127
+ fileDetails.push({ name: relativePath, type: 'rules', detail: `${ruleCount} rules` });
128
+ }
129
+ else if (parsed.tool) {
130
+ toolCount++;
131
+ const tool = parsed.tool;
132
+ fileDetails.push({ name: relativePath, type: 'tool', detail: tool.code || '' });
133
+ }
134
+ else {
135
+ fileDetails.push({ name: relativePath, type: 'unknown', detail: '' });
136
+ }
137
+ }
138
+ console.log(chalk_1.default.white('\n Files'));
139
+ for (const f of fileDetails) {
140
+ const icon = f.type === 'error' ? chalk_1.default.red('✗') : chalk_1.default.green('•');
141
+ const detail = f.detail ? chalk_1.default.gray(` (${f.detail})`) : '';
142
+ console.log(` ${icon} ${f.name}${detail}`);
143
+ }
144
+ // ─── Summary ───
145
+ console.log(chalk_1.default.white('\n Summary'));
146
+ console.log(` General Settings: ${hasGeneralSettings ? chalk_1.default.green('✓') : chalk_1.default.yellow('missing')}`);
147
+ console.log(` Parameters: ${paramCount}`);
148
+ console.log(` Entities: ${entityCount}`);
149
+ console.log(` Integrations: ${integrationCount}`);
150
+ console.log(` Tools: ${toolCount}`);
151
+ console.log(` Rules: ${ruleCount}`);
152
+ console.log(` Total files: ${files.length}`);
153
+ console.log('');
154
+ }
155
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWH,wBA4GC;AApHD,2CAA6B;AAC7B,kDAA0B;AAC1B,sCAA4E;AAC5E,oCAAsD;AAEtD;;GAEG;AACI,KAAK,UAAU,MAAM;IAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAE5D,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAA,oBAAW,GAAE,CAAC;IAC9B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1F,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YACtB,CAAC,CAAC,OAAO,CAAC,UAAU;gBAClB,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC;gBAC5D,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,kBAAkB;IAClB,MAAM,WAAW,GAAG,IAAA,wBAAe,GAAE,CAAC;IAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,0BAAiB,EAAC,WAAW,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAElF,gBAAgB;IAChB,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAY,EAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,MAAM,WAAW,GAA0D,EAAE,CAAC;IAE9E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAChF,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,kBAAkB,GAAG,IAAI,CAAC;YAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,gBAA2C,CAAC;YAC9D,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAG,EAAE,CAAC,IAAe,IAAI,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,UAAU,GAAI,MAAM,CAAC,UAAwB,CAAC,MAAM,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,SAAS,EAAE,CAAC,CAAC;QAC/F,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,WAAW,GAAI,MAAM,CAAC,QAAsB,CAAC,MAAM,CAAC;YACpD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,WAAW,EAAE,CAAC,CAAC;QAChG,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACrE,gBAAgB,GAAI,MAAM,CAAC,YAA0B,CAAC,MAAM,CAAC;YAC7D,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,gBAAgB,eAAe,EAAE,CAAC,CAAC;QAC7G,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,SAAS,GAAI,MAAM,CAAC,KAAmB,CAAC,MAAM,CAAC;YAC/C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,QAAQ,EAAE,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACvB,SAAS,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAA+B,CAAC;YACpD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAG,IAAI,CAAC,IAAe,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,yBAAyB,kBAAkB,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,yBAAyB,gBAAgB,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * sync command - Two-way sync with conflict resolution
3
+ *
4
+ * Requires login. Compares local configuration with the backend.
5
+ *
6
+ * Usage: aui sync
7
+ * Options:
8
+ * --force Force local changes (no conflict resolution)
9
+ * --dry-run Show what would change without applying
10
+ */
11
+ export interface SyncOptions {
12
+ force?: boolean;
13
+ dryRun?: boolean;
14
+ }
15
+ /**
16
+ * Two-way sync with backend
17
+ */
18
+ export declare function sync(options?: SyncOptions): Promise<void>;
19
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGnE"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * sync command - Two-way sync with conflict resolution
4
+ *
5
+ * Requires login. Compares local configuration with the backend.
6
+ *
7
+ * Usage: aui sync
8
+ * Options:
9
+ * --force Force local changes (no conflict resolution)
10
+ * --dry-run Show what would change without applying
11
+ */
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.sync = sync;
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ const ora_1 = __importDefault(require("ora"));
19
+ const inquirer_1 = __importDefault(require("inquirer"));
20
+ const api_client_1 = require("../api-client");
21
+ const config_1 = require("../config");
22
+ const utils_1 = require("../utils");
23
+ /**
24
+ * Two-way sync with backend
25
+ */
26
+ async function sync(options = {}) {
27
+ const config = (0, config_1.getConfig)();
28
+ const projectRoot = config.projectRoot || process.cwd();
29
+ if (!config.isAuthenticated) {
30
+ console.log(chalk_1.default.red(' Error: Not logged in. Run: aui login'));
31
+ return;
32
+ }
33
+ if (!config.agentCode) {
34
+ console.log(chalk_1.default.red(' Error: No agent code configured. Run: aui connect'));
35
+ return;
36
+ }
37
+ console.log(chalk_1.default.blue(`\n Syncing agent "${config.agentCode}"...\n`));
38
+ const spinner = (0, ora_1.default)('Reading local files...').start();
39
+ try {
40
+ const localData = await (0, utils_1.readAgentFiles)(projectRoot);
41
+ spinner.succeed('Read local files');
42
+ const client = new api_client_1.AUIClient({
43
+ baseUrl: config.apiUrl,
44
+ authToken: config.authToken,
45
+ accountId: config.accountId,
46
+ organizationId: config.organizationId,
47
+ environment: config.environment
48
+ });
49
+ // Pull remote data for comparison
50
+ spinner.start('Fetching remote data...');
51
+ const remoteResponse = await client.agents.get(config.agentCode);
52
+ spinner.succeed('Fetched remote data');
53
+ // Compare
54
+ const localTools = localData.tools?.length || 0;
55
+ const localParams = localData.parameters?.length || 0;
56
+ const localIntegrations = localData.integrations?.length || 0;
57
+ console.log(chalk_1.default.blue('\n Local vs Remote:\n'));
58
+ console.log(` Parameters: ${localParams}`);
59
+ console.log(` Tools: ${localTools}`);
60
+ console.log(` Integrations: ${localIntegrations}`);
61
+ if (options.dryRun) {
62
+ console.log(chalk_1.default.gray('\n Dry run - no changes applied.\n'));
63
+ return;
64
+ }
65
+ // Ask for sync direction
66
+ const { direction } = await inquirer_1.default.prompt([{
67
+ type: 'list',
68
+ name: 'direction',
69
+ message: 'Sync direction:',
70
+ choices: [
71
+ { name: 'Push local → remote', value: 'push' },
72
+ { name: 'Pull remote → local', value: 'pull' },
73
+ { name: 'Cancel', value: 'cancel' }
74
+ ]
75
+ }]);
76
+ if (direction === 'cancel') {
77
+ console.log(chalk_1.default.gray('\n Sync cancelled.\n'));
78
+ return;
79
+ }
80
+ if (direction === 'pull') {
81
+ spinner.start('Downloading remote data...');
82
+ if (remoteResponse.data) {
83
+ await (0, utils_1.writeAgentFiles)(projectRoot, remoteResponse.data);
84
+ }
85
+ spinner.succeed('Updated local files from remote');
86
+ }
87
+ else {
88
+ spinner.start('Pushing local changes...');
89
+ if (localData.parameters?.length) {
90
+ await client.params.create({ parameters: localData.parameters });
91
+ }
92
+ if (localData.entities?.length) {
93
+ await client.entities.create({ entities: localData.entities });
94
+ }
95
+ if (localData.integrations?.length) {
96
+ await client.integrations.create({ integrations: localData.integrations });
97
+ }
98
+ if (localData.tools?.length) {
99
+ for (const tool of localData.tools) {
100
+ await client.tools.create({ tool });
101
+ }
102
+ }
103
+ spinner.succeed('Pushed local changes');
104
+ }
105
+ console.log(chalk_1.default.green('\n ✓ Sync complete!\n'));
106
+ }
107
+ catch (error) {
108
+ spinner.fail('Sync failed');
109
+ if (error instanceof Error) {
110
+ console.log(chalk_1.default.red(` Error: ${error.message}`));
111
+ }
112
+ }
113
+ }
114
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * validate command - Validate AUI configuration files
3
+ *
4
+ * Checks:
5
+ * 1. JSON syntax validity
6
+ * 2. Schema compliance
7
+ * 3. Cross-file reference integrity (params in entities, tools, etc.)
8
+ *
9
+ * Usage: aui validate [path]
10
+ * Options:
11
+ * --verbose Show detailed output
12
+ */
13
+ export interface ValidateOptions {
14
+ verbose?: boolean;
15
+ }
16
+ /**
17
+ * Validate AUI configuration files
18
+ */
19
+ export declare function validate(targetPath?: string, options?: ValidateOptions): Promise<boolean>;
20
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkKnG"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ /**
3
+ * validate command - Validate AUI configuration files
4
+ *
5
+ * Checks:
6
+ * 1. JSON syntax validity
7
+ * 2. Schema compliance
8
+ * 3. Cross-file reference integrity (params in entities, tools, etc.)
9
+ *
10
+ * Usage: aui validate [path]
11
+ * Options:
12
+ * --verbose Show detailed output
13
+ */
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.validate = validate;
52
+ const path = __importStar(require("path"));
53
+ const chalk_1 = __importDefault(require("chalk"));
54
+ const config_1 = require("../config");
55
+ const utils_1 = require("../utils");
56
+ /**
57
+ * Validate AUI configuration files
58
+ */
59
+ async function validate(targetPath, options = {}) {
60
+ const projectRoot = targetPath || (0, config_1.findProjectRoot)() || process.cwd();
61
+ console.log(chalk_1.default.blue(` Validating AUI configuration in ${projectRoot}...\n`));
62
+ // Find all .aui.json files
63
+ const files = await (0, utils_1.findAuiFiles)(projectRoot);
64
+ if (files.length === 0) {
65
+ console.log(chalk_1.default.yellow(' No .aui.json files found'));
66
+ return true;
67
+ }
68
+ console.log(` Found ${files.length} configuration file(s)\n`);
69
+ const issues = [];
70
+ let parseErrors = 0;
71
+ // Step 1: Parse all files and check JSON syntax
72
+ for (const file of files) {
73
+ const relativePath = path.relative(projectRoot, file);
74
+ if (options.verbose) {
75
+ console.log(chalk_1.default.gray(` Parsing ${relativePath}...`));
76
+ }
77
+ const parsed = (0, utils_1.parseAuiFile)(file);
78
+ if (!parsed) {
79
+ issues.push({
80
+ type: 'error',
81
+ file: relativePath,
82
+ message: 'Invalid JSON syntax'
83
+ });
84
+ parseErrors++;
85
+ continue;
86
+ }
87
+ // Check for required top-level keys
88
+ const hasKnownKey = ['agent', 'general_settings', 'parameters', 'entities', 'integrations', 'tool', 'rules']
89
+ .some(key => key in parsed);
90
+ if (!hasKnownKey) {
91
+ issues.push({
92
+ type: 'warning',
93
+ file: relativePath,
94
+ message: 'No recognized AUI configuration key found (expected: general_settings, parameters, entities, integrations, tool, or rules)'
95
+ });
96
+ }
97
+ // Validate general_settings file (v2 format)
98
+ if (parsed.general_settings) {
99
+ const gs = parsed.general_settings;
100
+ if (!gs.name) {
101
+ issues.push({ type: 'warning', file: relativePath, path: 'general_settings.name', message: 'Agent name is empty' });
102
+ }
103
+ }
104
+ // Validate agent file (v1 format - backwards compatible)
105
+ if (parsed.agent) {
106
+ const agent = parsed.agent;
107
+ if (!agent.code) {
108
+ issues.push({ type: 'error', file: relativePath, path: 'agent.code', message: 'Agent code is required' });
109
+ }
110
+ }
111
+ // Validate parameters
112
+ if (parsed.parameters && Array.isArray(parsed.parameters)) {
113
+ for (const param of parsed.parameters) {
114
+ if (!param.code) {
115
+ issues.push({ type: 'error', file: relativePath, message: 'Parameter missing required "code" field' });
116
+ }
117
+ if (!param.type) {
118
+ issues.push({ type: 'error', file: relativePath, path: `parameters[${param.code}]`, message: 'Parameter missing required "type" field' });
119
+ }
120
+ if (!param.description && param.description !== '') {
121
+ issues.push({ type: 'warning', file: relativePath, path: `parameters[${param.code}]`, message: 'Parameter missing "description" field' });
122
+ }
123
+ }
124
+ }
125
+ // Validate tool
126
+ if (parsed.tool) {
127
+ const tool = parsed.tool;
128
+ if (!tool.code) {
129
+ issues.push({ type: 'error', file: relativePath, path: 'tool.code', message: 'Tool code is required' });
130
+ }
131
+ if (!tool.objective) {
132
+ issues.push({ type: 'error', file: relativePath, path: 'tool.objective', message: 'Tool objective is required' });
133
+ }
134
+ }
135
+ // Validate integrations
136
+ if (parsed.integrations && Array.isArray(parsed.integrations)) {
137
+ for (const integration of parsed.integrations) {
138
+ if (!integration.code) {
139
+ issues.push({ type: 'error', file: relativePath, message: 'Integration missing required "code" field' });
140
+ }
141
+ if (!integration.type) {
142
+ issues.push({ type: 'error', file: relativePath, path: `integrations[${integration.code}]`, message: 'Integration missing required "type" field' });
143
+ }
144
+ }
145
+ }
146
+ // Validate entities
147
+ if (parsed.entities && Array.isArray(parsed.entities)) {
148
+ for (const entity of parsed.entities) {
149
+ if (!entity.name && !entity.code) {
150
+ issues.push({ type: 'error', file: relativePath, message: 'Entity missing "name" field' });
151
+ }
152
+ const entityParams = entity.parameters || entity.params;
153
+ if (!entityParams || !Array.isArray(entityParams)) {
154
+ issues.push({ type: 'warning', file: relativePath, path: `entities[${entity.name || entity.code}]`, message: 'Entity has no "parameters" array' });
155
+ }
156
+ }
157
+ }
158
+ }
159
+ // Step 2: Cross-reference validation
160
+ const agentData = await (0, utils_1.readAgentFiles)(projectRoot);
161
+ const refIssues = (0, utils_1.validateReferences)(agentData);
162
+ issues.push(...refIssues);
163
+ // ─── Report Results ───
164
+ const errors = issues.filter(i => i.type === 'error');
165
+ const warnings = issues.filter(i => i.type === 'warning');
166
+ if (errors.length > 0) {
167
+ console.log(chalk_1.default.red(' Errors:'));
168
+ for (const error of errors) {
169
+ console.log(` ${chalk_1.default.red('✗')} ${error.file || ''}${error.path ? ` → ${error.path}` : ''}`);
170
+ console.log(` ${error.message}`);
171
+ }
172
+ console.log('');
173
+ }
174
+ if (warnings.length > 0) {
175
+ console.log(chalk_1.default.yellow(' Warnings:'));
176
+ for (const warning of warnings) {
177
+ console.log(` ${chalk_1.default.yellow('!')} ${warning.file || ''}${warning.path ? ` → ${warning.path}` : ''}`);
178
+ console.log(` ${warning.message}`);
179
+ }
180
+ console.log('');
181
+ }
182
+ // Summary
183
+ console.log(' Summary:');
184
+ console.log(` Parameters: ${agentData.parameters?.length || 0}`);
185
+ console.log(` Entities: ${agentData.entities?.length || 0}`);
186
+ console.log(` Tools: ${agentData.tools?.length || 0}`);
187
+ console.log(` Integrations: ${agentData.integrations?.length || 0}`);
188
+ console.log(` Errors: ${errors.length}`);
189
+ console.log(` Warnings: ${warnings.length}`);
190
+ if (errors.length === 0) {
191
+ console.log(chalk_1.default.green('\n ✓ Validation passed!'));
192
+ }
193
+ else {
194
+ console.log(chalk_1.default.red(`\n ✗ Validation failed with ${errors.length} error(s)`));
195
+ }
196
+ console.log('');
197
+ return errors.length === 0;
198
+ }
199
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Configuration management for AUI Agent Builder
3
+ *
4
+ * Configuration is layered (highest priority first):
5
+ * 1. Environment variables (AUI_AUTH_TOKEN, AUI_API_URL, etc.)
6
+ * 2. Project config (.auirc in project root)
7
+ * 3. User session (~/.aui/session.json - auth tokens from login)
8
+ * 4. Defaults
9
+ */
10
+ export type AUIEnvironment = 'staging' | 'production';
11
+ export declare const API_URLS: Record<AUIEnvironment, string>;
12
+ export interface ProjectConfig {
13
+ /** Agent code for this project */
14
+ agent_code?: string;
15
+ /** Agent ID (backend identifier) */
16
+ agent_id?: string;
17
+ /** Backend environment */
18
+ environment?: AUIEnvironment;
19
+ /** Account ID */
20
+ account_id?: string;
21
+ /** Organization ID */
22
+ organization_id?: string;
23
+ }
24
+ export interface UserSession {
25
+ /** JWT auth token from login */
26
+ auth_token: string;
27
+ /** User ID */
28
+ user_id: string;
29
+ /** User email */
30
+ email: string;
31
+ /** User display name */
32
+ name?: string;
33
+ /** Organization ID */
34
+ organization_id?: string;
35
+ /** Account ID (selected project) */
36
+ account_id?: string;
37
+ /** Account display name */
38
+ account_name?: string;
39
+ /** Environment */
40
+ environment: AUIEnvironment;
41
+ /** API base URL */
42
+ api_url: string;
43
+ /** When the session was created */
44
+ created_at: string;
45
+ /** When the token expires (from JWT exp claim) */
46
+ expires_at?: string;
47
+ }
48
+ export interface ResolvedConfig {
49
+ /** JWT auth token */
50
+ authToken?: string;
51
+ /** API base URL */
52
+ apiUrl: string;
53
+ /** Environment (staging/production) */
54
+ environment: AUIEnvironment;
55
+ /** Agent code for this project */
56
+ agentCode?: string;
57
+ /** Agent ID */
58
+ agentId?: string;
59
+ /** Project root directory */
60
+ projectRoot?: string;
61
+ /** Account ID */
62
+ accountId?: string;
63
+ /** Organization ID */
64
+ organizationId?: string;
65
+ /** User email */
66
+ userEmail?: string;
67
+ /** Whether user is authenticated */
68
+ isAuthenticated: boolean;
69
+ }
70
+ /**
71
+ * Find the nearest project root by looking for .auirc or agent.aui.json
72
+ */
73
+ export declare function findProjectRoot(startDir?: string): string | null;
74
+ /**
75
+ * Load project configuration from .auirc
76
+ */
77
+ export declare function loadProjectConfig(projectRoot?: string): ProjectConfig | null;
78
+ /**
79
+ * Save project configuration to .auirc
80
+ */
81
+ export declare function saveProjectConfig(config: ProjectConfig, targetDir?: string): void;
82
+ /**
83
+ * Load user session from ~/.aui/session.json
84
+ */
85
+ export declare function loadSession(): UserSession | null;
86
+ /**
87
+ * Save user session to ~/.aui/session.json
88
+ */
89
+ export declare function saveSession(session: UserSession): void;
90
+ /**
91
+ * Clear user session (logout)
92
+ */
93
+ export declare function clearSession(): void;
94
+ /**
95
+ * Decode JWT to extract claims (without verification - just for reading expiry/user info)
96
+ */
97
+ export declare function decodeJwt(token: string): Record<string, unknown> | null;
98
+ /**
99
+ * Get fully resolved configuration from all sources
100
+ */
101
+ export declare function getConfig(projectRoot?: string): ResolvedConfig;
102
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;AAEtD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAGnD,CAAC;AAIF,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,iBAAiB;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,WAAW,EAAE,cAAc,CAAC;IAC5B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,WAAW,EAAE,cAAc,CAAC;IAC5B,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAkBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAchE;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAa5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAIjF;AAID;;GAEG;AACH,wBAAgB,WAAW,IAAI,WAAW,GAAG,IAAI,CAmBhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAGtD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CASvE;AAID;;GAEG;AACH,wBAAgB,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAgD9D"}