agl 1.0.17 → 21.0.2

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 (277) hide show
  1. package/.smartconfig.json +55 -0
  2. package/changelog.md +1026 -0
  3. package/cli.js +14 -0
  4. package/dist_serve/bundle.js +44778 -0
  5. package/dist_serve/index.html +13 -0
  6. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  7. package/dist_ts/00_commitinfo_data.js +9 -0
  8. package/dist_ts/classes.authmodels.d.ts +126 -0
  9. package/dist_ts/classes.authmodels.js +1422 -0
  10. package/dist_ts/classes.authstore.d.ts +160 -0
  11. package/dist_ts/classes.authstore.js +2483 -0
  12. package/dist_ts/classes.browserresourcehost.d.ts +85 -0
  13. package/dist_ts/classes.browserresourcehost.js +912 -0
  14. package/dist_ts/classes.cli.d.ts +21 -0
  15. package/dist_ts/classes.cli.js +1082 -0
  16. package/dist_ts/classes.config.d.ts +23 -0
  17. package/dist_ts/classes.config.js +267 -0
  18. package/dist_ts/classes.controller.d.ts +523 -0
  19. package/dist_ts/classes.controller.js +10611 -0
  20. package/dist_ts/classes.controllermanagement.d.ts +32 -0
  21. package/dist_ts/classes.controllermanagement.js +222 -0
  22. package/dist_ts/classes.draftmanager.d.ts +30 -0
  23. package/dist_ts/classes.draftmanager.js +179 -0
  24. package/dist_ts/classes.embeddeddb.d.ts +30 -0
  25. package/dist_ts/classes.embeddeddb.js +159 -0
  26. package/dist_ts/classes.flexframedtransport.d.ts +56 -0
  27. package/dist_ts/classes.flexframedtransport.js +275 -0
  28. package/dist_ts/classes.flexmodels.private.d.ts +231 -0
  29. package/dist_ts/classes.flexmodels.private.js +985 -0
  30. package/dist_ts/classes.flexmodels.public.d.ts +207 -0
  31. package/dist_ts/classes.flexmodels.public.js +885 -0
  32. package/dist_ts/classes.flexprojectionreader.d.ts +89 -0
  33. package/dist_ts/classes.flexprojectionreader.js +580 -0
  34. package/dist_ts/classes.flexservice.d.ts +196 -0
  35. package/dist_ts/classes.flexservice.js +3704 -0
  36. package/dist_ts/classes.flexstore.d.ts +174 -0
  37. package/dist_ts/classes.flexstore.js +3400 -0
  38. package/dist_ts/classes.flexsupervisor.d.ts +105 -0
  39. package/dist_ts/classes.flexsupervisor.js +1191 -0
  40. package/dist_ts/classes.gitreversion.d.ts +431 -0
  41. package/dist_ts/classes.gitreversion.js +10592 -0
  42. package/dist_ts/classes.harnessoperationmanager.d.ts +113 -0
  43. package/dist_ts/classes.harnessoperationmanager.js +602 -0
  44. package/dist_ts/classes.opencodeclient.d.ts +146 -0
  45. package/dist_ts/classes.opencodeclient.js +3003 -0
  46. package/dist_ts/classes.opencodesupervisor.d.ts +60 -0
  47. package/dist_ts/classes.opencodesupervisor.js +1003 -0
  48. package/dist_ts/classes.passkeymanager.d.ts +34 -0
  49. package/dist_ts/classes.passkeymanager.js +456 -0
  50. package/dist_ts/classes.processinspection.d.ts +50 -0
  51. package/dist_ts/classes.processinspection.js +484 -0
  52. package/dist_ts/classes.resourcecoordinator.d.ts +64 -0
  53. package/dist_ts/classes.resourcecoordinator.js +294 -0
  54. package/dist_ts/classes.sessionintelligencereader.d.ts +13 -0
  55. package/dist_ts/classes.sessionintelligencereader.js +40 -0
  56. package/dist_ts/classes.systemmetricssampler.d.ts +53 -0
  57. package/dist_ts/classes.systemmetricssampler.js +168 -0
  58. package/dist_ts/classes.terminalmanager.d.ts +95 -0
  59. package/dist_ts/classes.terminalmanager.js +981 -0
  60. package/dist_ts/classes.terminalresourcehost.d.ts +20 -0
  61. package/dist_ts/classes.terminalresourcehost.js +84 -0
  62. package/dist_ts/classes.upgradecoordinator.d.ts +244 -0
  63. package/dist_ts/classes.upgradecoordinator.js +2155 -0
  64. package/dist_ts/classes.upgradetransaction.d.ts +92 -0
  65. package/dist_ts/classes.upgradetransaction.js +2125 -0
  66. package/dist_ts/classes.uploadmanager.d.ts +24 -0
  67. package/dist_ts/classes.uploadmanager.js +210 -0
  68. package/dist_ts/classes.validation.d.ts +91 -0
  69. package/dist_ts/classes.validation.js +1087 -0
  70. package/dist_ts/flexharness.child.d.ts +1 -0
  71. package/dist_ts/flexharness.child.js +28 -0
  72. package/dist_ts/functions.canonicaldirectory.d.ts +21 -0
  73. package/dist_ts/functions.canonicaldirectory.js +144 -0
  74. package/dist_ts/functions.controllerdataroot.d.ts +15 -0
  75. package/dist_ts/functions.controllerdataroot.js +76 -0
  76. package/dist_ts/functions.embeddeddb.d.ts +2 -0
  77. package/dist_ts/functions.embeddeddb.js +21 -0
  78. package/dist_ts/functions.flexcredentialstore.d.ts +16 -0
  79. package/dist_ts/functions.flexcredentialstore.js +93 -0
  80. package/dist_ts/functions.opencodeauth.d.ts +3 -0
  81. package/dist_ts/functions.opencodeauth.js +31 -0
  82. package/dist_ts/functions.runtimeenvironment.d.ts +2 -0
  83. package/dist_ts/functions.runtimeenvironment.js +79 -0
  84. package/dist_ts/functions.upgradefollower.d.ts +3 -0
  85. package/dist_ts/functions.upgradefollower.js +95 -0
  86. package/dist_ts/index.d.ts +24 -0
  87. package/dist_ts/index.js +25 -0
  88. package/dist_ts/interfaces.auth.d.ts +181 -0
  89. package/dist_ts/interfaces.auth.js +82 -0
  90. package/dist_ts/interfaces.config.d.ts +34 -0
  91. package/dist_ts/interfaces.config.js +2 -0
  92. package/dist_ts/interfaces.flexipc.d.ts +939 -0
  93. package/dist_ts/interfaces.flexipc.js +1492 -0
  94. package/dist_ts/interfaces.gitreversion.d.ts +246 -0
  95. package/dist_ts/interfaces.gitreversion.js +2 -0
  96. package/dist_ts/interfaces.lifecycle.d.ts +37 -0
  97. package/dist_ts/interfaces.lifecycle.js +2 -0
  98. package/dist_ts/interfaces.opencode.d.ts +101 -0
  99. package/dist_ts/interfaces.opencode.js +3 -0
  100. package/dist_ts/interfaces.projects.d.ts +156 -0
  101. package/dist_ts/interfaces.projects.js +5 -0
  102. package/dist_ts/plugins.d.ts +36 -0
  103. package/dist_ts/plugins.js +40 -0
  104. package/dist_ts_interfaces/index.d.ts +2 -0
  105. package/dist_ts_interfaces/index.js +3 -0
  106. package/dist_ts_interfaces/interfaces.d.ts +747 -0
  107. package/dist_ts_interfaces/interfaces.js +47 -0
  108. package/dist_ts_interfaces/plugins.d.ts +4 -0
  109. package/dist_ts_interfaces/plugins.js +3 -0
  110. package/dist_ts_interfaces/requests.d.ts +806 -0
  111. package/dist_ts_interfaces/requests.js +2 -0
  112. package/dist_ts_migration/classes.documentmigrationrunner.d.ts +8 -0
  113. package/dist_ts_migration/classes.documentmigrationrunner.js +24 -0
  114. package/dist_ts_migration/classes.flexmigrationrunner.d.ts +11 -0
  115. package/dist_ts_migration/classes.flexmigrationrunner.js +25 -0
  116. package/dist_ts_migration/classes.flexpostharnessmigrationrunner.d.ts +10 -0
  117. package/dist_ts_migration/classes.flexpostharnessmigrationrunner.js +15 -0
  118. package/dist_ts_migration/classes.migrationrunner.d.ts +8 -0
  119. package/dist_ts_migration/classes.migrationrunner.js +34 -0
  120. package/dist_ts_migration/index.d.ts +12 -0
  121. package/dist_ts_migration/index.js +13 -0
  122. package/dist_ts_migration/v10_flexharnessv3migration.d.ts +11 -0
  123. package/dist_ts_migration/v10_flexharnessv3migration.js +23 -0
  124. package/dist_ts_migration/v13_flexprojectionorder.d.ts +11 -0
  125. package/dist_ts_migration/v13_flexprojectionorder.js +23 -0
  126. package/dist_ts_migration/v16_flexprovidercredentials.d.ts +22 -0
  127. package/dist_ts_migration/v16_flexprovidercredentials.js +149 -0
  128. package/dist_ts_migration/v18_resourcelayout.d.ts +22 -0
  129. package/dist_ts_migration/v18_resourcelayout.js +23 -0
  130. package/dist_ts_migration/v18_resourcelayoutmigration.d.ts +6 -0
  131. package/dist_ts_migration/v18_resourcelayoutmigration.js +61 -0
  132. package/dist_ts_migration/v19_flexprojectmanagement.d.ts +11 -0
  133. package/dist_ts_migration/v19_flexprojectmanagement.js +21 -0
  134. package/dist_ts_migration/v1_embeddeddatabaselocation.d.ts +28 -0
  135. package/dist_ts_migration/v1_embeddeddatabaselocation.js +415 -0
  136. package/dist_ts_migration/v22_projectfilesystemidentitymigration.d.ts +7 -0
  137. package/dist_ts_migration/v22_projectfilesystemidentitymigration.js +105 -0
  138. package/dist_ts_migration/v2_controllerdataroot.d.ts +130 -0
  139. package/dist_ts_migration/v2_controllerdataroot.js +1887 -0
  140. package/dist_ts_migration/v6_protocoldocumentmigration.d.ts +7 -0
  141. package/dist_ts_migration/v6_protocoldocumentmigration.js +100 -0
  142. package/dist_ts_migration/v6_protocoldocuments.d.ts +7 -0
  143. package/dist_ts_migration/v6_protocoldocuments.js +138 -0
  144. package/html/index.html +13 -0
  145. package/{LICENSE → license.md} +2 -2
  146. package/package.json +86 -48
  147. package/readme.md +480 -0
  148. package/readme.plan.md +188 -0
  149. package/ts/00_commitinfo_data.ts +8 -0
  150. package/ts/classes.authmodels.ts +1245 -0
  151. package/ts/classes.authstore.ts +3274 -0
  152. package/ts/classes.browserresourcehost.ts +1205 -0
  153. package/ts/classes.cli.ts +1254 -0
  154. package/ts/classes.config.ts +351 -0
  155. package/ts/classes.controller.ts +14426 -0
  156. package/ts/classes.controllermanagement.ts +330 -0
  157. package/ts/classes.draftmanager.ts +232 -0
  158. package/ts/classes.embeddeddb.ts +166 -0
  159. package/ts/classes.flexframedtransport.ts +283 -0
  160. package/ts/classes.flexmodels.private.ts +823 -0
  161. package/ts/classes.flexmodels.public.ts +732 -0
  162. package/ts/classes.flexprojectionreader.ts +816 -0
  163. package/ts/classes.flexservice.ts +4302 -0
  164. package/ts/classes.flexstore.ts +4565 -0
  165. package/ts/classes.flexsupervisor.ts +1453 -0
  166. package/ts/classes.gitreversion.ts +13353 -0
  167. package/ts/classes.harnessoperationmanager.ts +870 -0
  168. package/ts/classes.opencodeclient.ts +4110 -0
  169. package/ts/classes.opencodesupervisor.ts +1280 -0
  170. package/ts/classes.passkeymanager.ts +570 -0
  171. package/ts/classes.processinspection.ts +623 -0
  172. package/ts/classes.resourcecoordinator.ts +436 -0
  173. package/ts/classes.sessionintelligencereader.ts +52 -0
  174. package/ts/classes.systemmetricssampler.ts +215 -0
  175. package/ts/classes.terminalmanager.ts +1207 -0
  176. package/ts/classes.terminalresourcehost.ts +122 -0
  177. package/ts/classes.upgradecoordinator.ts +2675 -0
  178. package/ts/classes.upgradetransaction.ts +2900 -0
  179. package/ts/classes.uploadmanager.ts +240 -0
  180. package/ts/classes.validation.ts +1409 -0
  181. package/ts/flexharness.child.ts +35 -0
  182. package/ts/functions.canonicaldirectory.ts +213 -0
  183. package/ts/functions.controllerdataroot.ts +107 -0
  184. package/ts/functions.embeddeddb.ts +22 -0
  185. package/ts/functions.flexcredentialstore.ts +128 -0
  186. package/ts/functions.opencodeauth.ts +34 -0
  187. package/ts/functions.runtimeenvironment.ts +90 -0
  188. package/ts/functions.upgradefollower.ts +115 -0
  189. package/ts/index.ts +36 -6
  190. package/ts/interfaces.auth.ts +316 -0
  191. package/ts/interfaces.config.ts +37 -0
  192. package/ts/interfaces.flexipc.ts +2586 -0
  193. package/ts/interfaces.gitreversion.ts +336 -0
  194. package/ts/interfaces.lifecycle.ts +46 -0
  195. package/ts/interfaces.opencode.ts +153 -0
  196. package/ts/interfaces.projects.ts +182 -0
  197. package/ts/plugins.ts +64 -0
  198. package/ts_interfaces/index.ts +2 -0
  199. package/ts_interfaces/interfaces.ts +827 -0
  200. package/ts_interfaces/plugins.ts +15 -0
  201. package/ts_interfaces/requests.ts +1186 -0
  202. package/ts_migration/classes.documentmigrationrunner.ts +32 -0
  203. package/ts_migration/classes.flexmigrationrunner.ts +33 -0
  204. package/ts_migration/classes.flexpostharnessmigrationrunner.ts +22 -0
  205. package/ts_migration/classes.migrationrunner.ts +40 -0
  206. package/ts_migration/index.ts +12 -0
  207. package/ts_migration/v10_flexharnessv3migration.ts +35 -0
  208. package/ts_migration/v13_flexprojectionorder.ts +33 -0
  209. package/ts_migration/v16_flexprovidercredentials.ts +196 -0
  210. package/ts_migration/v18_resourcelayout.ts +55 -0
  211. package/ts_migration/v18_resourcelayoutmigration.ts +68 -0
  212. package/ts_migration/v19_flexprojectmanagement.ts +28 -0
  213. package/ts_migration/v1_embeddeddatabaselocation.ts +560 -0
  214. package/ts_migration/v22_projectfilesystemidentitymigration.ts +121 -0
  215. package/ts_migration/v2_controllerdataroot.ts +2349 -0
  216. package/ts_migration/v6_protocoldocumentmigration.ts +144 -0
  217. package/ts_migration/v6_protocoldocuments.ts +198 -0
  218. package/ts_web/00_commitinfo_data.ts +8 -0
  219. package/ts_web/classes.controllersocketclient.ts +517 -0
  220. package/ts_web/classes.sessiondraftsync.ts +390 -0
  221. package/ts_web/elements.harnesscontrollerapp.ts +11494 -0
  222. package/ts_web/index.ts +2 -0
  223. package/ts_web/plugins.ts +31 -0
  224. package/.gitlab-ci.yml +0 -71
  225. package/.npmignore +0 -5
  226. package/README.md +0 -40
  227. package/dist/cli.js +0 -2
  228. package/dist/index.d.ts +0 -0
  229. package/dist/index.js +0 -9
  230. package/dist/mod_bundle/index.d.ts +0 -1
  231. package/dist/mod_bundle/index.js +0 -18
  232. package/dist/mod_bundle/mod.plugins.d.ts +0 -4
  233. package/dist/mod_bundle/mod.plugins.js +0 -11
  234. package/dist/mod_install/index.d.ts +0 -4
  235. package/dist/mod_install/index.js +0 -21
  236. package/dist/mod_install/mod.plugins.d.ts +0 -1
  237. package/dist/mod_install/mod.plugins.js +0 -7
  238. package/dist/mod_standard/index.d.ts +0 -4
  239. package/dist/mod_standard/index.js +0 -21
  240. package/dist/mod_standard/mod.browser.d.ts +0 -6
  241. package/dist/mod_standard/mod.browser.js +0 -14
  242. package/dist/mod_standard/mod.clean.d.ts +0 -4
  243. package/dist/mod_standard/mod.clean.js +0 -12
  244. package/dist/mod_standard/mod.compile.d.ts +0 -4
  245. package/dist/mod_standard/mod.compile.js +0 -21
  246. package/dist/mod_standard/mod.plugins.d.ts +0 -8
  247. package/dist/mod_standard/mod.plugins.js +0 -19
  248. package/dist/mod_standard/mod.test.d.ts +0 -4
  249. package/dist/mod_standard/mod.test.js +0 -12
  250. package/dist/plr.cli.d.ts +0 -3
  251. package/dist/plr.cli.js +0 -57
  252. package/dist/plr.config.d.ts +0 -11
  253. package/dist/plr.config.js +0 -26
  254. package/dist/plr.mods.d.ts +0 -17
  255. package/dist/plr.mods.js +0 -17
  256. package/dist/plr.paths.d.ts +0 -19
  257. package/dist/plr.paths.js +0 -26
  258. package/dist/plr.plugins.d.ts +0 -8
  259. package/dist/plr.plugins.js +0 -16
  260. package/npmextra.json +0 -10
  261. package/ts/mod_bundle/index.ts +0 -20
  262. package/ts/mod_bundle/mod.plugins.ts +0 -9
  263. package/ts/mod_install/index.ts +0 -20
  264. package/ts/mod_install/mod.plugins.ts +0 -1
  265. package/ts/mod_standard/index.ts +0 -23
  266. package/ts/mod_standard/mod.browser.ts +0 -17
  267. package/ts/mod_standard/mod.clean.ts +0 -13
  268. package/ts/mod_standard/mod.compile.ts +0 -23
  269. package/ts/mod_standard/mod.plugins.ts +0 -17
  270. package/ts/mod_standard/mod.test.ts +0 -13
  271. package/ts/plr.cli.ts +0 -60
  272. package/ts/plr.config.ts +0 -36
  273. package/ts/plr.mods.ts +0 -25
  274. package/ts/plr.paths.ts +0 -29
  275. package/ts/plr.plugins.ts +0 -17
  276. package/tslint.json +0 -3
  277. package/yarn.lock +0 -3464
