@mostok/codexes 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +88 -0
  3. package/dist/accounts/account-registry.d.ts +30 -0
  4. package/dist/accounts/account-registry.js +263 -0
  5. package/dist/accounts/account-registry.js.map +1 -0
  6. package/dist/accounts/account-resolution.d.ts +16 -0
  7. package/dist/accounts/account-resolution.js +71 -0
  8. package/dist/accounts/account-resolution.js.map +1 -0
  9. package/dist/accounts/resolve-active-account.d.ts +6 -0
  10. package/dist/accounts/resolve-active-account.js +32 -0
  11. package/dist/accounts/resolve-active-account.js.map +1 -0
  12. package/dist/cli.d.ts +1 -0
  13. package/dist/cli.js +3426 -0
  14. package/dist/cli.js.map +7 -0
  15. package/dist/commands/account-add/run-account-add-command.d.ts +2 -0
  16. package/dist/commands/account-add/run-account-add-command.js +296 -0
  17. package/dist/commands/account-add/run-account-add-command.js.map +1 -0
  18. package/dist/commands/account-list/run-account-list-command.d.ts +2 -0
  19. package/dist/commands/account-list/run-account-list-command.js +48 -0
  20. package/dist/commands/account-list/run-account-list-command.js.map +1 -0
  21. package/dist/commands/account-remove/run-account-remove-command.d.ts +2 -0
  22. package/dist/commands/account-remove/run-account-remove-command.js +52 -0
  23. package/dist/commands/account-remove/run-account-remove-command.js.map +1 -0
  24. package/dist/commands/account-use/run-account-use-command.d.ts +2 -0
  25. package/dist/commands/account-use/run-account-use-command.js +78 -0
  26. package/dist/commands/account-use/run-account-use-command.js.map +1 -0
  27. package/dist/commands/root/run-root-command.d.ts +2 -0
  28. package/dist/commands/root/run-root-command.js +175 -0
  29. package/dist/commands/root/run-root-command.js.map +1 -0
  30. package/dist/config/wrapper-config.d.ts +24 -0
  31. package/dist/config/wrapper-config.js +145 -0
  32. package/dist/config/wrapper-config.js.map +1 -0
  33. package/dist/core/bootstrap.d.ts +8 -0
  34. package/dist/core/bootstrap.js +32 -0
  35. package/dist/core/bootstrap.js.map +1 -0
  36. package/dist/core/context.d.ts +33 -0
  37. package/dist/core/context.js +72 -0
  38. package/dist/core/context.js.map +1 -0
  39. package/dist/core/paths.d.ts +12 -0
  40. package/dist/core/paths.js +30 -0
  41. package/dist/core/paths.js.map +1 -0
  42. package/dist/logging/logger.d.ts +18 -0
  43. package/dist/logging/logger.js +56 -0
  44. package/dist/logging/logger.js.map +1 -0
  45. package/dist/process/codex-launch-spec.d.ts +5 -0
  46. package/dist/process/codex-launch-spec.js +80 -0
  47. package/dist/process/codex-launch-spec.js.map +1 -0
  48. package/dist/process/find-codex-binary.d.ts +14 -0
  49. package/dist/process/find-codex-binary.js +73 -0
  50. package/dist/process/find-codex-binary.js.map +1 -0
  51. package/dist/process/run-codex-login.d.ts +14 -0
  52. package/dist/process/run-codex-login.js +97 -0
  53. package/dist/process/run-codex-login.js.map +1 -0
  54. package/dist/process/spawn-codex-command.d.ts +7 -0
  55. package/dist/process/spawn-codex-command.js +69 -0
  56. package/dist/process/spawn-codex-command.js.map +1 -0
  57. package/dist/runtime/activate-account/activate-account.d.ts +27 -0
  58. package/dist/runtime/activate-account/activate-account.js +298 -0
  59. package/dist/runtime/activate-account/activate-account.js.map +1 -0
  60. package/dist/runtime/auth-state-probe.d.ts +57 -0
  61. package/dist/runtime/auth-state-probe.js +394 -0
  62. package/dist/runtime/auth-state-probe.js.map +1 -0
  63. package/dist/runtime/init/initialize-runtime.d.ts +19 -0
  64. package/dist/runtime/init/initialize-runtime.js +275 -0
  65. package/dist/runtime/init/initialize-runtime.js.map +1 -0
  66. package/dist/runtime/lock/runtime-lock.d.ts +11 -0
  67. package/dist/runtime/lock/runtime-lock.js +99 -0
  68. package/dist/runtime/lock/runtime-lock.js.map +1 -0
  69. package/dist/runtime/login-workspace.d.ts +18 -0
  70. package/dist/runtime/login-workspace.js +171 -0
  71. package/dist/runtime/login-workspace.js.map +1 -0
  72. package/dist/runtime/runtime-contract.d.ts +44 -0
  73. package/dist/runtime/runtime-contract.js +79 -0
  74. package/dist/runtime/runtime-contract.js.map +1 -0
  75. package/dist/selection/account-auth-state.d.ts +23 -0
  76. package/dist/selection/account-auth-state.js +132 -0
  77. package/dist/selection/account-auth-state.js.map +1 -0
  78. package/dist/selection/select-account.d.ts +11 -0
  79. package/dist/selection/select-account.js +168 -0
  80. package/dist/selection/select-account.js.map +1 -0
  81. package/dist/selection/usage-cache.d.ts +24 -0
  82. package/dist/selection/usage-cache.js +106 -0
  83. package/dist/selection/usage-cache.js.map +1 -0
  84. package/dist/selection/usage-client.d.ts +23 -0
  85. package/dist/selection/usage-client.js +143 -0
  86. package/dist/selection/usage-client.js.map +1 -0
  87. package/dist/selection/usage-normalize.d.ts +7 -0
  88. package/dist/selection/usage-normalize.js +209 -0
  89. package/dist/selection/usage-normalize.js.map +1 -0
  90. package/dist/selection/usage-probe-coordinator.d.ts +18 -0
  91. package/dist/selection/usage-probe-coordinator.js +69 -0
  92. package/dist/selection/usage-probe-coordinator.js.map +1 -0
  93. package/dist/selection/usage-types.d.ts +59 -0
  94. package/dist/selection/usage-types.js +2 -0
  95. package/dist/selection/usage-types.js.map +1 -0
  96. package/package.json +59 -0
