@sumicom/quicksave 0.8.3 → 0.8.5

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 (35) hide show
  1. package/dist/ai/claudeCliProvider.d.ts +45 -0
  2. package/dist/ai/claudeCliProvider.d.ts.map +1 -1
  3. package/dist/ai/claudeCliProvider.js +13 -1
  4. package/dist/ai/claudeCliProvider.js.map +1 -1
  5. package/dist/ai/claudeSdkProvider.d.ts +16 -0
  6. package/dist/ai/claudeSdkProvider.d.ts.map +1 -1
  7. package/dist/ai/claudeSdkProvider.js +10 -4
  8. package/dist/ai/claudeSdkProvider.js.map +1 -1
  9. package/dist/ai/codexAppServer/approvalMapping.d.ts +15 -0
  10. package/dist/ai/codexAppServer/approvalMapping.d.ts.map +1 -0
  11. package/dist/ai/codexAppServer/approvalMapping.js +93 -0
  12. package/dist/ai/codexAppServer/approvalMapping.js.map +1 -0
  13. package/dist/ai/codexAppServer/permissionMapping.d.ts +6 -6
  14. package/dist/ai/codexAppServer/permissionMapping.d.ts.map +1 -1
  15. package/dist/ai/codexAppServer/permissionMapping.js +9 -16
  16. package/dist/ai/codexAppServer/permissionMapping.js.map +1 -1
  17. package/dist/ai/codexAppServer/provider.d.ts.map +1 -1
  18. package/dist/ai/codexAppServer/provider.js +22 -43
  19. package/dist/ai/codexAppServer/provider.js.map +1 -1
  20. package/dist/ai/provider.d.ts +11 -1
  21. package/dist/ai/provider.d.ts.map +1 -1
  22. package/dist/ai/provider.js +56 -1
  23. package/dist/ai/provider.js.map +1 -1
  24. package/dist/ai/sessionManager.d.ts +2 -1
  25. package/dist/ai/sessionManager.d.ts.map +1 -1
  26. package/dist/ai/sessionManager.js +62 -35
  27. package/dist/ai/sessionManager.js.map +1 -1
  28. package/dist/handlers/messageHandler.d.ts.map +1 -1
  29. package/dist/handlers/messageHandler.js +6 -9
  30. package/dist/handlers/messageHandler.js.map +1 -1
  31. package/dist/index.js +2 -2
  32. package/dist/service/ipcClient.js +1 -1
  33. package/dist/service/run.js +1 -1
  34. package/dist/service/types.js +1 -1
  35. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"permissionMapping.js","sourceRoot":"","sources":["../../../src/ai/codexAppServer/permissionMapping.ts"],"names":[],"mappings":"AA+BA,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,IAA0C;IAE1C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,MAAM,UAAU,GAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAkB;QAC9B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;QAC9B,aAAa,EAAE,KAAK;KACrB,CAAC;IACF,MAAM,cAAc,GAAkB;QACpC,IAAI,EAAE,gBAAgB;QACtB,aAAa;QACb,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;QACtC,aAAa,EAAE,IAAI;QACnB,mBAAmB,EAAE,KAAK;QAC1B,eAAe,EAAE,KAAK;KACvB,CAAC;IAEF,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,mBAAmB;YACtB,+DAA+D;YAC/D,OAAO;gBACL,cAAc,EAAE,OAAO;gBACvB,aAAa,EAAE,UAAU;gBACzB,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,KAAK,MAAM;YACT,kEAAkE;YAClE,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,aAAa,EAAE,QAAQ;gBACvB,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,KAAK,aAAa;YAChB,8DAA8D;YAC9D,yCAAyC;YACzC,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;gBAC3D,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,KAAK,MAAM;YACT,mDAAmD;YACnD,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;gBAC3D,iBAAiB,EAAE,aAAa;aACjC,CAAC;QACJ,KAAK,SAAS,CAAC;QACf;YACE,4CAA4C;YAC5C,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;gBAC3D,iBAAiB,EAAE,MAAM;aAC1B,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAsB,EACtB,IAA0C;IAM1C,MAAM,CAAC,GAAG,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"permissionMapping.js","sourceRoot":"","sources":["../../../src/ai/codexAppServer/permissionMapping.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AA2BlE,MAAM,UAAU,wBAAwB,CACtC,MAA6B,EAC7B,IAA0C;IAE1C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,MAAM,UAAU,GAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAkB;QAC9B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;QAC9B,aAAa,EAAE,KAAK;KACrB,CAAC;IACF,MAAM,cAAc,GAAkB;QACpC,IAAI,EAAE,gBAAgB;QACtB,aAAa;QACb,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;QACtC,aAAa,EAAE,IAAI;QACnB,mBAAmB,EAAE,KAAK;QAC1B,eAAe,EAAE,KAAK;KACvB,CAAC;IAEF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO;gBACL,cAAc,EAAE,OAAO;gBACvB,aAAa,EAAE,UAAU;gBACzB,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,aAAa,EAAE,QAAQ;gBACvB,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;gBAC3D,iBAAiB,EAAE,aAAa;aACjC,CAAC;QACJ,KAAK,SAAS,CAAC;QACf;YACE,4CAA4C;YAC5C,OAAO;gBACL,cAAc,EAAE,YAAY;gBAC5B,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;gBAC3D,iBAAiB,EAAE,MAAM;aAC1B,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,IAA0C;IAE1C,OAAO,wBAAwB,CAC7B,gCAAgC,CAAC,OAAO,EAAE,KAAK,CAA0B,EACzE,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAsB,EACtB,IAA0C;IAM1C,MAAM,CAAC,GAAG,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;KACvC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai/codexAppServer/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EACV,mBAAmB,EAEnB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAiBjF;;;;;;;GAOG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAW;IAC/B,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAY;IAE/C,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAmCrD,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;CAiC5D;AAYD;;;;;;GAMG;AACH,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE;;;;wCAIoC;IACpC,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtD;+DAC2D;IAC3D,kBAAkB,IAAI,OAAO,CAAC;CAC/B;AAmOD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,EAAE,CA8BX;AA8JD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai/codexAppServer/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAiBjF;;;;;;;GAOG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAW;IAC/B,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAY;IAE/C,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAmCrD,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;CAiC5D;AAYD;;;;;;GAMG;AACH,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE;;;;wCAIoC;IACpC,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtD;+DAC2D;IAC3D,kBAAkB,IAAI,OAAO,CAAC;CAC/B;AA6MD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,EAAE,CA8BX;AAwJD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { dirname } from 'node:path';
