@songsid/agend 2.3.0 → 2.3.2-beta.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 (201) hide show
  1. package/README.md +1 -1
  2. package/README.zh-TW.md +1 -1
  3. package/dist/authority/authority-state.d.ts +4 -0
  4. package/dist/authority/authority-state.js +16 -10
  5. package/dist/authority/authority-state.js.map +1 -1
  6. package/dist/authority/session-authorizations.d.ts +7 -1
  7. package/dist/authority/session-authorizations.js +6 -4
  8. package/dist/authority/session-authorizations.js.map +1 -1
  9. package/dist/authority/web-authority.d.ts +19 -6
  10. package/dist/authority/web-authority.js +22 -8
  11. package/dist/authority/web-authority.js.map +1 -1
  12. package/dist/backend/muse.d.ts +20 -2
  13. package/dist/backend/muse.js +154 -16
  14. package/dist/backend/muse.js.map +1 -1
  15. package/dist/channel/adapters/discord.d.ts +2 -0
  16. package/dist/channel/adapters/discord.js +33 -3
  17. package/dist/channel/adapters/discord.js.map +1 -1
  18. package/dist/channel/adapters/telegram.d.ts +1 -1
  19. package/dist/channel/adapters/telegram.js +3 -35
  20. package/dist/channel/adapters/telegram.js.map +1 -1
  21. package/dist/channel/mcp-tools.js +5 -5
  22. package/dist/channel/mcp-tools.js.map +1 -1
  23. package/dist/channel/types.d.ts +11 -0
  24. package/dist/cli.js +6 -3
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config-validator.js +42 -5
  27. package/dist/config-validator.js.map +1 -1
  28. package/dist/daemon.d.ts +47 -3
  29. package/dist/daemon.js +380 -60
  30. package/dist/daemon.js.map +1 -1
  31. package/dist/delivery-outbox.d.ts +23 -1
  32. package/dist/delivery-outbox.js +114 -17
  33. package/dist/delivery-outbox.js.map +1 -1
  34. package/dist/doctor.d.ts +3 -0
  35. package/dist/doctor.js +9 -0
  36. package/dist/doctor.js.map +1 -1
  37. package/dist/event-log.d.ts +5 -0
  38. package/dist/event-log.js +13 -0
  39. package/dist/event-log.js.map +1 -1
  40. package/dist/fleet-context.d.ts +1 -1
  41. package/dist/fleet-lock.d.ts +6 -0
  42. package/dist/fleet-lock.js +19 -0
  43. package/dist/fleet-lock.js.map +1 -1
  44. package/dist/fleet-manager.d.ts +174 -2
  45. package/dist/fleet-manager.js +678 -68
  46. package/dist/fleet-manager.js.map +1 -1
  47. package/dist/fleet-process-handlers.d.ts +1 -0
  48. package/dist/fleet-process-handlers.js +9 -1
  49. package/dist/fleet-process-handlers.js.map +1 -1
  50. package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +11 -0
  51. package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +4 -4
  52. package/dist/general-knowledge/skills/web-appearance/SKILL.md +7 -7
  53. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +109 -57
  54. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +110 -58
  55. package/dist/guest-seen-people.d.ts +38 -0
  56. package/dist/guest-seen-people.js +78 -0
  57. package/dist/guest-seen-people.js.map +1 -0
  58. package/dist/instance-config-impact.js +4 -1
  59. package/dist/instance-config-impact.js.map +1 -1
  60. package/dist/instance-lifecycle.d.ts +2 -0
  61. package/dist/instance-lifecycle.js +27 -1
  62. package/dist/instance-lifecycle.js.map +1 -1
  63. package/dist/locale.js +62 -12
  64. package/dist/locale.js.map +1 -1
  65. package/dist/log-service.js +1 -0
  66. package/dist/log-service.js.map +1 -1
  67. package/dist/mac-auto-restore.d.ts +117 -0
  68. package/dist/mac-auto-restore.js +294 -0
  69. package/dist/mac-auto-restore.js.map +1 -0
  70. package/dist/needs-you.js +1 -0
  71. package/dist/needs-you.js.map +1 -1
  72. package/dist/outbound-handlers.d.ts +2 -2
  73. package/dist/outbound-handlers.js +5 -5
  74. package/dist/outbound-handlers.js.map +1 -1
  75. package/dist/outbound-schemas.d.ts +2 -0
  76. package/dist/outbound-schemas.js +2 -0
  77. package/dist/outbound-schemas.js.map +1 -1
  78. package/dist/public-web-gateway.js +9 -1
  79. package/dist/public-web-gateway.js.map +1 -1
  80. package/dist/search/search-index.d.ts +10 -2
  81. package/dist/search/search-index.js +17 -4
  82. package/dist/search/search-index.js.map +1 -1
  83. package/dist/service-installer.d.ts +23 -1
  84. package/dist/service-installer.js +40 -11
  85. package/dist/service-installer.js.map +1 -1
  86. package/dist/session-oom-stop.d.ts +45 -0
  87. package/dist/session-oom-stop.js +259 -0
  88. package/dist/session-oom-stop.js.map +1 -0
  89. package/dist/session-oom.d.ts +13 -0
  90. package/dist/session-oom.js +119 -7
  91. package/dist/session-oom.js.map +1 -1
  92. package/dist/settings-api.d.ts +27 -1
  93. package/dist/settings-api.js +108 -2
  94. package/dist/settings-api.js.map +1 -1
  95. package/dist/settings-change.js +37 -3
  96. package/dist/settings-change.js.map +1 -1
  97. package/dist/settings-effect.js +5 -2
  98. package/dist/settings-effect.js.map +1 -1
  99. package/dist/spawn-gate.d.ts +2 -0
  100. package/dist/spawn-gate.js +17 -4
  101. package/dist/spawn-gate.js.map +1 -1
  102. package/dist/start-attempt.d.ts +15 -1
  103. package/dist/start-attempt.js +35 -5
  104. package/dist/start-attempt.js.map +1 -1
  105. package/dist/start-failure-chat.d.ts +41 -0
  106. package/dist/start-failure-chat.js +159 -0
  107. package/dist/start-failure-chat.js.map +1 -0
  108. package/dist/start-failure-notice.d.ts +4 -0
  109. package/dist/start-failure-notice.js +8 -0
  110. package/dist/start-failure-notice.js.map +1 -1
  111. package/dist/start-failure.d.ts +49 -0
  112. package/dist/start-failure.js +141 -1
  113. package/dist/start-failure.js.map +1 -1
  114. package/dist/telegram-api-root.d.ts +1 -0
  115. package/dist/telegram-api-root.js +40 -0
  116. package/dist/telegram-api-root.js.map +1 -0
  117. package/dist/turn-reply-guard.d.ts +25 -0
  118. package/dist/turn-reply-guard.js +111 -12
  119. package/dist/turn-reply-guard.js.map +1 -1
  120. package/dist/types.d.ts +21 -3
  121. package/dist/ui/backend-signin.js +5 -2
  122. package/dist/ui/chat-ambient.js +1 -1
  123. package/dist/ui/chat-effects.js +4 -4
  124. package/dist/ui/chat-render.js +5 -2
  125. package/dist/ui/chat-strings.js +2 -2
  126. package/dist/ui/chat-thread.js +2 -2
  127. package/dist/ui/first-run.js +2 -2
  128. package/dist/ui/fleet-canvas-view.js +114 -0
  129. package/dist/ui/fleet-canvas.js +15 -77
  130. package/dist/ui/fleet-office-editor.js +80 -5
  131. package/dist/ui/fleet-office-layout.js +197 -0
  132. package/dist/ui/fleet-office-model.js +6 -3
  133. package/dist/ui/fleet-office-pack.d.ts +39 -0
  134. package/dist/ui/fleet-office-pack.js +240 -29
  135. package/dist/ui/fleet-office-skin.js +130 -21
  136. package/dist/ui/fleet-office-store.js +75 -4
  137. package/dist/ui/fleet-office-view.js +154 -0
  138. package/dist/ui/fleet-office-zones.js +95 -33
  139. package/dist/ui/fleet-office.js +530 -94
  140. package/dist/ui/fleet-usage.js +7 -6
  141. package/dist/ui/panel-chat.js +20 -7
  142. package/dist/ui/panel-details.js +2 -2
  143. package/dist/ui/panel-fleet.js +11 -77
  144. package/dist/ui/panel-log.js +5 -5
  145. package/dist/ui/panel-settings.js +586 -164
  146. package/dist/ui/search-dialog.js +26 -7
  147. package/dist/ui/settings-appearance.js +82 -29
  148. package/dist/ui/settings-apply.js +42 -7
  149. package/dist/ui/settings-dialogs.js +68 -22
  150. package/dist/ui/settings-draft.js +51 -0
  151. package/dist/ui/settings-guests.js +244 -78
  152. package/dist/ui/settings-learn.js +2 -2
  153. package/dist/ui/settings-model.js +2 -0
  154. package/dist/ui/settings-registry.js +142 -0
  155. package/dist/ui/settings-strings.js +108 -44
  156. package/dist/ui/settings-web-authority.js +34 -23
  157. package/dist/ui/shared/app-i18n.js +14 -0
  158. package/dist/ui/shared/app-nav.js +10 -5
  159. package/dist/ui/shared/app-prefs.js +80 -2
  160. package/dist/ui/shared/app-route.js +39 -5
  161. package/dist/ui/shared/app-shell.js +80 -8
  162. package/dist/ui/shared/app-stream.js +2 -1
  163. package/dist/ui/shared/app.css +251 -20
  164. package/dist/ui/shared/app.js +3 -0
  165. package/dist/ui/shared/effect-stock-trust.js +1 -1
  166. package/dist/ui/shared/identity-color.js +4 -4
  167. package/dist/ui/shared/signin.js +2 -2
  168. package/dist/ui/shared/ui-dialog.js +6 -1
  169. package/dist/ui/shared/ui-icons.js +2 -0
  170. package/dist/ui/shared/usage-dialog.js +21 -11
  171. package/dist/ui/shared/view-strings.js +2 -0
  172. package/dist/ui/shared/web-authorize.js +13 -12
  173. package/dist/web-api.d.ts +9 -3
  174. package/dist/web-api.js +161 -6
  175. package/dist/web-api.js.map +1 -1
  176. package/dist/web-auth.js +7 -1
  177. package/dist/web-auth.js.map +1 -1
  178. package/dist/web-experimental.d.ts +1 -1
  179. package/dist/web-experimental.js +1 -1
  180. package/dist/web-experimental.js.map +1 -1
  181. package/dist/web-mod-agent.js +2 -2
  182. package/dist/web-mod-agent.js.map +1 -1
  183. package/dist/web-office-skins.d.ts +108 -0
  184. package/dist/web-office-skins.js +298 -0
  185. package/dist/web-office-skins.js.map +1 -0
  186. package/dist/web-office-store.d.ts +8 -2
  187. package/dist/web-office-store.js +37 -7
  188. package/dist/web-office-store.js.map +1 -1
  189. package/dist/web-settings-patch.d.ts +6 -0
  190. package/dist/web-settings-patch.js +61 -4
  191. package/dist/web-settings-patch.js.map +1 -1
  192. package/dist/web-shell-routes.d.ts +4 -2
  193. package/dist/web-shell-routes.js +17 -7
  194. package/dist/web-shell-routes.js.map +1 -1
  195. package/dist/working-recovery.d.ts +104 -0
  196. package/dist/working-recovery.js +263 -0
  197. package/dist/working-recovery.js.map +1 -0
  198. package/dist/working-state-journal.d.ts +70 -0
  199. package/dist/working-state-journal.js +106 -0
  200. package/dist/working-state-journal.js.map +1 -0
  201. package/package.json +1 -1
