@songsid/agend 2.3.4-beta.7 → 2.3.4-beta.9

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 (146) hide show
  1. package/THIRD_PARTY_NOTICES.md +37 -0
  2. package/dist/agent-cli-instructions.md +1 -1
  3. package/dist/agent-credentials.d.ts +24 -0
  4. package/dist/agent-credentials.js +66 -0
  5. package/dist/agent-credentials.js.map +1 -0
  6. package/dist/agent-endpoint.d.ts +3 -1
  7. package/dist/agent-endpoint.js +13 -0
  8. package/dist/agent-endpoint.js.map +1 -1
  9. package/dist/authority/session-authorizations.d.ts +28 -4
  10. package/dist/authority/session-authorizations.js +63 -17
  11. package/dist/authority/session-authorizations.js.map +1 -1
  12. package/dist/backend/antigravity.js +3 -1
  13. package/dist/backend/antigravity.js.map +1 -1
  14. package/dist/backend/codex-footer-hints.d.ts +4 -0
  15. package/dist/backend/codex-footer-hints.js +27 -0
  16. package/dist/backend/codex-footer-hints.js.map +1 -0
  17. package/dist/backend/codex.js +8 -3
  18. package/dist/backend/codex.js.map +1 -1
  19. package/dist/backend/kiro.d.ts +3 -0
  20. package/dist/backend/kiro.js +39 -1
  21. package/dist/backend/kiro.js.map +1 -1
  22. package/dist/backend/muse.js +5 -3
  23. package/dist/backend/muse.js.map +1 -1
  24. package/dist/backend/types.d.ts +6 -1
  25. package/dist/backend/types.js +3 -0
  26. package/dist/backend/types.js.map +1 -1
  27. package/dist/cache-ledger.d.ts +85 -0
  28. package/dist/cache-ledger.js +236 -1
  29. package/dist/cache-ledger.js.map +1 -1
  30. package/dist/cache-service.d.ts +5 -0
  31. package/dist/cache-service.js +16 -4
  32. package/dist/cache-service.js.map +1 -1
  33. package/dist/channel/adapters/discord.js +11 -3
  34. package/dist/channel/adapters/discord.js.map +1 -1
  35. package/dist/channel/adapters/telegram.js +4 -3
  36. package/dist/channel/adapters/telegram.js.map +1 -1
  37. package/dist/channel/mcp-tools.js +1 -1
  38. package/dist/channel/mcp-tools.js.map +1 -1
  39. package/dist/cross-instance-notice.d.ts +10 -0
  40. package/dist/cross-instance-notice.js +67 -5
  41. package/dist/cross-instance-notice.js.map +1 -1
  42. package/dist/daemon.d.ts +43 -0
  43. package/dist/daemon.js +361 -17
  44. package/dist/daemon.js.map +1 -1
  45. package/dist/delivery-consumed-watch.d.ts +23 -1
  46. package/dist/delivery-consumed-watch.js +30 -3
  47. package/dist/delivery-consumed-watch.js.map +1 -1
  48. package/dist/delivery-reconciliation.d.ts +7 -0
  49. package/dist/delivery-reconciliation.js +9 -1
  50. package/dist/delivery-reconciliation.js.map +1 -1
  51. package/dist/export-import.d.ts +7 -0
  52. package/dist/export-import.js +44 -10
  53. package/dist/export-import.js.map +1 -1
  54. package/dist/fleet-context.d.ts +2 -0
  55. package/dist/fleet-manager.d.ts +85 -4
  56. package/dist/fleet-manager.js +375 -30
  57. package/dist/fleet-manager.js.map +1 -1
  58. package/dist/general-knowledge/skills/concepts/SKILL.md +390 -0
  59. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +1 -0
  60. package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +3 -1
  61. package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +41 -4
  62. package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
  63. package/dist/instance-lifecycle.d.ts +8 -2
  64. package/dist/instance-lifecycle.js +37 -6
  65. package/dist/instance-lifecycle.js.map +1 -1
  66. package/dist/instance-topic-delete.d.ts +77 -0
  67. package/dist/instance-topic-delete.js +123 -0
  68. package/dist/instance-topic-delete.js.map +1 -0
  69. package/dist/instructions.d.ts +1 -1
  70. package/dist/instructions.js +1 -1
  71. package/dist/instructions.js.map +1 -1
  72. package/dist/kiro-engine-status.d.ts +11 -0
  73. package/dist/kiro-engine-status.js +6 -0
  74. package/dist/kiro-engine-status.js.map +1 -1
  75. package/dist/locale.js +47 -1
  76. package/dist/locale.js.map +1 -1
  77. package/dist/log-steps.d.ts +4 -3
  78. package/dist/log-steps.js +32 -7
  79. package/dist/log-steps.js.map +1 -1
  80. package/dist/login-flows.d.ts +2 -0
  81. package/dist/login-flows.js +5 -2
  82. package/dist/login-flows.js.map +1 -1
  83. package/dist/needs-you-hub.js +1 -1
  84. package/dist/needs-you-hub.js.map +1 -1
  85. package/dist/needs-you.d.ts +6 -0
  86. package/dist/needs-you.js +8 -2
  87. package/dist/needs-you.js.map +1 -1
  88. package/dist/outbound-handlers.js +3 -3
  89. package/dist/outbound-handlers.js.map +1 -1
  90. package/dist/outbound-schemas.js +5 -2
  91. package/dist/outbound-schemas.js.map +1 -1
  92. package/dist/queued-handoffs.d.ts +33 -0
  93. package/dist/queued-handoffs.js +75 -0
  94. package/dist/queued-handoffs.js.map +1 -0
  95. package/dist/scheduler/db.d.ts +2 -1
  96. package/dist/scheduler/db.js +23 -9
  97. package/dist/scheduler/db.js.map +1 -1
  98. package/dist/settings-api.d.ts +13 -0
  99. package/dist/settings-api.js +12 -1
  100. package/dist/settings-api.js.map +1 -1
  101. package/dist/tool-permissions.d.ts +5 -2
  102. package/dist/tool-permissions.js +6 -5
  103. package/dist/tool-permissions.js.map +1 -1
  104. package/dist/tool-progress.d.ts +2 -0
  105. package/dist/tool-progress.js +19 -3
  106. package/dist/tool-progress.js.map +1 -1
  107. package/dist/topic-commands.js +4 -0
  108. package/dist/topic-commands.js.map +1 -1
  109. package/dist/ui/chat-strings.js +2 -2
  110. package/dist/ui/fleet-usage.js +90 -27
  111. package/dist/ui/panel-chat.js +2 -0
  112. package/dist/ui/panel-needs.js +4 -3
  113. package/dist/ui/settings-strings.js +2 -2
  114. package/dist/ui/shared/app-i18n.js +2 -2
  115. package/dist/ui/shared/app-needs.js +1 -1
  116. package/dist/ui/shared/app.css +15 -0
  117. package/dist/ui/shared/usage-dialog.js +18 -1
  118. package/dist/ui/shared/view-strings.js +16 -0
  119. package/dist/usage/capacity.d.ts +69 -0
  120. package/dist/usage/capacity.js +119 -0
  121. package/dist/usage/capacity.js.map +1 -0
  122. package/dist/usage/i18n-keys.d.ts +1 -1
  123. package/dist/usage/i18n-keys.js +3 -0
  124. package/dist/usage/i18n-keys.js.map +1 -1
  125. package/dist/usage/profile-timeline.d.ts +16 -0
  126. package/dist/usage/profile-timeline.js +58 -0
  127. package/dist/usage/profile-timeline.js.map +1 -0
  128. package/dist/usage/quota-history.d.ts +43 -0
  129. package/dist/usage/quota-history.js +168 -0
  130. package/dist/usage/quota-history.js.map +1 -0
  131. package/dist/usage/usage-api.d.ts +31 -0
  132. package/dist/usage/usage-api.js +80 -1
  133. package/dist/usage/usage-api.js.map +1 -1
  134. package/dist/usage-report.d.ts +25 -1
  135. package/dist/usage-report.js +55 -4
  136. package/dist/usage-report.js.map +1 -1
  137. package/dist/usage-rollup.d.ts +4 -1
  138. package/dist/usage-rollup.js +12 -3
  139. package/dist/usage-rollup.js.map +1 -1
  140. package/dist/web-api.d.ts +6 -0
  141. package/dist/web-api.js +8 -2
  142. package/dist/web-api.js.map +1 -1
  143. package/dist/web-session-authorization.d.ts +13 -2
  144. package/dist/web-session-authorization.js +10 -3
  145. package/dist/web-session-authorization.js.map +1 -1
  146. package/package.json +1 -1