2
2
  import { fileURLToPath } from 'node:url';
3
3
  import { buildSandboxMcpServerConfig, SANDBOX_MCP_NAME } from '../sandboxMcp.js';
4
+ import { normalizePermissionLevelForAgent } from '../provider.js';
4
5
  import { getEventStore } from '../../storage/eventStore.js';
5
6
  import { consumeAppServerStream } from './cardAdapter.js';
7
+ import { codexApprovalResponse, codexApprovalToPermissionPrompt, } from './approvalMapping.js';
6
8
  import { spawnAppServer } from './processManager.js';
7
9
  import { RuntimeOverrideStore } from './overrideStore.js';
8
10
  import { TokenAccounting } from './tokenAccounting.js';
@@ -225,32 +227,15 @@ class CodexAppServerSession {
225
227
  async handleServerRequest(req) {
226
228
  const requestIdStr = String(req.id);
227
229
  switch (req.method) {
228
- case 'item/commandExecution/requestApproval': {
229
- const params = req.params;
230
- const decision = await this.callbacks.handlePermissionRequest(this.threadId, {
231
- toolName: 'Bash',
232
- toolInput: { command: params.command ?? '', cwd: params.cwd ?? '' },
233
- toolUseId: requestIdStr,
234
- });
235
- return { decision: decision.action === 'allow' ? 'approved' : 'denied' };
236
- }
237
- case 'item/fileChange/requestApproval': {
238
- const params = req.params;
239
- const decision = await this.callbacks.handlePermissionRequest(this.threadId, {
240
- toolName: 'Edit',
241
- toolInput: { reason: params.reason ?? '' },
242
- toolUseId: requestIdStr,
243
- });
244
- return { decision: decision.action === 'allow' ? 'approved' : 'denied' };
245
- }
246
- case 'item/permissions/requestApproval': {
247
- const params = req.params;
248
- const decision = await this.callbacks.handlePermissionRequest(this.threadId, {
249
- toolName: 'Permissions',
250
- toolInput: { reason: params.reason ?? '' },
251
- toolUseId: requestIdStr,
252
- });
253
- return { decision: decision.action === 'allow' ? 'approved' : 'denied' };
230
+ case 'item/commandExecution/requestApproval':
231
+ case 'item/fileChange/requestApproval':
232
+ case 'item/permissions/requestApproval':
233
+ case 'execCommandApproval':
234
+ case 'applyPatchApproval': {
235
+ const method = req.method;
236
+ const prompt = codexApprovalToPermissionPrompt(method, requestIdStr, req.params);
237
+ const decision = await this.callbacks.handlePermissionRequest(this.threadId, prompt);
238
+ return codexApprovalResponse(method, req.params, decision);
254
239
  }
255
240
  default:
256
241
  // Unknown server request — refuse.
@@ -322,7 +307,8 @@ function seedOverrideStoreFromResponse(store, resp) {
322
307
  });
323
308
  }
324
309
  function buildThreadStartParams(opts) {
325
- const perm = mapPermissionLevelToInitialThreadOpts(opts.permissionLevel, opts.sandboxed);
310
+ const preset = normalizePermissionLevelForAgent('codex', opts.permissionLevel);
311
+ const perm = mapCodexPresetToInitialThreadOpts(preset, opts.sandboxed);
326
312
  return {
327
313
  model: opts.model ?? null,
328
314
  modelProvider: null,
@@ -344,7 +330,8 @@ function buildThreadStartParams(opts) {
344
330
  };
345
331
  }
346
332
  function buildThreadResumeParams(opts) {
347
- const perm = mapPermissionLevelToInitialThreadOpts(opts.permissionLevel, opts.sandboxed);
333
+ const preset = normalizePermissionLevelForAgent('codex', opts.permissionLevel);
334
+ const perm = mapCodexPresetToInitialThreadOpts(preset, opts.sandboxed);
348
335
  return {
349
336
  threadId: opts.sessionId,
350
337
  history: null,
@@ -388,34 +375,26 @@ function normalizeEffort(value) {
388
375
  return 'medium';
389
376
  }
390
377
  }
391
- /** Map Quicksave's PermissionLevel to the v2 fields we send on
378
+ /** Map Codex's permission preset to the v2 fields we send on
392
379
  * `thread/start` / `thread/resume`. Keeps the mapping in one place
393
380
  * so Phase 3's per-turn override pipeline can reuse it. */
394
- function mapPermissionLevelToInitialThreadOpts(level, sandboxed) {
395
- // Conservative bridge: Quicksave's existing presets map roughly to
396
- // these v2 values. Phase 3 introduces `permissionMapping.ts` with
397
- // the full matrix; here we use the closest single-axis approximation
398
- // so legacy Quicksave config keeps working unchanged.
381
+ function mapCodexPresetToInitialThreadOpts(preset, sandboxed) {
399
382
  let approvalPolicy = 'on-request';
400
383
  let sandbox = 'workspace-write';
401
384
  const approvalsReviewer = 'user';
402
- switch (level) {
403
- case 'bypassPermissions':
385
+ switch (preset) {
386
+ case 'full-access':
404
387
  approvalPolicy = 'never';
405
388
  sandbox = 'danger-full-access';
406
389
  break;
407
- case 'acceptEdits':
408
- approvalPolicy = 'on-request';
409
- sandbox = 'workspace-write';
410
- break;
411
- case 'plan':
390
+ case 'read-only':
412
391
  approvalPolicy = 'on-request';
413
392
  sandbox = 'read-only';
414
393
  break;
415
- case 'auto':
394
+ case 'auto-review':
416
395
  approvalPolicy = 'on-request';
417
396
  sandbox = 'workspace-write';
418
- break;
397
+ return { approvalPolicy, sandbox: !sandboxed ? 'danger-full-access' : sandbox, approvalsReviewer: 'auto_review' };
419
398
  case 'default':
420
399
  default:
421
400
  approvalPolicy = 'on-request';
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai/codexAppServer/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai/codexAppServer/provider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  import type { AgentId, CardEvent, CardStreamEnd, ContextUsageBreakdown } from '@sumicom/quicksave-shared';
2
2
  import type { StreamCardBuilder } from './cardBuilder.js';
3
- export type PermissionLevel = 'bypassPermissions' | 'acceptEdits' | 'default' | 'plan' | 'auto';
3
+ export declare const CLAUDE_PERMISSION_MODES: readonly ["default", "acceptEdits", "bypassPermissions", "plan", "auto"];
4
+ export declare const CODEX_PERMISSION_PRESETS: readonly ["read-only", "default", "auto-review", "full-access"];
5
+ export type ClaudePermissionMode = typeof CLAUDE_PERMISSION_MODES[number];
6
+ export type CodexPermissionPreset = typeof CODEX_PERMISSION_PRESETS[number];
7
+ export type PermissionLevel = ClaudePermissionMode | CodexPermissionPreset;
8
+ export declare function isClaudePermissionMode(value: unknown): value is ClaudePermissionMode;
9
+ export declare function isCodexPermissionPreset(value: unknown): value is CodexPermissionPreset;
10
+ export declare function defaultPermissionLevelForAgent(agentId: AgentId): PermissionLevel;
11
+ export declare function isPermissionLevelAcceptedForAgent(agentId: AgentId, value: unknown): boolean;
12
+ export declare function normalizePermissionLevelForAgent(agentId: AgentId, value: unknown): PermissionLevel;
13
+ export declare function isFullAccessPermission(agentId: AgentId, level: PermissionLevel): boolean;
4
14
  export type ProviderHistoryMode = 'claude-jsonl' | 'memory';
5
15
  /** Represents a running provider session. */
6
16
  export interface ProviderSession {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,57 @@
1
- export {};
1
+ export const CLAUDE_PERMISSION_MODES = [
2
+ 'default',
3
+ 'acceptEdits',
4
+ 'bypassPermissions',
5
+ 'plan',
6
+ 'auto',
7
+ ];
8
+ export const CODEX_PERMISSION_PRESETS = [
9
+ 'read-only',
10
+ 'default',
11
+ 'auto-review',
12
+ 'full-access',
13
+ ];
14
+ export function isClaudePermissionMode(value) {
15
+ return typeof value === 'string' && CLAUDE_PERMISSION_MODES.includes(value);
16
+ }
17
+ export function isCodexPermissionPreset(value) {
18
+ return typeof value === 'string' && CODEX_PERMISSION_PRESETS.includes(value);
19
+ }
20
+ export function defaultPermissionLevelForAgent(agentId) {
21
+ return agentId === 'codex' ? 'default' : 'acceptEdits';
22
+ }
23
+ export function isPermissionLevelAcceptedForAgent(agentId, value) {
24
+ if (agentId === 'codex') {
25
+ return isCodexPermissionPreset(value)
26
+ || value === 'bypassPermissions'
27
+ || value === 'plan'
28
+ || value === 'auto'
29
+ || value === 'acceptEdits';
30
+ }
31
+ return isClaudePermissionMode(value);
32
+ }
33
+ export function normalizePermissionLevelForAgent(agentId, value) {
34
+ if (agentId === 'codex') {
35
+ if (isCodexPermissionPreset(value))
36
+ return value;
37
+ // Compatibility for sessions created before Codex had first-class presets.
38
+ if (value === 'bypassPermissions')
39
+ return 'full-access';
40
+ if (value === 'plan')
41
+ return 'read-only';
42
+ if (value === 'auto')
43
+ return 'auto-review';
44
+ if (value === 'acceptEdits')
45
+ return 'default';
46
+ return defaultPermissionLevelForAgent(agentId);
47
+ }
48
+ if (isClaudePermissionMode(value))
49
+ return value;
50
+ return defaultPermissionLevelForAgent(agentId);
51
+ }
52
+ export function isFullAccessPermission(agentId, level) {
53
+ return agentId === 'codex'
54
+ ? level === 'full-access'
55
+ : level === 'bypassPermissions';
56
+ }
2
57
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,aAAa;IACb,mBAAmB;IACnB,MAAM;IACN,MAAM;CACE,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,SAAS;IACT,aAAa;IACb,aAAa;CACL,CAAC;AAMX,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,uBAA6C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,wBAA8C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,OAAgB,EAAE,KAAc;IAChF,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,uBAAuB,CAAC,KAAK,CAAC;eAChC,KAAK,KAAK,mBAAmB;eAC7B,KAAK,KAAK,MAAM;eAChB,KAAK,KAAK,MAAM;eAChB,KAAK,KAAK,aAAa,CAAC;IAC/B,CAAC;IACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,OAAgB,EAChB,KAAc;IAEd,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAI,uBAAuB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACjD,2EAA2E;QAC3E,IAAI,KAAK,KAAK,mBAAmB;YAAE,OAAO,aAAa,CAAC;QACxD,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,WAAW,CAAC;QACzC,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,aAAa,CAAC;QAC3C,IAAI,KAAK,KAAK,aAAa;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,sBAAsB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,KAAsB;IAC7E,OAAO,OAAO,KAAK,OAAO;QACxB,CAAC,CAAC,KAAK,KAAK,aAAa;QACzB,CAAC,CAAC,KAAK,KAAK,mBAAmB,CAAC;AACpC,CAAC"}
@@ -52,6 +52,7 @@ export declare class SessionManager extends EventEmitter {
52
52
  constructor(providers: CodingAgentProvider[], defaultAgentId?: AgentId);
53
53
  private getProvider;
54
54
  private resolveAgentId;
55
+ private resolveKnownSessionAgentId;
55
56
  initPreferences(): Promise<void>;
56
57
  getPreferences(): ClaudePreferences;
57
58
  setPreferences(prefs: Partial<ClaudePreferences>): ClaudePreferences;
@@ -89,7 +90,7 @@ export declare class SessionManager extends EventEmitter {
89
90
  * is going away. Used by closeSession and onSessionExited so the map
90
91
  * doesn't leak and any awaiter unblocks with a deny. */
91
92
  private cancelPendingInputsForSession;
92
- setPermissionLevel(sessionId: string, level: PermissionLevel): Promise<boolean>;
93
+ setPermissionLevel(sessionId: string, requestedLevel: string): Promise<boolean>;
93
94
  getPermissionLevel(sessionId: string): PermissionLevel;
94
95
  /**
95
96
  * Forward a runtime override to a Codex `app-server` session if the
@@ -1 +1 @@
1
- {"version":3,"file":"sessionManager.d.ts","sourceRoot":"","sources":["../../src/ai/sessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionManager.d.ts","sourceRoot":"","sources":["../../src/ai/sessionManager.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { SANDBOX_BASH_TOOL, UPDATE_SESSION_STATUS_TOOL } from './sandboxMcp.js';
10
10
  import { getSessionRegistry } from './sessionRegistry.js';
11
11
  import { getEventStore } from '../storage/eventStore.js';
12
12
  import { buildSystemPrompt } from './systemPrompt.js';
13
+ import { defaultPermissionLevelForAgent, isFullAccessPermission, isPermissionLevelAcceptedForAgent, normalizePermissionLevelForAgent, } from './provider.js';
13
14
  /**
14
15
  * Events emitted:
15
16
  * 'card-event' (event: CardEvent)
@@ -21,7 +22,7 @@ import { buildSystemPrompt } from './systemPrompt.js';
21
22
  * 'session-config-updated' ({ sessionId, config: Record<string, ConfigValue> })
22
23
  */
23
24
  /** Tools auto-approved at each permission level (no user prompt). */
24
- const AUTO_APPROVE = {
25
+ const CLAUDE_AUTO_APPROVE = {
25
26
  bypassPermissions: new Set([
26
27
  'Edit', 'Write', 'NotebookEdit', 'TodoWrite', 'Agent', 'EnterWorktree', 'ExitWorktree',
27
28
  'WebFetch', 'WebSearch', 'Bash',
@@ -35,6 +36,19 @@ const AUTO_APPROVE = {
35
36
  plan: new Set(['EnterPlanMode']),
36
37
  auto: new Set(['TodoWrite', 'EnterWorktree', 'ExitWorktree', 'Agent', 'EnterPlanMode']),
37
38
  };
39
+ const CODEX_AUTO_APPROVE = {
40
+ 'read-only': new Set(['EnterPlanMode']),
41
+ default: new Set(['TodoWrite', 'EnterWorktree', 'ExitWorktree', 'Agent', 'EnterPlanMode']),
42
+ 'auto-review': new Set(['TodoWrite', 'EnterWorktree', 'ExitWorktree', 'Agent', 'EnterPlanMode']),
43
+ 'full-access': new Set([
44
+ 'Edit', 'Write', 'NotebookEdit', 'TodoWrite', 'Agent', 'EnterWorktree', 'ExitWorktree',
45
+ 'WebFetch', 'WebSearch', 'Bash',
46
+ 'Skill', 'ToolSearch', 'Config',
47
+ 'CronCreate', 'CronDelete', 'CronList', 'RemoteTrigger',
48
+ 'EnterPlanMode', 'ExitPlanMode',
49
+ 'TaskOutput', 'TaskStop',
50
+ ]),
51
+ };
38
52
  const SESSION_STAGES = [
39
53
  'investigating',
40
54
  'working',
@@ -44,6 +58,13 @@ const SESSION_STAGES = [
44
58
  function isSessionStage(value) {
45
59
  return SESSION_STAGES.includes(value);
46
60
  }
61
+ function autoApproveToolsFor(agentId, level) {
62
+ const normalized = normalizePermissionLevelForAgent(agentId, level);
63
+ if (agentId === 'codex') {
64
+ return CODEX_AUTO_APPROVE[normalized];
65
+ }
66
+ return CLAUDE_AUTO_APPROVE[normalized];
67
+ }
47
68
  /**
48
69
  * Map a user response string back to each question in an AskUserQuestion call.
49
70
  *
@@ -171,6 +192,22 @@ export class SessionManager extends EventEmitter {
171
192
  }
172
193
  return this.defaultAgentId;
173
194
  }
195
+ resolveKnownSessionAgentId(sessionId) {
196
+ const activeAgent = this.sessions.get(sessionId)?.agentId;
197
+ if (activeAgent)
198
+ return activeAgent;
199
+ const rememberedAgent = this.sessionAgents.get(sessionId);
200
+ if (rememberedAgent)
201
+ return rememberedAgent;
202
+ const rawConfig = this.sessionConfigs.get(sessionId);
203
+ const configAgent = normalizeAgentId(rawConfig?.agent ?? rawConfig?.provider);
204
+ if (configAgent && this.providers.has(configAgent))
205
+ return configAgent;
206
+ const registryAgent = normalizeAgentId(getSessionRegistry().findBySessionId(sessionId)?.agent);
207
+ if (registryAgent && this.providers.has(registryAgent))
208
+ return registryAgent;
209
+ return this.defaultAgentId;
210
+ }
174
211
  // ── Preferences ──
175
212
  async initPreferences() {
176
213
  // Model is tracked from the last session's init event via onModelDetected callback.
@@ -236,6 +273,7 @@ export class SessionManager extends EventEmitter {
236
273
  else if (key === 'permissionMode' && typeof value === 'string') {
237
274
  try {
238
275
  await this.setPermissionLevel(sessionId, value);
276
+ next.permissionMode = this.getPermissionLevel(sessionId);
239
277
  }
240
278
  catch (err) {
241
279
  // CLI rejected the mode (e.g. auto mode not supported for this model/plan).
@@ -244,7 +282,7 @@ export class SessionManager extends EventEmitter {
244
282
  this.emit('session-config-updated', { sessionId, config: prev });
245
283
  throw err;
246
284
  }
247
- this.persistRegistryField(sessionId, 'permissionMode', value);
285
+ this.persistRegistryField(sessionId, 'permissionMode', next.permissionMode);
248
286
  }
249
287
  else if (key === 'sandboxed' && typeof value === 'boolean') {
250
288
  this.sessionSandboxed.set(sessionId, value);
@@ -272,25 +310,15 @@ export class SessionManager extends EventEmitter {
272
310
  }
273
311
  // ── Session Lifecycle ──
274
312
  async startSession(opts) {
275
- // Accept both Claude-style modes and Codex preset ids; either can arrive
276
- // depending on which agent's picker the PWA showed. Codex preset ids
277
- // bundle approval+sandbox; the codex provider expands them via
278
- // resolveCodexPermissionPreset.
279
- const validModes = new Set([
280
- 'default', 'acceptEdits', 'bypassPermissions', 'plan', 'auto',
281
- 'read-only', 'auto-review', 'full-access',
282
- ]);
283
- const level = (validModes.has(opts.permissionMode ?? '')
284
- ? opts.permissionMode
285
- : 'acceptEdits');
286
313
  const provider = this.getProvider(opts.agent);
314
+ const level = normalizePermissionLevelForAgent(provider.id, opts.permissionMode);
287
315
  const sandboxed = !!opts.sandboxed;
288
316
  const systemPrompt = buildSystemPrompt(provider.id, opts.systemPrompt);
289
317
  // Mint a per-session bypass token up front. The CLI bakes its path into
290
318
  // the PermissionRequest hook at spawn time; later toggles just touch/rm
291
319
  // the sentinel file without a respawn.
292
320
  const bypassToken = randomUUID();
293
- applyBypassFlag(bypassToken, level === 'bypassPermissions');
321
+ applyBypassFlag(bypassToken, isFullAccessPermission(provider.id, level));
294
322
  // Create cardBuilder with 'pending' sessionId — will be updated after provider returns real one
295
323
  const cardBuilder = new StreamCardBuilder('pending', opts.streamId, opts.cwd);
296
324
  const callbacks = this.makeCallbacks(provider.id);
@@ -384,9 +412,6 @@ export class SessionManager extends EventEmitter {
384
412
  // consumeStream picks it up after the current turn's result event.
385
413
  if (existing?.streaming && existing.providerSession?.alive) {
386
414
  console.log(`[session-manager] hot resume (active) session=${opts.sessionId.slice(0, 8)}`);
387
- if (existing.cardBuilder) {
388
- existing.cardBuilder.userMessage(opts.prompt);
389
- }
390
415
  const ps = existing.providerSession;
391
416
  if (ps.pendingStreamIds) {
392
417
  ps.pendingStreamIds.push(opts.streamId);
@@ -403,8 +428,6 @@ export class SessionManager extends EventEmitter {
403
428
  const ps = existing.providerSession;
404
429
  if (existing.cardBuilder) {
405
430
  existing.cardBuilder.cancelDeferredClear?.();
406
- existing.cardBuilder.userMessage(opts.prompt);
407
- existing.cardBuilder.startNewTurn(opts.streamId);
408
431
  }
409
432
  ps.currentStreamId = opts.streamId;
410
433
  ps.resultEmitted = false;
@@ -436,15 +459,9 @@ export class SessionManager extends EventEmitter {
436
459
  // Restore session settings from in-memory maps, falling back to persisted
437
460
  // registry (survives daemon restarts).
438
461
  const registryEntry = getSessionRegistry().getEntry(opts.cwd, opts.sessionId);
439
- const validModes = new Set([
440
- 'default', 'acceptEdits', 'bypassPermissions', 'plan', 'auto',
441
- 'read-only', 'auto-review', 'full-access',
442
- ]);
443
- const restoredLevel = this.sessionPermissions.get(opts.sessionId)
444
- ?? (validModes.has(registryEntry?.permissionMode ?? '') ? registryEntry.permissionMode : undefined);
445
- const level = restoredLevel ?? 'acceptEdits';
446
462
  const sandboxed = this.sessionSandboxed.get(opts.sessionId) ?? registryEntry?.sandboxed ?? false;
447
463
  const provider = this.getProvider(agentId);
464
+ const level = normalizePermissionLevelForAgent(provider.id, this.sessionPermissions.get(opts.sessionId) ?? registryEntry?.permissionMode);
448
465
  const cardBuilder = existing?.cardBuilder ?? new StreamCardBuilder(opts.sessionId, opts.streamId, opts.cwd);
449
466
  await cardBuilder.snapshotCutoff();
450
467
  const callbacks = this.makeCallbacks(provider.id);
@@ -465,7 +482,7 @@ export class SessionManager extends EventEmitter {
465
482
  // fresh one (happens when cold-resuming a session we don't have in memory,
466
483
  // e.g. after a daemon restart).
467
484
  const bypassToken = existing?.bypassToken ?? randomUUID();
468
- applyBypassFlag(bypassToken, level === 'bypassPermissions');
485
+ applyBypassFlag(bypassToken, isFullAccessPermission(provider.id, level));
469
486
  const { sessionId, session: providerSession } = await provider.resumeSession({
470
487
  sessionId: opts.sessionId,
471
488
  prompt: opts.prompt,
@@ -604,22 +621,27 @@ export class SessionManager extends EventEmitter {
604
621
  }
605
622
  }
606
623
  // ── Permission ──
607
- async setPermissionLevel(sessionId, level) {
624
+ async setPermissionLevel(sessionId, requestedLevel) {
608
625
  const ps = this.sessions.get(sessionId);
609
- const prevLevel = ps?.permissionLevel ?? this.sessionPermissions.get(sessionId) ?? 'acceptEdits';
626
+ const agentId = this.resolveKnownSessionAgentId(sessionId);
627
+ if (!isPermissionLevelAcceptedForAgent(agentId, requestedLevel)) {
628
+ throw new Error(`Permission mode "${requestedLevel}" is not valid for ${agentId}`);
629
+ }
630
+ const level = normalizePermissionLevelForAgent(agentId, requestedLevel);
631
+ const prevLevel = normalizePermissionLevelForAgent(agentId, ps?.permissionLevel ?? this.sessionPermissions.get(sessionId));
610
632
  if (ps)
611
633
  ps.permissionLevel = level;
612
634
  this.sessionPermissions.set(sessionId, level);
613
635
  // bypass is driven by the daemon-owned sentinel file the CLI's hook
614
636
  // checks. Toggle it first so the next tool call sees the right state.
615
637
  if (ps?.bypassToken) {
616
- applyBypassFlag(ps.bypassToken, level === 'bypassPermissions');
638
+ applyBypassFlag(ps.bypassToken, isFullAccessPermission(agentId, level));
617
639
  }
618
640
  const session = ps?.providerSession;
619
641
  if (session?.alive && typeof session.sendControlRequest === 'function') {
620
642
  // bypassPermissions is handled entirely on the daemon side (hook + AUTO_APPROVE).
621
643
  // Send `default` to the CLI so it never enters its own bypass mode.
622
- const cliMode = level === 'bypassPermissions' ? 'default' : level;
644
+ const cliMode = isFullAccessPermission(agentId, level) ? 'default' : level;
623
645
  try {
624
646
  await session.sendControlRequest('set_permission_mode', { mode: cliMode });
625
647
  }
@@ -629,7 +651,7 @@ export class SessionManager extends EventEmitter {
629
651
  ps.permissionLevel = prevLevel;
630
652
  this.sessionPermissions.set(sessionId, prevLevel);
631
653
  if (ps?.bypassToken) {
632
- applyBypassFlag(ps.bypassToken, prevLevel === 'bypassPermissions');
654
+ applyBypassFlag(ps.bypassToken, isFullAccessPermission(agentId, prevLevel));
633
655
  }
634
656
  this.emitSessionUpdate(sessionId);
635
657
  throw err;
@@ -668,7 +690,10 @@ export class SessionManager extends EventEmitter {
668
690
  return true;
669
691
  }
670
692
  getPermissionLevel(sessionId) {
671
- return this.sessions.get(sessionId)?.permissionLevel ?? 'acceptEdits';
693
+ const agentId = this.resolveKnownSessionAgentId(sessionId);
694
+ return this.sessions.get(sessionId)?.permissionLevel
695
+ ?? this.sessionPermissions.get(sessionId)
696
+ ?? defaultPermissionLevelForAgent(agentId);
672
697
  }
673
698
  /**
674
699
  * Forward a runtime override to a Codex `app-server` session if the
@@ -1060,9 +1085,11 @@ export class SessionManager extends EventEmitter {
1060
1085
  toolName = 'Bash'; // fall through to permission check as Bash
1061
1086
  }
1062
1087
  // Check permission level auto-approve set
1088
+ const agentId = this.resolveKnownSessionAgentId(sessionId);
1063
1089
  const level = this.sessions.get(sessionId)?.permissionLevel
1064
- ?? this.sessionPermissions.get(sessionId) ?? 'acceptEdits';
1065
- if (!AUTO_APPROVE[level].has(toolName))
1090
+ ?? this.sessionPermissions.get(sessionId)
1091
+ ?? defaultPermissionLevelForAgent(agentId);
1092
+ if (!autoApproveToolsFor(agentId, level).has(toolName))
1066
1093
  return false;
1067
1094
  // For file-writing tools, restrict to project cwd
1068
1095
  const FILE_WRITE_TOOLS = new Set(['Write', 'Edit', 'NotebookEdit']);