@@ -0,0 +1,117 @@
1
+ export declare const RESTORE_RECORD = "fleet-auto-restore.json";
2
+ /** How long the kept copy may take to print its version. */
3
+ export declare const PREIMAGE_RUN_TIMEOUT_MS = 10000;
4
+ export interface RestoreCandidate {
5
+ version: string;
6
+ dir: string;
7
+ pkg: string;
8
+ node: string;
9
+ }
10
+ export interface RestoreRecord {
11
+ from: string;
12
+ to: string;
13
+ preimage: string;
14
+ attempts: number;
15
+ at: string;
16
+ result?: "restored" | "failed";
17
+ reason?: string;
18
+ failedTree?: string;
19
+ finishedAt?: string;
20
+ }
21
+ /** a < b, for plain releases and prereleases of the form x.y.z[-…] (the core decides; a prerelease of the same core is older). */
22
+ export declare function versionOlder(a: string, b: string): boolean;
23
+ /**
24
+ * The guards that need no file of the package: platform, the launchd job itself (its label in XPC_SERVICE_NAME —
25
+ * inherited by everything the job starts, its tmux panes too — AND launchd as the parent), plist, a version that never
26
+ * ran, the 3rd attempt. `startedHistory` "unreadable" (fleet-started.json there but not readable) holds, as unreadable
27
+ * evidence does elsewhere.
28
+ */
29
+ export declare function autoRestoreDue(input: {
30
+ platform: NodeJS.Platform;
31
+ env: NodeJS.ProcessEnv;
32
+ ppid: number;
33
+ plistExists: boolean;
34
+ installed: string;
35
+ startedHistory: string[] | "unreadable";
36
+ recentAttempts: number;
37
+ }): boolean;
38
+ /** Fable r1 on #2526: only the hop out of 2.2.x — no version newer than the copy may ever have completed a start here. */
39
+ export declare function historyAllowsRestoreTo(startedHistory: string[], candidate: string): boolean;
40
+ /**
41
+ * The kept copy to restore, or null: the newest `.agend-rollback/<v>-<ISO time>` (never a `-failed` tree) whose
42
+ * package is `@songsid/agend` at exactly `<v>`, a 2.2.x release older than `installed`, with dist/cli.js, launcher/agend
43
+ * and its bundled Node (a regular file) in place.
44
+ */
45
+ export declare function restoreCandidate(prefix: string, installed: string, arch?: string): RestoreCandidate | null;
46
+ export type RunVersion = (node: string, cli: string, timeoutMs: number) => {
47
+ status: number | null;
48
+ stdout: string;
49
+ };
50
+ /** The kept copy's own Node runs its cli.js --version and prints exactly its version (the last line). */
51
+ export declare function preimageRuns(cand: RestoreCandidate, run?: RunVersion): boolean;
52
+ /** One restore per installed version, ever: an O_EXCL claim file. */
53
+ export declare function claimRestore(home: string, installed: string): boolean;
54
+ export declare function readRestoreRecord(home: string): RestoreRecord | null;
55
+ export interface SwapFs {
56
+ rename(from: string, to: string): void;
57
+ exists(path: string): boolean;
58
+ unlink(path: string): void;
59
+ readlink(path: string): string | null;
60
+ /** Removes an empty directory only (rmdir). */
61
+ rmdir(path: string): void;
62
+ }
63
+ /**
64
+ * The swap: `root` (the installed package) aside to `<prefix>/.agend-rollback/<installed>-<time>-failed`, the kept copy
65
+ * into `root`. A failure of the second rename puts the first back. Then `<prefix>/bin/agend-install`, when it points
66
+ * at a file the restored package does not have, goes. Returns the failed tree's path.
67
+ */
68
+ export type SwapResult = {
69
+ ok: true;
70
+ failedTree: string;
71
+ }
72
+ /** `packageAt`: where the installed package is now — `root` again, or (`stranded`) the failed tree, nothing at `root`. */
73
+ | {
74
+ ok: false;
75
+ reason: string;
76
+ packageAt: string;
77
+ stranded: boolean;
78
+ };
79
+ export declare function swapInPreimage(prefix: string, root: string, installed: string, cand: RestoreCandidate, now: Date, fs?: SwapFs): SwapResult;
80
+ /** What the restore did, for start-attempt.ts's notices and exit. */
81
+ export type RestoreOutcome = {
82
+ kind: "not-due";
83
+ } | {
84
+ kind: "restored";
85
+ from: string;
86
+ to: string;
87
+ preimage: string;
88
+ }
89
+ /** `packageAt`: where the installed package (and its chat script) is now, for the correction notice. */
90
+ | {
91
+ kind: "failed";
92
+ from: string;
93
+ to: string;
94
+ reason: string;
95
+ packageAt: string;
96
+ stranded: boolean;
97
+ };
98
+ export interface AutoRestoreDeps {
99
+ platform?: NodeJS.Platform;
100
+ env?: NodeJS.ProcessEnv;
101
+ ppid?: number;
102
+ plistPath?: string;
103
+ arch?: string;
104
+ runVersion?: RunVersion;
105
+ fs?: SwapFs;
106
+ now?: Date;
107
+ /** The notices with the restore wording, sent before the swap (their script lives in the installed package). */
108
+ notify?: (from: string, to: string, preimage: string) => void;
109
+ log?: (line: string) => void;
110
+ }
111
+ /**
112
+ * The whole decision and act, for the installed package at `root` under `prefix`. `attempts`: this version's attempts
113
+ * in the window, this one included. Never throws.
114
+ */
115
+ export declare function maybeAutoRestore(home: string, root: string, prefix: string, installed: string, startedHistory: string[] | "unreadable", attempts: number, deps?: AutoRestoreDeps): RestoreOutcome;
116
+ /** After a start completes: the failed trees a restore kept for a report go (each ~235 MB; asynchronously). */
117
+ export declare function pruneFailedTrees(prefix: string): Promise<number>;
@@ -0,0 +1,294 @@
1
+ /**
2
+ * #2481 (design approved on the issue): on a Mac, a 2.3.x that crash-loops under launchd after an upgrade from 2.2.x is
3
+ * replaced by the 2.2.x package 2.2.x's own updater kept (`<prefix>/.agend-rollback/<2.2.x>-<time>/agend`), automatically
4
+ * and once. 2.2.x's updater can report such an upgrade as a success and does not roll back; from 2.3 on, agend-install
5
+ * rolls back by itself (#2420), so only the hop out of 2.2.x needs this.
6
+ *
7
+ * The failing fleet does it itself, from start-attempt.ts — no other process exists to act, and a child left behind dies
8
+ * with the job. Every guard must hold (autoRestoreDue, restoreCandidate, preimageRuns):
9
+ * - macOS, and this process is the launchd job (XPC_SERVICE_NAME), never a person's `fleet start`;
10
+ * - the installed version never completed a start here, and this is its 3rd attempt in the window (#2490's threshold;
11
+ * refused starts are no attempts, `agend stop` clears them);
12
+ * - the newest kept copy is a 2.2.x release older than the installed version, named and versioned as it says, with its
13
+ * files and bundled Node in place, and that Node runs its `cli.js --version` to exactly that version;
14
+ * - one O_EXCL claim per version: never a second try, whatever came of the first.
15
+ *
16
+ * Then, in order: the claim and the record's intent, the notices (the chat notice runs from the installed package, which
17
+ * is about to move), the swap — the installed tree aside to `.agend-rollback/<installed>-<time>-failed`, the copy in, by
18
+ * rename on one filesystem, renamed back if any step fails — the record's result, and the caller exits: launchd's
19
+ * KeepAlive starts the job again, now on 2.2.x. The plist is not touched: it names `<package>/node_modules/@songsid/
20
+ * agend-node-darwin-<arch>/bin/node <package>/dist/cli.js`, the same paths in both versions. The bin links point into the
21
+ * package path too; only 2.3's `agend-install` link would dangle, so it goes.
22
+ *
23
+ * The data caveat: the failing version may already have changed AgEnD's data before it failed (it ran, it never
24
+ * completed a start); the notice says so. 2.2.6 reading data 2.3.x wrote is the Data downgrade compatibility CI job.
25
+ *
26
+ * Only node built-ins (start-attempt.ts runs this before the rest of the CLI loads).
27
+ */
28
+ import { spawnSync } from "node:child_process";
29
+ import { existsSync, lstatSync, readFileSync, readdirSync, readlinkSync, renameSync, rmdirSync, statSync, unlinkSync, writeFileSync } from "node:fs";
30
+ import { rm } from "node:fs/promises";
31
+ import { homedir } from "node:os";
32
+ import { dirname, join, resolve } from "node:path";
33
+ export const RESTORE_RECORD = "fleet-auto-restore.json";
34
+ const RESTORE_CLAIM_PREFIX = "fleet-start-restore-";
35
+ const LAUNCHD_LABEL = "com.agend.fleet";
36
+ /** How long the kept copy may take to print its version. */
37
+ export const PREIMAGE_RUN_TIMEOUT_MS = 10_000;
38
+ const RELEASE = /^(\d+)\.(\d+)\.(\d+)$/;
39
+ /** a < b, for plain releases and prereleases of the form x.y.z[-…] (the core decides; a prerelease of the same core is older). */
40
+ export function versionOlder(a, b) {
41
+ const core = (v) => /^(\d+)\.(\d+)\.(\d+)/.exec(v)?.slice(1).map(Number) ?? null;
42
+ const ca = core(a), cb = core(b);
43
+ if (!ca || !cb)
44
+ return false;
45
+ for (let i = 0; i < 3; i++)
46
+ if (ca[i] !== cb[i])
47
+ return ca[i] < cb[i];
48
+ return a.includes("-") && !b.includes("-");
49
+ }
50
+ /**
51
+ * The guards that need no file of the package: platform, the launchd job itself (its label in XPC_SERVICE_NAME —
52
+ * inherited by everything the job starts, its tmux panes too — AND launchd as the parent), plist, a version that never
53
+ * ran, the 3rd attempt. `startedHistory` "unreadable" (fleet-started.json there but not readable) holds, as unreadable
54
+ * evidence does elsewhere.
55
+ */
56
+ export function autoRestoreDue(input) {
57
+ return input.platform === "darwin"
58
+ && input.env.XPC_SERVICE_NAME === LAUNCHD_LABEL
59
+ && input.ppid === 1
60
+ && input.plistExists
61
+ && input.startedHistory !== "unreadable"
62
+ && !input.startedHistory.includes(input.installed)
63
+ && input.recentAttempts >= 3;
64
+ }
65
+ /** Fable r1 on #2526: only the hop out of 2.2.x — no version newer than the copy may ever have completed a start here. */
66
+ export function historyAllowsRestoreTo(startedHistory, candidate) {
67
+ return startedHistory.every(v => !versionOlder(candidate, v));
68
+ }
69
+ /**
70
+ * The kept copy to restore, or null: the newest `.agend-rollback/<v>-<ISO time>` (never a `-failed` tree) whose
71
+ * package is `@songsid/agend` at exactly `<v>`, a 2.2.x release older than `installed`, with dist/cli.js, launcher/agend
72
+ * and its bundled Node (a regular file) in place.
73
+ */
74
+ export function restoreCandidate(prefix, installed, arch = process.arch) {
75
+ const base = join(prefix, ".agend-rollback");
76
+ let names = [];
77
+ try {
78
+ names = readdirSync(base);
79
+ }
80
+ catch {
81
+ return null;
82
+ }
83
+ const kept = names
84
+ .map(name => ({ name, version: /^(\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+?)?)-\d{4}-\d\d-\d\dT[0-9-]+Z$/.exec(name)?.[1] ?? null }))
85
+ .filter((e) => e.version !== null)
86
+ .map(e => ({ ...e, mtime: (() => { try {
87
+ return statSync(join(base, e.name)).mtimeMs;
88
+ }
89
+ catch {
90
+ return 0;
91
+ } })() }))
92
+ .sort((a, b) => b.mtime - a.mtime);
93
+ const newest = kept[0];
94
+ if (!newest)
95
+ return null;
96
+ const pkg = join(base, newest.name, "agend");
97
+ let manifest;
98
+ try {
99
+ manifest = JSON.parse(readFileSync(join(pkg, "package.json"), "utf8"));
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ if (manifest.name !== "@songsid/agend" || manifest.version !== newest.version)
105
+ return null;
106
+ const m = RELEASE.exec(newest.version);
107
+ if (!m || m[1] !== "2" || m[2] !== "2" || !versionOlder(newest.version, installed))
108
+ return null;
109
+ const node = join(pkg, "node_modules", "@songsid", `agend-node-darwin-${arch}`, "bin", "node");
110
+ try {
111
+ if (!statSync(join(pkg, "dist", "cli.js")).isFile() || !existsSync(join(pkg, "launcher", "agend")))
112
+ return null;
113
+ if (!lstatSync(node).isFile())
114
+ return null;
115
+ }
116
+ catch {
117
+ return null;
118
+ }
119
+ return { version: newest.version, dir: join(base, newest.name), pkg, node };
120
+ }
121
+ const defaultRunVersion = (node, cli, timeoutMs) => {
122
+ const r = spawnSync(node, [cli, "--version"], {
123
+ encoding: "utf8", timeout: timeoutMs, killSignal: "SIGKILL", stdio: ["ignore", "pipe", "ignore"],
124
+ env: { PATH: "/usr/bin:/bin", HOME: process.env.HOME ?? homedir(), LANG: "C" },
125
+ });
126
+ return { status: r.status, stdout: r.stdout ?? "" };
127
+ };
128
+ /** The kept copy's own Node runs its cli.js --version and prints exactly its version (the last line). */
129
+ export function preimageRuns(cand, run = defaultRunVersion) {
130
+ try {
131
+ const r = run(cand.node, join(cand.pkg, "dist", "cli.js"), PREIMAGE_RUN_TIMEOUT_MS);
132
+ return r.status === 0 && r.stdout.trim().split("\n").at(-1)?.trim() === cand.version;
133
+ }
134
+ catch {
135
+ return false;
136
+ }
137
+ }
138
+ /** One restore per installed version, ever: an O_EXCL claim file. */
139
+ export function claimRestore(home, installed) {
140
+ if (!/^[0-9A-Za-z.+-]{1,64}$/.test(installed))
141
+ return false;
142
+ try {
143
+ writeFileSync(join(home, `${RESTORE_CLAIM_PREFIX}${installed}`), new Date().toISOString() + "\n", { flag: "wx", mode: 0o600 });
144
+ return true;
145
+ }
146
+ catch {
147
+ return false;
148
+ }
149
+ }
150
+ export function readRestoreRecord(home) {
151
+ try {
152
+ const r = JSON.parse(readFileSync(join(home, RESTORE_RECORD), "utf8"));
153
+ return r && typeof r.from === "string" && typeof r.to === "string" ? r : null;
154
+ }
155
+ catch {
156
+ return null;
157
+ }
158
+ }
159
+ function writeRecord(home, record) {
160
+ const file = join(home, RESTORE_RECORD);
161
+ const tmp = `${file}.${process.pid}.tmp`;
162
+ writeFileSync(tmp, JSON.stringify(record) + "\n", { mode: 0o600 });
163
+ renameSync(tmp, file);
164
+ }
165
+ const realFs = {
166
+ rename: renameSync, exists: existsSync, unlink: unlinkSync, rmdir: rmdirSync,
167
+ readlink: p => { try {
168
+ return lstatSync(p).isSymbolicLink() ? readlinkSync(p) : null;
169
+ }
170
+ catch {
171
+ return null;
172
+ } },
173
+ };
174
+ export function swapInPreimage(prefix, root, installed, cand, now, fs = realFs) {
175
+ const failedTree = join(prefix, ".agend-rollback", `${installed}-${now.toISOString().replace(/[:.]/g, "-")}-failed`);
176
+ try {
177
+ fs.rename(root, failedTree);
178
+ }
179
+ catch (err) {
180
+ return { ok: false, reason: `the installed package could not be moved aside (${err.message})`, packageAt: root, stranded: false };
181
+ }
182
+ try {
183
+ fs.rename(cand.pkg, root);
184
+ }
185
+ catch (err) {
186
+ const why = err.message;
187
+ try {
188
+ fs.rename(failedTree, root);
189
+ }
190
+ catch (back) {
191
+ // Nothing at root: the plist's node and bin/agend point into a missing tree — say exactly how to put it back.
192
+ return { ok: false, stranded: true, packageAt: failedTree,
193
+ reason: `the kept copy could not be put in place (${why}), and the installed package could not be moved back (${back.message}): it is at ${failedTree}. To put it back: mv '${failedTree}' '${root}'` };
194
+ }
195
+ return { ok: false, reason: `the kept copy could not be put in place (${why}); the installed package was put back`, packageAt: root, stranded: false };
196
+ }
197
+ const link = join(prefix, "bin", "agend-install");
198
+ const target = fs.readlink(link);
199
+ if (target !== null && !fs.exists(resolve(dirname(link), target))) {
200
+ try {
201
+ fs.unlink(link);
202
+ }
203
+ catch { /* a dangling link harms nothing */ }
204
+ }
205
+ // The kept copy's directory is empty now (as 2.2.6's own restore leaves none); only if empty.
206
+ try {
207
+ fs.rmdir(cand.dir);
208
+ }
209
+ catch { /* not empty, or gone: left as is */ }
210
+ return { ok: true, failedTree };
211
+ }
212
+ /**
213
+ * The whole decision and act, for the installed package at `root` under `prefix`. `attempts`: this version's attempts
214
+ * in the window, this one included. Never throws.
215
+ */
216
+ export function maybeAutoRestore(home, root, prefix, installed, startedHistory, attempts, deps = {}) {
217
+ const log = deps.log ?? (line => { try {
218
+ process.stderr.write(`AgEnD auto-restore: ${line}\n`);
219
+ }
220
+ catch { /* none */ } });
221
+ try {
222
+ const plistPath = deps.plistPath ?? join(homedir(), "Library", "LaunchAgents", `${LAUNCHD_LABEL}.plist`);
223
+ if (!autoRestoreDue({ platform: deps.platform ?? process.platform, env: deps.env ?? process.env, ppid: deps.ppid ?? process.ppid, plistExists: existsSync(plistPath), installed, startedHistory, recentAttempts: attempts })) {
224
+ if (startedHistory === "unreadable")
225
+ log("fleet-started.json cannot be read; not restoring");
226
+ return { kind: "not-due" };
227
+ }
228
+ if (resolve(root) !== resolve(prefix, "lib", "node_modules", "@songsid", "agend"))
229
+ return { kind: "not-due" };
230
+ const cand = restoreCandidate(prefix, installed, deps.arch);
231
+ if (!cand)
232
+ return { kind: "not-due" };
233
+ if (startedHistory !== "unreadable" && !historyAllowsRestoreTo(startedHistory, cand.version)) {
234
+ log(`a version newer than the kept v${cand.version} has run here (${startedHistory.join(", ")}); not restoring`);
235
+ return { kind: "not-due" };
236
+ }
237
+ if (!preimageRuns(cand, deps.runVersion)) {
238
+ log(`the kept copy of v${cand.version} at ${cand.dir} does not run; not restoring`);
239
+ return { kind: "not-due" };
240
+ }
241
+ if (!claimRestore(home, installed))
242
+ return { kind: "not-due" };
243
+ const now = deps.now ?? new Date();
244
+ const record = { from: installed, to: cand.version, preimage: cand.dir, attempts, at: now.toISOString() };
245
+ writeRecord(home, record);
246
+ log(`v${installed} failed to start ${attempts} times and never ran here; restoring v${cand.version} from ${cand.dir}`);
247
+ try {
248
+ deps.notify?.(installed, cand.version, cand.dir);
249
+ }
250
+ catch { /* the restore does not wait on a notice */ }
251
+ const swapped = swapInPreimage(prefix, root, installed, cand, now, deps.fs);
252
+ const finishedAt = new Date().toISOString();
253
+ if (!swapped.ok) {
254
+ log(`restore failed: ${swapped.reason}`);
255
+ try {
256
+ writeRecord(home, { ...record, result: "failed", reason: swapped.reason, finishedAt, ...(swapped.stranded ? { failedTree: swapped.packageAt } : {}) });
257
+ }
258
+ catch {
259
+ log(`the record could not be written; ${swapped.reason}`);
260
+ }
261
+ return { kind: "failed", from: installed, to: cand.version, reason: swapped.reason, packageAt: swapped.packageAt, stranded: swapped.stranded };
262
+ }
263
+ writeRecord(home, { ...record, result: "restored", failedTree: swapped.failedTree, finishedAt });
264
+ log(`restored v${cand.version}; launchd starts it next. The failed v${installed} is kept at ${swapped.failedTree} (about 235 MB) until a later start completes`);
265
+ return { kind: "restored", from: installed, to: cand.version, preimage: cand.dir };
266
+ }
267
+ catch (err) {
268
+ log(`not restoring: ${err.message}`);
269
+ return { kind: "not-due" };
270
+ }
271
+ }
272
+ /** After a start completes: the failed trees a restore kept for a report go (each ~235 MB; asynchronously). */
273
+ export async function pruneFailedTrees(prefix) {
274
+ const base = join(prefix, ".agend-rollback");
275
+ let names = [];
276
+ try {
277
+ names = readdirSync(base);
278
+ }
279
+ catch {
280
+ return 0;
281
+ }
282
+ let removed = 0;
283
+ for (const name of names) {
284
+ if (!name.endsWith("-failed"))
285
+ continue;
286
+ try {
287
+ await rm(join(base, name), { recursive: true, force: true });
288
+ removed++;
289
+ }
290
+ catch { /* next time */ }
291
+ }
292
+ return removed;
293
+ }
294
+ //# sourceMappingURL=mac-auto-restore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mac-auto-restore.js","sourceRoot":"","sources":["../src/mac-auto-restore.ts"],"names":[],"mappings":"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"}
package/dist/needs-you.js CHANGED
@@ -9,6 +9,7 @@
9
9
  const PROMPT_REASON = {
10
10
  "hang:": "hang",
11
11
  "exit-restart:": "exited",
12
+ "oom-retry:": "exited",
12
13
  "interactive-assist:": "assist",
13
14
  };
