@kaitranntt/ccs 4.4.0 → 5.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 (262) hide show
  1. package/README.md +98 -7
  2. package/VERSION +1 -1
  3. package/config/base-agy.settings.json +10 -0
  4. package/config/base-codex.settings.json +10 -0
  5. package/config/base-gemini.settings.json +10 -0
  6. package/dist/auth/auth-commands.d.ts +52 -0
  7. package/dist/auth/auth-commands.d.ts.map +1 -0
  8. package/dist/auth/auth-commands.js +479 -0
  9. package/dist/auth/auth-commands.js.map +1 -0
  10. package/dist/auth/profile-detector.d.ts +68 -0
  11. package/dist/auth/profile-detector.d.ts.map +1 -0
  12. package/dist/auth/profile-detector.js +209 -0
  13. package/dist/auth/profile-detector.js.map +1 -0
  14. package/dist/auth/profile-registry.d.ts +60 -0
  15. package/dist/auth/profile-registry.d.ts.map +1 -0
  16. package/dist/auth/profile-registry.js +188 -0
  17. package/dist/auth/profile-registry.js.map +1 -0
  18. package/dist/ccs.d.ts +10 -0
  19. package/dist/ccs.d.ts.map +1 -0
  20. package/dist/ccs.js +320 -0
  21. package/dist/ccs.js.map +1 -0
  22. package/dist/cliproxy/auth-handler.d.ts +95 -0
  23. package/dist/cliproxy/auth-handler.d.ts.map +1 -0
  24. package/dist/cliproxy/auth-handler.js +443 -0
  25. package/dist/cliproxy/auth-handler.js.map +1 -0
  26. package/dist/cliproxy/base-config-loader.d.ts +42 -0
  27. package/dist/cliproxy/base-config-loader.d.ts.map +1 -0
  28. package/dist/cliproxy/base-config-loader.js +123 -0
  29. package/dist/cliproxy/base-config-loader.js.map +1 -0
  30. package/dist/cliproxy/binary-manager.d.ts +104 -0
  31. package/dist/cliproxy/binary-manager.d.ts.map +1 -0
  32. package/dist/cliproxy/binary-manager.js +567 -0
  33. package/dist/cliproxy/binary-manager.js.map +1 -0
  34. package/dist/cliproxy/cliproxy-executor.d.ts +33 -0
  35. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -0
  36. package/dist/cliproxy/cliproxy-executor.js +297 -0
  37. package/dist/cliproxy/cliproxy-executor.js.map +1 -0
  38. package/dist/cliproxy/config-generator.d.ts +89 -0
  39. package/dist/cliproxy/config-generator.d.ts.map +1 -0
  40. package/dist/cliproxy/config-generator.js +263 -0
  41. package/dist/cliproxy/config-generator.js.map +1 -0
  42. package/dist/cliproxy/index.d.ts +13 -0
  43. package/dist/cliproxy/index.d.ts.map +1 -0
  44. package/dist/cliproxy/index.js +62 -0
  45. package/dist/cliproxy/index.js.map +1 -0
  46. package/dist/cliproxy/platform-detector.d.ts +48 -0
  47. package/dist/cliproxy/platform-detector.d.ts.map +1 -0
  48. package/dist/cliproxy/platform-detector.js +118 -0
  49. package/dist/cliproxy/platform-detector.js.map +1 -0
  50. package/dist/cliproxy/types.d.ts +169 -0
  51. package/dist/cliproxy/types.d.ts.map +1 -0
  52. package/dist/cliproxy/types.js +7 -0
  53. package/dist/cliproxy/types.js.map +1 -0
  54. package/dist/commands/doctor-command.d.ts +10 -0
  55. package/dist/commands/doctor-command.d.ts.map +1 -0
  56. package/dist/commands/doctor-command.js +44 -0
  57. package/dist/commands/doctor-command.js.map +1 -0
  58. package/dist/commands/help-command.d.ts +5 -0
  59. package/dist/commands/help-command.d.ts.map +1 -0
  60. package/dist/commands/help-command.js +104 -0
  61. package/dist/commands/help-command.js.map +1 -0
  62. package/dist/commands/install-command.d.ts +14 -0
  63. package/dist/commands/install-command.d.ts.map +1 -0
  64. package/dist/commands/install-command.js +39 -0
  65. package/dist/commands/install-command.js.map +1 -0
  66. package/dist/commands/shell-completion-command.d.ts +10 -0
  67. package/dist/commands/shell-completion-command.d.ts.map +1 -0
  68. package/dist/commands/shell-completion-command.js +85 -0
  69. package/dist/commands/shell-completion-command.js.map +1 -0
  70. package/dist/commands/sync-command.d.ts +10 -0
  71. package/dist/commands/sync-command.d.ts.map +1 -0
  72. package/dist/commands/sync-command.js +59 -0
  73. package/dist/commands/sync-command.js.map +1 -0
  74. package/dist/commands/update-command.d.ts +12 -0
  75. package/dist/commands/update-command.d.ts.map +1 -0
  76. package/dist/commands/update-command.js +295 -0
  77. package/dist/commands/update-command.js.map +1 -0
  78. package/dist/commands/version-command.d.ts +10 -0
  79. package/dist/commands/version-command.d.ts.map +1 -0
  80. package/dist/commands/version-command.js +100 -0
  81. package/dist/commands/version-command.js.map +1 -0
  82. package/dist/delegation/delegation-handler.d.ts +60 -0
  83. package/dist/delegation/delegation-handler.d.ts.map +1 -0
  84. package/dist/delegation/delegation-handler.js +174 -0
  85. package/dist/delegation/delegation-handler.js.map +1 -0
  86. package/dist/delegation/headless-executor.d.ts +114 -0
  87. package/dist/delegation/headless-executor.d.ts.map +1 -0
  88. package/dist/delegation/headless-executor.js +562 -0
  89. package/dist/delegation/headless-executor.js.map +1 -0
  90. package/dist/delegation/result-formatter.d.ts +108 -0
  91. package/dist/delegation/result-formatter.d.ts.map +1 -0
  92. package/dist/delegation/result-formatter.js +391 -0
  93. package/dist/delegation/result-formatter.js.map +1 -0
  94. package/dist/delegation/session-manager.d.ts +58 -0
  95. package/dist/delegation/session-manager.d.ts.map +1 -0
  96. package/dist/delegation/session-manager.js +153 -0
  97. package/dist/delegation/session-manager.js.map +1 -0
  98. package/dist/delegation/settings-parser.d.ts +31 -0
  99. package/dist/delegation/settings-parser.d.ts.map +1 -0
  100. package/dist/delegation/settings-parser.js +107 -0
  101. package/dist/delegation/settings-parser.js.map +1 -0
  102. package/dist/glmt/delta-accumulator.d.ts +210 -0
  103. package/dist/glmt/delta-accumulator.d.ts.map +1 -0
  104. package/dist/glmt/delta-accumulator.js +351 -0
  105. package/dist/glmt/delta-accumulator.js.map +1 -0
  106. package/dist/glmt/glmt-proxy.d.ts +72 -0
  107. package/dist/glmt/glmt-proxy.d.ts.map +1 -0
  108. package/dist/glmt/glmt-proxy.js +427 -0
  109. package/dist/glmt/glmt-proxy.js.map +1 -0
  110. package/dist/glmt/glmt-transformer.d.ts +265 -0
  111. package/dist/glmt/glmt-transformer.d.ts.map +1 -0
  112. package/dist/glmt/glmt-transformer.js +832 -0
  113. package/dist/glmt/glmt-transformer.js.map +1 -0
  114. package/dist/glmt/locale-enforcer.d.ts +38 -0
  115. package/dist/glmt/locale-enforcer.d.ts.map +1 -0
  116. package/dist/glmt/locale-enforcer.js +69 -0
  117. package/dist/glmt/locale-enforcer.js.map +1 -0
  118. package/dist/glmt/reasoning-enforcer.d.ts +52 -0
  119. package/dist/glmt/reasoning-enforcer.d.ts.map +1 -0
  120. package/dist/glmt/reasoning-enforcer.js +151 -0
  121. package/dist/glmt/reasoning-enforcer.js.map +1 -0
  122. package/dist/glmt/sse-parser.d.ts +47 -0
  123. package/dist/glmt/sse-parser.d.ts.map +1 -0
  124. package/dist/glmt/sse-parser.js +93 -0
  125. package/dist/glmt/sse-parser.js.map +1 -0
  126. package/dist/management/doctor.d.ts +104 -0
  127. package/dist/management/doctor.d.ts.map +1 -0
  128. package/dist/management/doctor.js +673 -0
  129. package/dist/management/doctor.js.map +1 -0
  130. package/dist/management/instance-manager.d.ts +57 -0
  131. package/dist/management/instance-manager.d.ts.map +1 -0
  132. package/dist/management/instance-manager.js +195 -0
  133. package/dist/management/instance-manager.js.map +1 -0
  134. package/dist/management/recovery-manager.d.ts +39 -0
  135. package/dist/management/recovery-manager.d.ts.map +1 -0
  136. package/dist/management/recovery-manager.js +141 -0
  137. package/dist/management/recovery-manager.js.map +1 -0
  138. package/dist/management/shared-manager.d.ts +47 -0
  139. package/dist/management/shared-manager.d.ts.map +1 -0
  140. package/dist/management/shared-manager.js +388 -0
  141. package/dist/management/shared-manager.js.map +1 -0
  142. package/dist/types/cli.d.ts +50 -0
  143. package/dist/types/cli.d.ts.map +1 -0
  144. package/dist/types/cli.js +16 -0
  145. package/dist/types/cli.js.map +1 -0
  146. package/dist/types/config.d.ts +51 -0
  147. package/dist/types/config.d.ts.map +1 -0
  148. package/dist/types/config.js +26 -0
  149. package/dist/types/config.js.map +1 -0
  150. package/dist/types/delegation.d.ts +61 -0
  151. package/dist/types/delegation.d.ts.map +1 -0
  152. package/dist/types/delegation.js +6 -0
  153. package/dist/types/delegation.js.map +1 -0
  154. package/dist/types/glmt.d.ts +95 -0
  155. package/dist/types/glmt.d.ts.map +1 -0
  156. package/dist/types/glmt.js +7 -0
  157. package/dist/types/glmt.js.map +1 -0
  158. package/dist/types/index.d.ts +13 -0
  159. package/dist/types/index.d.ts.map +1 -0
  160. package/dist/types/index.js +16 -0
  161. package/dist/types/index.js.map +1 -0
  162. package/dist/types/utils.d.ts +36 -0
  163. package/dist/types/utils.d.ts.map +1 -0
  164. package/dist/types/utils.js +22 -0
  165. package/dist/types/utils.js.map +1 -0
  166. package/dist/utils/claude-detector.d.ts +14 -0
  167. package/dist/utils/claude-detector.d.ts.map +1 -0
  168. package/dist/utils/claude-detector.js +112 -0
  169. package/dist/utils/claude-detector.js.map +1 -0
  170. package/dist/utils/claude-dir-installer.d.ts +46 -0
  171. package/dist/utils/claude-dir-installer.d.ts.map +1 -0
  172. package/dist/utils/claude-dir-installer.js +289 -0
  173. package/dist/utils/claude-dir-installer.js.map +1 -0
  174. package/dist/utils/claude-symlink-manager.d.ts +61 -0
  175. package/dist/utils/claude-symlink-manager.d.ts.map +1 -0
  176. package/dist/utils/claude-symlink-manager.js +291 -0
  177. package/dist/utils/claude-symlink-manager.js.map +1 -0
  178. package/dist/utils/config-manager.d.ts +32 -0
  179. package/dist/utils/config-manager.d.ts.map +1 -0
  180. package/dist/utils/config-manager.js +143 -0
  181. package/dist/utils/config-manager.js.map +1 -0
  182. package/dist/utils/delegation-validator.d.ts +39 -0
  183. package/dist/utils/delegation-validator.d.ts.map +1 -0
  184. package/dist/utils/delegation-validator.js +161 -0
  185. package/dist/utils/delegation-validator.js.map +1 -0
  186. package/dist/utils/error-codes.d.ts +36 -0
  187. package/dist/utils/error-codes.d.ts.map +1 -0
  188. package/dist/utils/error-codes.js +63 -0
  189. package/dist/utils/error-codes.js.map +1 -0
  190. package/dist/utils/error-manager.d.ts +59 -0
  191. package/dist/utils/error-manager.d.ts.map +1 -0
  192. package/dist/utils/error-manager.js +228 -0
  193. package/dist/utils/error-manager.js.map +1 -0
  194. package/dist/utils/helpers.d.ts +27 -0
  195. package/dist/utils/helpers.d.ts.map +1 -0
  196. package/dist/utils/helpers.js +150 -0
  197. package/dist/utils/helpers.js.map +1 -0
  198. package/dist/utils/package-manager-detector.d.ts +14 -0
  199. package/dist/utils/package-manager-detector.d.ts.map +1 -0
  200. package/dist/utils/package-manager-detector.js +162 -0
  201. package/dist/utils/package-manager-detector.js.map +1 -0
  202. package/dist/utils/progress-indicator.d.ts +52 -0
  203. package/dist/utils/progress-indicator.d.ts.map +1 -0
  204. package/dist/utils/progress-indicator.js +102 -0
  205. package/dist/utils/progress-indicator.js.map +1 -0
  206. package/dist/utils/prompt.d.ts +29 -0
  207. package/dist/utils/prompt.d.ts.map +1 -0
  208. package/dist/utils/prompt.js +116 -0
  209. package/dist/utils/prompt.js.map +1 -0
  210. package/dist/utils/shell-completion.d.ts +52 -0
  211. package/dist/utils/shell-completion.d.ts.map +1 -0
  212. package/dist/utils/shell-completion.js +231 -0
  213. package/dist/utils/shell-completion.js.map +1 -0
  214. package/dist/utils/shell-executor.d.ts +15 -0
  215. package/dist/utils/shell-executor.d.ts.map +1 -0
  216. package/dist/utils/shell-executor.js +57 -0
  217. package/dist/utils/shell-executor.js.map +1 -0
  218. package/dist/utils/update-checker.d.ts +48 -0
  219. package/dist/utils/update-checker.d.ts.map +1 -0
  220. package/dist/utils/update-checker.js +241 -0
  221. package/dist/utils/update-checker.js.map +1 -0
  222. package/lib/ccs +21 -1907
  223. package/lib/ccs.ps1 +26 -1800
  224. package/lib/error-codes.ps1 +2 -1
  225. package/lib/prompt.ps1 +2 -2
  226. package/package.json +31 -11
  227. package/scripts/add-shebang.js +39 -0
  228. package/scripts/bump-version.sh +25 -37
  229. package/scripts/dev-install.sh +32 -11
  230. package/scripts/postinstall.js +29 -29
  231. package/bin/auth/auth-commands.js +0 -499
  232. package/bin/auth/profile-detector.js +0 -204
  233. package/bin/auth/profile-registry.js +0 -225
  234. package/bin/ccs.js +0 -1034
  235. package/bin/delegation/README.md +0 -191
  236. package/bin/delegation/delegation-handler.js +0 -212
  237. package/bin/delegation/headless-executor.js +0 -618
  238. package/bin/delegation/result-formatter.js +0 -485
  239. package/bin/delegation/session-manager.js +0 -157
  240. package/bin/delegation/settings-parser.js +0 -109
  241. package/bin/glmt/delta-accumulator.js +0 -276
  242. package/bin/glmt/glmt-proxy.js +0 -495
  243. package/bin/glmt/glmt-transformer.js +0 -999
  244. package/bin/glmt/locale-enforcer.js +0 -72
  245. package/bin/glmt/reasoning-enforcer.js +0 -173
  246. package/bin/glmt/sse-parser.js +0 -96
  247. package/bin/management/doctor.js +0 -721
  248. package/bin/management/instance-manager.js +0 -202
  249. package/bin/management/recovery-manager.js +0 -135
  250. package/bin/management/shared-manager.js +0 -402
  251. package/bin/utils/claude-detector.js +0 -73
  252. package/bin/utils/claude-dir-installer.js +0 -283
  253. package/bin/utils/claude-symlink-manager.js +0 -289
  254. package/bin/utils/config-manager.js +0 -103
  255. package/bin/utils/delegation-validator.js +0 -154
  256. package/bin/utils/error-codes.js +0 -59
  257. package/bin/utils/error-manager.js +0 -165
  258. package/bin/utils/helpers.js +0 -136
  259. package/bin/utils/progress-indicator.js +0 -111
  260. package/bin/utils/prompt.js +0 -134
  261. package/bin/utils/shell-completion.js +0 -256
  262. package/bin/utils/update-checker.js +0 -243
