agl 21.0.2 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/changelog.md +9 -0
  2. package/dist_serve/bundle.js +1 -1
  3. package/dist_ts/00_commitinfo_data.js +1 -1
  4. package/dist_ts/classes.aglhome.d.ts +25 -0
  5. package/dist_ts/classes.aglhome.js +65 -0
  6. package/dist_ts/classes.authmodels.js +7 -12
  7. package/dist_ts/classes.authstore.js +2 -29
  8. package/dist_ts/classes.cli.js +93 -35
  9. package/dist_ts/classes.config.d.ts +2 -11
  10. package/dist_ts/classes.config.js +14 -80
  11. package/dist_ts/classes.controller.d.ts +4 -1
  12. package/dist_ts/classes.controller.js +64 -26
  13. package/dist_ts/classes.embeddeddb.js +6 -5
  14. package/dist_ts/classes.gitreversion.js +3 -2
  15. package/dist_ts/classes.upgradecoordinator.d.ts +6 -1
  16. package/dist_ts/classes.upgradecoordinator.js +588 -177
  17. package/dist_ts/classes.upgradetransaction.js +46 -12
  18. package/dist_ts/classes.uploadmanager.d.ts +12 -0
  19. package/dist_ts/classes.uploadmanager.js +204 -2
  20. package/dist_ts/constants.upgradeenvironment.d.ts +2 -0
  21. package/dist_ts/constants.upgradeenvironment.js +3 -0
  22. package/dist_ts/functions.controllerdataroot.d.ts +4 -5
  23. package/dist_ts/functions.controllerdataroot.js +4 -29
  24. package/dist_ts/functions.embeddeddb.d.ts +1 -1
  25. package/dist_ts/functions.embeddeddb.js +8 -3
  26. package/dist_ts/functions.runtimeenvironment.js +2 -1
  27. package/dist_ts/index.d.ts +1 -0
  28. package/dist_ts/index.js +2 -1
  29. package/dist_ts/interfaces.config.d.ts +5 -7
  30. package/dist_ts_migration/classes.documentmigrationrunner.js +3 -1
  31. package/dist_ts_migration/index.d.ts +2 -0
  32. package/dist_ts_migration/index.js +3 -1
  33. package/dist_ts_migration/v23_aglhome.d.ts +91 -0
  34. package/dist_ts_migration/v23_aglhome.js +1775 -0
  35. package/dist_ts_migration/v23_runtimeconfig.d.ts +11 -0
  36. package/dist_ts_migration/v23_runtimeconfig.js +87 -0
  37. package/dist_ts_migration/v2_controllerdataroot.d.ts +5 -0
  38. package/dist_ts_migration/v2_controllerdataroot.js +176 -15
  39. package/package.json +1 -1
  40. package/readme.md +116 -35
  41. package/readme.plan.md +24 -9
  42. package/ts/00_commitinfo_data.ts +1 -1
  43. package/ts/classes.aglhome.ts +116 -0
  44. package/ts/classes.authmodels.ts +5 -13
  45. package/ts/classes.authstore.ts +1 -39
  46. package/ts/classes.cli.ts +92 -34
  47. package/ts/classes.config.ts +20 -117
  48. package/ts/classes.controller.ts +92 -26
  49. package/ts/classes.embeddeddb.ts +5 -4
  50. package/ts/classes.gitreversion.ts +3 -2
  51. package/ts/classes.upgradecoordinator.ts +668 -191
  52. package/ts/classes.upgradetransaction.ts +46 -11
  53. package/ts/classes.uploadmanager.ts +231 -1
  54. package/ts/constants.upgradeenvironment.ts +2 -0
  55. package/ts/functions.controllerdataroot.ts +11 -47
  56. package/ts/functions.embeddeddb.ts +13 -2
  57. package/ts/functions.runtimeenvironment.ts +1 -0
  58. package/ts/index.ts +1 -0
  59. package/ts/interfaces.config.ts +5 -7
  60. package/ts_migration/classes.documentmigrationrunner.ts +2 -0
  61. package/ts_migration/index.ts +2 -0
  62. package/ts_migration/v23_aglhome.ts +2101 -0
  63. package/ts_migration/v23_runtimeconfig.ts +112 -0
  64. package/ts_migration/v2_controllerdataroot.ts +174 -16
  65. package/ts_web/00_commitinfo_data.ts +1 -1