14
15
  const INTERACTION_REASON = {
@@ -1 +1 @@
1
- {"version":3,"file":"needs-you.js","sourceRoot":"","sources":["../src/needs-you.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"needs-you.js","sourceRoot":"","sources":["../src/needs-you.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export interface OutboundContext {
39
39
  getModel?(channelId: string, adapterId?: string, fleetDefault?: string): string | undefined;
40
40
  } | null;
41
41
  lastActivityMs(name: string): number;
42
- startInstance(name: string, config: InstanceConfig, topicMode: boolean): Promise<void>;
42
+ startInstance(name: string, config: InstanceConfig, topicMode: boolean, kind?: "fleet-topic" | "classic", resumePaused?: boolean): Promise<void>;
43
43
  restartSingleInstance(name: string, opts?: {
44
44
  freshStart?: boolean;
45
45
  explicit?: boolean;
@@ -51,7 +51,7 @@ export interface OutboundContext {
51
51
  };
52
52
  }): Promise<void>;
53
53
  /** Phase 2b: an operator wake that respects the warm hard cap (FleetManager.explicitWake). */
54
- explicitWake?(name: string, timeoutMs?: number): Promise<void>;
54
+ explicitWake?(name: string, timeoutMs?: number, retryStoppedSession?: boolean): Promise<void>;
55
55
  connectIpcToInstance(name: string): Promise<void>;
56
56
  /** FleetManager facade that wakes paused instances before delivery. */
57
57
  deliverToInstance?(instanceName: string, payload: Record<string, unknown>, options?: OutboundDeliveryOptions): Promise<void | boolean>;
@@ -691,7 +691,7 @@ const startInstance = async (ctx, rawArgs, respond) => {
691
691
  // marker is cleared and the next state snapshot is visible to `agend ls`.
692
692
  if (ctx.lifecycle.isPaused?.(targetName)) {
693
693
  try {
694
- await (ctx.explicitWake ? ctx.explicitWake(targetName, 30_000) : ctx.lifecycle.wake(targetName, 30_000));
694
+ await (ctx.explicitWake ? ctx.explicitWake(targetName, 30_000, true) : ctx.lifecycle.wake(targetName, 30_000));
695
695
  respond({ success: true, status: "started" });
696
696
  }
697
697
  catch (err) {
@@ -705,7 +705,7 @@ const startInstance = async (ctx, rawArgs, respond) => {
705
705
  const status = ctx.getInstanceStatus?.(targetName);
706
706
  if (status === "crashed" || status === "stopped") {
707
707
  try {
708
- await ctx.restartSingleInstance(targetName);
708
+ await ctx.restartSingleInstance(targetName, { explicit: true });
709
709
  respond({ success: true, status: "started" });
710
710
  }
711
711
  catch (err) {
@@ -719,7 +719,7 @@ const startInstance = async (ctx, rawArgs, respond) => {
719
719
  const targetConfig = ctx.fleetConfig?.instances[targetName];
720
720
  if (targetConfig) {
721
721
  try {
722
- await ctx.startInstance(targetName, targetConfig, true);
722
+ await ctx.startInstance(targetName, targetConfig, true, "fleet-topic", true);
723
723
  await ctx.connectIpcToInstance(targetName);
724
724
  respond({ success: true, status: "started" });
725
725
  }
@@ -732,7 +732,7 @@ const startInstance = async (ctx, rawArgs, respond) => {
732
732
  const channelId = ctx.classicChannels?.getChannelIdByInstance?.(targetName);
733
733
  if (channelId) {
734
734
  try {
735
- await ctx.restartSingleInstance(targetName);
735
+ await ctx.restartSingleInstance(targetName, { explicit: true });
736
736
  respond({ success: true, status: "started" });
737
737
  }
738
738
  catch (err) {
@@ -782,7 +782,7 @@ const wakeInstance = async (ctx, rawArgs, respond) => {
782
782
  return;
783
783
  }
784
784
  try {
785
- await (ctx.explicitWake ? ctx.explicitWake(v.data.name) : ctx.lifecycle.wake(v.data.name));
785
+ await (ctx.explicitWake ? ctx.explicitWake(v.data.name, 30_000, true) : ctx.lifecycle.wake(v.data.name));
786
786
  respond({ success: true, status: "waking" });
787
787
  }
788
788
  catch (err) {