@@ -38,3 +38,40 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38
38
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
39
39
  SOFTWARE.
40
40
  ```
41
+
42
+ ## tokdash
43
+
44
+ - **Project:** tokdash, https://github.com/JingbiaoMei/tokdash
45
+ - **Version read:** commit `f0868fe1` (2026-11-05)
46
+ - **Used in:**
47
+ - `src/cache-ledger.ts` (#3066 §2): the output speed follows tokdash's timing rules in
48
+ `src/tokdash/output_speed_readers.py` — Claude Code's `post_first_token` window (a leading thinking block's stamp
49
+ minus `thinkingDurationMs`, to the last block; no stop_reason or an API error is not timed) and Codex's
50
+ `response_window` (first model item's start to last model item's end, minus hosted WebSearch time; over 3000 tok/s
51
+ rejected) — and its aggregation in `src/tokdash/output_speed.py` (Σ tokens ÷ Σ duration, never a mean of rates;
52
+ a duration-weighted p10–p90 from 30 responses).
53
+ - The TypeScript is AgEnD's own; no tokdash code is included, and tokdash is never run or depended on.
54
+
55
+ ```
56
+ MIT License
57
+
58
+ Copyright (c) 2026 Jingbiao Mei
59
+
60
+ Permission is hereby granted, free of charge, to any person obtaining a copy
61
+ of this software and associated documentation files (the "Software"), to deal
62
+ in the Software without restriction, including without limitation the rights
63
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
64
+ copies of the Software, and to permit persons to whom the Software is
65
+ furnished to do so, subject to the following conditions:
66
+
67
+ The above copyright notice and this permission notice shall be included in all
68
+ copies or substantial portions of the Software.
69
+
70
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
71
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
72
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
73
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
74
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
75
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
76
+ SOFTWARE.
77
+ ```
@@ -76,4 +76,4 @@ An `uncertain` result may already have reached the target; do not resend blindly
76
76
 
77
77
  ## Verify relayed human consent
78
78
 
79
- Use the original `verification_id` / `[agend-human-id:…]`, not the platform reply `message_id`. The sender must explicitly include `--forward ID` on send/delegate for each hop. Check with `agend-agent delivery-status --message-id ID`: require delivered with an owned proof_kind, original content for the exact resource, and the authorized origin platform/adapter/user_id. Agent summaries and copied headers are not human origin. A web receipt is checked as the web-chat rule under Message Types says (`via web (verified)`, `authority.kind: web-verified`). `/raw` and historical relays have no positive human receipt. A hidden/expired/absent lookup cannot prove consent; uncertain must never trigger a resend. Native acceptance is not consumption.
79
+ Use the original `verification_id` / `[agend-human-id:…]`, not the platform reply `message_id`. The sender must explicitly include `--forward ID` on send/delegate for each hop. Put those ids on `--forward` only; do not repeat them in the message text, because people see that text in the topic notices. Check with `agend-agent delivery-status --message-id ID`: require delivered with an owned proof_kind, original content for the exact resource, and the authorized origin platform/adapter/user_id. Agent summaries and copied headers are not human origin. A web receipt is checked as the web-chat rule under Message Types says (`via web (verified)`, `authority.kind: web-verified`). `/raw` and historical relays have no positive human receipt. A hidden/expired/absent lookup cannot prove consent; uncertain must never trigger a resend. Native acceptance is not consumption.
@@ -0,0 +1,24 @@
1
+ import type { FleetConfig } from "./types.js";
2
+ /** An opaque, process-owned issuing generation; it is never supplied by an HTTP caller. */
3
+ export type AgentCredentialGeneration = Readonly<{
4
+ id: symbol;
5
+ }>;
6
+ /** The dispatch policy and destination identity, including inherited feature switches. */
7
+ export declare function agentCredentialPolicy(fleet: FleetConfig | null, name: string, classic?: boolean): string | null;
8
+ /**
9
+ * Keeps issuing policy separate from the mutable config. Publishing a different policy retires the old
10
+ * generation even if a later rollback returns to the same values. The CLI reads agent.token for each request;
11
+ * renewing it here lets hot Settings changes take effect without waiting for a process restart.
12
+ */
13
+ export declare class AgentCredentials {
14
+ private readonly policy;
15
+ private readonly renew;
16
+ private readonly issued;
17
+ constructor(policy: (name: string) => string | null, renew: (name: string) => string | null);
18
+ issue(name: string, token: string): void;
19
+ invalidate(name: string): void;
20
+ observePolicies(): void;
21
+ private observe;
22
+ capture(name: string, token: string): AgentCredentialGeneration | null;
23
+ current(name: string, token: string, generation: AgentCredentialGeneration): boolean;
24
+ }
@@ -0,0 +1,66 @@
1
+ import { createHash } from "node:crypto";
2
+ import { dashboardFeaturesOffIn } from "./dashboard-permissions.js";
3
+ import { resolveToolSet } from "./tool-permissions.js";
4
+ const digest = (token) => createHash("sha256").update(token).digest("hex");
5
+ /** The dispatch policy and destination identity, including inherited feature switches. */
6
+ export function agentCredentialPolicy(fleet, name, classic = false) {
7
+ const instance = fleet?.instances && Object.hasOwn(fleet.instances, name) ? fleet.instances[name] : undefined;
8
+ if (!instance && !classic)
9
+ return null;
10
+ return JSON.stringify([
11
+ resolveToolSet(instance, name), dashboardFeaturesOffIn(fleet, name),
12
+ instance?.working_directory ?? null, instance?.channel_id ?? null, instance?.topic_id ?? null,
13
+ instance?.general_topic === true, classic,
14
+ ]);
15
+ }
16
+ /**
17
+ * Keeps issuing policy separate from the mutable config. Publishing a different policy retires the old
18
+ * generation even if a later rollback returns to the same values. The CLI reads agent.token for each request;
19
+ * renewing it here lets hot Settings changes take effect without waiting for a process restart.
20
+ */
21
+ export class AgentCredentials {
22
+ policy;
23
+ renew;
24
+ issued = new Map();
25
+ constructor(policy, renew) {
26
+ this.policy = policy;
27
+ this.renew = renew;
28
+ }
29
+ issue(name, token) {
30
+ this.invalidate(name);
31
+ const policy = this.policy(name);
32
+ if (policy === null || !token)
33
+ return;
34
+ this.issued.set(name, { generation: Object.freeze({ id: Symbol(name) }), digest: digest(token), policy });
35
+ }
36
+ invalidate(name) { this.issued.delete(name); }
37
+ observePolicies() {
38
+ for (const name of [...this.issued.keys()])
39
+ this.observe(name);
40
+ }
41
+ observe(name) {
42
+ const old = this.issued.get(name);
43
+ if (!old)
44
+ return;
45
+ const policy = this.policy(name);
46
+ if (policy === old.policy)
47
+ return;
48
+ // Invalidate before any filesystem operation. A failed renewal cannot revive the prior credential.
49
+ this.invalidate(name);
50
+ if (policy !== null) {
51
+ const token = this.renew(name);
52
+ if (token)
53
+ this.issue(name, token);
54
+ }
55
+ }
56
+ capture(name, token) {
57
+ // Also observes direct in-memory changes: request admission never lazily grants an old token new policy.
58
+ this.observe(name);
59
+ const issued = this.issued.get(name);
60
+ return issued?.digest === digest(token) ? issued.generation : null;
61
+ }
62
+ current(name, token, generation) {
63
+ return this.capture(name, token) === generation;
64
+ }
65
+ }
66
+ //# sourceMappingURL=agent-credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-credentials.js","sourceRoot":"","sources":["../src/agent-credentials.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * Authentication: every request must carry `X-Agend-Instance-Token`. The
9
9
  * daemon writes a fresh 32-byte token to <instanceDir>/agent.token (mode 0600)
10
10
  * on each spawn; agent-cli reads it and sends it in the header. The endpoint
11
- * verifies the header matches the on-disk token for the claimed instance,
11
+ * verifies the header matches the on-disk token and its issuing policy/lifecycle generation,
12
12
  * rejecting callers that do not hold that instance's credential. Mode 0600
13
13
  * separates OS users, not same-uid processes: a shell-capable sibling can read
14
14
  * another instance's token and claim its identity. Tool profiles enforce policy
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import type { IncomingMessage, ServerResponse } from "node:http";
18
18
  import type { OutboundContext } from "./outbound-handlers.js";
19
+ import type { AgentCredentials } from "./agent-credentials.js";
19
20
  export interface PersistedReplyContext {
20
21
  chatId: string;
21
22
  threadId?: string;
@@ -24,6 +25,7 @@ export interface PersistedReplyContext {
24
25
  /** Read the last real channel target persisted by the instance daemon. */
25
26
  export declare function readPersistedReplyContext(dataDir: string, instance: string): PersistedReplyContext | null;
26
27
  export interface AgentEndpointContext extends OutboundContext {
28
+ readonly agentCredentials: AgentCredentials;
27
29
  /** #2305: an instance's reaction to a web chat message (FleetManager.reactToWebMessage). */
28
30
  reactToWebMessage?(instance: string, messageId: string, emoji: unknown): Promise<{
29
31
  ok: true;
@@ -156,6 +156,11 @@ export function handleAgentRequest(req, res, ctx) {
156
156
  refuseEarly(req, res, 401, "Invalid or missing instance token");
157
157
  return;
158
158
  }
159
+ const credentialGeneration = ctx.agentCredentials?.capture(instanceFromHeader, tokenFromHeader);
160
+ if (!credentialGeneration) {
161
+ refuseEarly(req, res, 401, "Invalid or missing instance token");
162
+ return;
163
+ }
159
164
  // ── (2) Read body with a size limit ─────────────────────────────────────
160
165
  // The web API uses 512 KiB for JSON requests; the agent endpoint uses the
161
166
  // same limit. Agent CLI payloads are small (instance name, op, and args
@@ -193,6 +198,14 @@ export function handleAgentRequest(req, res, ctx) {
193
198
  res.end(JSON.stringify({ error: "Instance in body does not match token" }));
194
199
  return;
195
200
  }
201
+ // No await between this check and dispatch's current permission checks. A credential is bound to its
202
+ // issuing generation, including policy publication that precedes the daemon's next spawn.
203
+ if (!verifyInstanceToken(ctx, instance, tokenFromHeader)
204
+ || !ctx.agentCredentials.current(instance, tokenFromHeader, credentialGeneration)) {
205
+ res.writeHead(401);
206
+ res.end(JSON.stringify({ error: "Invalid or missing instance token" }));
207
+ return;
208
+ }
196
209
  const result = await dispatchAgentOperation(ctx, instance, op, args);
197
210
  res.writeHead(200, { "Content-Type": "application/json" });
198
211
  const operationId = result && typeof result === "object" && !Array.isArray(result)
@@ -1 +1 @@
1
- {"version":3,"file":"agent-endpoint.js","sourceRoot":"","sources":["../src/agent-endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-endpoint.js","sourceRoot":"","sources":["../src/agent-endpoint.ts"],"names":[],"mappings":"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"}
@@ -21,19 +21,37 @@ export declare const SESSION_AUTHORIZATIONS_MAX = 256;
21
21
  export interface SessionAuthorizationsIo {
22
22
  read(path: string): string;
23
23
  write(path: string, data: string): void;
24
+ /** Remove the file (the fallback when it cannot be rewritten); absent: it cannot be removed. */
25
+ unlink?(path: string): void;
24
26
  }
27
+ /** A write owed to the disk is tried again by the next change, and by a read at most this often (ms, monotonic). */
28
+ export declare const SESSION_AUTHORIZATIONS_RETRY_MS = 5000;
25
29
  export declare class SessionAuthorizations {
26
30
  private readonly path;
27
31
  private readonly log;
28
32
  private readonly io;
33
+ private readonly now;
29
34
  private byHandle;
30
35
  private warned;
36
+ /** The handles the file holds as far as this process knows (what a restart would read back). */
37
+ private persisted;
38
+ /** A write is owed to the disk (the last one failed): retried by the next change, or a read after `retryAt`. */
39
+ private dirty;
40
+ private retryAt;
31
41
  constructor(path: string, log: {
32
42
  warn(obj: object, msg?: string): void;
33
- }, io?: SessionAuthorizationsIo);
43
+ }, io?: SessionAuthorizationsIo, now?: () => number);
34
44
  private load;
35
- /** Persist; false when it could not be written (it still holds for this process: an authorization lost later is only re-asked). */
45
+ /**
46
+ * Persist. `written`: the file now holds what memory holds. `safe`: no authorization memory has dropped can come back
47
+ * on a restart. A failed write leaves the store owing the disk one (retried by the next change, and a read every
48
+ * SESSION_AUTHORIZATIONS_RETRY_MS) — never the old file quietly standing: when it still holds one memory has dropped,
49
+ * it is removed (a restart then only asks again: losing authorizations never grants one); `safe` is false only when
50
+ * even that is impossible (as WebSessionStore does for sessions).
51
+ */
36
52
  private flush;
53
+ /** A write owed to the disk, tried again once its wait is over. */
54
+ private retry;
37
55
  get(handle: string): SessionAuthorization | null;
38
56
  /** §0: this session is authorized by its account, from now until `until`, under `epoch` (it replaces an earlier one). */
39
57
  authorize(handle: string, owner: {
@@ -43,7 +61,13 @@ export declare class SessionAuthorizations {
43
61
  authorization: SessionAuthorization;
44
62
  durable: boolean;
45
63
  };
46
- /** Drop the ones no longer worth keeping: their session is gone, their epoch is old, or they have run out. */
47
- prune(keep: (a: SessionAuthorization) => boolean): number;
64
+ /**
65
+ * Drop the ones no longer worth keeping: their session is gone, their epoch is old, or they have run out. `durable`:
66
+ * none dropped (now or by an earlier failed write) can come back on a restart.
67
+ */
68
+ prune(keep: (a: SessionAuthorization) => boolean): {
69
+ dropped: number;
70
+ durable: boolean;
71
+ };
48
72
  list(): SessionAuthorization[];
49
73
  }
@@ -5,13 +5,15 @@
5
5
  * was given under (authority-state.ts): an epoch bump (`/web revoke`, the switch, loopback_only off) ends every one at
6
6
  * once. Losing this file only loses authorizations — a person authorizes again; it can never grant one.
7
7
  */
8
- import { readFileSync } from "node:fs";
8
+ import { readFileSync, unlinkSync } from "node:fs";
9
9
  import { atomicWriteFileSync } from "../atomic-write.js";
10
10
  const PEERS = ["loopback", "lan", "named_link", "quick_link"];
11
11
  /** At most this many kept: one per signed-in session (the store's own caps are far lower). */
12
12
  export const SESSION_AUTHORIZATIONS_MAX = 256;
13
13
  const HANDLE = /^[0-9a-f]{16}$/;
14
- const fileIo = { read: p => readFileSync(p, "utf8"), write: (p, d) => atomicWriteFileSync(p, d, { mode: 0o600 }) };
14
+ const fileIo = { read: p => readFileSync(p, "utf8"), write: (p, d) => atomicWriteFileSync(p, d, { mode: 0o600 }), unlink: p => unlinkSync(p) };
15
+ /** A write owed to the disk is tried again by the next change, and by a read at most this often (ms, monotonic). */
16
+ export const SESSION_AUTHORIZATIONS_RETRY_MS = 5_000;
15
17
  function valid(v) {
16
18
  if (!v || typeof v !== "object")
17
19
  return false;
@@ -25,12 +27,19 @@ export class SessionAuthorizations {
25
27
  path;
26
28
  log;
27
29
  io;
30
+ now;
28
31
  byHandle = null;
29
32
  warned = false;
30
- constructor(path, log, io = fileIo) {
33
+ /** The handles the file holds as far as this process knows (what a restart would read back). */
34
+ persisted = new Set();
35
+ /** A write is owed to the disk (the last one failed): retried by the next change, or a read after `retryAt`. */
36
+ dirty = false;
37
+ retryAt = 0;
38
+ constructor(path, log, io = fileIo, now = () => performance.now()) {
31
39
  this.path = path;
32
40
  this.log = log;
33
41
  this.io = io;
42
+ this.now = now;
34
43
  }
35
44
  load() {
36
45
  if (this.byHandle)
@@ -49,6 +58,8 @@ export class SessionAuthorizations {
49
58
  const v = JSON.parse(raw);
50
59
  if (v.v === 1 && Array.isArray(v.authorizations))
51
60
  for (const a of v.authorizations.slice(0, SESSION_AUTHORIZATIONS_MAX)) {
61
+ if (valid(a))
62
+ this.persisted.add(a.handle);
52
63
  if (valid(a))
53
64
  this.byHandle.set(a.handle, Object.freeze({ handle: a.handle, owner: Object.freeze({ adapterId: a.owner.adapterId, userId: a.owner.userId }), authorizedAt: a.authorizedAt, until: a.until, epoch: a.epoch, ...(a.peer ? { peer: a.peer } : {}) }));
54
65
  }
@@ -58,21 +69,53 @@ export class SessionAuthorizations {
58
69
  }
59
70
  return this.byHandle;
60
71
  }
61
- /** Persist; false when it could not be written (it still holds for this process: an authorization lost later is only re-asked). */
72
+ /**
73
+ * Persist. `written`: the file now holds what memory holds. `safe`: no authorization memory has dropped can come back
74
+ * on a restart. A failed write leaves the store owing the disk one (retried by the next change, and a read every
75
+ * SESSION_AUTHORIZATIONS_RETRY_MS) — never the old file quietly standing: when it still holds one memory has dropped,
76
+ * it is removed (a restart then only asks again: losing authorizations never grants one); `safe` is false only when
77
+ * even that is impossible (as WebSessionStore does for sessions).
78
+ */
62
79
  flush() {
80
+ const map = this.load();
63
81
  try {
64
- this.io.write(this.path, JSON.stringify({ v: 1, authorizations: [...this.load().values()] }) + "\n");
82
+ this.io.write(this.path, JSON.stringify({ v: 1, authorizations: [...map.values()] }) + "\n");
83
+ this.persisted = new Set(map.keys());
84
+ this.dirty = false;
65
85
  this.warned = false;
66
- return true;
86
+ return { written: true, safe: true };
67
87
  }
68
88
  catch (err) {
69
- if (!this.warned)
70
- this.log.warn({ err: err.message, path: this.path }, "Web session authorizations could not be saved; a restart forgets them");
71
- this.warned = true;
72
- return false;
89
+ this.dirty = true;
90
+ this.retryAt = this.now() + SESSION_AUTHORIZATIONS_RETRY_MS;
91
+ const message = err.message;
92
+ if (![...this.persisted].some(h => !map.has(h))) {
93
+ // The file is only behind (nothing on it that memory dropped): a restart only forgets the newest.
94
+ if (!this.warned)
95
+ this.log.warn({ err: message, path: this.path }, "Web session authorizations could not be saved (will retry); a restart forgets the newest");
96
+ this.warned = true;
97
+ return { written: false, safe: true };
98
+ }
99
+ try {
100
+ if (!this.io.unlink)
101
+ throw new Error("cannot remove");
102
+ this.io.unlink(this.path);
103
+ }
104
+ catch (e) {
105
+ if (e.code !== "ENOENT") {
106
+ this.log.warn({ err: message, path: this.path }, "Web session authorizations could not be saved and the old file could not be removed: a restart may bring back an authorization that ended. Fix the permissions on web-authorizations.json");
107
+ return { written: false, safe: false };
108
+ }
109
+ }
110
+ this.persisted = new Set();
111
+ this.log.warn({ err: message, path: this.path }, "Web session authorizations could not be saved; removed the old file so a restart cannot bring back an authorization that ended (sessions will be asked again)");
112
+ return { written: false, safe: true };
73
113
  }
74
114
  }
75
- get(handle) { return this.load().get(handle) ?? null; }
115
+ /** A write owed to the disk, tried again once its wait is over. */
116
+ retry() { if (this.dirty && this.now() >= this.retryAt)
117
+ this.flush(); }
118
+ get(handle) { this.retry(); return this.load().get(handle) ?? null; }
76
119
  /** §0: this session is authorized by its account, from now until `until`, under `epoch` (it replaces an earlier one). */
77
120
  authorize(handle, owner, authorizedAt, epoch, until, peer) {
78
121
  const a = Object.freeze({ handle, owner: Object.freeze({ adapterId: owner.adapterId, userId: owner.userId }), authorizedAt, until, epoch, ...(peer ? { peer } : {}) });
@@ -84,9 +127,12 @@ export class SessionAuthorizations {
84
127
  // Oldest first out at the cap (the sessions themselves are capped far lower; this only bounds the file).
85
128
  while (map.size > SESSION_AUTHORIZATIONS_MAX)
86
129
  map.delete(map.keys().next().value);
87
- return { authorization: a, durable: this.flush() };
130
+ return { authorization: a, durable: this.flush().written };
88
131
  }
89
- /** Drop the ones no longer worth keeping: their session is gone, their epoch is old, or they have run out. */
132
+ /**
133
+ * Drop the ones no longer worth keeping: their session is gone, their epoch is old, or they have run out. `durable`:
134
+ * none dropped (now or by an earlier failed write) can come back on a restart.
135
+ */
90
136
  prune(keep) {
91
137
  const map = this.load();
92
138
  let dropped = 0;
@@ -95,10 +141,10 @@ export class SessionAuthorizations {
95
141
  map.delete(handle);
96
142
  dropped++;
97
143
  }
98
- if (dropped)
99
- this.flush();
100
- return dropped;
144
+ if (!dropped && !this.dirty)
145
+ return { dropped, durable: true };
146
+ return { dropped, durable: this.flush().safe };
101
147
  }
102
- list() { return [...this.load().values()]; }
148
+ list() { this.retry(); return [...this.load().values()]; }
103
149
  }
104
150
  //# sourceMappingURL=session-authorizations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-authorizations.js","sourceRoot":"","sources":["../../src/authority/session-authorizations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-authorizations.js","sourceRoot":"","sources":["../../src/authority/session-authorizations.ts"],"names":[],"mappings":"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"}
@@ -219,7 +219,9 @@ export class AntigravityBackend {
219
219
  const prefix = config.agentMode === "mcp" && existsSync(this.mcpWrapperPath)
220
220
  ? `${shellQuote(this.mcpWrapperPath)} `
221
221
  : "";
222
- let cmd = `${prefix}${this.binaryPath} --dangerously-skip-permissions`;
222
+ let cmd = `${prefix}${this.binaryPath}`;
223
+ if (config.skipPermissions !== false)
224
+ cmd += " --dangerously-skip-permissions";
223
225
  if (!config.skipResume)
224
226
  cmd += " --continue";
225
227
  if (config.model)