@synoikia/core 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/app.d.ts +10 -8
  2. package/dist/app.js +14 -4
  3. package/dist/app.js.map +1 -1
  4. package/dist/approvals/grants.d.ts +34 -0
  5. package/dist/approvals/grants.js +79 -0
  6. package/dist/approvals/grants.js.map +1 -0
  7. package/dist/approvals/links.d.ts +2 -5
  8. package/dist/approvals/links.js +2 -5
  9. package/dist/approvals/links.js.map +1 -1
  10. package/dist/approvals/service.d.ts +24 -16
  11. package/dist/approvals/service.js +24 -6
  12. package/dist/approvals/service.js.map +1 -1
  13. package/dist/audit-query.d.ts +1 -5
  14. package/dist/audit-query.js +1 -5
  15. package/dist/audit-query.js.map +1 -1
  16. package/dist/auth/mcp-auth.d.ts +11 -17
  17. package/dist/auth/mcp-auth.js +14 -13
  18. package/dist/auth/mcp-auth.js.map +1 -1
  19. package/dist/auth/mcp-tokens.d.ts +4 -4
  20. package/dist/auth/mcp-tokens.js +11 -4
  21. package/dist/auth/mcp-tokens.js.map +1 -1
  22. package/dist/auth/oauth.d.ts +7 -18
  23. package/dist/auth/oauth.js +18 -18
  24. package/dist/auth/oauth.js.map +1 -1
  25. package/dist/auth/oidc.d.ts +1 -4
  26. package/dist/auth/oidc.js +3 -9
  27. package/dist/auth/oidc.js.map +1 -1
  28. package/dist/auth/sessions.d.ts +9 -4
  29. package/dist/auth/sessions.js +18 -2
  30. package/dist/auth/sessions.js.map +1 -1
  31. package/dist/auth/throttle.d.ts +2 -8
  32. package/dist/auth/throttle.js +2 -8
  33. package/dist/auth/throttle.js.map +1 -1
  34. package/dist/auth/totp.d.ts +1 -4
  35. package/dist/auth/totp.js +1 -4
  36. package/dist/auth/totp.js.map +1 -1
  37. package/dist/auth/users.d.ts +1 -4
  38. package/dist/auth/users.js +3 -8
  39. package/dist/auth/users.js.map +1 -1
  40. package/dist/catalog/groups.d.ts +6 -18
  41. package/dist/catalog/groups.js +7 -23
  42. package/dist/catalog/groups.js.map +1 -1
  43. package/dist/catalog/registry.d.ts +1 -4
  44. package/dist/catalog/registry.js +1 -4
  45. package/dist/catalog/registry.js.map +1 -1
  46. package/dist/catalog/rules.d.ts +6 -18
  47. package/dist/catalog/rules.js +3 -9
  48. package/dist/catalog/rules.js.map +1 -1
  49. package/dist/catalog/sync.d.ts +2 -17
  50. package/dist/catalog/sync.js +5 -20
  51. package/dist/catalog/sync.js.map +1 -1
  52. package/dist/cli.js +2 -9
  53. package/dist/cli.js.map +1 -1
  54. package/dist/config/env.js +3 -8
  55. package/dist/config/env.js.map +1 -1
  56. package/dist/crypto/index.js +1 -4
  57. package/dist/crypto/index.js.map +1 -1
  58. package/dist/crypto/rotate.d.ts +2 -5
  59. package/dist/crypto/rotate.js.map +1 -1
  60. package/dist/db/index.d.ts +1 -4
  61. package/dist/db/index.js +1 -4
  62. package/dist/db/index.js.map +1 -1
  63. package/dist/db/schema.d.ts +44 -0
  64. package/dist/db/schema.js +7 -9
  65. package/dist/db/schema.js.map +1 -1
  66. package/dist/events.d.ts +1 -4
  67. package/dist/events.js.map +1 -1
  68. package/dist/gate/access.d.ts +3 -20
  69. package/dist/gate/access.js +3 -20
  70. package/dist/gate/access.js.map +1 -1
  71. package/dist/gate/attestation.d.ts +2 -6
  72. package/dist/gate/attestation.js +2 -6
  73. package/dist/gate/attestation.js.map +1 -1
  74. package/dist/gate/match.d.ts +5 -13
  75. package/dist/gate/match.js +5 -21
  76. package/dist/gate/match.js.map +1 -1
  77. package/dist/gate/pipeline.d.ts +30 -23
  78. package/dist/gate/pipeline.js +68 -11
  79. package/dist/gate/pipeline.js.map +1 -1
  80. package/dist/gate/preapproval.d.ts +3 -10
  81. package/dist/gate/preapproval.js +2 -5
  82. package/dist/gate/preapproval.js.map +1 -1
  83. package/dist/gate/rate-limit.d.ts +4 -14
  84. package/dist/gate/rate-limit.js +4 -14
  85. package/dist/gate/rate-limit.js.map +1 -1
  86. package/dist/gate/redact.d.ts +10 -26
  87. package/dist/gate/redact.js +12 -26
  88. package/dist/gate/redact.js.map +1 -1
  89. package/dist/http/admin/auth.d.ts +2 -8
  90. package/dist/http/admin/auth.js +20 -5
  91. package/dist/http/admin/auth.js.map +1 -1
  92. package/dist/http/admin/instances.js +19 -1
  93. package/dist/http/admin/instances.js.map +1 -1
  94. package/dist/http/admin/system.js +2 -0
  95. package/dist/http/admin/system.js.map +1 -1
  96. package/dist/http/common.d.ts +2 -5
  97. package/dist/http/common.js +2 -5
  98. package/dist/http/common.js.map +1 -1
  99. package/dist/http/mcp/approval-card.d.ts +6 -0
  100. package/dist/http/mcp/approval-card.js +160 -0
  101. package/dist/http/mcp/approval-card.js.map +1 -0
  102. package/dist/http/mcp/approval-routes.d.ts +2 -6
  103. package/dist/http/mcp/approval-routes.js +33 -8
  104. package/dist/http/mcp/approval-routes.js.map +1 -1
  105. package/dist/http/mcp/endpoint.d.ts +4 -16
  106. package/dist/http/mcp/endpoint.js +108 -28
  107. package/dist/http/mcp/endpoint.js.map +1 -1
  108. package/dist/http/mcp/oauth-routes.d.ts +3 -10
  109. package/dist/http/mcp/oauth-routes.js +15 -9
  110. package/dist/http/mcp/oauth-routes.js.map +1 -1
  111. package/dist/http/mcp/pages.d.ts +8 -1
  112. package/dist/http/mcp/pages.js +21 -2
  113. package/dist/http/mcp/pages.js.map +1 -1
  114. package/dist/http/mcp-app.d.ts +1 -4
  115. package/dist/http/mcp-app.js +1 -4
  116. package/dist/http/mcp-app.js.map +1 -1
  117. package/dist/instances/connection.d.ts +5 -14
  118. package/dist/instances/connection.js +6 -18
  119. package/dist/instances/connection.js.map +1 -1
  120. package/dist/instances/manager.d.ts +10 -18
  121. package/dist/instances/manager.js +33 -19
  122. package/dist/instances/manager.js.map +1 -1
  123. package/dist/instances/settings.d.ts +2 -0
  124. package/dist/instances/settings.js +4 -5
  125. package/dist/instances/settings.js.map +1 -1
  126. package/dist/lenient.d.ts +3 -9
  127. package/dist/lenient.js +3 -9
  128. package/dist/lenient.js.map +1 -1
  129. package/dist/lock.d.ts +4 -10
  130. package/dist/lock.js +5 -15
  131. package/dist/lock.js.map +1 -1
  132. package/dist/log.d.ts +2 -5
  133. package/dist/log.js +2 -5
  134. package/dist/log.js.map +1 -1
  135. package/dist/maintenance.js +2 -5
  136. package/dist/maintenance.js.map +1 -1
  137. package/dist/notify/service.d.ts +2 -5
  138. package/dist/notify/service.js +2 -5
  139. package/dist/notify/service.js.map +1 -1
  140. package/dist/plugins/default-repo.d.ts +1 -4
  141. package/dist/plugins/default-repo.js +1 -4
  142. package/dist/plugins/default-repo.js.map +1 -1
  143. package/dist/plugins/discovery.d.ts +2 -5
  144. package/dist/plugins/discovery.js +2 -5
  145. package/dist/plugins/discovery.js.map +1 -1
  146. package/dist/plugins/minisign.d.ts +2 -6
  147. package/dist/plugins/minisign.js.map +1 -1
  148. package/dist/plugins/process.d.ts +1 -4
  149. package/dist/plugins/process.js +1 -4
  150. package/dist/plugins/process.js.map +1 -1
  151. package/dist/plugins/repos.d.ts +4 -16
  152. package/dist/plugins/repos.js +7 -25
  153. package/dist/plugins/repos.js.map +1 -1
  154. package/dist/plugins/supervisor.d.ts +3 -9
  155. package/dist/plugins/supervisor.js +5 -5
  156. package/dist/plugins/supervisor.js.map +1 -1
  157. package/dist/runtime/executions.d.ts +68 -0
  158. package/dist/runtime/executions.js +158 -0
  159. package/dist/runtime/executions.js.map +1 -0
  160. package/dist/runtime/index.d.ts +7 -10
  161. package/dist/runtime/index.js +116 -31
  162. package/dist/runtime/index.js.map +1 -1
  163. package/dist/sandbox/index.d.ts +3 -10
  164. package/dist/sandbox/index.js +2 -3
  165. package/dist/sandbox/index.js.map +1 -1
  166. package/dist/settings.d.ts +3 -4
  167. package/dist/settings.js +9 -4
  168. package/dist/settings.js.map +1 -1
  169. package/dist/testing/contract.d.ts +2 -7
  170. package/dist/testing/contract.js.map +1 -1
  171. package/dist/testing/fake-http.d.ts +1 -5
  172. package/dist/testing/fake-http.js.map +1 -1
  173. package/dist/testing/index.d.ts +14 -12
  174. package/dist/testing/index.js +21 -6
  175. package/dist/testing/index.js.map +1 -1
  176. package/dist/testing/repository.d.ts +2 -7
  177. package/dist/testing/repository.js +3 -12
  178. package/dist/testing/repository.js.map +1 -1
  179. package/drizzle/0012_sensitive_result.sql +7 -0
  180. package/drizzle/meta/0012_snapshot.json +2368 -0
  181. package/drizzle/meta/_journal.json +7 -0
  182. package/package.json +2 -2
