@controllerai/cli 0.2.8 → 0.2.10

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 (53) hide show
  1. package/dist/api/client.js +20 -5
  2. package/dist/api/client.js.map +1 -1
  3. package/dist/argv.js +330 -29
  4. package/dist/argv.js.map +1 -1
  5. package/dist/commands/agent.js +247 -26
  6. package/dist/commands/agent.js.map +1 -1
  7. package/dist/commands/auth.js +21 -5
  8. package/dist/commands/auth.js.map +1 -1
  9. package/dist/commands/doctor.js +63 -4
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/exec.js +161 -49
  12. package/dist/commands/exec.js.map +1 -1
  13. package/dist/commands/expr.js +284 -53
  14. package/dist/commands/expr.js.map +1 -1
  15. package/dist/commands/flow.js +58 -14
  16. package/dist/commands/flow.js.map +1 -1
  17. package/dist/commands/node.js +746 -173
  18. package/dist/commands/node.js.map +1 -1
  19. package/dist/commands/organize.js +1 -1
  20. package/dist/commands/organize.js.map +1 -1
  21. package/dist/commands/run.js +165 -33
  22. package/dist/commands/run.js.map +1 -1
  23. package/dist/commands/schema.js +8 -7
  24. package/dist/commands/schema.js.map +1 -1
  25. package/dist/commands/workflow.js +151 -24
  26. package/dist/commands/workflow.js.map +1 -1
  27. package/dist/config.js +152 -6
  28. package/dist/config.js.map +1 -1
  29. package/dist/context.js +66 -5
  30. package/dist/context.js.map +1 -1
  31. package/dist/index.js +11 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/nodeProps.js +333 -10
  34. package/dist/nodeProps.js.map +1 -1
  35. package/dist/output.js +6 -1
  36. package/dist/output.js.map +1 -1
  37. package/dist/permissionTool.js +93 -0
  38. package/dist/permissionTool.js.map +1 -0
  39. package/package.json +1 -1
  40. package/skills/controllerai-agents/SKILL.md +27 -9
  41. package/skills/controllerai-agents/references/instructions-and-versioning.md +1 -1
  42. package/skills/controllerai-data/SKILL.md +19 -0
  43. package/skills/controllerai-data/references/data-rails.md +1 -1
  44. package/skills/controllerai-expressions/SKILL.md +8 -2
  45. package/skills/controllerai-flow-control/SKILL.md +2 -0
  46. package/skills/controllerai-node-config/SKILL.md +33 -6
  47. package/skills/controllerai-node-config/references/prop-and-readiness.md +34 -0
  48. package/skills/controllerai-runs/SKILL.md +16 -4
  49. package/skills/controllerai-runs/references/debugging.md +1 -1
  50. package/skills/controllerai-start/SKILL.md +1 -0
  51. package/skills/controllerai-workflows/SKILL.md +13 -8
  52. package/skills/controllerai-workflows/references/command-map.md +3 -2
  53. package/skills/manifest.json +58 -58
package/dist/config.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { homedir } from 'node:os';
2
2
  import { dirname, join, resolve } from 'node:path';
3
- import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from 'node:fs';
5
+ import { userError } from './errors.js';
4
6
  export const DEFAULT_API_URL = 'https://api.app.getcontroller.ai';
5
7
  const defaultConfigDirectory = () => join(homedir(), '.config', 'cai');
6
8
  const defaultConfigPath = () => join(defaultConfigDirectory(), 'config.json');