@@ -0,0 +1,20 @@
1
+ import type { SmartDataAuthStore } from './classes.authstore.js';
2
+ import type { IControllerResourceRuntimeHost } from './classes.resourcecoordinator.js';
3
+ import type { ControllerTerminalManager } from './classes.terminalmanager.js';
4
+ import type { IControllerResourceDocument } from './interfaces.projects.js';
5
+ export declare class ControllerTerminalResourceHost implements IControllerResourceRuntimeHost {
6
+ private readonly terminalManager;
7
+ private readonly store;
8
+ private readonly pendingStoppedResources;
9
+ constructor(terminalManager: ControllerTerminalManager, store: Pick<SmartDataAuthStore, 'markTerminalResourceRunning' | 'markTerminalResourceStopped'>);
10
+ startResource(resourceArg: IControllerResourceDocument, signalArg: AbortSignal): Promise<void>;
11
+ stopResource(resourceArg: IControllerResourceDocument, signalArg: AbortSignal): Promise<void>;
12
+ isRunning(resourceArg: IControllerResourceDocument): boolean;
13
+ isAvailable(): boolean;
14
+ renameResource(resourceArg: IControllerResourceDocument): Promise<void>;
15
+ reconcileAttachment(): Promise<void>;
16
+ retireResource(resourceArg: IControllerResourceDocument, signalArg: AbortSignal): Promise<void>;
17
+ recordTerminalStopped(projectIdArg: string, resourceIdArg: string, lastExitCodeArg?: number): Promise<void>;
18
+ flushPendingStoppedResources(): Promise<void>;
19
+ private resourceKey;
20
+ }
@@ -0,0 +1,84 @@
1
+ export class ControllerTerminalResourceHost {
2
+ terminalManager;
3
+ store;
4
+ pendingStoppedResources = new Map();
5
+ constructor(terminalManager, store) {
6
+ this.terminalManager = terminalManager;
7
+ this.store = store;
8
+ }
9
+ async startResource(resourceArg, signalArg) {
10
+ signalArg.throwIfAborted();
11
+ this.pendingStoppedResources.delete(this.resourceKey(resourceArg.projectId, resourceArg.id));
12
+ try {
13
+ await this.terminalManager.startTerminalResource(resourceArg);
14
+ await this.store.markTerminalResourceRunning(resourceArg.projectId, resourceArg.id);
15
+ }
16
+ catch (errorArg) {
17
+ const cleanupErrors = [];
18
+ await this.terminalManager.stopTerminalResource(resourceArg.projectId, resourceArg.id)
19
+ .catch((cleanupErrorArg) => cleanupErrors.push(cleanupErrorArg));
20
+ await this.store.markTerminalResourceStopped(resourceArg.projectId, resourceArg.id)
21
+ .catch((cleanupErrorArg) => cleanupErrors.push(cleanupErrorArg));
22
+ if (cleanupErrors.length > 0) {
23
+ throw new AggregateError([errorArg, ...cleanupErrors], 'Terminal startup cleanup is incomplete.');
24
+ }
25
+ throw errorArg;
26
+ }
27
+ }
28
+ async stopResource(resourceArg, signalArg) {
29
+ signalArg.throwIfAborted();
30
+ await this.terminalManager.stopTerminalResource(resourceArg.projectId, resourceArg.id);
31
+ await this.store.markTerminalResourceStopped(resourceArg.projectId, resourceArg.id);
32
+ this.pendingStoppedResources.delete(this.resourceKey(resourceArg.projectId, resourceArg.id));
33
+ }
34
+ isRunning(resourceArg) {
35
+ return this.terminalManager.isTerminalRunning(resourceArg.projectId, resourceArg.id);
36
+ }
37
+ isAvailable() {
38
+ return true;
39
+ }
40
+ async renameResource(resourceArg) {
41
+ await this.terminalManager.renameTerminalResource(resourceArg.projectId, resourceArg.id, resourceArg.title);
42
+ }
43
+ async reconcileAttachment() {
44
+ await this.flushPendingStoppedResources();
45
+ }
46
+ async retireResource(resourceArg, signalArg) {
47
+ await this.stopResource(resourceArg, signalArg);
48
+ }
49
+ async recordTerminalStopped(projectIdArg, resourceIdArg, lastExitCodeArg) {
50
+ const key = this.resourceKey(projectIdArg, resourceIdArg);
51
+ const pending = {
52
+ projectId: projectIdArg,
53
+ resourceId: resourceIdArg,
54
+ ...(lastExitCodeArg === undefined ? {} : { lastExitCode: lastExitCodeArg }),
55
+ };
56
+ this.pendingStoppedResources.set(key, pending);
57
+ await this.store.markTerminalResourceStopped(projectIdArg, resourceIdArg, {
58
+ ...(lastExitCodeArg === undefined ? {} : { lastExitCode: lastExitCodeArg }),
59
+ });
60
+ if (this.pendingStoppedResources.get(key) === pending) {
61
+ this.pendingStoppedResources.delete(key);
62
+ }
63
+ }
64
+ async flushPendingStoppedResources() {
65
+ const results = await Promise.allSettled([...this.pendingStoppedResources.entries()].map(async ([key, pending]) => {
66
+ await this.store.markTerminalResourceStopped(pending.projectId, pending.resourceId, {
67
+ ...(pending.lastExitCode === undefined ? {} : { lastExitCode: pending.lastExitCode }),
68
+ });
69
+ if (this.pendingStoppedResources.get(key) === pending) {
70
+ this.pendingStoppedResources.delete(key);
71
+ }
72
+ }));
73
+ const errors = results
74
+ .filter((result) => result.status === 'rejected')
75
+ .map((result) => result.reason);
76
+ if (errors.length > 0) {
77
+ throw new AggregateError(errors, 'Terminal stopped-state persistence is incomplete.');
78
+ }
79
+ }
80
+ resourceKey(projectIdArg, resourceIdArg) {
81
+ return JSON.stringify([projectIdArg, resourceIdArg]);
82
+ }
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50ZXJtaW5hbHJlc291cmNlaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NsYXNzZXMudGVybWluYWxyZXNvdXJjZWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLDhCQUE4QjtJQVF0QjtJQUNBO0lBUkYsdUJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBSTlDLENBQUM7SUFFTCxZQUNtQixlQUEwQyxFQUMxQyxLQUdoQjtRQUpnQixvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FHckI7SUFDQSxDQUFDO0lBRUcsS0FBSyxDQUFDLGFBQWEsQ0FDeEIsV0FBd0MsRUFDeEMsU0FBc0I7UUFFdEIsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5RCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7WUFDbEIsTUFBTSxhQUFhLEdBQWMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7aUJBQ25GLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU0s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
@@ -0,0 +1,244 @@
1
+ import { type IControllerRuntimeId, type IControllerUpgradeStatus } from '../dist_ts_interfaces/index.js';
2
+ export declare const upgradeCoordinationVersion: 2;
3
+ declare const coordinationVersion: 2;
4
+ export declare const upgradePackageTransitionTransactionVersion: 3;
5
+ export declare const upgradePackageTransitionSource: {
6
+ readonly packageName: "@modelprofile.com/harness-controller";
7
+ readonly version: "20.0.3";
8
+ readonly managementVersion: 1;
9
+ readonly cliName: "hcon";
10
+ readonly cliRelativePath: "./cli.js";
11
+ };
12
+ export declare const upgradePackageTransitionTarget: {
13
+ readonly packageName: "agl";
14
+ readonly version: "21.0.0";
15
+ readonly managementVersion: 2;
16
+ readonly cliName: "agl";
17
+ readonly cliRelativePath: "./cli.js";
18
+ };
19
+ export declare const upgradeTokenEnvironmentVariable = "HARNESS_CONTROLLER_UPGRADE_TOKEN";
20
+ type TUpgradeOwnerKind = 'upgrade' | 'start';
21
+ interface IUpgradeProcessOwner {
22
+ version: typeof coordinationVersion;
23
+ kind: TUpgradeOwnerKind;
24
+ uid: number;
25
+ tokenHash: string;
26
+ pid: number;
27
+ processGroupId: number;
28
+ fingerprint: string;
29
+ cliPath: string;
30
+ command: '__serve' | '__upgrade-worker' | 'upgrade' | 'start' | 'foreground' | 'temp-password';
31
+ createdAt: number;
32
+ }
33
+ export interface IUpgradeExpectedController {
34
+ pid: number;
35
+ processGroupId: number;
36
+ processFingerprint: string;
37
+ }
38
+ export interface IUpgradeWorkerPayload {
39
+ version: typeof coordinationVersion;
40
+ token: string;
41
+ port: number;
42
+ gracePeriodMs: number;
43
+ continueSessions: boolean;
44
+ expectedController?: IUpgradeExpectedController;
45
+ }
46
+ export type TUpgradeSessionTransitionState = 'pending' | 'submitting' | 'accepted' | 'paused' | 'outcomeUnknown' | 'failed';
47
+ export interface IUpgradeSessionState {
48
+ projectId: string;
49
+ sessionId: IControllerRuntimeId;
50
+ pauseState: TUpgradeSessionTransitionState;
51
+ pauseQueueId?: string;
52
+ cleanupState?: TUpgradeSessionTransitionState;
53
+ continueState?: TUpgradeSessionTransitionState;
54
+ error?: string;
55
+ }
56
+ interface IUpgradeTransactionBase {
57
+ tokenHash: string;
58
+ revision: number;
59
+ port: number;
60
+ controllerWasRunning: boolean;
61
+ continueSessions: boolean;
62
+ gracePeriodMs: number;
63
+ preparationAcceptedAt?: number;
64
+ preparationDeadlineAt?: number;
65
+ preparationCompletedAt?: number;
66
+ phase: IControllerUpgradeStatus['phase'] | 'starting' | 'checking' | 'stopping';
67
+ message: string;
68
+ createdAt: number;
69
+ phaseStartedAt: number;
70
+ updatedAt: number;
71
+ retainedUntil?: number;
72
+ worker?: {
73
+ pid: number;
74
+ processGroupId: number;
75
+ fingerprint: string;
76
+ cliPath: string;
77
+ logFilePath?: string;
78
+ };
79
+ controller?: {
80
+ pid: number;
81
+ processGroupId: number;
82
+ fingerprint: string;
83
+ cliPath: string;
84
+ command: '__serve' | 'foreground';
85
+ };
86
+ sessions: IUpgradeSessionState[];
87
+ terminal?: {
88
+ success: boolean;
89
+ error?: string;
90
+ };
91
+ }
92
+ export interface IUpgradeTransactionV2 extends IUpgradeTransactionBase {
93
+ version: typeof coordinationVersion;
94
+ sourceVersion: string;
95
+ targetVersion?: string;
96
+ targetStartupInvoked?: true;
97
+ }
98
+ export interface IUpgradeTransactionV3 extends IUpgradeTransactionBase {
99
+ version: typeof upgradePackageTransitionTransactionVersion;
100
+ sourcePackageName: typeof upgradePackageTransitionSource.packageName;
101
+ sourceVersion: typeof upgradePackageTransitionSource.version;
102
+ sourceManagementVersion: typeof upgradePackageTransitionSource.managementVersion;
103
+ sourceCliName: typeof upgradePackageTransitionSource.cliName;
104
+ sourceCliRelativePath: typeof upgradePackageTransitionSource.cliRelativePath;
105
+ targetPackageName: typeof upgradePackageTransitionTarget.packageName;
106
+ targetVersion: typeof upgradePackageTransitionTarget.version;
107
+ targetManagementVersion: typeof upgradePackageTransitionTarget.managementVersion;
108
+ targetCliName: typeof upgradePackageTransitionTarget.cliName;
109
+ targetCliRelativePath: typeof upgradePackageTransitionTarget.cliRelativePath;
110
+ packageTransitionStarted?: true;
111
+ groupedTargetVerified?: true;
112
+ targetPackageCommitStarted?: true;
113
+ targetPackageCommitted?: true;
114
+ targetStartupInvoked?: true;
115
+ }
116
+ export type TUpgradeTransaction = IUpgradeTransactionV2 | IUpgradeTransactionV3;
117
+ export type TUpgradeControllerAction = 'prepare' | 'finalize';
118
+ export declare const upgradeTransactionIsStalled: (transactionArg: TUpgradeTransaction, nowArg?: number) => boolean;
119
+ declare class UpgradeOwnedDirectory {
120
+ readonly directory: string;
121
+ readonly owner: IUpgradeProcessOwner;
122
+ private readonly releaseOwned;
123
+ private released;
124
+ private releaseTask?;
125
+ constructor(directory: string, owner: IUpgradeProcessOwner, releaseOwned: (directoryArg: string, ownerArg: IUpgradeProcessOwner, shouldReleaseArg?: () => boolean) => Promise<void>);
126
+ assertOwned(): Promise<void>;
127
+ release(shouldReleaseArg?: () => boolean): Promise<void>;
128
+ relinquishAfterTransfer(): void;
129
+ }
130
+ export declare class UpgradeInstallationLock extends UpgradeOwnedDirectory {
131
+ }
132
+ export declare class UpgradeStartLease extends UpgradeOwnedDirectory {
133
+ }
134
+ export declare class UpgradeCoordinator {
135
+ readonly canonicalGlobalRoot: string;
136
+ readonly uid: number;
137
+ readonly baseDirectory: string;
138
+ readonly upgradeLockDirectory: string;
139
+ readonly startLeasesDirectory: string;
140
+ readonly transactionsDirectory: string;
141
+ readonly ownershipGuardsDirectory: string;
142
+ private initializationTask?;
143
+ constructor(canonicalGlobalRoot: string);
144
+ init(): Promise<void>;
145
+ private performInitialization;
146
+ private ownershipGuardDirectory;
147
+ private acquireOwnershipMutationGuard;
148
+ private withOwnershipMutationGuard;
149
+ private reclaimStaleOwnedDirectory;
150
+ private releaseOwnedDirectory;
151
+ private inspectTransactionMutationDirectory;
152
+ private reclaimStaleTransactionMutationDirectory;
153
+ private inspectOwnedDirectory;
154
+ private createOwnedDirectory;
155
+ acquireUpgradeLock(optionsArg: {
156
+ token: string;
157
+ cliPath: string;
158
+ command?: '__serve' | '__upgrade-worker' | 'upgrade' | 'foreground';
159
+ }): Promise<UpgradeInstallationLock>;
160
+ transferUpgradeLockToWorker(optionsArg: {
161
+ lock: UpgradeInstallationLock;
162
+ token: string;
163
+ worker: NonNullable<TUpgradeTransaction['worker']>;
164
+ }): Promise<void>;
165
+ private readLiveUpgradeOwner;
166
+ acquireStartLease(optionsArg: {
167
+ token: string;
168
+ cliPath: string;
169
+ command: 'start' | 'foreground' | 'temp-password';
170
+ upgradeToken?: string;
171
+ }): Promise<UpgradeStartLease>;
172
+ waitForStartLeasesToDrain(lockArg: UpgradeInstallationLock): Promise<void>;
173
+ private tokenFilePath;
174
+ private transactionFilePath;
175
+ private transactionMutationDirectory;
176
+ private withTransactionMutation;
177
+ createTransaction(optionsArg: {
178
+ token: string;
179
+ port: number;
180
+ sourceVersion: string;
181
+ controllerWasRunning: boolean;
182
+ continueSessions: boolean;
183
+ gracePeriodMs: number;
184
+ }): Promise<IUpgradeTransactionV2>;
185
+ createPackageTransitionTransaction(optionsArg: {
186
+ token: string;
187
+ port: number;
188
+ controllerWasRunning: boolean;
189
+ continueSessions: boolean;
190
+ gracePeriodMs: number;
191
+ }): Promise<IUpgradeTransactionV3>;
192
+ readTransaction(tokenArg: string): Promise<TUpgradeTransaction>;
193
+ updateTransaction(tokenArg: string, expectedRevisionArg: number, updateArg: (currentArg: TUpgradeTransaction) => TUpgradeTransaction): Promise<TUpgradeTransaction>;
194
+ mutateTransaction(tokenArg: string, updateArg: (currentArg: TUpgradeTransaction) => TUpgradeTransaction): Promise<TUpgradeTransaction>;
195
+ private writeTransactionUpdate;
196
+ registerWorker(tokenArg: string, cliPathArg: string): Promise<TUpgradeTransaction>;
197
+ recordWorkerLaunch(tokenArg: string, pidArg: number, cliPathArg: string, logFilePathArg: string): Promise<TUpgradeTransaction>;
198
+ recordController(tokenArg: string, controllerArg: TUpgradeTransaction['controller']): Promise<TUpgradeTransaction>;
199
+ transactionControllerIsLive(transactionArg: TUpgradeTransaction): Promise<boolean>;
200
+ transactionWorkerIsLive(transactionArg: TUpgradeTransaction): Promise<boolean>;
201
+ terminateTransactionWorker(transactionArg: TUpgradeTransaction): Promise<void>;
202
+ terminateUpgradeWorkerCandidate(worker: NonNullable<TUpgradeTransaction['worker']>): Promise<void>;
203
+ readSanitizedUpgradeStatus(tokenArg: string): Promise<IControllerUpgradeStatus | undefined>;
204
+ finishTransaction(tokenArg: string, successArg: boolean, messageArg: string, errorArg?: string): Promise<TUpgradeTransaction>;
205
+ createLaunchGrant(optionsArg: {
206
+ token: string;
207
+ port: number;
208
+ packageName: string;
209
+ packageVersion: string;
210
+ cliPath: string;
211
+ controller: IUpgradeExpectedController;
212
+ }): Promise<void>;
213
+ removeLaunchGrant(tokenArg: string): Promise<void>;
214
+ consumeLaunchGrant(optionsArg: {
215
+ token: string;
216
+ port: number;
217
+ packageName: string;
218
+ packageVersion: string;
219
+ cliPath: string;
220
+ controller: IUpgradeExpectedController;
221
+ }): Promise<void>;
222
+ private actionGrantFilePath;
223
+ removeControllerActionGrant(actionArg: TUpgradeControllerAction, tokenArg: string): Promise<void>;
224
+ createControllerActionGrant(optionsArg: {
225
+ token: string;
226
+ action: TUpgradeControllerAction;
227
+ mode?: 'continue' | 'compensate' | 'reopen';
228
+ packageVersion: string;
229
+ controller: IUpgradeExpectedController;
230
+ }): Promise<void>;
231
+ consumeControllerActionGrant(optionsArg: {
232
+ token: string;
233
+ action: TUpgradeControllerAction;
234
+ mode?: 'continue' | 'compensate' | 'reopen';
235
+ packageVersion: string;
236
+ controller: IUpgradeExpectedController;
237
+ }): Promise<void>;
238
+ acknowledgeWorker(tokenArg: string): Promise<void>;
239
+ waitForWorkerAcknowledgement(tokenArg: string, timeoutMsArg?: number): Promise<void>;
240
+ }
241
+ export declare const createUpgradeToken: () => string;
242
+ export declare const serializeUpgradeWorkerPayload: (payloadArg: IUpgradeWorkerPayload) => string;
243
+ export declare const parseUpgradeWorkerPayload: (payloadArg: unknown, tokenArg: unknown) => IUpgradeWorkerPayload;
244
+ export {};