@@ -0,0 +1,158 @@
1
+ /** Parked executions (design §5.6): an `execute` whose approval waits on a human outlives its tool call.
2
+ * Only its owner (credential and endpoint) can follow it with `resume`; it keeps running at the decision. */
3
+ export const PARKED_LIMIT = { perPrincipalInstance: 2, perInstance: 8, total: 32 };
4
+ /** Approvals one parked execution can ask for; it also stops asking after one is not given. */
5
+ export const MAX_PARKED_APPROVALS = 10;
6
+ /** How long `resume` waits for a change before it answers "still waiting". */
7
+ export const RESUME_WAIT_MS = 45_000;
8
+ /** How long a finished result waits for `resume` to collect it. */
9
+ export const RESULT_TTL_MS = 10 * 60_000;
10
+ export class ExecutionRegistry {
11
+ now;
12
+ entries = new Map();
13
+ constructor(now = () => Date.now()) {
14
+ this.now = now;
15
+ }
16
+ /** Unfinished parked runs (shutdown waits for them like for any running script). */
17
+ get running() {
18
+ return [...this.entries.values()].filter((e) => !e.result).length;
19
+ }
20
+ hasRoom(owner, instanceId) {
21
+ this.sweep();
22
+ const live = [...this.entries.values()].filter((e) => !e.result);
23
+ const here = live.filter((e) => e.instanceId === instanceId);
24
+ return (live.length < PARKED_LIMIT.total &&
25
+ here.length < PARKED_LIMIT.perInstance &&
26
+ here.filter((e) => e.owner === owner).length < PARKED_LIMIT.perPrincipalInstance);
27
+ }
28
+ adopt(input) {
29
+ this.entries.set(input.id, { ...input, approvals: 1, attached: false, waiters: new Set() });
30
+ }
31
+ /** Whether an adopted run may park again: a loop of denied or timed-out approvals ends here. */
32
+ mayParkAgain(id) {
33
+ const e = this.entries.get(id);
34
+ return !!e && e.approvals < MAX_PARKED_APPROVALS && (!e.lastDecision || e.lastDecision.outcome === 'approved');
35
+ }
36
+ /** The parked run reached another approval. */
37
+ awaiting(id, approval) {
38
+ const e = this.entries.get(id);
39
+ if (!e)
40
+ return;
41
+ e.approval = approval;
42
+ e.approvals++;
43
+ this.changed(e);
44
+ }
45
+ settled(id, approvalId, decision) {
46
+ const e = this.entries.get(id);
47
+ if (!e || e.approval?.approvalId !== approvalId)
48
+ return;
49
+ e.approval = undefined;
50
+ e.lastDecision = decision;
51
+ this.changed(e);
52
+ }
53
+ finish(id, result) {
54
+ const e = this.entries.get(id);
55
+ if (!e)
56
+ return;
57
+ e.result = result;
58
+ e.approval = undefined;
59
+ e.finishedAt = this.now();
60
+ this.changed(e);
61
+ }
62
+ /** The owner's entry, or undefined (unknown, expired, or someone else's: all look the same). */
63
+ find(id, owner, instanceId) {
64
+ this.sweep();
65
+ const e = this.entries.get(id);
66
+ return e && e.owner === owner && e.instanceId === instanceId ? e : undefined;
67
+ }
68
+ status(id, owner, instanceId) {
69
+ const e = this.find(id, owner, instanceId);
70
+ if (!e)
71
+ return undefined;
72
+ // No approver name: it is a sign-in name on the internet-facing MCP port.
73
+ if (e.result)
74
+ return { state: 'done', decision: e.lastDecision?.outcome };
75
+ if (e.approval)
76
+ return { state: 'pending', expiresAt: e.approval.expiresAt.toISOString() };
77
+ if (e.lastDecision && e.lastDecision.outcome !== 'approved')
78
+ return { state: e.lastDecision.outcome };
79
+ return { state: e.lastDecision ? 'approved' : 'running' };
80
+ }
81
+ /** Waits for the result or a new approval, up to `waitMs`. A collected result removes the entry. */
82
+ async wait(id, owner, instanceId, waitMs, signal) {
83
+ const e = this.find(id, owner, instanceId);
84
+ if (!e)
85
+ return 'not_found';
86
+ if (e.attached)
87
+ return 'busy';
88
+ e.attached = true;
89
+ try {
90
+ const startedOn = e.approval?.approvalId;
91
+ const settledNow = () => !!e.result || (!!e.approval && e.approval.approvalId !== startedOn);
92
+ if (!settledNow()) {
93
+ await new Promise((resolve) => {
94
+ const done = () => {
95
+ clearTimeout(timer);
96
+ e.waiters.delete(wake);
97
+ signal?.removeEventListener('abort', done);
98
+ resolve();
99
+ };
100
+ const wake = () => {
101
+ if (settledNow())
102
+ done();
103
+ };
104
+ const timer = setTimeout(done, waitMs);
105
+ e.waiters.add(wake);
106
+ signal?.addEventListener('abort', done);
107
+ });
108
+ }
109
+ if (e.result) {
110
+ this.entries.delete(id);
111
+ return e.result;
112
+ }
113
+ return pending(e);
114
+ }
115
+ finally {
116
+ e.attached = false;
117
+ }
118
+ }
119
+ /** Ends the parked runs of one endpoint, or all of them. Their approvals are cancelled by the gate. */
120
+ abort(instanceId) {
121
+ for (const e of this.entries.values())
122
+ if (!e.result && (!instanceId || e.instanceId === instanceId))
123
+ e.abort();
124
+ }
125
+ changed(e) {
126
+ for (const w of [...e.waiters])
127
+ w();
128
+ }
129
+ sweep() {
130
+ const cutoff = this.now() - RESULT_TTL_MS;
131
+ for (const [id, e] of this.entries)
132
+ if (e.finishedAt !== undefined && e.finishedAt < cutoff)
133
+ this.entries.delete(id);
134
+ }
135
+ }
136
+ export function pendingResult(executionId, approval) {
137
+ return approval
138
+ ? {
139
+ ok: false,
140
+ status: 'awaiting_approval',
141
+ executionId,
142
+ approval,
143
+ error: {
144
+ code: 'AWAITING_APPROVAL',
145
+ message: `${approval.operationKey} waits for a human to approve it on the approval page. Show the link to the user; after they decide, call resume with this executionId.`,
146
+ },
147
+ logs: [],
148
+ }
149
+ : {
150
+ ok: false,
151
+ status: 'running',
152
+ executionId,
153
+ error: { code: 'STILL_RUNNING', message: 'The execution is still running; call resume again.' },
154
+ logs: [],
155
+ };
156
+ }
157
+ const pending = (e) => pendingResult(e.id, e.approval);
158
+ //# sourceMappingURL=executions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executions.js","sourceRoot":"","sources":["../../src/runtime/executions.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,18 @@
1
1
  import type { CallerContext, GateDeps, InstanceRuntime } from '../gate/pipeline.js';