@@ -38,9 +40,10 @@ const readFile = () => {
38
40
  * work wins over the machine-global pin; credentials stay global-only.
39
41
  */
40
42
  const LOCAL_PIN_FILE = '.cai.json';
43
+ export const localPinPath = () => resolve(process.cwd(), LOCAL_PIN_FILE);
41
44
  const readLocalPin = () => {
42
45
  try {
43
- const raw = JSON.parse(readFileSync(join(process.cwd(), LOCAL_PIN_FILE), 'utf8'));
46
+ const raw = JSON.parse(readFileSync(localPinPath(), 'utf8'));
44
47
  const id = Number(raw.workflowId);
45
48
  return Number.isInteger(id) && id > 0 ? { workflowId: id } : {};
46
49
  }
@@ -49,21 +52,52 @@ const readLocalPin = () => {
49
52
  }
50
53
  };
51
54
  export const saveLocalPin = (workflowId) => {
52
- const path = join(process.cwd(), LOCAL_PIN_FILE);
55
+ const path = localPinPath();
53
56
  writeFileSync(path, `${JSON.stringify({ workflowId }, null, 2)}\n`);
54
57
  return path;
55
58
  };
59
+ const numericPin = (value) => {
60
+ if (value === undefined || value === null || value === '')
61
+ return undefined;
62
+ return Number(value);
63
+ };
64
+ /**
65
+ * Resolve the effective workflow pin and its provenance. Keep this order in
66
+ * lockstep with the public CLI contract: flag > env > exact-cwd local > config.
67
+ * CAI_CONFIG chooses the config pathname; it is never itself a workflow pin.
68
+ */
69
+ export const resolveWorkflowPin = (flag, file = readFile()) => {
70
+ if (flag !== undefined && flag !== null) {
71
+ return { workflowId: numericPin(flag), source: 'flag', path: null };
72
+ }
73
+ if (process.env.CAI_WORKFLOW) {
74
+ return {
75
+ workflowId: numericPin(process.env.CAI_WORKFLOW),
76
+ source: 'env',
77
+ path: null,
78
+ };
79
+ }
80
+ const localPin = readLocalPin();
81
+ if (localPin.workflowId !== undefined) {
82
+ return { workflowId: localPin.workflowId, source: 'local', path: localPinPath() };
83
+ }
84
+ const configuredId = numericPin(file.workflowId);
85
+ if (configuredId !== undefined) {
86
+ return { workflowId: configuredId, source: 'config', path: resolve(configPath()) };
87
+ }
88
+ return { workflowId: undefined, source: 'none', path: null };
89
+ };
56
90
  /** File config overlaid with the local project pin, then env. Env always wins. */
57
91
  export const loadConfig = () => {
58
92
  const file = readFile();
59
- const localPin = readLocalPin();
60
- const envWorkflow = process.env.CAI_WORKFLOW ? Number(process.env.CAI_WORKFLOW) : undefined;
93
+ const pin = resolveWorkflowPin(undefined, file);
61
94
  return {
62
95
  apiUrl: (process.env.CAI_API_URL ?? file.apiUrl ?? DEFAULT_API_URL).replace(/\/+$/, ''),
63
96
  appUrl: file.appUrl,
64
97
  token: process.env.CAI_TOKEN ?? file.token,
65
98
  tokenKind: process.env.CAI_TOKEN ? detectTokenKind(process.env.CAI_TOKEN) : file.tokenKind,
66
- workflowId: envWorkflow ?? localPin.workflowId ?? file.workflowId,
99
+ expiresAt: process.env.CAI_TOKEN === undefined && file.tokenKind === 'cli' ? file.expiresAt : undefined,
100
+ workflowId: pin.workflowId,
67
101
  headStateId: file.headStateId,
68
102
  };
69
103
  };
@@ -76,6 +110,118 @@ export const saveConfig = (patch) => {
76
110
  chmodSync(path, 0o600);
77
111
  return next;
78
112
  };
113
+ const readJsonObjectStrict = (path, label) => {
114
+ if (!existsSync(path))
115
+ return null;
116
+ try {
117
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
118
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
119
+ throw new Error('expected a JSON object');
120
+ }
121
+ return parsed;
122
+ }
123
+ catch (error) {
124
+ const reason = error instanceof Error ? error.message : String(error);
125
+ throw userError(`Refusing to reset ${label} pin because ${path} is malformed: ${reason}`, 'MALFORMED_CONFIG');
126
+ }
127
+ };
128
+ const readLocalJsonForReset = (path) => {
129
+ if (!existsSync(path))
130
+ return { file: null, malformed: false };
131
+ try {
132
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
133
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
134
+ throw new Error('expected a JSON object');
135
+ }
136
+ return { file: parsed, malformed: false };
137
+ }
138
+ catch {
139
+ return { file: null, malformed: true };
140
+ }
141
+ };
142
+ const writeJsonAtomic = (path, value) => {
143
+ ensureConfigParent(path);
144
+ const tempPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
145
+ try {
146
+ writeFileSync(tempPath, `${JSON.stringify(value, null, 2)}\n`, {
147
+ mode: 0o600,
148
+ flag: 'wx',
149
+ });
150
+ chmodSync(tempPath, 0o600);
151
+ renameSync(tempPath, path);
152
+ }
153
+ finally {
154
+ if (existsSync(tempPath))
155
+ unlinkSync(tempPath);
156
+ }
157
+ };
158
+ /**
159
+ * Clear workflow pins without touching credentials or unrelated settings.
160
+ * The credential-bearing global file remains strict: it is parsed before any
161
+ * requested local cleanup, so a malformed global config cannot half-apply a
162
+ * two-file reset. A malformed cwd-local file is removed as an unusable pin.
163
+ */
164
+ export const resetWorkflowPins = (opts = {}) => {
165
+ if (opts.local && opts.global) {
166
+ throw userError('Choose only one of --local or --global.', 'CONFLICTING_RESET_SCOPE');
167
+ }
168
+ const resetLocal = opts.local || !opts.global;
169
+ const resetGlobal = opts.global || !opts.local;
170
+ const localPath = localPinPath();
171
+ const globalPath = resolve(configPath());
172
+ // Validate the credential-bearing target before any local unlink. The local
173
+ // filename can be owned by another tool, so malformed local JSON is cleanup,
174
+ // not grounds to block a safe global reset.
175
+ const globalFile = resetGlobal ? readJsonObjectStrict(globalPath, 'configured-file') : null;
176
+ const localRead = resetLocal
177
+ ? readLocalJsonForReset(localPath)
178
+ : { file: null, malformed: false };
179
+ const localFile = localRead.file;
180
+ let localCleared = false;
181
+ let malformedRemoved = false;
182
+ if (resetLocal && localRead.malformed) {
183
+ unlinkSync(localPath);
184
+ localCleared = true;
185
+ malformedRemoved = true;
186
+ }
187
+ else if (resetLocal && localFile) {
188
+ localCleared = Object.prototype.hasOwnProperty.call(localFile, 'workflowId');
189
+ if (localCleared) {
190
+ const next = { ...localFile };
191
+ delete next.workflowId;
192
+ if (Object.keys(next).length === 0)
193
+ unlinkSync(localPath);
194
+ else
195
+ writeFileSync(localPath, `${JSON.stringify(next, null, 2)}\n`);
196
+ }
197
+ }
198
+ let globalCleared = false;
199
+ if (resetGlobal && globalFile) {
200
+ const hadWorkflowId = Object.prototype.hasOwnProperty.call(globalFile, 'workflowId');
201
+ const hadHeadStateId = Object.prototype.hasOwnProperty.call(globalFile, 'headStateId');
202
+ globalCleared = hadWorkflowId || hadHeadStateId;
203
+ if (globalCleared) {
204
+ const next = { ...globalFile };
205
+ delete next.workflowId;
206
+ delete next.headStateId;
207
+ writeJsonAtomic(globalPath, next);
208
+ }
209
+ }
210
+ return {
211
+ scopes: [
212
+ ...(resetLocal ? ['local'] : []),
213
+ ...(resetGlobal ? ['global'] : []),
214
+ ],
215
+ local: resetLocal
216
+ ? {
217
+ path: localPath,
218
+ cleared: localCleared,
219
+ ...(malformedRemoved ? { malformedRemoved: true } : {}),
220
+ }
221
+ : null,
222
+ global: resetGlobal ? { path: globalPath, cleared: globalCleared } : null,
223
+ };
224
+ };
79
225
  export const clearToken = () => {
80
226
  const current = readFile();
81
227
  const next = { ...current };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/context.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { ApiClient } from './api/client.js';
2
- import { loadConfig } from './config.js';
2
+ import { loadConfig, resetWorkflowPins, resolveWorkflowPin, } from './config.js';
3
3
  import { userError } from './errors.js';
4
+ import { emit, printKeyValues, warn } from './output.js';
4
5
  export const buildClient = (command) => {
5
6
  const config = loadConfig();
6
7
  const overrideUrl = globalOpt(command, 'apiUrl');
@@ -20,10 +21,9 @@ export const globalOpt = (command, name) => {
20
21
  }
21
22
  return undefined;
22
23
  };
23
- export const resolveWorkflowId = (command, config) => {
24
- const flag = globalOpt(command, 'workflow');
25
- const raw = flag ?? config.workflowId;
26
- if (raw === undefined || raw === null || raw === '') {
24
+ export const workflowIdFromPin = (pin) => {
25
+ const raw = pin.workflowId;
26
+ if (raw === undefined) {
27
27
  throw userError('No workflow selected. Pass --workflow <id>, set CAI_WORKFLOW, or run `cai use <id>`.', 'NO_WORKFLOW');
28
28
  }
29
29
  const id = Number(raw);
@@ -32,8 +32,69 @@ export const resolveWorkflowId = (command, config) => {
32
32
  }
33
33
  return id;
34
34
  };
35
+ export const resolveWorkflowId = (command, config) => {
36
+ const flag = globalOpt(command, 'workflow');
37
+ const pin = flag === undefined || flag === null
38
+ ? { workflowId: config.workflowId, source: 'none', path: null }
39
+ : resolveWorkflowPin(flag);
40
+ return workflowIdFromPin(pin);
41
+ };
35
42
  export const requireContext = (command) => {
36
43
  const { config, api } = buildClient(command);
37
44
  return { config, api, workflowId: resolveWorkflowId(command, config) };
38
45
  };
46
+ export const registerConfig = (program) => {
47
+ const config = program.command('config').description('Inspect and reset CLI configuration');
48
+ config
49
+ .command('reset')
50
+ .description('Clear workflow pins while preserving credentials and other settings')
51
+ .option('--local', 'clear only the exact-cwd .cai.json workflow pin')
52
+ .option('--global', 'clear only the workflow pin in the configured config file')
53
+ .action(async (opts, command) => {
54
+ const result = resetWorkflowPins(opts);
55
+ if (result.local?.malformedRemoved) {
56
+ warn(`Removed malformed cwd-local ${result.local.path}; it could not be treated as a ` +
57
+ 'Controller AI workflow pin, so reset continued instead of refusing the command.');
58
+ }
59
+ const effective = resolveWorkflowPin(globalOpt(command, 'workflow'));
60
+ const environmentPinRemains = Boolean(process.env.CAI_WORKFLOW);
61
+ if (environmentPinRemains) {
62
+ warn('CAI_WORKFLOW remains set in the parent environment; this child process cannot ' +
63
+ 'unset it. It will keep overriding file pins unless --workflow is passed.');
64
+ }
65
+ const payload = {
66
+ ...result,
67
+ effectiveWorkflowId: effective.workflowId ?? null,
68
+ pinSource: effective.source,
69
+ pinPath: effective.path,
70
+ environmentPinRemains,
71
+ };
72
+ emit(payload, () => printKeyValues([
73
+ ['reset scopes', result.scopes.join(' + ')],
74
+ [
75
+ 'local pin',
76
+ result.local
77
+ ? `${result.local.path} (${result.local.cleared ? 'cleared' : 'already clear'})`
78
+ : 'not requested',
79
+ ],
80
+ [
81
+ 'config pin',
82
+ result.global
83
+ ? `${result.global.path} (${result.global.cleared ? 'cleared' : 'already clear'})`
84
+ : 'not requested',
85
+ ],
86
+ [
87
+ 'effective workflow',
88
+ effective.source === 'none'
89
+ ? '(none)'
90
+ : `${String(effective.workflowId)} (${effective.source})`,
91
+ ],
92
+ ['effective pin path', effective.path ?? '(none)'],
93
+ [
94
+ 'CAI_WORKFLOW',
95
+ environmentPinRemains ? 'still set in the parent environment' : '(not set)',
96
+ ],
97
+ ]));
98
+ });
99
+ };
39
100
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAa,UAAU,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AASvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAyC,EAAE;IACrF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAChD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnD,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAA;AAC/C,CAAC,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,IAAY,EAAW,EAAE;IACnE,IAAI,IAAI,GAAmB,OAAO,CAAA;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAI,IAAI,CAAC,IAAI,EAA8B,CAAC,IAAI,CAAC,CAAA;QAC5D,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QACrC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAE,MAAiB,EAAU,EAAE;IAC/E,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,UAAU,CAAA;IACrC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,SAAS,CACb,sFAAsF,EACtF,aAAa,CACd,CAAA;IACH,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,SAAS,CAAC,wBAAwB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAkB,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAA;AACxE,CAAC,CAAA"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { realpathSync } from 'node:fs';
3
3
  import { pathToFileURL } from 'node:url';
4
4
  import { Command } from 'commander';
5
5
  import { addGlobalOptions, applyExitOverride, collectFlags, explainUnknownOptions, normalizeArgv, } from './argv.js';
6
- import { globalOpt } from './context.js';
6
+ import { globalOpt, registerConfig } from './context.js';
7
7
  import { CaiError, EXIT } from './errors.js';
8
8
  import { emitError, setCommandPath, setJsonMode } from './output.js';
9
9
  import { registerAuth } from './commands/auth.js';
@@ -46,6 +46,7 @@ export const buildProgram = () => {
46
46
  registerAuth(program);
47
47
  registerConnect(program);
48
48
  registerSkills(program);
49
+ registerConfig(program);
49
50
  registerDoctor(program);
50
51
  registerAgent(program);
51
52
  registerUse(program);
@@ -53,6 +54,15 @@ export const buildProgram = () => {
53
54
  registerFlow(program);
54
55
  registerIntegration(program);
55
56
  registerNode(program);
57
+ // `node type` was a dominant invented command in the eval corpus. Keep the
58
+ // established `status` name canonical, while making the semantic correction
59
+ // `cai node output <nodeId>` directly executable.
60
+ const nodeStatus = program.commands
61
+ .find(command => command.name() === 'node')
62
+ ?.commands.find(command => command.name() === 'status');
63
+ if (!nodeStatus)
64
+ throw new Error('Expected the registered `cai node status` command.');
65
+ nodeStatus.alias('output');
56
66
  registerExpr(program);
57
67
  registerRun(program);
58
68
  registerExec(program);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,EAAE;IACxC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAC7B,OAAO;SACJ,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,sDAAsD,CAAC;SACnE,OAAO,CAAC,WAAW,CAAC;QACrB,6EAA6E;QAC7E,mEAAmE;QACnE,8BAA8B;SAC7B,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,oDAAoD,CAAC;SAC/E,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;SACrE,MAAM,CAAC,cAAc,EAAE,4CAA4C,CAAC;SACpE,kBAAkB,EAAE;SACpB,uBAAuB,EAAE,CAAA;IAE5B,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,eAAe,CAAC,OAAO,CAAC,CAAA;IACxB,cAAc,CAAC,OAAO,CAAC,CAAA;IACvB,cAAc,CAAC,OAAO,CAAC,CAAA;IACvB,aAAa,CAAC,OAAO,CAAC,CAAA;IACtB,WAAW,CAAC,OAAO,CAAC,CAAA;IACpB,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACzB,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC5B,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,WAAW,CAAC,OAAO,CAAC,CAAA;IACpB,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3B,cAAc,CAAC,OAAO,CAAC,CAAA;IACvB,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,cAAc,CAAC,OAAO,CAAC,CAAA;IACvB,cAAc,CAAC,OAAO,CAAC,CAAA;IACvB,eAAe,CAAC,OAAO,CAAC,CAAA;IACxB,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEzB,6EAA6E;IAC7E,yEAAyE;IACzE,+EAA+E;IAC/E,0BAA0B;IAC1B,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEzB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;QACxD,yEAAyE;QACzE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,IAAI,IAAI,GAAmB,aAAa,CAAA;QACxC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACzB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACrC,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC9B,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjC,oEAAoE;QACpE,OAAO,CAAC,IAAI,CAAE,KAA+B,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC9E,CAAC,CAAA;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,kFAAkF;AAClF,oFAAoF;AACpF,oFAAoF;AACpF,6CAA6C;AAC7C,MAAM,YAAY,GAAG,GAAY,EAAE;IACjC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAA;AACzD,CAAC,CAAA;AAED,IAAI,YAAY,EAAE,EAAE,CAAC;IACnB,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,QAAQ,GACZ,KAAK,YAAY,QAAQ;YACvB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACnE,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAA;QACR,SAAS,CAAC,QAAQ,CAAC,CAAA;QACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}