@songsid/agend 2.3.5-alpha.2 → 2.3.5-alpha.3

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 (212) hide show
  1. package/dist/agend-home.d.ts +13 -0
  2. package/dist/agend-home.js +42 -0
  3. package/dist/agend-home.js.map +1 -1
  4. package/dist/auth-api.d.ts +21 -0
  5. package/dist/auth-api.js +91 -4
  6. package/dist/auth-api.js.map +1 -1
  7. package/dist/authority/web-authority.d.ts +12 -2
  8. package/dist/authority/web-authority.js +25 -4
  9. package/dist/authority/web-authority.js.map +1 -1
  10. package/dist/backend/claude-code.js +16 -1
  11. package/dist/backend/claude-code.js.map +1 -1
  12. package/dist/backend/codex.js +11 -1
  13. package/dist/backend/codex.js.map +1 -1
  14. package/dist/backend/kiro-identity.d.ts +2 -0
  15. package/dist/backend/kiro-identity.js +13 -6
  16. package/dist/backend/kiro-identity.js.map +1 -1
  17. package/dist/backend/kiro.js +18 -3
  18. package/dist/backend/kiro.js.map +1 -1
  19. package/dist/backend-availability.d.ts +6 -0
  20. package/dist/backend-availability.js +13 -5
  21. package/dist/backend-availability.js.map +1 -1
  22. package/dist/channel/mcp-tools.js +1 -1
  23. package/dist/channel/mcp-tools.js.map +1 -1
  24. package/dist/cli.js +6 -9
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config-validator.js +12 -1
  27. package/dist/config-validator.js.map +1 -1
  28. package/dist/daemon.d.ts +5 -0
  29. package/dist/daemon.js +107 -30
  30. package/dist/daemon.js.map +1 -1
  31. package/dist/fleet-manager.d.ts +143 -8
  32. package/dist/fleet-manager.js +874 -166
  33. package/dist/fleet-manager.js.map +1 -1
  34. package/dist/fleet-windows-runtime.js +7 -0
  35. package/dist/fleet-windows-runtime.js.map +1 -1
  36. package/dist/fleet-yaml-patch.d.ts +3 -0
  37. package/dist/fleet-yaml-patch.js +103 -0
  38. package/dist/fleet-yaml-patch.js.map +1 -0
  39. package/dist/general-binding.d.ts +85 -0
  40. package/dist/general-binding.js +298 -0
  41. package/dist/general-binding.js.map +1 -0
  42. package/dist/general-host-owner.d.ts +8 -0
  43. package/dist/general-host-owner.js +26 -0
  44. package/dist/general-host-owner.js.map +1 -0
  45. package/dist/general-instance.d.ts +7 -0
  46. package/dist/general-instance.js +20 -3
  47. package/dist/general-instance.js.map +1 -1
  48. package/dist/general-knowledge/skills/model-discovery/SKILL.md +2 -0
  49. package/dist/general-role.d.ts +5 -0
  50. package/dist/general-role.js +26 -0
  51. package/dist/general-role.js.map +1 -0
  52. package/dist/instance-lifecycle.d.ts +1 -0
  53. package/dist/instance-lifecycle.js +26 -4
  54. package/dist/instance-lifecycle.js.map +1 -1
  55. package/dist/instructions.d.ts +2 -0
  56. package/dist/instructions.js +6 -0
  57. package/dist/instructions.js.map +1 -1
  58. package/dist/kiro-resume-summary.d.ts +37 -0
  59. package/dist/kiro-resume-summary.js +85 -0
  60. package/dist/kiro-resume-summary.js.map +1 -0
  61. package/dist/locale.js +59 -0
  62. package/dist/locale.js.map +1 -1
  63. package/dist/login-controller.js +9 -1
  64. package/dist/login-controller.js.map +1 -1
  65. package/dist/native-pane-lifecycle.js +4 -1
  66. package/dist/native-pane-lifecycle.js.map +1 -1
  67. package/dist/native-pane-manager.d.ts +1 -0
  68. package/dist/native-pane-manager.js +23 -2
  69. package/dist/native-pane-manager.js.map +1 -1
  70. package/dist/needs-you-hub.js +1 -1
  71. package/dist/needs-you-hub.js.map +1 -1
  72. package/dist/needs-you.d.ts +8 -1
  73. package/dist/needs-you.js +5 -2
  74. package/dist/needs-you.js.map +1 -1
  75. package/dist/package-preimage.js +27 -2
  76. package/dist/package-preimage.js.map +1 -1
  77. package/dist/pane-port.d.ts +11 -0
  78. package/dist/public-web-gateway.js +9 -0
  79. package/dist/public-web-gateway.js.map +1 -1
  80. package/dist/public-web-link.d.ts +5 -0
  81. package/dist/public-web-link.js +4 -0
  82. package/dist/public-web-link.js.map +1 -1
  83. package/dist/quickstart-api.js +9 -5
  84. package/dist/quickstart-api.js.map +1 -1
  85. package/dist/quickstart.d.ts +1 -0
  86. package/dist/quickstart.js +4 -1
  87. package/dist/quickstart.js.map +1 -1
  88. package/dist/reply-buttons-controller.js +10 -0
  89. package/dist/reply-buttons-controller.js.map +1 -1
  90. package/dist/runtime-bundle.js +3 -0
  91. package/dist/runtime-bundle.js.map +1 -1
  92. package/dist/runtime-general-protocol.d.ts +22 -0
  93. package/dist/runtime-general-protocol.js +57 -0
  94. package/dist/runtime-general-protocol.js.map +1 -0
  95. package/dist/runtime-general-workspace.d.ts +17 -0
  96. package/dist/runtime-general-workspace.js +213 -0
  97. package/dist/runtime-general-workspace.js.map +1 -0
  98. package/dist/runtime-pane-assets.d.ts +1 -1
  99. package/dist/runtime-pane-assets.js +1 -1
  100. package/dist/runtime-pane-assets.js.map +1 -1
  101. package/dist/runtime-pane-host.d.ts +1 -0
  102. package/dist/runtime-pane-host.js +22 -1
  103. package/dist/runtime-pane-host.js.map +1 -1
  104. package/dist/runtime-pane-mcp.d.ts +8 -0
  105. package/dist/runtime-pane-mcp.js +15 -2
  106. package/dist/runtime-pane-mcp.js.map +1 -1
  107. package/dist/runtime-pane-port.d.ts +6 -1
  108. package/dist/runtime-pane-port.js +21 -0
  109. package/dist/runtime-pane-port.js.map +1 -1
  110. package/dist/runtime-pane-protocol.d.ts +4 -1
  111. package/dist/runtime-pane-protocol.js +7 -1
  112. package/dist/runtime-pane-protocol.js.map +1 -1
  113. package/dist/settings-api.d.ts +5 -0
  114. package/dist/settings-api.js +37 -1
  115. package/dist/settings-api.js.map +1 -1
  116. package/dist/settings-baseline.d.ts +1 -0
  117. package/dist/settings-baseline.js +1 -1
  118. package/dist/settings-baseline.js.map +1 -1
  119. package/dist/settings-confirmation.d.ts +1 -0
  120. package/dist/settings-confirmation.js +1 -0
  121. package/dist/settings-confirmation.js.map +1 -1
  122. package/dist/settings-effect.d.ts +4 -0
  123. package/dist/settings-effect.js +35 -0
  124. package/dist/settings-effect.js.map +1 -1
  125. package/dist/settings-http-confirmation.d.ts +1 -0
  126. package/dist/settings-http-confirmation.js +4 -0
  127. package/dist/settings-http-confirmation.js.map +1 -1
  128. package/dist/settings-request-capability.d.ts +2 -0
  129. package/dist/settings-request-capability.js +4 -0
  130. package/dist/settings-request-capability.js.map +1 -1
  131. package/dist/settings-route-lifetime.d.ts +14 -0
  132. package/dist/settings-route-lifetime.js +48 -0
  133. package/dist/settings-route-lifetime.js.map +1 -0
  134. package/dist/settings-transaction.d.ts +4 -0
  135. package/dist/settings-transaction.js +9 -0
  136. package/dist/settings-transaction.js.map +1 -1
  137. package/dist/setup-form.js +6 -3
  138. package/dist/setup-form.js.map +1 -1
  139. package/dist/setup-i18n.js +3 -0
  140. package/dist/setup-i18n.js.map +1 -1
  141. package/dist/stall-reporter.d.ts +21 -0
  142. package/dist/stall-reporter.js +82 -0
  143. package/dist/stall-reporter.js.map +1 -0
  144. package/dist/tmux-control.d.ts +2 -2
  145. package/dist/tmux-control.js +4 -2
  146. package/dist/tmux-control.js.map +1 -1
  147. package/dist/tmux-exec-helper.d.ts +6 -3
  148. package/dist/tmux-exec-helper.js +115 -53
  149. package/dist/tmux-exec-helper.js.map +1 -1
  150. package/dist/tool-permissions.js +2 -1
  151. package/dist/tool-permissions.js.map +1 -1
  152. package/dist/tunnel/cloudflared-install.d.ts +4 -0
  153. package/dist/tunnel/cloudflared-install.js +20 -1
  154. package/dist/tunnel/cloudflared-install.js.map +1 -1
  155. package/dist/tunnel/cloudflared.d.ts +8 -1
  156. package/dist/tunnel/cloudflared.js +34 -6
  157. package/dist/tunnel/cloudflared.js.map +1 -1
  158. package/dist/tunnel/lease.d.ts +3 -3
  159. package/dist/tunnel/lease.js +23 -19
  160. package/dist/tunnel/lease.js.map +1 -1
  161. package/dist/tunnel/manager.js +6 -7
  162. package/dist/tunnel/manager.js.map +1 -1
  163. package/dist/types.d.ts +2 -0
  164. package/dist/ui/agent-proposals.js +2 -2
  165. package/dist/ui/general-location.js +71 -0
  166. package/dist/ui/native-pane-recovery.js +1 -1
  167. package/dist/ui/panel-chat.js +2 -0
  168. package/dist/ui/panel-needs.js +2 -0
  169. package/dist/ui/panel-settings.js +5 -1
  170. package/dist/ui/settings-dialogs.js +8 -2
  171. package/dist/ui/settings-model.js +2 -1
  172. package/dist/ui/settings-outside.js +176 -0
  173. package/dist/ui/settings-registry.js +1 -0
  174. package/dist/ui/settings-strings.js +2 -0
  175. package/dist/ui/shared/app-i18n.js +2 -2
  176. package/dist/ui/shared/app.css +16 -1
  177. package/dist/ui/shared/instance-nav.js +13 -3
  178. package/dist/ui/shared/panel-view.js +266 -17
  179. package/dist/ui/shared/qrcode.module.js +2237 -0
  180. package/dist/ui/shared/signin.js +39 -5
  181. package/dist/ui/shared/vendor/qrcode-generator.LICENSE +27 -0
  182. package/dist/ui/shared/vendor/vendor.json +19 -2
  183. package/dist/ui/shared/view-strings.js +28 -0
  184. package/dist/unattended-install.d.ts +1 -1
  185. package/dist/unattended-install.js +19 -5
  186. package/dist/unattended-install.js.map +1 -1
  187. package/dist/update-check.d.ts +2 -8
  188. package/dist/update-check.js +2 -5
  189. package/dist/update-check.js.map +1 -1
  190. package/dist/view-api.d.ts +15 -0
  191. package/dist/view-api.js +94 -33
  192. package/dist/view-api.js.map +1 -1
  193. package/dist/web-api.d.ts +12 -0
  194. package/dist/web-api.js +77 -0
  195. package/dist/web-api.js.map +1 -1
  196. package/dist/web-login.d.ts +4 -3
  197. package/dist/web-login.js +23 -14
  198. package/dist/web-login.js.map +1 -1
  199. package/dist/web-only-fleet.d.ts +20 -0
  200. package/dist/web-only-fleet.js +21 -0
  201. package/dist/web-only-fleet.js.map +1 -1
  202. package/dist/web-remote-access.d.ts +152 -0
  203. package/dist/web-remote-access.js +368 -0
  204. package/dist/web-remote-access.js.map +1 -0
  205. package/dist/web-session.d.ts +12 -0
  206. package/dist/web-session.js +22 -8
  207. package/dist/web-session.js.map +1 -1
  208. package/dist/windows-agents.d.ts +12 -0
  209. package/dist/windows-agents.js +24 -0
  210. package/dist/windows-agents.js.map +1 -1
  211. package/launcher/agend-install.cjs +16 -2
  212. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  /** Windows execution adapter for the ordinary Fleet instance registry and delivery facade. */