@@ -0,0 +1,388 @@
1
+ "use strict";
2
+ /**
3
+ * SharedManager - Manages symlinked shared directories for CCS
4
+ * v3.2.0: Symlink-based architecture
5
+ *
6
+ * Purpose: Eliminates duplication by symlinking:
7
+ * ~/.claude/ ← ~/.ccs/shared/ ← instance/
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ const fs = __importStar(require("fs"));
34
+ const path = __importStar(require("path"));
35
+ const os = __importStar(require("os"));
36
+ /**
37
+ * SharedManager Class
38
+ */
39
+ class SharedManager {
40
+ constructor() {
41
+ this.homeDir = os.homedir();
42
+ this.sharedDir = path.join(this.homeDir, '.ccs', 'shared');
43
+ this.claudeDir = path.join(this.homeDir, '.claude');
44
+ this.instancesDir = path.join(this.homeDir, '.ccs', 'instances');
45
+ this.sharedItems = [
46
+ { name: 'commands', type: 'directory' },
47
+ { name: 'skills', type: 'directory' },
48
+ { name: 'agents', type: 'directory' },
49
+ { name: 'plugins', type: 'directory' },
50
+ { name: 'settings.json', type: 'file' },
51
+ ];
52
+ }
53
+ /**
54
+ * Detect circular symlink before creation
55
+ */
56
+ detectCircularSymlink(target, linkPath) {
57
+ // Check if target exists and is symlink
58
+ if (!fs.existsSync(target)) {
59
+ return false;
60
+ }
61
+ try {
62
+ const stats = fs.lstatSync(target);
63
+ if (!stats.isSymbolicLink()) {
64
+ return false;
65
+ }
66
+ // Resolve target's link
67
+ const targetLink = fs.readlinkSync(target);
68
+ const resolvedTarget = path.resolve(path.dirname(target), targetLink);
69
+ // Check if target points back to our shared dir or link path
70
+ const sharedDir = path.join(this.homeDir, '.ccs', 'shared');
71
+ if (resolvedTarget.startsWith(sharedDir) || resolvedTarget === linkPath) {
72
+ console.log(`[!] Circular symlink detected: ${target} → ${resolvedTarget}`);
73
+ return true;
74
+ }
75
+ }
76
+ catch (_err) {
77
+ // If can't read, assume not circular
78
+ return false;
79
+ }
80
+ return false;
81
+ }
82
+ /**
83
+ * Ensure shared directories exist as symlinks to ~/.claude/
84
+ * Creates ~/.claude/ structure if missing
85
+ */
86
+ ensureSharedDirectories() {
87
+ // Create ~/.claude/ if missing
88
+ if (!fs.existsSync(this.claudeDir)) {
89
+ console.log('[i] Creating ~/.claude/ directory structure');
90
+ fs.mkdirSync(this.claudeDir, { recursive: true, mode: 0o700 });
91
+ }
92
+ // Create shared directory
93
+ if (!fs.existsSync(this.sharedDir)) {
94
+ fs.mkdirSync(this.sharedDir, { recursive: true, mode: 0o700 });
95
+ }
96
+ // Create symlinks ~/.ccs/shared/* → ~/.claude/*
97
+ for (const item of this.sharedItems) {
98
+ const claudePath = path.join(this.claudeDir, item.name);
99
+ const sharedPath = path.join(this.sharedDir, item.name);
100
+ // Create in ~/.claude/ if missing
101
+ if (!fs.existsSync(claudePath)) {
102
+ if (item.type === 'directory') {
103
+ fs.mkdirSync(claudePath, { recursive: true, mode: 0o700 });
104
+ }
105
+ else if (item.type === 'file') {
106
+ // Create empty settings.json if missing
107
+ fs.writeFileSync(claudePath, JSON.stringify({}, null, 2), 'utf8');
108
+ }
109
+ }
110
+ // Check for circular symlink
111
+ if (this.detectCircularSymlink(claudePath, sharedPath)) {
112
+ console.log(`[!] Skipping ${item.name}: circular symlink detected`);
113
+ continue;
114
+ }
115
+ // If already a symlink pointing to correct target, skip
116
+ if (fs.existsSync(sharedPath)) {
117
+ try {
118
+ const stats = fs.lstatSync(sharedPath);
119
+ if (stats.isSymbolicLink()) {
120
+ const currentTarget = fs.readlinkSync(sharedPath);
121
+ const resolvedTarget = path.resolve(path.dirname(sharedPath), currentTarget);
122
+ if (resolvedTarget === claudePath) {
123
+ continue; // Already correct
124
+ }
125
+ }
126
+ }
127
+ catch (_err) {
128
+ // Continue to recreate
129
+ }
130
+ // Remove existing file/directory/link
131
+ if (item.type === 'directory') {
132
+ fs.rmSync(sharedPath, { recursive: true, force: true });
133
+ }
134
+ else {
135
+ fs.unlinkSync(sharedPath);
136
+ }
137
+ }
138
+ // Create symlink
139
+ try {
140
+ const symlinkType = item.type === 'directory' ? 'dir' : 'file';
141
+ fs.symlinkSync(claudePath, sharedPath, symlinkType);
142
+ }
143
+ catch (_err) {
144
+ // Windows fallback: copy
145
+ if (process.platform === 'win32') {
146
+ if (item.type === 'directory') {
147
+ this.copyDirectoryFallback(claudePath, sharedPath);
148
+ }
149
+ else if (item.type === 'file') {
150
+ fs.copyFileSync(claudePath, sharedPath);
151
+ }
152
+ console.log(`[!] Symlink failed for ${item.name}, copied instead (enable Developer Mode)`);
153
+ }
154
+ else {
155
+ throw _err;
156
+ }
157
+ }
158
+ }
159
+ }
160
+ /**
161
+ * Link shared directories to instance
162
+ */
163
+ linkSharedDirectories(instancePath) {
164
+ this.ensureSharedDirectories();
165
+ for (const item of this.sharedItems) {
166
+ const linkPath = path.join(instancePath, item.name);
167
+ const targetPath = path.join(this.sharedDir, item.name);
168
+ // Remove existing file/directory/link
169
+ if (fs.existsSync(linkPath)) {
170
+ if (item.type === 'directory') {
171
+ fs.rmSync(linkPath, { recursive: true, force: true });
172
+ }
173
+ else {
174
+ fs.unlinkSync(linkPath);
175
+ }
176
+ }
177
+ // Create symlink
178
+ try {
179
+ const symlinkType = item.type === 'directory' ? 'dir' : 'file';
180
+ fs.symlinkSync(targetPath, linkPath, symlinkType);
181
+ }
182
+ catch (_err) {
183
+ // Windows fallback
184
+ if (process.platform === 'win32') {
185
+ if (item.type === 'directory') {
186
+ this.copyDirectoryFallback(targetPath, linkPath);
187
+ }
188
+ else if (item.type === 'file') {
189
+ fs.copyFileSync(targetPath, linkPath);
190
+ }
191
+ console.log(`[!] Symlink failed for ${item.name}, copied instead (enable Developer Mode)`);
192
+ }
193
+ else {
194
+ throw _err;
195
+ }
196
+ }
197
+ }
198
+ }
199
+ /**
200
+ * Migrate from v3.1.1 (copied data in ~/.ccs/shared/) to v3.2.0 (symlinks to ~/.claude/)
201
+ * Runs once on upgrade
202
+ */
203
+ migrateFromV311() {
204
+ // Check if migration already done (shared dirs are symlinks)
205
+ const commandsPath = path.join(this.sharedDir, 'commands');
206
+ if (fs.existsSync(commandsPath)) {
207
+ try {
208
+ if (fs.lstatSync(commandsPath).isSymbolicLink()) {
209
+ return; // Already migrated
210
+ }
211
+ }
212
+ catch (_err) {
213
+ // Continue with migration
214
+ }
215
+ }
216
+ console.log('[i] Migrating from v3.1.1 to v3.2.0...');
217
+ // Ensure ~/.claude/ exists
218
+ if (!fs.existsSync(this.claudeDir)) {
219
+ fs.mkdirSync(this.claudeDir, { recursive: true, mode: 0o700 });
220
+ }
221
+ // Copy user modifications from ~/.ccs/shared/ to ~/.claude/
222
+ for (const item of this.sharedItems) {
223
+ const sharedPath = path.join(this.sharedDir, item.name);
224
+ const claudePath = path.join(this.claudeDir, item.name);
225
+ if (!fs.existsSync(sharedPath))
226
+ continue;
227
+ try {
228
+ const stats = fs.lstatSync(sharedPath);
229
+ // Handle directories
230
+ if (item.type === 'directory' && stats.isDirectory()) {
231
+ // Create claude dir if missing
232
+ if (!fs.existsSync(claudePath)) {
233
+ fs.mkdirSync(claudePath, { recursive: true, mode: 0o700 });
234
+ }
235
+ // Copy files from shared to claude (preserve user modifications)
236
+ const entries = fs.readdirSync(sharedPath, { withFileTypes: true });
237
+ let copied = 0;
238
+ for (const entry of entries) {
239
+ const src = path.join(sharedPath, entry.name);
240
+ const dest = path.join(claudePath, entry.name);
241
+ // Skip if already exists in claude
242
+ if (fs.existsSync(dest))
243
+ continue;
244
+ if (entry.isDirectory()) {
245
+ fs.cpSync(src, dest, { recursive: true });
246
+ }
247
+ else {
248
+ fs.copyFileSync(src, dest);
249
+ }
250
+ copied++;
251
+ }
252
+ if (copied > 0) {
253
+ console.log(`[OK] Migrated ${copied} ${item.name} to ~/.claude/${item.name}`);
254
+ }
255
+ }
256
+ // Handle files (settings.json)
257
+ else if (item.type === 'file' && stats.isFile()) {
258
+ // Only copy if ~/.claude/ version doesn't exist
259
+ if (!fs.existsSync(claudePath)) {
260
+ fs.copyFileSync(sharedPath, claudePath);
261
+ console.log(`[OK] Migrated ${item.name} to ~/.claude/${item.name}`);
262
+ }
263
+ }
264
+ }
265
+ catch (_err) {
266
+ console.log(`[!] Failed to migrate ${item.name}: ${_err.message}`);
267
+ }
268
+ }
269
+ // Now run ensureSharedDirectories to create symlinks
270
+ this.ensureSharedDirectories();
271
+ // Update all instances to use new symlinks
272
+ if (fs.existsSync(this.instancesDir)) {
273
+ try {
274
+ const instances = fs.readdirSync(this.instancesDir);
275
+ for (const instance of instances) {
276
+ const instancePath = path.join(this.instancesDir, instance);
277
+ try {
278
+ if (fs.statSync(instancePath).isDirectory()) {
279
+ this.linkSharedDirectories(instancePath);
280
+ }
281
+ }
282
+ catch (_err) {
283
+ console.log(`[!] Failed to update instance ${instance}: ${_err.message}`);
284
+ }
285
+ }
286
+ }
287
+ catch (_err) {
288
+ // No instances to update
289
+ }
290
+ }
291
+ console.log('[OK] Migration to v3.2.0 complete');
292
+ }
293
+ /**
294
+ * Migrate existing instances from isolated to shared settings.json (v4.4+)
295
+ * Runs once on upgrade
296
+ */
297
+ migrateToSharedSettings() {
298
+ console.log('[i] Migrating instances to shared settings.json...');
299
+ // Ensure ~/.claude/settings.json exists (authoritative source)
300
+ const claudeSettings = path.join(this.claudeDir, 'settings.json');
301
+ if (!fs.existsSync(claudeSettings)) {
302
+ // Create empty settings if missing
303
+ fs.writeFileSync(claudeSettings, JSON.stringify({}, null, 2), 'utf8');
304
+ console.log('[i] Created ~/.claude/settings.json');
305
+ }
306
+ // Ensure shared settings.json symlink exists
307
+ this.ensureSharedDirectories();
308
+ // Migrate each instance
309
+ if (!fs.existsSync(this.instancesDir)) {
310
+ console.log('[i] No instances to migrate');
311
+ return;
312
+ }
313
+ const instances = fs.readdirSync(this.instancesDir).filter((name) => {
314
+ const instancePath = path.join(this.instancesDir, name);
315
+ return fs.statSync(instancePath).isDirectory();
316
+ });
317
+ let migrated = 0;
318
+ let skipped = 0;
319
+ for (const instance of instances) {
320
+ const instancePath = path.join(this.instancesDir, instance);
321
+ const instanceSettings = path.join(instancePath, 'settings.json');
322
+ try {
323
+ // Check if already symlink
324
+ if (fs.existsSync(instanceSettings)) {
325
+ const stats = fs.lstatSync(instanceSettings);
326
+ if (stats.isSymbolicLink()) {
327
+ skipped++;
328
+ continue; // Already migrated
329
+ }
330
+ // Backup existing settings
331
+ const backup = instanceSettings + '.pre-shared-migration';
332
+ if (!fs.existsSync(backup)) {
333
+ fs.copyFileSync(instanceSettings, backup);
334
+ console.log(`[i] Backed up ${instance}/settings.json`);
335
+ }
336
+ // Remove old settings.json
337
+ fs.unlinkSync(instanceSettings);
338
+ }
339
+ // Create symlink via SharedManager
340
+ const sharedSettings = path.join(this.sharedDir, 'settings.json');
341
+ try {
342
+ fs.symlinkSync(sharedSettings, instanceSettings, 'file');
343
+ migrated++;
344
+ }
345
+ catch (_err) {
346
+ // Windows fallback
347
+ if (process.platform === 'win32') {
348
+ fs.copyFileSync(sharedSettings, instanceSettings);
349
+ console.log(`[!] Symlink failed for ${instance}, copied instead`);
350
+ migrated++;
351
+ }
352
+ else {
353
+ throw _err;
354
+ }
355
+ }
356
+ }
357
+ catch (_err) {
358
+ console.log(`[!] Failed to migrate ${instance}: ${_err.message}`);
359
+ }
360
+ }
361
+ console.log(`[OK] Migrated ${migrated} instance(s), skipped ${skipped}`);
362
+ }
363
+ /**
364
+ * Copy directory as fallback (Windows without Developer Mode)
365
+ */
366
+ copyDirectoryFallback(src, dest) {
367
+ if (!fs.existsSync(src)) {
368
+ fs.mkdirSync(src, { recursive: true, mode: 0o700 });
369
+ return;
370
+ }
371
+ if (!fs.existsSync(dest)) {
372
+ fs.mkdirSync(dest, { recursive: true, mode: 0o700 });
373
+ }
374
+ const entries = fs.readdirSync(src, { withFileTypes: true });
375
+ for (const entry of entries) {
376
+ const srcPath = path.join(src, entry.name);
377
+ const destPath = path.join(dest, entry.name);
378
+ if (entry.isDirectory()) {
379
+ this.copyDirectoryFallback(srcPath, destPath);
380
+ }
381
+ else {
382
+ fs.copyFileSync(srcPath, destPath);
383
+ }
384
+ }
385
+ }
386
+ }
387
+ exports.default = SharedManager;
388
+ //# sourceMappingURL=shared-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-manager.js","sourceRoot":"","sources":["../../src/management/shared-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { SpawnOptions as NodeSpawnOptions } from 'child_process';
4
+ /**
5
+ * CLI Runtime Types
6
+ */
7
+ /**
8
+ * Parsed CLI arguments
9
+ */
10
+ export interface ParsedArgs {
11
+ profile?: string;
12
+ prompt?: string;
13
+ isDelegation: boolean;
14
+ isContinue: boolean;
15
+ remainingArgs: string[];
16
+ }
17
+ /**
18
+ * Spawn options for Claude CLI execution
19
+ */
20
+ export interface ClaudeSpawnOptions extends NodeSpawnOptions {
21
+ stdio: 'inherit' | 'pipe';
22
+ windowsHide?: boolean;
23
+ shell?: boolean;
24
+ env: NodeJS.ProcessEnv;
25
+ }
26
+ /**
27
+ * Platform detection
28
+ */
29
+ export type Platform = 'darwin' | 'linux' | 'win32';
30
+ /**
31
+ * Claude CLI detection result
32
+ */
33
+ export interface ClaudeCliInfo {
34
+ path: string;
35
+ version?: string;
36
+ isWindows: boolean;
37
+ needsShell: boolean;
38
+ }
39
+ /**
40
+ * Exit codes
41
+ */
42
+ export declare enum ExitCode {
43
+ SUCCESS = 0,
44
+ GENERIC_ERROR = 1,
45
+ CLAUDE_NOT_FOUND = 127,
46
+ CONFIG_ERROR = 2,
47
+ DELEGATION_ERROR = 3,
48
+ TIMEOUT = 124
49
+ }
50
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/types/cli.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjE;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,oBAAY,QAAQ;IAClB,OAAO,IAAI;IACX,aAAa,IAAI;IACjB,gBAAgB,MAAM;IACtB,YAAY,IAAI;IAChB,gBAAgB,IAAI;IACpB,OAAO,MAAM;CACd"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExitCode = void 0;
4
+ /**
5
+ * Exit codes
6
+ */
7
+ var ExitCode;
8
+ (function (ExitCode) {
9
+ ExitCode[ExitCode["SUCCESS"] = 0] = "SUCCESS";
10
+ ExitCode[ExitCode["GENERIC_ERROR"] = 1] = "GENERIC_ERROR";
11
+ ExitCode[ExitCode["CLAUDE_NOT_FOUND"] = 127] = "CLAUDE_NOT_FOUND";
12
+ ExitCode[ExitCode["CONFIG_ERROR"] = 2] = "CONFIG_ERROR";
13
+ ExitCode[ExitCode["DELEGATION_ERROR"] = 3] = "DELEGATION_ERROR";
14
+ ExitCode[ExitCode["TIMEOUT"] = 124] = "TIMEOUT";
15
+ })(ExitCode || (exports.ExitCode = ExitCode = {}));
16
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/types/cli.ts"],"names":[],"mappings":";;;AA0CA;;GAEG;AACH,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,yDAAiB,CAAA;IACjB,iEAAsB,CAAA;IACtB,uDAAgB,CAAA;IAChB,+DAAoB,CAAA;IACpB,+CAAa,CAAA;AACf,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * CCS Configuration Types
3
+ * Source: ~/.ccs/config.json
4
+ */
5
+ /**
6
+ * Profile configuration mapping
7
+ * Maps profile names to settings.json paths
8
+ */
9
+ export interface ProfilesConfig {
10
+ [profileName: string]: string;
11
+ }
12
+ /**
13
+ * Main CCS configuration
14
+ * Located at: ~/.ccs/config.json
15
+ */
16
+ export interface Config {
17
+ profiles: ProfilesConfig;
18
+ }
19
+ /**
20
+ * Environment variables (string-only constraint)
21
+ * CRITICAL: All values MUST be strings (no booleans/objects)
22
+ * Reason: PowerShell crashes on non-string values
23
+ */
24
+ export type EnvValue = string;
25
+ export type EnvVars = Record<string, EnvValue>;
26
+ /**
27
+ * Claude CLI settings.json structure
28
+ * Located at: ~/.claude/settings.json or profile-specific
29
+ */
30
+ export interface Settings {
31
+ env?: EnvVars;
32
+ [key: string]: unknown;
33
+ }
34
+ /**
35
+ * Profile metadata (profiles.json)
36
+ * Located at: ~/.ccs/profiles.json
37
+ */
38
+ export interface ProfileMetadata {
39
+ type?: string;
40
+ created: string;
41
+ last_used?: string | null;
42
+ }
43
+ export interface ProfilesRegistry {
44
+ profiles: Record<string, ProfileMetadata>;
45
+ }
46
+ /**
47
+ * Type guards
48
+ */
49
+ export declare function isConfig(obj: unknown): obj is Config;
50
+ export declare function isSettings(obj: unknown): obj is Settings;
51
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAIpD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAMxD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * CCS Configuration Types
4
+ * Source: ~/.ccs/config.json
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.isSettings = exports.isConfig = void 0;
8
+ /**
9
+ * Type guards
10
+ */
11
+ function isConfig(obj) {
12
+ return (typeof obj === 'object' && obj !== null && 'profiles' in obj && typeof obj.profiles === 'object');
13
+ }
14
+ exports.isConfig = isConfig;
15
+ function isSettings(obj) {
16
+ if (typeof obj !== 'object' || obj === null)
17
+ return false;
18
+ if (!('env' in obj))
19
+ return true; // env is optional
20
+ if (typeof obj.env !== 'object' || obj.env === null)
21
+ return false;
22
+ // Validate all env values are strings
23
+ return Object.values(obj.env).every((v) => typeof v === 'string');
24
+ }
25
+ exports.isSettings = isSettings;
26
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAiDH;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACjG,CAAC;AACJ,CAAC;AAJD,4BAIC;AAED,SAAgB,UAAU,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,kBAAkB;IACpD,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClE,sCAAsC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AACpE,CAAC;AAND,gCAMC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Delegation System Types
3
+ */
4
+ /**
5
+ * Session metadata for delegation tracking
6
+ */
7
+ export interface SessionMetadata {
8
+ id: string;
9
+ profile: string;
10
+ prompt: string;
11
+ workingDir: string;
12
+ startTime: number;
13
+ endTime?: number;
14
+ exitCode?: number;
15
+ duration?: number;
16
+ }
17
+ /**
18
+ * Delegation session (persisted)
19
+ */
20
+ export interface DelegationSession {
21
+ metadata: SessionMetadata;
22
+ turns: number;
23
+ lastPrompt?: string;
24
+ }
25
+ /**
26
+ * Sessions registry
27
+ * Located at: ~/.ccs/delegation-sessions.json
28
+ */
29
+ export interface DelegationSessionsRegistry {
30
+ sessions: Record<string, DelegationSession>;
31
+ lastSessionId?: string;
32
+ }
33
+ /**
34
+ * Execution result
35
+ */
36
+ export interface ExecutionResult {
37
+ exitCode: number;
38
+ duration: number;
39
+ workingDir: string;
40
+ sessionId: string;
41
+ profile: string;
42
+ model?: string;
43
+ cost?: number;
44
+ turns: number;
45
+ }
46
+ /**
47
+ * Real-time output event
48
+ */
49
+ export interface ToolEvent {
50
+ type: 'tool';
51
+ tool: string;
52
+ args: string;
53
+ timestamp: number;
54
+ }
55
+ export interface OutputEvent {
56
+ type: 'stdout' | 'stderr';
57
+ data: string;
58
+ timestamp: number;
59
+ }
60
+ export type DelegationEvent = ToolEvent | OutputEvent;
61
+ //# sourceMappingURL=delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../src/types/delegation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Delegation System Types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=delegation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../src/types/delegation.ts"],"names":[],"mappings":";AAAA;;GAEG"}