@@ -0,0 +1,298 @@
1
+ import { copyFile, cp, mkdir, readFile, rm, stat } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { createHash } from "node:crypto";
4
+ import { resolveAccountRuntimePaths } from "../runtime-contract.js";
5
+ export async function activateAccountIntoSharedRuntime(input) {
6
+ const runtimePaths = resolveAccountRuntimePaths(input.runtimeContract, input.account.id);
7
+ const accountStateRoot = runtimePaths.accountStateDirectory;
8
+ const backupRoot = path.join(runtimePaths.runtimeBackupDirectory, "active");
9
+ input.logger.info("account_activation.start", {
10
+ accountId: input.account.id,
11
+ label: input.account.label,
12
+ accountStateRoot,
13
+ sharedCodexHome: input.sharedCodexHome,
14
+ backupRoot,
15
+ });
16
+ await rm(backupRoot, { force: true, recursive: true }).catch(() => undefined);
17
+ await mkdir(backupRoot, { recursive: true });
18
+ const accountRules = input.runtimeContract.fileRules.filter((rule) => rule.classification === "account");
19
+ const authSourcePath = path.join(accountStateRoot, "auth.json");
20
+ if (!(await pathExists(authSourcePath))) {
21
+ input.logger.error("account_activation.missing_auth", {
22
+ accountId: input.account.id,
23
+ authSourcePath,
24
+ });
25
+ throw new Error(`Account "${input.account.label}" has no stored auth.json; add the account again.`);
26
+ }
27
+ try {
28
+ for (const rule of accountRules) {
29
+ await backupRuntimeArtifact({
30
+ backupRoot,
31
+ logger: input.logger,
32
+ rule,
33
+ sharedCodexHome: input.sharedCodexHome,
34
+ });
35
+ await replaceRuntimeArtifact({
36
+ accountStateRoot,
37
+ logger: input.logger,
38
+ rule,
39
+ sharedCodexHome: input.sharedCodexHome,
40
+ });
41
+ }
42
+ }
43
+ catch (error) {
44
+ input.logger.error("account_activation.failed", {
45
+ accountId: input.account.id,
46
+ message: error instanceof Error ? error.message : String(error),
47
+ });
48
+ await restoreSharedRuntimeFromBackup({
49
+ account: input.account,
50
+ backupRoot,
51
+ logger: input.logger,
52
+ runtimeContract: input.runtimeContract,
53
+ sharedCodexHome: input.sharedCodexHome,
54
+ });
55
+ throw error;
56
+ }
57
+ input.logger.info("account_activation.complete", {
58
+ accountId: input.account.id,
59
+ sharedCodexHome: input.sharedCodexHome,
60
+ });
61
+ return {
62
+ account: input.account,
63
+ backupRoot,
64
+ runtimeContract: input.runtimeContract,
65
+ sharedCodexHome: input.sharedCodexHome,
66
+ sourceAccountStateRoot: accountStateRoot,
67
+ };
68
+ }
69
+ export async function syncSharedRuntimeBackToAccount(input) {
70
+ const accountRules = input.session.runtimeContract.fileRules.filter((rule) => rule.classification === "account");
71
+ input.logger.info("account_sync.start", {
72
+ accountId: input.session.account.id,
73
+ sharedCodexHome: input.session.sharedCodexHome,
74
+ accountStateRoot: input.session.sourceAccountStateRoot,
75
+ });
76
+ for (const rule of accountRules) {
77
+ await syncRuntimeArtifact({
78
+ accountStateRoot: input.session.sourceAccountStateRoot,
79
+ logger: input.logger,
80
+ rule,
81
+ sharedCodexHome: input.session.sharedCodexHome,
82
+ });
83
+ }
84
+ input.logger.info("account_sync.complete", {
85
+ accountId: input.session.account.id,
86
+ });
87
+ }
88
+ export async function restoreSharedRuntimeFromBackup(input) {
89
+ const accountRules = input.runtimeContract.fileRules.filter((rule) => rule.classification === "account");
90
+ input.logger.warn("account_activation.restore.start", {
91
+ accountId: input.account.id,
92
+ backupRoot: input.backupRoot,
93
+ sharedCodexHome: input.sharedCodexHome,
94
+ });
95
+ for (const rule of accountRules) {
96
+ await restoreRuntimeArtifact({
97
+ backupRoot: input.backupRoot,
98
+ logger: input.logger,
99
+ rule,
100
+ sharedCodexHome: input.sharedCodexHome,
101
+ });
102
+ }
103
+ input.logger.warn("account_activation.restore.complete", {
104
+ accountId: input.account.id,
105
+ });
106
+ }
107
+ async function backupRuntimeArtifact(input) {
108
+ const sourcePath = path.join(input.sharedCodexHome, normalizedPattern(input.rule.pathPattern));
109
+ const backupPath = path.join(input.backupRoot, normalizedPattern(input.rule.pathPattern));
110
+ if (!(await pathExists(sourcePath))) {
111
+ input.logger.debug("account_activation.backup.skip", {
112
+ pathPattern: input.rule.pathPattern,
113
+ sourcePath,
114
+ reason: "missing",
115
+ });
116
+ return;
117
+ }
118
+ await mkdir(path.dirname(backupPath), { recursive: true });
119
+ if (isDirectoryPattern(input.rule)) {
120
+ await cp(sourcePath, backupPath, { recursive: true });
121
+ }
122
+ else {
123
+ await copyFile(sourcePath, backupPath);
124
+ }
125
+ input.logger.debug("account_activation.backup.complete", {
126
+ pathPattern: input.rule.pathPattern,
127
+ sourcePath,
128
+ backupPath,
129
+ });
130
+ }
131
+ async function replaceRuntimeArtifact(input) {
132
+ const sourcePath = path.join(input.accountStateRoot, normalizedPattern(input.rule.pathPattern));
133
+ const targetPath = path.join(input.sharedCodexHome, normalizedPattern(input.rule.pathPattern));
134
+ await rm(targetPath, { force: true, recursive: true }).catch(() => undefined);
135
+ if (!(await pathExists(sourcePath))) {
136
+ input.logger.debug("account_activation.replace.skip", {
137
+ pathPattern: input.rule.pathPattern,
138
+ sourcePath,
139
+ reason: "missing",
140
+ });
141
+ return;
142
+ }
143
+ await mkdir(path.dirname(targetPath), { recursive: true });
144
+ if (isDirectoryPattern(input.rule)) {
145
+ await cp(sourcePath, targetPath, { recursive: true });
146
+ }
147
+ else {
148
+ await copyFile(sourcePath, targetPath);
149
+ }
150
+ input.logger.debug("account_activation.replace.complete", {
151
+ pathPattern: input.rule.pathPattern,
152
+ sourcePath,
153
+ targetPath,
154
+ });
155
+ }
156
+ async function syncRuntimeArtifact(input) {
157
+ const sourcePath = path.join(input.sharedCodexHome, normalizedPattern(input.rule.pathPattern));
158
+ const targetPath = path.join(input.accountStateRoot, normalizedPattern(input.rule.pathPattern));
159
+ if (!(await pathExists(sourcePath))) {
160
+ input.logger.debug("account_sync.skip", {
161
+ pathPattern: input.rule.pathPattern,
162
+ sourcePath,
163
+ reason: "missing",
164
+ });
165
+ return;
166
+ }
167
+ const changed = await hasArtifactChanged(sourcePath, targetPath, isDirectoryPattern(input.rule));
168
+ if (!changed) {
169
+ input.logger.debug("account_sync.no_change", {
170
+ pathPattern: input.rule.pathPattern,
171
+ sourcePath,
172
+ targetPath,
173
+ });
174
+ return;
175
+ }
176
+ await rm(targetPath, { force: true, recursive: true }).catch(() => undefined);
177
+ await mkdir(path.dirname(targetPath), { recursive: true });
178
+ if (isDirectoryPattern(input.rule)) {
179
+ await cp(sourcePath, targetPath, { recursive: true });
180
+ }
181
+ else {
182
+ await copyFile(sourcePath, targetPath);
183
+ }
184
+ input.logger.info("account_sync.updated", {
185
+ pathPattern: input.rule.pathPattern,
186
+ sourcePath,
187
+ targetPath,
188
+ });
189
+ }
190
+ async function restoreRuntimeArtifact(input) {
191
+ const backupPath = path.join(input.backupRoot, normalizedPattern(input.rule.pathPattern));
192
+ const targetPath = path.join(input.sharedCodexHome, normalizedPattern(input.rule.pathPattern));
193
+ await rm(targetPath, { force: true, recursive: true }).catch(() => undefined);
194
+ if (!(await pathExists(backupPath))) {
195
+ input.logger.debug("account_activation.restore.skip", {
196
+ pathPattern: input.rule.pathPattern,
197
+ backupPath,
198
+ reason: "missing",
199
+ });
200
+ return;
201
+ }
202
+ await mkdir(path.dirname(targetPath), { recursive: true });
203
+ if (isDirectoryPattern(input.rule)) {
204
+ await cp(backupPath, targetPath, { recursive: true });
205
+ }
206
+ else {
207
+ await copyFile(backupPath, targetPath);
208
+ }
209
+ input.logger.debug("account_activation.restore.complete_artifact", {
210
+ pathPattern: input.rule.pathPattern,
211
+ backupPath,
212
+ targetPath,
213
+ });
214
+ }
215
+ function isDirectoryPattern(rule) {
216
+ return rule.pathPattern.endsWith("/**");
217
+ }
218
+ function normalizedPattern(pattern) {
219
+ return pattern.endsWith("/**") ? pattern.slice(0, -3) : pattern;
220
+ }
221
+ async function hasArtifactChanged(sourcePath, targetPath, isDirectory) {
222
+ if (!(await pathExists(targetPath))) {
223
+ return true;
224
+ }
225
+ if (isDirectory) {
226
+ const [sourceHash, targetHash] = await Promise.all([
227
+ hashDirectory(sourcePath),
228
+ hashDirectory(targetPath),
229
+ ]);
230
+ return sourceHash !== targetHash;
231
+ }
232
+ const [sourceHash, targetHash] = await Promise.all([
233
+ hashFile(sourcePath),
234
+ hashFile(targetPath),
235
+ ]);
236
+ return sourceHash !== targetHash;
237
+ }
238
+ async function hashFile(filePath) {
239
+ const content = await readFile(filePath);
240
+ return createHash("sha256").update(content).digest("hex");
241
+ }
242
+ async function hashDirectory(directoryPath) {
243
+ const entries = await collectFiles(directoryPath);
244
+ const hash = createHash("sha256");
245
+ for (const entry of entries.sort()) {
246
+ hash.update(entry.relativePath);
247
+ hash.update(await readFile(entry.absolutePath));
248
+ }
249
+ return hash.digest("hex");
250
+ }
251
+ async function collectFiles(root) {
252
+ const rootStats = await stat(root).catch(() => null);
253
+ if (!rootStats) {
254
+ return [];
255
+ }
256
+ if (!rootStats.isDirectory()) {
257
+ return [{ absolutePath: root, relativePath: path.basename(root) }];
258
+ }
259
+ const results = [];
260
+ const stack = [root];
261
+ while (stack.length > 0) {
262
+ const current = stack.pop();
263
+ if (!current) {
264
+ continue;
265
+ }
266
+ const entries = await import("node:fs/promises").then((fs) => fs.readdir(current, { withFileTypes: true }));
267
+ for (const entry of entries) {
268
+ const absolutePath = path.join(current, entry.name);
269
+ if (entry.isDirectory()) {
270
+ stack.push(absolutePath);
271
+ continue;
272
+ }
273
+ if (entry.isFile()) {
274
+ results.push({
275
+ absolutePath,
276
+ relativePath: path.relative(root, absolutePath).split(path.sep).join("/"),
277
+ });
278
+ }
279
+ }
280
+ }
281
+ return results;
282
+ }
283
+ async function pathExists(targetPath) {
284
+ try {
285
+ await stat(targetPath);
286
+ return true;
287
+ }
288
+ catch (error) {
289
+ if (typeof error === "object" &&
290
+ error !== null &&
291
+ "code" in error &&
292
+ error.code === "ENOENT") {
293
+ return false;
294
+ }
295
+ throw error;
296
+ }
297
+ }
298
+ //# sourceMappingURL=activate-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activate-account.js","sourceRoot":"","sources":["../../../src/runtime/activate-account/activate-account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ interface ProbeEnvironment {
2
+ codexBinary: string;
3
+ sourceCodexHome: string;
4
+ workingRoot: string;
5
+ }
6
+ interface ProbeScenarioResult {
7
+ key: string;
8
+ description: string;
9
+ commandExitCode: number | null;
10
+ commandOutput: string;
11
+ commandSucceeded: boolean;
12
+ beforeFiles: FileFingerprint[];
13
+ afterFiles: FileFingerprint[];
14
+ changedFiles: FileDelta[];
15
+ createdFiles: FileDelta[];
16
+ removedFiles: FileDelta[];
17
+ }
18
+ interface FileFingerprint {
19
+ relativePath: string;
20
+ size: number;
21
+ modifiedMs: number;
22
+ sha256: string;
23
+ }
24
+ interface FileDelta {
25
+ relativePath: string;
26
+ before?: FileFingerprint;
27
+ after?: FileFingerprint;
28
+ }
29
+ interface AuthStateProbeReport {
30
+ platform: NodeJS.Platform;
31
+ sourceCodexHome: string;
32
+ codexBinary: string;
33
+ credentialStore: {
34
+ explicitMode: string;
35
+ inferredFromArtifacts: string;
36
+ };
37
+ sourceLayout: SourceLayoutSummary;
38
+ scenarios: ProbeScenarioResult[];
39
+ conclusion: {
40
+ authJsonAloneSufficient: boolean;
41
+ requiresSqliteIsolation: boolean;
42
+ recommendedAccountScopedPatterns: string[];
43
+ recommendedSharedPatterns: string[];
44
+ recommendedEphemeralPatterns: string[];
45
+ recommendedProtectedPatterns: string[];
46
+ rationale: string[];
47
+ posixAssumption: string;
48
+ };
49
+ }
50
+ interface SourceLayoutSummary {
51
+ topLevelEntries: string[];
52
+ authJsonPresent: boolean;
53
+ sessionFileCount: number;
54
+ sqliteFiles: string[];
55
+ }
56
+ export declare function runAuthStateProbe(input: ProbeEnvironment): Promise<AuthStateProbeReport>;
57
+ export {};