@@ -1,8 +1,8 @@
1
1
  import * as plugins from './plugins.js';
2
+ import { resolveAGLHomePaths, } from './classes.aglhome.js';
2
3
  export const defaultControllerPort = 4097;
3
4
  export const defaultOpenCodePort = 4098;
4
5
  export const trustedProxySecretEnvironmentVariable = 'HARNESS_CONTROLLER_TRUSTED_PROXY_SECRET';
5
- const modulePackageRoot = plugins.path.resolve(plugins.path.dirname(plugins.url.fileURLToPath(import.meta.url)), '..');
6
6
  const assertPort = (valueArg, nameArg) => {
7
7
  if (!Number.isSafeInteger(valueArg) || valueArg < 1 || valueArg > 65535) {
8
8
  throw new Error(`${nameArg} must be an integer between 1 and 65535.`);
@@ -71,52 +71,13 @@ const resolveDirectory = async (directoryArg) => {
71
71
  const resolved = await plugins.fs.promises.realpath(plugins.path.resolve(directoryArg));
72
72
  const stats = await plugins.fs.promises.stat(resolved);
73
73
  if (!stats.isDirectory()) {
74
- throw new Error(`OpenCode workspace is not a directory: ${resolved}`);
74
+ throw new Error(`Configured path is not a directory: ${resolved}`);
75
75
  }
76
76
  return resolved;
77
77
  };
78
- const isDevelopmentCheckout = (packageRootArg) => {
79
- try {
80
- const stats = plugins.fs.lstatSync(plugins.path.join(packageRootArg, '.git'));
81
- return stats.isDirectory() || stats.isFile();
82
- }
83
- catch {
84
- return false;
85
- }
86
- };
87
- const xdgRoot = (environmentValueArg, fallbackArg) => {
88
- const candidate = environmentValueArg?.trim();
89
- return candidate && plugins.path.isAbsolute(candidate) ? candidate : fallbackArg;
90
- };
91
- export const controllerDataRootPaths = (optionsArg = {}) => {
92
- const packageRoot = optionsArg.packageRoot ?? modulePackageRoot;
93
- if (isDevelopmentCheckout(packageRoot)) {
94
- const checkoutRoot = plugins.path.join(packageRoot, '.nogit');
95
- return {
96
- legacyRoot: checkoutRoot,
97
- targetRoot: checkoutRoot,
98
- migrationRequired: false,
99
- };
100
- }
101
- const environment = optionsArg.environment ?? process.env;
102
- const homeDirectory = optionsArg.homeDirectory ?? plugins.os.homedir();
103
- const configHome = xdgRoot(environment.XDG_CONFIG_HOME, plugins.path.join(homeDirectory, '.config'));
104
- return {
105
- legacyRoot: plugins.path.join(configHome, 'harness-controller'),
106
- targetRoot: plugins.path.join(configHome, 'hcon'),
107
- migrationRequired: true,
108
- };
109
- };
110
- /** Retained location for controller and upgrade logs across the A to B transition. */
111
- export const controllerDataDirectory = (optionsArg = {}) => controllerDataRootPaths(optionsArg).legacyRoot;
78
+ export const controllerDataDirectory = (optionsArg = {}) => resolveAGLHomePaths(optionsArg).root;
112
79
  /** @deprecated Use controllerDataDirectory(). */
113
80
  export const controllerStateDirectory = controllerDataDirectory;
114
- const legacyControllerStateDirectory = (optionsArg) => {
115
- const environment = optionsArg.environment ?? process.env;
116
- const homeDirectory = optionsArg.homeDirectory ?? plugins.os.homedir();
117
- const stateHome = xdgRoot(environment.XDG_STATE_HOME, plugins.path.join(homeDirectory, '.local', 'state'));
118
- return plugins.path.join(stateHome, 'harness-controller');
119
- };
120
81
  export const readDatabaseConfig = (optionsArg = {}) => {
121
82
  const environment = optionsArg.environment ?? process.env;
122
83
  const mongoDbUrl = environment.HARNESS_CONTROLLER_MONGO_URL?.trim();
@@ -130,19 +91,13 @@ export const readDatabaseConfig = (optionsArg = {}) => {
130
91
  }
131
92
  const embeddedDataDirectoryOverride = environment.HARNESS_CONTROLLER_DB_DIR?.trim();
132
93
  const embeddedDataDirectory = embeddedDataDirectoryOverride
133
- || plugins.path.join(controllerDataRootPaths(optionsArg).targetRoot, 'smartdb');
94
+ || resolveAGLHomePaths(optionsArg).database;
134
95
  if (!plugins.path.isAbsolute(embeddedDataDirectory)) {
135
96
  throw new Error('HARNESS_CONTROLLER_DB_DIR must be an absolute path.');
136
97
  }
137
- const packageRoot = optionsArg.packageRoot ?? modulePackageRoot;
138
98
  return {
139
99
  mongoDbName,
140
100
  embeddedDataDirectory,
141
- ...(!embeddedDataDirectoryOverride && !isDevelopmentCheckout(packageRoot)
142
- ? {
143
- legacyEmbeddedDataDirectory: plugins.path.join(legacyControllerStateDirectory(optionsArg), 'smartdb'),
144
- }
145
- : {}),
146
101
  };
147
102
  };
148
103
  export const readTrustedProxySecret = (tlsModeArg) => {
@@ -168,13 +123,11 @@ export const resolveInitialRuntimeConfig = async (overridesArg) => {
168
123
  throw new Error('Local public-origin port must match the controller listening port.');
169
124
  }
170
125
  const rpId = normalizeRpId(overridesArg.rpId ?? origin.hostname, origin.hostname);
171
- const workspaceDirectory = await resolveDirectory(overridesArg.workspaceDirectory ?? process.cwd());
172
- const projectsRoot = await resolveDirectory(overridesArg.projectsRoot ?? workspaceDirectory);
126
+ const projectsRoot = await resolveDirectory(overridesArg.projectsRoot ?? plugins.os.homedir());
173
127
  return {
174
128
  controllerPort,
175
129
  publicOrigin: origin.origin,
176
130
  rpId,
177
- workspaceDirectory,
178
131
  projectsRoot,
179
132
  opencodePort,
180
133
  tlsMode,
@@ -223,16 +176,6 @@ export const resolveStoredRuntimeConfig = async (storedArg, overridesArg) => {
223
176
  if (overridesArg.opencodePort !== undefined && overridesArg.opencodePort !== storedArg.opencodePort) {
224
177
  throw new Error('opencodePort is immutable after controller initialization.');
225
178
  }
226
- if (overridesArg.workspaceDirectory !== undefined) {
227
- const requestedDirectory = await resolveDirectory(overridesArg.workspaceDirectory);
228
- if (requestedDirectory !== storedArg.workspaceDirectory) {
229
- throw new Error('The OpenCode workspace is immutable after controller initialization.');
230
- }
231
- }
232
- const storedDirectory = await resolveDirectory(storedArg.workspaceDirectory);
233
- if (storedDirectory !== storedArg.workspaceDirectory) {
234
- throw new Error('Stored OpenCode workspace is no longer its canonical real path.');
235
- }
236
179
  if (storedArg.tlsMode === 'proxy') {
237
180
  if (overridesArg.behindTlsProxy === false) {
238
181
  throw new Error('Stored TLS proxy mode is immutable.');
@@ -243,25 +186,16 @@ export const resolveStoredRuntimeConfig = async (storedArg, overridesArg) => {
243
186
  throw new Error('Stored localhost mode cannot be changed to TLS mode.');
244
187
  }
245
188
  }
246
- // Pre-v2 documents carry no projectsRoot: the first v2 start adopts one —
247
- // from --projects-root when given, else the workspace — and it is immutable
248
- // from then on like every other stored boundary.
249
- let projectsRoot;
250
- if (storedArg.projectsRoot === undefined) {
251
- projectsRoot = await resolveDirectory(overridesArg.projectsRoot ?? storedArg.workspaceDirectory);
189
+ if (!plugins.path.isAbsolute(storedArg.projectsRoot)
190
+ || plugins.path.normalize(storedArg.projectsRoot) !== storedArg.projectsRoot) {
191
+ throw new Error('Stored projects root is not an absolute normalized path.');
252
192
  }
253
- else {
254
- projectsRoot = await resolveDirectory(storedArg.projectsRoot);
255
- if (projectsRoot !== storedArg.projectsRoot) {
256
- throw new Error('Stored projects root is no longer its canonical real path.');
257
- }
258
- if (overridesArg.projectsRoot !== undefined) {
259
- const requestedProjectsRoot = await resolveDirectory(overridesArg.projectsRoot);
260
- if (requestedProjectsRoot !== storedArg.projectsRoot) {
261
- throw new Error('The projects root is immutable after it has been adopted.');
262
- }
193
+ if (overridesArg.projectsRoot !== undefined) {
194
+ const requestedProjectsRoot = await resolveDirectory(overridesArg.projectsRoot);
195
+ if (requestedProjectsRoot !== storedArg.projectsRoot) {
196
+ throw new Error('The projects root is immutable after it has been adopted.');
263
197
  }
264
198
  }
265
- return { ...storedArg, projectsRoot };
199
+ return { ...storedArg };
266
200
  };
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jbGFzc2VzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQVF4QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLHlDQUF5QyxDQUFDO0FBYy9GLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDaEUsSUFBSSxDQUNMLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQWdCLEVBQUUsT0FBZSxFQUFVLEVBQUU7SUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxHQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDeEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE9BQU8sMENBQTBDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFjLEVBQVUsRUFBRTtJQUMvQyxJQUFJLFNBQVMsQ0FBQyxJQUFJO1FBQUUsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELE9BQU8sU0FBUyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3BE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
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jbGFzc2VzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsbUJBQW1CLEdBRXBCLE1BQU0sc0JBQXNCLENBQUM7QUFROUIsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyx5Q0FBeUMsQ0FBQztBQUkvRixNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQWdCLEVBQUUsT0FBZSxFQUFVLEVBQUU7SUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxHQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDeEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE9BQU8sMENBQTBDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFjLEVBQVUsRUFBRTtJQUMvQyxJQUFJLFNBQVMsQ0FBQyxJQUFJO1FBQUUsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELE9BQU8sU0FBUyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBaUIsRUFBTyxFQUFFO0lBQ2pELElBQUksTUFBVyxDQUFDO0lBQ2hCLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFT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
@@ -83,6 +83,7 @@ export declare class OpenCodeController {
83
83
  private flexAutoAcceptDrainTask?;
84
84
  private runtimeConfig?;
85
85
  private controllerId?;
86
+ private openCodeRuntimeDirectory?;
86
87
  private authStore?;
87
88
  private passkeyManager?;
88
89
  private openCodeSupervisor?;
@@ -189,10 +190,12 @@ export declare class OpenCodeController {
189
190
  private unauthenticatedPreflightCount;
190
191
  private readonly unauthenticatedPreflightCountsByPeer;
191
192
  constructor(optionsArg: IControllerStartOptions);
193
+ private captureInheritedUpgradeCoordination;
192
194
  start(): Promise<IControllerStartResult>;
193
195
  stop(): Promise<void>;
194
196
  getStatus(): IControllerStatus;
195
197
  private performStart;
198
+ private coordinatorForUpgradeToken;
196
199
  private startOpenCodeEventStream;
197
200
  private acquireOpenCodeRuntimeLease;
198
201
  private sealOpenCodeRuntimeAdmission;
@@ -220,7 +223,7 @@ export declare class OpenCodeController {
220
223
  private createRouter;
221
224
  private runAudited;
222
225
  private requireProjectsRoot;
223
- private ensureInitialProject;
226
+ private registerExplicitInitialProject;
224
227
  private reconcileProjectState;
225
228
  private finishProjectRemoval;
226
229
  private runControllerProjectMutation;