2
+ import { addsSecondGeneral } from "./web-only-fleet.js";
2
3
  import { randomUUID } from "node:crypto";
3
4
  import { windowsAgentsFor } from "./windows-agents.js";
4
5
  import { LOCAL_WINDOWS_CLI_OFF, windowsBridgeFor, windowsCliEnabled } from "./windows-cli.js";
@@ -94,6 +95,9 @@ export class FleetWindowsRuntime {
94
95
  const fleet = this.host.fleet();
95
96
  if (!fleet)
96
97
  throw new Error("Fleet configuration is unavailable");
98
+ // #3021 review: a Windows agent inherits the defaults too — never a second General on a fleet with no chat connection.
99
+ if (addsSecondGeneral(fleet))
100
+ throw new Error("one_general: this fleet already has its General, and a new agent would inherit defaults.general_topic: true");
97
101
  const { tags, ...profile } = input;
98
102
  if (profile.machineId !== undefined) {
99
103
  if (typeof profile.machineId !== "string" || !this.host.validateMachine)
@@ -109,6 +113,9 @@ export class FleetWindowsRuntime {
109
113
  throw new Error("Authorization expired");
110
114
  if (Object.hasOwn(fleet.instances, name))
111
115
  throw new Error("Instance name already exists");
116
+ // #3021 review r2: asked again at the commit, after the profile's await — a create made meanwhile counts.
117
+ if (addsSecondGeneral(fleet))
118
+ throw new Error("one_general: this fleet already has its General, and a new agent would inherit defaults.general_topic: true");
112
119
  fleet.instances[name] = { ...nativeInstanceConfig(agent), ...binding, ...(Array.isArray(tags) ? { tags: tags } : {}) };
113
120
  this.host.save();
114
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-windows-runtime.js","sourceRoot":"","sources":["../src/fleet-windows-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-windows-runtime.js","sourceRoot":"","sources":["../src/fleet-windows-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RawConfigPatch } from "./settings-api.js";
2
+ /** Apply explicit leaf patches to the on-disk YAML document. No-op when nothing changes. */
3
+ export declare function applyFleetYamlPatches(configPath: string, patches: RawConfigPatch[]): void;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Leaf-edit fleet.yaml the way Settings does: patch the raw YAML document, keep
3
+ * comments and a legacy `channel:`, then fsync+rename after the result still
4
+ * loads. CLI `topic bind/unbind` used to `yaml.dump` the defaults-expanded
5
+ * config (#1490 row 54).
6
+ */
7
+ import { existsSync, readFileSync, statSync } from "node:fs";
8
+ import { isScalar, parseDocument } from "yaml";
9
+ import { atomicWriteFileSync } from "./atomic-write.js";
10
+ import { loadFleetConfig } from "./config.js";
11
+ import { validateFleetConfig } from "./config-validator.js";
12
+ import { changedOutside, detachForWrite } from "./yaml-shared-nodes.js";
13
+ function sameLeaf(before, after) {
14
+ if (Object.is(before, after))
15
+ return true;
16
+ if (before === undefined && after === undefined)
17
+ return true;
18
+ try {
19
+ return JSON.stringify(before) === JSON.stringify(after);
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ function leafValue(node) {
26
+ return isScalar(node) ? node.value : node;
27
+ }
28
+ function savedFleetYamlProblem(currentPath, candidate) {
29
+ let after;
30
+ try {
31
+ after = validateFleetConfig(loadFleetConfig(candidate));
32
+ }
33
+ catch (err) {
34
+ return `Refusing to save fleet.yaml: the result would not load (${err.message})`;
35
+ }
36
+ let had = new Set();
37
+ try {
38
+ if (existsSync(currentPath)) {
39
+ had = new Set(validateFleetConfig(loadFleetConfig(currentPath)).errors.map(e => `${e.path}\u0000${e.message}`));
40
+ }
41
+ }
42
+ catch { /* the current file does not load: every error of the result counts as new */ }
43
+ const introduced = after.errors.filter(e => !had.has(`${e.path}\u0000${e.message}`));
44
+ return introduced.length
45
+ ? `Refusing to save fleet.yaml: it would be invalid (${introduced.map(e => `${e.path}: ${e.message}`).join("; ")})`
46
+ : null;
47
+ }
48
+ /** Apply explicit leaf patches to the on-disk YAML document. No-op when nothing changes. */
49
+ export function applyFleetYamlPatches(configPath, patches) {
50
+ if (!existsSync(configPath))
51
+ throw new Error(`fleet.yaml not found: ${configPath}`);
52
+ const source = readFileSync(configPath, "utf-8");
53
+ const document = parseDocument(source, { keepSourceTokens: true });
54
+ if (document.errors.length > 0) {
55
+ throw new Error(`Refusing to overwrite invalid fleet.yaml: ${document.errors[0].message}`);
56
+ }
57
+ // #2208: snapshot aliases expanded, unshare the place written, then refuse if
58
+ // anything else changed (a shared node the write still went through).
59
+ const fileBefore = document.toJS({ maxAliasCount: -1 });
60
+ const writes = [];
61
+ let changed = false;
62
+ for (const patch of patches) {
63
+ if (patch.remove) {
64
+ if (!document.hasIn(patch.path))
65
+ continue;
66
+ detachForWrite(document, patch.path);
67
+ writes.push([...patch.path]);
68
+ document.deleteIn(patch.path);
69
+ changed = true;
70
+ continue;
71
+ }
72
+ const before = leafValue(document.getIn(patch.path, true));
73
+ if (sameLeaf(before, patch.value))
74
+ continue;
75
+ detachForWrite(document, patch.path);
76
+ writes.push([...patch.path]);
77
+ const currentNode = document.getIn(patch.path, true);
78
+ if (isScalar(currentNode) && (patch.value === null || typeof patch.value !== "object")) {
79
+ currentNode.value = patch.value;
80
+ }
81
+ else {
82
+ document.setIn(patch.path, patch.value !== null && typeof patch.value === "object"
83
+ ? document.createNode(patch.value)
84
+ : patch.value);
85
+ }
86
+ changed = true;
87
+ }
88
+ if (!changed)
89
+ return;
90
+ const stray = changedOutside(fileBefore, document.toJS({ maxAliasCount: -1 }), writes);
91
+ if (stray) {
92
+ throw new Error(`Refusing to save fleet.yaml: this change would also change ${stray}, which shares a value with what it edits. Give each its own value in fleet.yaml.`);
93
+ }
94
+ atomicWriteFileSync(configPath, String(document), {
95
+ mode: statSync(configPath).mode,
96
+ beforeRename: (tempPath) => {
97
+ const refusal = savedFleetYamlProblem(configPath, tempPath);
98
+ if (refusal)
99
+ throw new Error(refusal);
100
+ },
101
+ });
102
+ }
103
+ //# sourceMappingURL=fleet-yaml-patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-yaml-patch.js","sourceRoot":"","sources":["../src/fleet-yaml-patch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { type SettingsExecution } from "./settings-transaction.js";
2
+ import type { InstanceConfig } from "./types.js";
3
+ export type GeneralLocation = {
4
+ location: "host";
5
+ } | {
6
+ location: "windows";
7
+ machineId: string;
8
+ cli: "claude-code" | "codex";
9
+ model: string;
10
+ };
11
+ export interface GeneralSwitchInput {
12
+ name: string;
13
+ revision: string;
14
+ target: GeneralLocation;
15
+ }
16
+ export interface GeneralHostPin {
17
+ backend: string;
18
+ sessionId: string;
19
+ }
20
+ export interface GeneralHostOwner {
21
+ kind: "tmux";
22
+ windowId: string;
23
+ pid: number;
24
+ pin?: GeneralHostPin;
25
+ }
26
+ export interface GeneralWindowsBinding {
27
+ id: string;
28
+ agentId: string;
29
+ machineId: string;
30
+ cli: "claude-code" | "codex";
31
+ config: InstanceConfig;
32
+ }
33
+ export interface GeneralBindingRecord {
34
+ version: 1;
35
+ name: string;
36
+ revision: string;
37
+ host: {
38
+ config: InstanceConfig;
39
+ pin?: GeneralHostPin;
40
+ };
41
+ active: "host" | string;
42
+ windows: GeneralWindowsBinding[];
43
+ pending?: {
44
+ id: string;
45
+ phase: "prepared" | "stopped" | "selected";
46
+ from: string;
47
+ to: string;
48
+ source: InstanceConfig;
49
+ target: InstanceConfig;
50
+ at: number;
51
+ hostOwner?: GeneralHostOwner;
52
+ };
53
+ hold?: "exit" | "start";
54
+ }
55
+ export declare function parseGeneralSwitchInput(v: unknown): GeneralSwitchInput;
56
+ export declare function generalBindingRevision(value: GeneralBindingRecord | null, current: InstanceConfig): string;
57
+ export declare class GeneralBindings {
58
+ private readonly home;
59
+ constructor(home: string);
60
+ private path;
61
+ read(name: string): GeneralBindingRecord | null;
62
+ write(value: GeneralBindingRecord): void;
63
+ /** A selected intent already owns this exact config. Publication settles its receipt after a coordinator restart. */
64
+ completeSelected(name: string, current: InstanceConfig): boolean;
65
+ /** Called on every start, including boot and automatic recovery. Never guess through an unfinished switch. */
66
+ assertStart(name: string, current: InstanceConfig): void;
67
+ }
68
+ /** Only an unfinished, selected switch-back can override the host backend's ordinary resume policy. */
69
+ export declare function selectedGeneralHostSession(instanceDir: string, name: string, backend: string, cwd: string): string | null;
70
+ /** One lifecycle-serialized switch. The injected stop must positively prove its exact old owner exited. */
71
+ export declare function switchGeneralLocation(deps: {
72
+ store: GeneralBindings;
73
+ current(): InstanceConfig;
74
+ assert(): void;
75
+ prepare(target: GeneralLocation, retained: GeneralBindingRecord): Promise<GeneralWindowsBinding | null>;
76
+ capture?(): Promise<GeneralHostOwner | undefined>;
77
+ hostSnapshot?(): InstanceConfig;
78
+ idle(): Promise<boolean>;
79
+ stop(owner?: GeneralHostOwner): Promise<GeneralHostPin | undefined>;
80
+ save(config: InstanceConfig): void;
81
+ start(): Promise<void>;
82
+ notify(kind: "exit" | "start" | "complete", error?: unknown): void;
83
+ }, input: GeneralSwitchInput, execution: SettingsExecution): Promise<{
84
+ started: boolean;
85
+ }>;
@@ -0,0 +1,298 @@
1
+ /** Metadata-only General location journal. Provider homes and conversations never move. */
2
+ import { constants, closeSync, fstatSync, mkdirSync, openSync, readFileSync } from "node:fs";
3
+ import { basename, dirname, join } from "node:path";
4
+ import { createHash, randomUUID } from "node:crypto";
5
+ import { atomicWriteFileSync } from "./atomic-write.js";
6
+ import { settingsFingerprint } from "./settings-transaction.js";
7
+ const uuid = (v) => typeof v === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(v);
8
+ const object = (v) => !!v && typeof v === "object" && !Array.isArray(v);
9
+ const text = (v, n) => typeof v === "string" && v.length <= n && !/[\p{Cc}\p{Cf}]/u.test(v);
10
+ const closed = (v, keys) => Object.keys(v).every(k => keys.includes(k));
11
+ const config = (v) => object(v) && typeof v.working_directory === "string" && v.general_topic === true;
12
+ export function parseGeneralSwitchInput(v) {
13
+ if (!object(v) || !closed(v, ["name", "revision", "target"]) || !text(v.name, 256) || !v.name
14
+ || !/^[0-9a-f]{64}$/.test(typeof v.revision === "string" ? v.revision : "") || !object(v.target))
15
+ throw Error("Invalid General location request");
16
+ const target = v.target;
17
+ if (target.location === "host" && closed(target, ["location"]))
18
+ return structuredClone(v);
19
+ if (target.location !== "windows" || !closed(target, ["location", "machineId", "cli", "model"]) || !uuid(target.machineId)
20
+ || target.cli !== "claude-code" && target.cli !== "codex" || !text(target.model, 256))
21
+ throw Error("Invalid General location target");
22
+ return structuredClone(v);
23
+ }
24
+ export function generalBindingRevision(value, current) {
25
+ return settingsFingerprint([value, current]);
26
+ }
27
+ function validate(raw, name) {
28
+ if (!object(raw) || raw.version !== 1 || raw.name !== name || !uuid(raw.revision) || !object(raw.host) || !config(raw.host.config)
29
+ || raw.host.config.runtime === "windows" || !Array.isArray(raw.windows) || raw.windows.length > 32
30
+ || !closed(raw, ["version", "name", "revision", "host", "active", "windows", "pending", "hold"]))
31
+ throw Error("General binding journal scope differs");
32
+ const ids = new Set(), agents = new Set();
33
+ for (const row of raw.windows) {
34
+ if (!object(row) || !uuid(row.id) || !uuid(row.agentId) || !uuid(row.machineId) || row.cli !== "claude-code" && row.cli !== "codex"
35
+ || !config(row.config) || row.config.runtime !== "windows" || row.config.native_adapter !== "pane"
36
+ || row.config.native_general_binding !== row.id || row.config.native_agent_id !== row.agentId
37
+ || row.config.machine_id !== row.machineId || row.config.backend !== row.cli || ids.has(row.id) || agents.has(row.agentId))
38
+ throw Error("General Windows binding scope differs");
39
+ ids.add(row.id);
40
+ agents.add(row.agentId);
41
+ }
42
+ if (raw.active !== "host" && (!uuid(raw.active) || !ids.has(raw.active)))
43
+ throw Error("General active binding differs");
44
+ if (raw.host.pin !== undefined && (!object(raw.host.pin) || !text(raw.host.pin.backend, 64) || !text(raw.host.pin.sessionId, 256) || !raw.host.pin.sessionId))
45
+ throw Error("General host pin differs");
46
+ if (raw.hold !== undefined && raw.hold !== "exit" && raw.hold !== "start")
47
+ throw Error("General binding hold differs");
48
+ if (raw.pending !== undefined) {
49
+ const p = raw.pending;
50
+ if (!object(p) || !uuid(p.id) || p.phase !== "prepared" && p.phase !== "stopped" && p.phase !== "selected" || !config(p.source) || !config(p.target)
51
+ || p.from !== "host" && (!uuid(p.from) || !ids.has(p.from)) || p.to !== "host" && (!uuid(p.to) || !ids.has(p.to))
52
+ || p.from === p.to || !Number.isSafeInteger(p.at) || p.at < 0)
53
+ throw Error("General switch intent differs");
54
+ const target = p.to === "host" ? raw.host.config : raw.windows.find(row => row.id === p.to).config;
55
+ if (settingsFingerprint(target) !== settingsFingerprint(p.target) || p.phase === "selected" && raw.active !== p.to
56
+ || p.phase !== "selected" && raw.active !== p.from)
57
+ throw Error("General switch configuration differs");
58
+ if (p.hostOwner !== undefined) {
59
+ const o = p.hostOwner;
60
+ if (!object(o) || o.kind !== "tmux" || typeof o.windowId !== "string" || !/^@\d+$/.test(o.windowId)
61
+ || !Number.isSafeInteger(o.pid) || o.pid <= 1
62
+ || o.pin !== undefined && (!object(o.pin) || !text(o.pin.backend, 64) || !text(o.pin.sessionId, 256) || !o.pin.sessionId))
63
+ throw Error("General old host owner differs");
64
+ }
65
+ }
66
+ return structuredClone(raw);
67
+ }
68
+ export class GeneralBindings {
69
+ home;
70
+ constructor(home) {
71
+ this.home = home;
72
+ }
73
+ path(name) { return join(this.home, "general-bindings", `${createHash("sha256").update(name).digest("hex")}.json`); }
74
+ read(name) {
75
+ let fd;
76
+ try {
77
+ fd = openSync(this.path(name), constants.O_RDONLY | constants.O_NOFOLLOW);
78
+ }
79
+ catch (err) {
80
+ if (err.code === "ENOENT")
81
+ return null;
82
+ throw err;
83
+ }
84
+ try {
85
+ const st = fstatSync(fd);
86
+ if (!st.isFile() || st.size > 1024 * 1024 || typeof process.getuid === "function" && st.uid !== process.getuid())
87
+ throw Error("General binding journal is not an owned regular file");
88
+ const bytes = readFileSync(fd);
89
+ if (bytes.length > 1024 * 1024)
90
+ throw Error("General binding journal is too large");
91
+ const value = JSON.parse(bytes.toString("utf8"));
92
+ if (!object(value) || value.checksum !== settingsFingerprint(value.record))
93
+ throw Error("General binding journal checksum differs");
94
+ return validate(value.record, name);
95
+ }
96
+ finally {
97
+ closeSync(fd);
98
+ }
99
+ }
100
+ write(value) {
101
+ const record = validate(value, value.name), bytes = JSON.stringify({ record, checksum: settingsFingerprint(record) });
102
+ if (Buffer.byteLength(bytes) > 1024 * 1024)
103
+ throw Error("General binding journal is too large");
104
+ mkdirSync(join(this.home, "general-bindings"), { recursive: true, mode: 0o700 });
105
+ atomicWriteFileSync(this.path(record.name), bytes, { mode: 0o600 });
106
+ }
107
+ /** A selected intent already owns this exact config. Publication settles its receipt after a coordinator restart. */
108
+ completeSelected(name, current) {
109
+ const record = this.read(name);
110
+ if (!record)
111
+ return false;
112
+ const selected = record.active === "host" ? record.host.config : record.windows.find(row => row.id === record.active).config;
113
+ if (record.pending ? record.pending.phase !== "selected" || settingsFingerprint(record.pending.target) !== settingsFingerprint(current)
114
+ : record.hold !== "start" || settingsFingerprint(selected) !== settingsFingerprint(current))
115
+ return false;
116
+ delete record.pending;
117
+ delete record.hold;
118
+ this.write(record);
119
+ return true;
120
+ }
121
+ /** Called on every start, including boot and automatic recovery. Never guess through an unfinished switch. */
122
+ assertStart(name, current) {
123
+ const record = this.read(name);
124
+ if (!record)
125
+ return;
126
+ if (record.pending && (record.pending.phase !== "selected" || settingsFingerprint(record.pending.target) !== settingsFingerprint(current)))
127
+ throw Error("General switch is waiting for a confirmed old process exit");
128
+ const selected = record.active === "host" ? record.host.config : record.windows.find(row => row.id === record.active).config;
129
+ const sameBinding = record.active === "host" ? current.runtime !== "windows" :
130
+ ["runtime", "machine_id", "native_agent_id", "native_adapter", "native_general_binding", "backend", "working_directory"].every(key => selected[key] === current[key]);
131
+ if (!sameBinding || !current.general_topic)
132
+ throw Error("General binding differs from the saved location");
133
+ // Ordinary approved settings edits keep their existing policy. They must not turn a later restart into a binding hold.
134
+ if (!record.pending && settingsFingerprint(selected) !== settingsFingerprint(current)) {
135
+ if (record.active === "host") {
136
+ if (selected.backend !== current.backend || selected.working_directory !== current.working_directory)
137
+ delete record.host.pin;
138
+ record.host.config = structuredClone(current);
139
+ }
140
+ else
141
+ record.windows.find(row => row.id === record.active).config = structuredClone(current);
142
+ record.revision = randomUUID();
143
+ this.write(record);
144
+ }
145
+ }
146
+ }
147
+ /** Only an unfinished, selected switch-back can override the host backend's ordinary resume policy. */
148
+ export function selectedGeneralHostSession(instanceDir, name, backend, cwd) {
149
+ if (basename(instanceDir) !== name || basename(dirname(instanceDir)) !== "instances")
150
+ return null;
151
+ const record = new GeneralBindings(dirname(dirname(instanceDir))).read(name);
152
+ if (record?.pending?.phase !== "selected" || record.pending.to !== "host" || record.active !== "host" || !record.host.pin)
153
+ return null;
154
+ if (record.host.pin.backend !== backend || record.host.config.working_directory !== cwd || !uuid(record.host.pin.sessionId))
155
+ throw Error("General's saved host conversation scope differs");
156
+ return record.host.pin.sessionId;
157
+ }
158
+ /** One lifecycle-serialized switch. The injected stop must positively prove its exact old owner exited. */
159
+ export async function switchGeneralLocation(deps, input, execution) {
160
+ deps.assert();
161
+ execution.assert();
162
+ let source = structuredClone(deps.current());
163
+ const before = deps.store.read(input.name);
164
+ if (!source.general_topic || input.revision !== generalBindingRevision(before, source))
165
+ throw Error("General location changed; read its settings again");
166
+ const record = before ?? { version: 1, name: input.name, revision: randomUUID(), active: "host", host: { config: source }, windows: [] };
167
+ if (!before && source.runtime === "windows")
168
+ throw Error("The original host General binding is not available");
169
+ if (!record.pending && record.active !== "host")
170
+ record.windows.find(row => row.id === record.active).config = source;
171
+ const matches = (target, id) => target.location === "host" ? id === "host"
172
+ : record.windows.some(row => row.id === id && row.machineId === target.machineId && row.cli === target.cli && (row.config.model ?? "") === target.model);
173
+ // Finish only the already-committed config write before reversing a selected intent. This never starts it.
174
+ // The ordinary stop below must still prove that selected Windows owner exited (or was never launched).
175
+ if (record.pending?.phase === "selected" && matches(input.target, record.pending.from)
176
+ && settingsFingerprint(source) === settingsFingerprint(record.pending.source)) {
177
+ execution.mutate(() => deps.save(structuredClone(record.pending.target)));
178
+ source = structuredClone(deps.current());
179
+ }
180
+ if (!record.pending && record.hold === "start" && matches(input.target, record.active)) {
181
+ execution.commit(() => deps.save(source));
182
+ try {
183
+ await deps.start();
184
+ }
185
+ catch (err) {
186
+ deps.notify("start", err);
187
+ return { started: false };
188
+ }
189
+ delete record.hold;
190
+ deps.store.write(record);
191
+ deps.notify("complete");
192
+ return { started: true };
193
+ }
194
+ const activeWindows = record.windows.find(row => row.id === record.active);
195
+ if (!record.pending && input.target.location === "windows" && activeWindows?.machineId === input.target.machineId && activeWindows.cli === input.target.cli)
196
+ throw Error("General already runs at this location");
197
+ if (record.pending && matches(input.target, record.pending.to)) {
198
+ if (record.pending.phase === "selected") {
199
+ if (![record.pending.source, record.pending.target].some(row => settingsFingerprint(row) === settingsFingerprint(source)))
200
+ throw Error("General switch configuration was changed");
201
+ execution.commit(() => deps.save(structuredClone(record.pending.target)));
202
+ try {
203
+ await deps.start();
204
+ }
205
+ catch (err) {
206
+ record.hold = "start";
207
+ deps.store.write(record);
208
+ deps.notify("start", err);
209
+ return { started: false };
210
+ }
211
+ delete record.pending;
212
+ delete record.hold;
213
+ deps.store.write(record);
214
+ deps.notify("complete");
215
+ return { started: true };
216
+ }
217
+ if (settingsFingerprint(source) !== settingsFingerprint(record.pending.source))
218
+ throw Error("General switch configuration was changed");
219
+ }
220
+ else if (record.pending && record.pending.phase !== "selected")
221
+ throw Error("General has an unfinished switch to another location");
222
+ const replay = record.pending && record.pending.phase !== "selected" ? record.pending : undefined;
223
+ const windows = replay ? record.windows.find(row => row.id === replay.to) ?? null
224
+ : input.target.location === "windows" ? await deps.prepare(input.target, record) : null;
225
+ deps.assert();
226
+ execution.assert();
227
+ const to = windows?.id ?? "host";
228
+ if (to === record.active)
229
+ throw Error("General already runs at this location");
230
+ if (windows) {
231
+ const old = record.windows.findIndex(row => row.id === windows.id);
232
+ if (old < 0)
233
+ record.windows.push(windows);
234
+ else
235
+ record.windows[old] = windows;
236
+ }
237
+ if (!await deps.idle())
238
+ throw Error("Wait for General to be idle before switching its location");
239
+ deps.assert();
240
+ execution.assert();
241
+ const hostOwner = replay?.hostOwner ?? await deps.capture?.();
242
+ deps.assert();
243
+ execution.assert();
244
+ const target = structuredClone(windows?.config ?? record.host.config);
245
+ // The logical route always stays on the coordinator, including a retained host's older config.
246
+ for (const key of ["general_topic", "channel_id", "topic_id"]) {
247
+ if (source[key] === undefined)
248
+ delete target[key];
249
+ else
250
+ target[key] = source[key];
251
+ }
252
+ if (to === "host")
253
+ record.host.config = target;
254
+ else
255
+ record.windows.find(row => row.id === to).config = target;
256
+ record.pending = replay ?? { id: randomUUID(), phase: "prepared", from: record.active, to, source, target, at: Date.now(), ...(hostOwner ? { hostOwner } : {}) };
257
+ execution.mutate(() => deps.store.write(record));
258
+ let pin;
259
+ try {
260
+ await execution.stopTarget(input.name, async () => { pin = await deps.stop(record.pending.hostOwner); });
261
+ }
262
+ catch (err) {
263
+ record.hold = "exit";
264
+ deps.store.write(record);
265
+ deps.notify("exit", err);
266
+ throw err;
267
+ }
268
+ deps.assert();
269
+ execution.assert();
270
+ if (record.active === "host") {
271
+ record.host.config = structuredClone(deps.hostSnapshot?.() ?? source);
272
+ if (pin)
273
+ record.host.pin = pin;
274
+ }
275
+ record.pending.phase = "stopped";
276
+ execution.mutate(() => deps.store.write(record));
277
+ // Keep the stopped intent until both configuration and selected receipt are durable. Any crash in this gap holds.
278
+ record.active = to;
279
+ record.pending.phase = "selected";
280
+ record.revision = randomUUID();
281
+ delete record.hold;
282
+ execution.commit(() => { deps.store.write(record); deps.save(target); });
283
+ // The committed receipt permits only starting its selected config, never another settings mutation.
284
+ try {
285
+ await deps.start();
286
+ }
287
+ catch (err) {
288
+ record.hold = "start";
289
+ deps.store.write(record);
290
+ deps.notify("start", err);
291
+ return { started: false };
292
+ }
293
+ delete record.pending;
294
+ deps.store.write(record);
295
+ deps.notify("complete");
296
+ return { started: true };
297
+ }
298
+ //# sourceMappingURL=general-binding.js.map