2
+ import type { ExecuteResult } from './executions.js';
2
3
  import type { SandboxResult } from '../sandbox/index.js';
3
- /**
4
- * The two MCP tools' engines (design §5.1–§5.2). The MCP transport layer (phase 14) only has to
5
- * turn a tool call into `executeCode` / `searchCode` and the result back into tool output.
6
- */
7
- /**
8
- * Caps on sandbox work (design §5.2): `executePerMinute` counts `execute` and `search` runs per
9
- * principal and instance, and only so many isolates (up to `memoryMb` each) run at once per instance
10
- * and in total. Over either cap the run is refused before an isolate is created.
11
- */
4
+ /** The engines behind the `search` and `execute` tools (design §5.1–§5.2). */
5
+ /** Sandbox caps (design §5.2): runs per minute per principal and instance, and concurrent isolates per
6
+ * instance and in total; over a cap the run is refused before an isolate exists. */
12
7
  export declare const SANDBOX_CONCURRENCY: {
13
8
  perInstance: number;
14
9
  total: number;
15
10
  };
16
11
  /** Scripts running now, across all instances (shutdown waits for cancelled ones to return). */
17
12
  export declare const sandboxesRunning: () => number;
18
- export declare function executeCode(deps: GateDeps, rt: InstanceRuntime, caller: CallerContext, code: string, signal?: AbortSignal): Promise<SandboxResult>;
13
+ export declare function executeCode(deps: GateDeps, rt: InstanceRuntime, caller: CallerContext, code: string, signal?: AbortSignal): Promise<ExecuteResult>;
14
+ /** `resume(executionId)` (design §5.6): the parked run's result, or that it still waits. */
15
+ export declare function resumeExecution(deps: GateDeps, rt: InstanceRuntime, caller: CallerContext, executionId: string, signal?: AbortSignal): Promise<ExecuteResult>;
19
16
  export interface CatalogFindQuery {
20
17
  text?: string;
21
18
  group?: string;
@@ -7,21 +7,18 @@ import { guides, operationGroups, operations } from '../db/schema.js';
7
7
  import { effectiveAccess } from '../gate/access.js';
8
8
  import { currentGuide, issueAttestationKey } from '../gate/attestation.js';
9
9
  import { createGateBindings, principalKey } from '../gate/pipeline.js';
10
+ import { pendingResult, RESUME_WAIT_MS } from './executions.js';
10
11
  import { BindingError, runInSandbox } from '../sandbox/index.js';
11
- /**
12
- * The two MCP tools' engines (design §5.1–§5.2). The MCP transport layer (phase 14) only has to
13
- * turn a tool call into `executeCode` / `searchCode` and the result back into tool output.
14
- */
15
- /**
16
- * Caps on sandbox work (design §5.2): `executePerMinute` counts `execute` and `search` runs per
17
- * principal and instance, and only so many isolates (up to `memoryMb` each) run at once per instance
18
- * and in total. Over either cap the run is refused before an isolate is created.
19
- */
12
+ /** The engines behind the `search` and `execute` tools (design §5.1–§5.2). */
13
+ /** Sandbox caps (design §5.2): runs per minute per principal and instance, and concurrent isolates per
14
+ * instance and in total; over a cap the run is refused before an isolate exists. */
20
15
  export const SANDBOX_CONCURRENCY = { perInstance: 4, total: 16 };
21
16
  const running = new Map();
22
17
  let runningTotal = 0;
18
+ /** Parked scripts still running, across all registries (they gave back their concurrency slot). */
19
+ let parkedRunning = 0;
23
20
  /** Scripts running now, across all instances (shutdown waits for cancelled ones to return). */
24
- export const sandboxesRunning = () => runningTotal;
21
+ export const sandboxesRunning = () => runningTotal + parkedRunning;
25
22
  function admit(deps, rt, caller) {
26
23
  const who = principalKey(caller);
27
24
  if (!deps.limiter.take(`run:${rt.instanceId}:${who}`, rt.settings.executePerMinute, 60_000)) {
@@ -46,36 +43,123 @@ export async function executeCode(deps, rt, caller, code, signal) {
46
43
  const release = admit(deps, rt, caller);
47
44
  if (typeof release !== 'function')
48
45
  return release;
49
- // Ends with the sandbox (return, error or timeout) or earlier, when the request or session goes away.
46
+ // Ends with the sandbox (return, error or timeout) or earlier, when the request or session goes away;
47
+ // once parked, only the registry ends it (design §5.6).
50
48
  const run = new AbortController();
51
49
  const stop = () => run.abort();
52
50
  signal?.addEventListener('abort', stop);
53
51
  if (signal?.aborted)
54
52
  stop();
53
+ const executionId = randomUUID();
54
+ const registry = caller.parkable ? deps.executions : undefined;
55
+ const owner = principalKey(caller);
56
+ let adopted = false;
57
+ let firstPark;
58
+ const parkedFirst = new Promise((resolve) => (firstPark = resolve));
59
+ const park = registry && {
60
+ reserve: () => adopted
61
+ ? registry.mayParkAgain(executionId)
62
+ ? null
63
+ : 'park_refused'
64
+ : registry.hasRoom(owner, rt.instanceId)
65
+ ? null
66
+ : 'too_many_parked',
67
+ offer: (a) => (adopted ? registry.awaiting(executionId, a) : firstPark(a)),
68
+ settled: (approvalId, decision) => registry.settled(executionId, approvalId, decision),
69
+ };
70
+ const sandbox = runInSandbox({
71
+ code,
72
+ bindings: createGateBindings(deps, rt, caller, run.signal, { executionId, park }),
73
+ limits: rt.settings.sandbox,
74
+ // Each gated call's result was already redacted; this covers anything the script derived or logged.
75
+ redact: rt.redact,
76
+ });
77
+ let first;
55
78
  try {
56
- return await runInSandbox({
57
- code,
58
- bindings: createGateBindings(deps, rt, caller, run.signal),
59
- limits: rt.settings.sandbox,
60
- // Each gated call's result was already redacted; this covers anything the script derived or logged.
61
- redact: rt.redact,
62
- });
79
+ first = await Promise.race([
80
+ sandbox.then((result) => ({ result })),
81
+ parkedFirst.then((approval) => ({ approval })),
82
+ ]);
63
83
  }
64
- finally {
84
+ catch (err) {
65
85
  stop();
86
+ throw err;
87
+ }
88
+ finally {
66
89
  signal?.removeEventListener('abort', stop);
67
90
  release();
68
91
  }
92
+ if ('result' in first) {
93
+ stop();
94
+ return first.result;
95
+ }
96
+ // Parked: the run outlives this tool call, under the registry's caps instead of a concurrency slot.
97
+ registry.adopt({ id: executionId, owner, instanceId: rt.instanceId, approval: first.approval, abort: stop });
98
+ adopted = true;
99
+ parkedRunning++;
100
+ void sandbox.then((result) => {
101
+ parkedRunning--;
102
+ stop();
103
+ registry.finish(executionId, result);
104
+ }, () => {
105
+ parkedRunning--;
106
+ stop();
107
+ registry.finish(executionId, { ok: false, error: { code: 'INTERNAL', message: 'Internal error' }, logs: [] });
108
+ });
109
+ return pendingResult(executionId, first.approval);
69
110
  }
70
- function describeOp(op, groupKey, access) {
111
+ /** `resume(executionId)` (design §5.6): the parked run's result, or that it still waits. */
112
+ export async function resumeExecution(deps, rt, caller, executionId, signal) {
113
+ const outcome = deps.executions
114
+ ? await deps.executions.wait(executionId, principalKey(caller), rt.instanceId, RESUME_WAIT_MS, signal)
115
+ : 'not_found';
116
+ const result = outcome === 'not_found'
117
+ ? {
118
+ ok: false,
119
+ error: {
120
+ code: 'EXECUTION_NOT_FOUND',
121
+ message: 'No parked execution with this id: it finished and was collected, expired, or the server restarted',
122
+ },
123
+ logs: [],
124
+ }
125
+ : outcome === 'busy'
126
+ ? {
127
+ ok: false,
128
+ error: { code: 'BUSY', message: 'Another resume is already waiting on this execution' },
129
+ logs: [],
130
+ }
131
+ : outcome;
132
+ writeAudit(deps.db, {
133
+ kind: 'call',
134
+ instanceId: rt.instanceId,
135
+ decision: 'resumed',
136
+ actorKind: 'mcp_client',
137
+ actorId: caller.client.id,
138
+ resultStatus: result.ok ? 'ok' : 'status' in result ? 'pending' : 'error',
139
+ detail: { executionId, ...(result.ok ? {} : { error: result.error.code }) },
140
+ }, deps.now?.() ?? new Date());
141
+ return result;
142
+ }
143
+ function describeOp(op, groupKey, access, granted = false) {
144
+ // A session grant (design §5.8) turns Ask into auto-approval, except for locked and typed-confirmation ops.
145
+ const mode = access.reachable &&
146
+ access.mode === 'approve' &&
147
+ granted &&
148
+ !op.locked &&
149
+ !op.typedConfirmation &&
150
+ access.level === 'ask'
151
+ ? 'auto'
152
+ : access.reachable
153
+ ? access.mode
154
+ : undefined;
71
155
  return {
72
156
  key: op.key,
73
157
  displayName: op.displayName ?? undefined,
74
158
  group: groupKey,
75
159
  classification: op.locked ? 'locked' : op.classification,
76
160
  // Whether a call runs straight away, waits for a human, or is auto-approved at level `write`.
77
- approval: access.reachable
78
- ? { run: 'none', approve: 'required', auto: 'auto' }[access.mode]
161
+ approval: mode
162
+ ? { run: 'none', approve: 'required', auto: 'auto' }[mode]
79
163
  : op.locked || op.classification === 'write'
80
164
  ? 'required'
81
165
  : 'none',
@@ -85,7 +169,7 @@ function describeOp(op, groupKey, access) {
85
169
  ...(access.reachable ? {} : { disabled: true, reason: access.reason }),
86
170
  };
87
171
  }
88
- function catalogBindings(db, instanceId, principal) {
172
+ function catalogBindings(db, instanceId, principal, granted) {
89
173
  const load = () => {
90
174
  const groups = new Map(db
91
175
  .select()
@@ -130,7 +214,7 @@ function catalogBindings(db, instanceId, principal) {
130
214
  if (!hay.includes(text))
131
215
  continue;
132
216
  }
133
- out.push(describeOp(op, group?.key, access));
217
+ out.push(describeOp(op, group?.key, access, granted()));
134
218
  if (out.length >= limit)
135
219
  break;
136
220
  }
@@ -142,16 +226,17 @@ function catalogBindings(db, instanceId, principal) {
142
226
  if (!op)
143
227
  return null;
144
228
  const access = accessOf(op, groups);
145
- return { ...describeOp(op, groups.get(op.groupId)?.key, access), paramsSchema: op.paramsSchema, docs: op.docs };
229
+ return {
230
+ ...describeOp(op, groups.get(op.groupId)?.key, access, granted()),
231
+ paramsSchema: op.paramsSchema,
232
+ docs: op.docs,
233
+ };
146
234
  },
147
235
  groups: async () => listGroups(db, instanceId).filter((g) => !g.stale),
148
236
  };
149
237
  }
150
- /**
151
- * `guides.get(key)`: fetches the plugin's current best-practice guide, records its version, and
152
- * hands out the attestation key `execute` must present from the same MCP session (design §5.1). Revising
153
- * a guide rotates the key. Every read is audited: the key attests that this session was shown it.
154
- */
238
+ /** `guides.get(key)`: returns the current guide and the session-bound attestation key `execute` must
239
+ * present (design §5.1); every read is audited. */
155
240
  function guideBindings(deps, rt, caller) {
156
241
  return {
157
242
  get: async ([key]) => {
@@ -206,7 +291,7 @@ function guideBindings(deps, rt, caller) {
206
291
  }
207
292
  function searchBindings(deps, rt, caller) {
208
293
  const bindings = {
209
- catalog: catalogBindings(deps.db, rt.instanceId, caller.principal),
294
+ catalog: catalogBindings(deps.db, rt.instanceId, caller.principal, () => !!deps.grants?.active(rt.instanceId, principalKey(caller))),
210
295
  };
211
296
  if (rt.manifest.capabilities.registry) {
212
297
  bindings.registry = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,5 @@
1
- /**
2
- * Runs model-authored code in a fresh V8 isolate (design §5.4). The isolate has no Node APIs at all:
3
- * the only way out is the host functions passed in `bindings`. Values cross the boundary as JSON.
4
- *
5
- * `code` is the body of an async function: it may `await` bindings and should `return` its result.
6
- */
1
+ /** Runs model code in a fresh V8 isolate with no Node APIs (design §5.4); only `bindings` reach out, and
2
+ * values cross as JSON. `code` is an async function body. */
7
3
  export interface SandboxLimits {
8
4
  /** Wall-clock budget for sandbox activity. Time a binding spends paused (human approval) is excluded. */
9
5
  timeoutMs: number;
@@ -30,10 +26,7 @@ export interface SandboxRun {
30
26
  /** `{ acme: { call: fn } }` becomes `acme.call(...)` inside the sandbox. */
31
27
  bindings: Record<string, Record<string, Binding>>;
32
28
  limits?: Partial<SandboxLimits>;
33
- /**
34
- * Applied to everything that leaves the sandbox — the result (before it is size-capped), every
35
- * `console.log` argument and error messages — so nothing the code derives or prints escapes redaction.
36
- */
29
+ /** Applied to everything leaving the sandbox (result, `console.log` arguments, errors). */
37
30
  redact?: (value: unknown) => unknown;
38
31
  }
39
32
  export type SandboxResult = {
@@ -53,9 +53,8 @@ class Budget {
53
53
  clearTimeout(this.timer);
54
54
  }
55
55
  }
56
- // Runs inside the isolate, as its own script before the user's. Everything it holds on to — the host
57
- // references, the wrapper — lives in the closure, so user code (a separate script) can never name it.
58
- // It installs `console` and one frozen object per binding namespace, and removes `__syn` from the global.
56
+ // Prelude script run before the user's: it keeps host references in its closure, installs `console`
57
+ // and frozen binding namespaces, and deletes `__syn` from the global.
59
58
  const prelude = (spec) => `(() => {
60
59
  const call = globalThis.__syn.call;
61
60
  const log = globalThis.__syn.log;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAC;AAc9B,MAAM,cAAc,GAAkB;IACpC,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,EAAE,GAAG,IAAI;IACzB,WAAW,EAAE,EAAE,GAAG,IAAI;CACvB,CAAC;AAEF,yFAAyF;AACzF,MAAM,OAAO,YAAa,SAAQ,KAAK;IAE1B;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAyBD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,MAAM,KAAK,GAAG,4BAA4B,CAAC;AAE3C,oFAAoF;AACpF,MAAM,MAAM;IASS;IARX,SAAS,CAAS;IAClB,SAAS,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,CAAC,CAAC;IACX,KAAK,CAAkB;IAC/B,OAAO,GAAG,KAAK,CAAC;IAEhB,YACE,OAAe,EACE,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;QAErC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC9C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,MAAM;QACJ,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,IAAI;QACF,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF;AAED,oGAAoG;AACpG,sEAAsE;AACtE,MAAM,OAAO,GAAG,CAAC,IAA8B,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;iBAiBnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;;;;MAM/B,CAAC;AAEP,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAe;IAChD,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,+FAA+F;IAC/F,iDAAiD;IACjD,MAAM,WAAW,GAAG,CAAC,CAAoC,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KACnC,CAAC,CAAC;IACH,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;QAC/C,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAU,EAAE,EAAU,EAAE,QAAgB,EAAmB,EAAE;YACnF,gFAAgF;YAChF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3E,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,IAAI,CAAC,OAAO;gBACV,OAAO,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;YAC1G,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAc,CAAC;gBAC/C,OAAO,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,GAAG,YAAY,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;gBACjE,MAAM,OAAO,GAAG,GAAG,YAAY,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;gBACxF,OAAO,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,EAAE;YACnC,IAAI,QAAQ,IAAI,MAAM,CAAC,WAAW;gBAAE,OAAO;YAC3C,IAAI,IAAe,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAc,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;YAC3B,CAAC;YACD,0FAA0F;YAC1F,MAAM,IAAI,GAAI,MAAM,CAAC,IAAI,CAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/G,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;YAC1D,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAA2C,CAAC;QAChF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC7E,CAAC;QACF,MAAM,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhE,4EAA4E;QAC5E,+FAA+F;QAC/F,MAAM,MAAM,GAAG,mBAAmB,GAAG,CAAC,IAAI;;;EAG5C,CAAC;QACC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACtE,MAAM,IAAI,cAAc,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAW,CAAC;QACjG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CACwD,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QACjF,iGAAiG;QACjG,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACzF,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1D,IAAI;SACL,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,cAAe,SAAQ,KAAK;IAErB;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;IAIvB,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,GAAY,EAAE,OAAgB,EAAE,OAAoB;IACpE,IAAI,GAAG,YAAY,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACnF,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IAC9G,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAC5E,CAAC;IACD,mFAAmF;IACnF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC"}
@@ -7,6 +7,8 @@ declare const SETTINGS_SCHEMAS: {
7
7
  disableLocalLogin: z.ZodDefault<z.ZodBoolean>;
8
8
  sessionIdleMinutes: z.ZodDefault<z.ZodNumber>;
9
9
  sessionAbsoluteHours: z.ZodDefault<z.ZodNumber>;
10
+ approvalSessionIdleHours: z.ZodDefault<z.ZodNumber>;
11
+ approvalSessionAbsoluteDays: z.ZodDefault<z.ZodNumber>;
10
12
  }, z.core.$strip>>;
11
13
  readonly mcp: z.ZodPrefault<z.ZodObject<{
12
14
  defaultAuthMode: z.ZodDefault<z.ZodEnum<{
@@ -33,10 +35,7 @@ export type Settings<S extends SettingsSection> = z.infer<(typeof SETTINGS_SCHEM
33
35
  export declare function isSettingsSection(name: string): name is SettingsSection;
34
36
  /** Stored settings are read leniently: a field a newer schema rejects falls back to its default. */
35
37
  export declare function getSettings<S extends SettingsSection>(db: Db, section: S): Settings<S>;
36
- /**
37
- * Startup step: removes stored settings fields the current schema rejects, once (and warned about
38
- * once) rather than on every read. Valid fields are left exactly as stored.
39
- */
38
+ /** Startup: removes stored settings fields the schema rejects, once; valid fields stay as stored. */
40
39
  export declare function normalizeStoredSettings(db: Db): string[];
41
40
  export declare function updateSettings<S extends SettingsSection>(db: Db, section: S, patch: unknown, actor?: {
42
41
  userId?: string;
package/dist/settings.js CHANGED
@@ -24,6 +24,14 @@ const SETTINGS_SCHEMAS = {
24
24
  .min(1)
25
25
  .max(24 * 30)
26
26
  .default(12),
27
+ /** Approval-page sign-in on the MCP port (design §5.3): TOTP once per browser for this long. */
28
+ approvalSessionIdleHours: z
29
+ .number()
30
+ .int()
31
+ .min(1)
32
+ .max(24 * 7)
33
+ .default(12),
34
+ approvalSessionAbsoluteDays: z.number().int().min(1).max(30).default(7),
27
35
  })
28
36
  .prefault({}),
29
37
  mcp: z
@@ -58,10 +66,7 @@ export function getSettings(db, section) {
58
66
  const row = db.select().from(settings).where(eq(settings.key, section)).get();
59
67
  return parseLeniently(SETTINGS_SCHEMAS[section], row?.value, `settings.${section}`);
60
68
  }
61
- /**
62
- * Startup step: removes stored settings fields the current schema rejects, once (and warned about
63
- * once) rather than on every read. Valid fields are left exactly as stored.
64
- */
69
+ /** Startup: removes stored settings fields the schema rejects, once; valid fields stay as stored. */
65
70
  export function normalizeStoredSettings(db) {
66
71
  const changed = [];
67
72
  for (const row of db.select().from(settings).all()) {
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,6 @@
1
1
  import type { PluginHarness } from './index.js';
2
- /**
3
- * The end-to-end checks every plugin's suite repeats, as one framework-agnostic call on a running
4
- * harness: a read works at Read, a write is refused while its group is at Read, a locked operation
5
- * waits for a human who must type its confirmation literal, upstream secrets never reach the
6
- * sandbox, and each call is audited. Use as `expect(await checkPluginContract(h, …)).toEqual([])`.
7
- * It leaves the read and write operations' groups at Read.
8
- */
2
+ /** The end-to-end checks every plugin repeats (read, refused write, locked with literal, secrets kept
3
+ * out, audit): `expect(await checkPluginContract(h, …)).toEqual([])`. Leaves those groups at Read. */
9
4
  export interface ContractCall {
10
5
  /** Sandbox code that makes the call and returns its result, e.g. `return await acme.call('x');`. */
11
6
  code: string;