@jungjaehoon/mama-os 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/codex-cli-wrapper.d.ts.map +1 -1
  3. package/dist/agent/codex-cli-wrapper.js +16 -13
  4. package/dist/agent/codex-cli-wrapper.js.map +1 -1
  5. package/dist/api/graph-api-types.d.ts +2 -0
  6. package/dist/api/graph-api-types.d.ts.map +1 -1
  7. package/dist/api/graph-api.d.ts.map +1 -1
  8. package/dist/api/graph-api.js +141 -12
  9. package/dist/api/graph-api.js.map +1 -1
  10. package/dist/cli/commands/start.d.ts.map +1 -1
  11. package/dist/cli/commands/start.js +92 -5
  12. package/dist/cli/commands/start.js.map +1 -1
  13. package/dist/cli/config/config-manager.d.ts.map +1 -1
  14. package/dist/cli/config/config-manager.js +61 -2
  15. package/dist/cli/config/config-manager.js.map +1 -1
  16. package/dist/cli/config/types.d.ts +8 -0
  17. package/dist/cli/config/types.d.ts.map +1 -1
  18. package/dist/cli/config/types.js.map +1 -1
  19. package/dist/gateways/discord.d.ts +4 -0
  20. package/dist/gateways/discord.d.ts.map +1 -1
  21. package/dist/gateways/discord.js +94 -8
  22. package/dist/gateways/discord.js.map +1 -1
  23. package/dist/gateways/slack.d.ts +4 -0
  24. package/dist/gateways/slack.d.ts.map +1 -1
  25. package/dist/gateways/slack.js +4 -2
  26. package/dist/gateways/slack.js.map +1 -1
  27. package/dist/multi-agent/agent-message-queue.d.ts +2 -2
  28. package/dist/multi-agent/agent-message-queue.d.ts.map +1 -1
  29. package/dist/multi-agent/agent-message-queue.js.map +1 -1
  30. package/dist/multi-agent/agent-process-manager.d.ts +11 -6
  31. package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
  32. package/dist/multi-agent/agent-process-manager.js +118 -55
  33. package/dist/multi-agent/agent-process-manager.js.map +1 -1
  34. package/dist/multi-agent/agent-process-pool.d.ts +6 -6
  35. package/dist/multi-agent/agent-process-pool.d.ts.map +1 -1
  36. package/dist/multi-agent/agent-process-pool.js +2 -2
  37. package/dist/multi-agent/agent-process-pool.js.map +1 -1
  38. package/dist/multi-agent/delegation-format-validator.d.ts.map +1 -1
  39. package/dist/multi-agent/delegation-format-validator.js +2 -8
  40. package/dist/multi-agent/delegation-format-validator.js.map +1 -1
  41. package/dist/multi-agent/multi-agent-base.d.ts +2 -2
  42. package/dist/multi-agent/multi-agent-base.d.ts.map +1 -1
  43. package/dist/multi-agent/multi-agent-base.js +23 -10
  44. package/dist/multi-agent/multi-agent-base.js.map +1 -1
  45. package/dist/multi-agent/multi-agent-discord.d.ts +13 -4
  46. package/dist/multi-agent/multi-agent-discord.d.ts.map +1 -1
  47. package/dist/multi-agent/multi-agent-discord.js +171 -50
  48. package/dist/multi-agent/multi-agent-discord.js.map +1 -1
  49. package/dist/multi-agent/multi-agent-slack.d.ts +19 -2
  50. package/dist/multi-agent/multi-agent-slack.d.ts.map +1 -1
  51. package/dist/multi-agent/multi-agent-slack.js +145 -14
  52. package/dist/multi-agent/multi-agent-slack.js.map +1 -1
  53. package/dist/multi-agent/multi-bot-manager.d.ts.map +1 -1
  54. package/dist/multi-agent/multi-bot-manager.js +83 -27
  55. package/dist/multi-agent/multi-bot-manager.js.map +1 -1
  56. package/dist/multi-agent/orchestrator.d.ts +9 -0
  57. package/dist/multi-agent/orchestrator.d.ts.map +1 -1
  58. package/dist/multi-agent/orchestrator.js +49 -15
  59. package/dist/multi-agent/orchestrator.js.map +1 -1
  60. package/dist/multi-agent/pr-review-poller.d.ts +32 -4
  61. package/dist/multi-agent/pr-review-poller.d.ts.map +1 -1
  62. package/dist/multi-agent/pr-review-poller.js +128 -55
  63. package/dist/multi-agent/pr-review-poller.js.map +1 -1
  64. package/dist/multi-agent/runtime-process.d.ts +37 -0
  65. package/dist/multi-agent/runtime-process.d.ts.map +1 -0
  66. package/dist/multi-agent/runtime-process.js +89 -0
  67. package/dist/multi-agent/runtime-process.js.map +1 -0
  68. package/dist/multi-agent/swarm/swarm-task-runner.js.map +1 -1
  69. package/dist/multi-agent/types.d.ts +37 -1
  70. package/dist/multi-agent/types.d.ts.map +1 -1
  71. package/dist/multi-agent/types.js +3 -0
  72. package/dist/multi-agent/types.js.map +1 -1
  73. package/dist/onboarding/phase-7-integrations.js +1 -1
  74. package/package.json +1 -1
  75. package/public/viewer/js/modules/settings.js +101 -3
package/README.md CHANGED
@@ -409,7 +409,7 @@ multi_agent:
409
409
  trigger_prefix: '!review'
410
410
  persona_file: '~/.mama/personas/reviewer.md'
411
411
  bot_token: 'DISCORD_BOT_TOKEN_3'
412
- tier: 2 # Read-only for analysis
412
+ tier: 1 # Full access for code changes
413
413
  auto_respond_keywords: ['review', 'check', '리뷰', '검토']
414
414
 
415
415
  # Regex-based category routing
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli-wrapper.d.ts","sourceRoot":"","sources":["../../src/agent/codex-cli-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,OAAO,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IACjE,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAUD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAyB;gBAE5B,OAAO,GAAE,sBAA2B;IAKhD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GACpD,OAAO,CAAC,YAAY,CAAC;IAgCxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,SAAS;IAkFjB,OAAO,CAAC,OAAO;IAiDf,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,UAAU;CAsCnB"}
1
+ {"version":3,"file":"codex-cli-wrapper.d.ts","sourceRoot":"","sources":["../../src/agent/codex-cli-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,OAAO,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IACjE,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAUD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAyB;gBAE5B,OAAO,GAAE,sBAA2B;IAKhD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GACpD,OAAO,CAAC,YAAY,CAAC;IAgCxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,SAAS;IAsFjB,OAAO,CAAC,OAAO;IAiDf,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,UAAU;CAsCnB"}
@@ -92,12 +92,6 @@ class CodexCLIWrapper {
92
92
  const cwd = this.options.cwd;
93
93
  if (options?.resumeSession) {
94
94
  args.push('exec', 'resume');
95
- if (this.sessionId) {
96
- args.push(this.sessionId);
97
- }
98
- else {
99
- args.push('--last');
100
- }
101
95
  }
102
96
  else {
103
97
  args.push('exec');
@@ -111,6 +105,14 @@ class CodexCLIWrapper {
111
105
  if (sandbox === 'danger-full-access') {
112
106
  args.push('--dangerously-bypass-approvals-and-sandbox');
113
107
  }
108
+ // For `codex exec resume`, keep options before positional args so they are
109
+ // never parsed as PROMPT.
110
+ if (this.sessionId) {
111
+ args.push(this.sessionId);
112
+ }
113
+ else {
114
+ args.push('--last');
115
+ }
114
116
  }
115
117
  else {
116
118
  args.push('--json', '--output-last-message', outputFile, '--color', 'never');
@@ -144,14 +146,15 @@ class CodexCLIWrapper {
144
146
  args.push('--add-dir', dir);
145
147
  }
146
148
  }
147
- }
148
- for (const override of configOverrides) {
149
- if (override) {
150
- args.push('-c', override);
149
+ // configOverrides and model are not supported in resume mode
150
+ for (const override of configOverrides) {
151
+ if (override) {
152
+ args.push('-c', override);
153
+ }
154
+ }
155
+ if (model) {
156
+ args.push('--model', model);
151
157
  }
152
- }
153
- if (model) {
154
- args.push('--model', model);
155
158
  }
156
159
  // Read prompt from stdin to avoid arg length issues
157
160
  args.push('-');
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli-wrapper.js","sourceRoot":"","sources":["../../src/agent/codex-cli-wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-cli-wrapper.js","sourceRoot":"","sources":["../../src/agent/codex-cli-wrapper.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,8 @@ export interface CheckpointData {
34
34
  export interface GraphHandlerOptions {
35
35
  getAgentStates?: () => Map<string, string>;
36
36
  getSwarmTasks?: (limit: number) => SwarmTask[];
37
+ applyMultiAgentConfig?: (config: Record<string, unknown>) => Promise<void>;
38
+ restartMultiAgentAgent?: (agentId: string) => Promise<void>;
37
39
  }
38
40
  export interface SwarmTask {
39
41
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"graph-api-types.d.ts","sourceRoot":"","sources":["../../src/api/graph-api-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAI5D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,SAAS,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAID,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAID,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"graph-api-types.d.ts","sourceRoot":"","sources":["../../src/api/graph-api-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph-api.d.ts","sourceRoot":"","sources":["../../src/api/graph-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EAET,cAAc,EACd,mBAAmB,EAGnB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAmB9B,QAAA,MAAM,gBAAgB,QAAuC,CAAC;AAC9D,QAAA,MAAM,eAAe,QAAsC,CAAC;AAC5D,QAAA,MAAM,cAAc,QAAqC,CAAC;AAK1D,iBAAe,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAmCjD;AAED,iBAAe,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CA0BjD;AAWD,iBAAe,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAiC5D;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAGrD;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAE1E;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAG/E;AAyjBD,iBAAS,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAgX7E;AA0wCD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,CAAC;AAEF,YAAY,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,cAAc,EACd,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"graph-api.d.ts","sourceRoot":"","sources":["../../src/api/graph-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EAET,cAAc,EACd,mBAAmB,EAGnB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAmB9B,QAAA,MAAM,gBAAgB,QAAuC,CAAC;AAC9D,QAAA,MAAM,eAAe,QAAsC,CAAC;AAC5D,QAAA,MAAM,cAAc,QAAqC,CAAC;AAsC1D,iBAAe,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAmCjD;AAED,iBAAe,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CA0BjD;AAWD,iBAAe,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAiC5D;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAGrD;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAE1E;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAG/E;AAyjBD,iBAAS,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CA+W7E;AAq5CD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,CAAC;AAEF,YAAY,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,cAAc,EACd,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
@@ -46,6 +46,37 @@ exports.VIEWER_JS_PATH = VIEWER_JS_PATH;
46
46
  const SW_JS_PATH = path_1.default.join(VIEWER_DIR, 'sw.js');
47
47
  const MANIFEST_JSON_PATH = path_1.default.join(VIEWER_DIR, 'manifest.json');
48
48
  const FAVICON_PATH = path_1.default.join(__dirname, '../../public/favicon.ico');
49
+ // Model pattern helpers (used in multiple validation functions)
50
+ const isClaudeModel = (model) => /^claude-/i.test(model);
51
+ const isCodexModel = (model) => /^(gpt-|o\d|codex)/i.test(model);
52
+ // Allowed directories for persona files (security: prevent arbitrary file read)
53
+ const ALLOWED_PERSONA_DIRS = [
54
+ path_1.default.join(os_1.default.homedir(), '.mama', 'personas'),
55
+ path_1.default.join(os_1.default.homedir(), '.mama', 'workspace'),
56
+ ];
57
+ /**
58
+ * Validate persona_file path to prevent arbitrary file read attacks.
59
+ * Only allows paths within ~/.mama/personas/ or ~/.mama/workspace/.
60
+ * Uses fs.realpathSync to resolve symlinks and prevent symlink escape attacks.
61
+ */
62
+ function isValidPersonaPath(filePath) {
63
+ if (!filePath) {
64
+ return false;
65
+ }
66
+ const expandedPath = filePath.startsWith('~/')
67
+ ? path_1.default.join(os_1.default.homedir(), filePath.slice(2))
68
+ : path_1.default.resolve(filePath);
69
+ const normalizedPath = path_1.default.normalize(expandedPath);
70
+ let resolvedPath;
71
+ try {
72
+ resolvedPath = fs_1.default.realpathSync(normalizedPath);
73
+ }
74
+ catch {
75
+ // File doesn't exist or can't be resolved - reject
76
+ return false;
77
+ }
78
+ return ALLOWED_PERSONA_DIRS.some((dir) => resolvedPath.startsWith(dir + path_1.default.sep));
79
+ }
49
80
  async function getAllNodes() {
50
81
  const adapter = getAdapter();
51
82
  const stmt = adapter.prepare(`
@@ -774,7 +805,7 @@ function createGraphHandler(options = {}) {
774
805
  }
775
806
  // Route: PUT /api/config - update config
776
807
  if (pathname === '/api/config' && req.method === 'PUT') {
777
- await handleUpdateConfigRequest(req, res);
808
+ await handleUpdateConfigRequest(req, res, options);
778
809
  return true;
779
810
  }
780
811
  // Route: POST /api/restart - graceful restart via mama CLI
@@ -804,7 +835,6 @@ function createGraphHandler(options = {}) {
804
835
  stdio: 'ignore',
805
836
  }).unref();
806
837
  process.exit(0);
807
- return;
808
838
  }
809
839
  // Spawn detached daemon directly, then exit current process
810
840
  // Cannot use `mama start` because it checks PID (current process still alive)
@@ -844,7 +874,7 @@ function createGraphHandler(options = {}) {
844
874
  }
845
875
  // Route: PUT /api/multi-agent/agents/:id - update agent config
846
876
  if (pathname.startsWith('/api/multi-agent/agents/') && req.method === 'PUT') {
847
- await handleMultiAgentUpdateAgentRequest(req, res, pathname);
877
+ await handleMultiAgentUpdateAgentRequest(req, res, pathname, options);
848
878
  return true;
849
879
  }
850
880
  // Route: GET /api/multi-agent/delegations - get recent delegations
@@ -1149,6 +1179,7 @@ async function handleGetConfigRequest(_req, res) {
1149
1179
  default_agent: config.multi_agent.default_agent || null,
1150
1180
  mention_delegation: config.multi_agent.mention_delegation || false,
1151
1181
  max_mention_depth: config.multi_agent.max_mention_depth || 3,
1182
+ pr_review_poller: config.multi_agent.pr_review_poller || { enabled: false },
1152
1183
  }
1153
1184
  : undefined,
1154
1185
  };
@@ -1166,7 +1197,7 @@ async function handleGetConfigRequest(_req, res) {
1166
1197
  }));
1167
1198
  }
1168
1199
  }
1169
- async function handleUpdateConfigRequest(req, res) {
1200
+ async function handleUpdateConfigRequest(req, res, options = {}) {
1170
1201
  try {
1171
1202
  // Verify authentication for config modifications
1172
1203
  if (!isAuthenticated(req)) {
@@ -1208,6 +1239,14 @@ async function handleUpdateConfigRequest(req, res) {
1208
1239
  return;
1209
1240
  }
1210
1241
  saveMAMAConfig(updatedConfig);
1242
+ if (updatedConfig.multi_agent && options.applyMultiAgentConfig) {
1243
+ try {
1244
+ await options.applyMultiAgentConfig(updatedConfig.multi_agent);
1245
+ }
1246
+ catch (err) {
1247
+ logger.warn('Multi-agent hot-apply failed after config update:', err instanceof Error ? err.message : String(err));
1248
+ }
1249
+ }
1211
1250
  res.writeHead(200, { 'Content-Type': 'application/json' });
1212
1251
  res.end(JSON.stringify({
1213
1252
  success: true,
@@ -1415,6 +1454,20 @@ function validateConfigUpdate(config) {
1415
1454
  if (config.agent.timeout && config.agent.timeout < 1000) {
1416
1455
  errors.push('timeout must be at least 1000ms');
1417
1456
  }
1457
+ if (config.agent.backend &&
1458
+ !['claude', 'codex'].includes(String(config.agent.backend).toLowerCase())) {
1459
+ errors.push('agent.backend must be "claude" or "codex"');
1460
+ }
1461
+ if (config.agent.backend && config.agent.model && typeof config.agent.model === 'string') {
1462
+ const backend = String(config.agent.backend).toLowerCase();
1463
+ const model = config.agent.model;
1464
+ if (backend === 'claude' && !isClaudeModel(model)) {
1465
+ errors.push('agent.model must be a Claude model when agent.backend is "claude"');
1466
+ }
1467
+ if (backend === 'codex' && !isCodexModel(model)) {
1468
+ errors.push('agent.model must be a Codex/OpenAI model when agent.backend is "codex"');
1469
+ }
1470
+ }
1418
1471
  }
1419
1472
  if (config.heartbeat) {
1420
1473
  if (config.heartbeat.interval && config.heartbeat.interval < 60000) {
@@ -1424,6 +1477,29 @@ function validateConfigUpdate(config) {
1424
1477
  if (config.use_claude_cli !== undefined && typeof config.use_claude_cli !== 'boolean') {
1425
1478
  errors.push('use_claude_cli must be a boolean');
1426
1479
  }
1480
+ const globalBackend = config.agent?.backend;
1481
+ if (config.multi_agent?.agents && typeof config.multi_agent.agents === 'object') {
1482
+ for (const [agentId, agentConfig] of Object.entries(config.multi_agent.agents)) {
1483
+ const cfg = agentConfig;
1484
+ const backendRaw = cfg.backend ?? globalBackend;
1485
+ const modelRaw = cfg.model;
1486
+ if (backendRaw !== undefined) {
1487
+ const backend = String(backendRaw).toLowerCase();
1488
+ if (!['claude', 'codex'].includes(backend)) {
1489
+ errors.push(`multi_agent.agents.${agentId}.backend must be "claude" or "codex"`);
1490
+ continue;
1491
+ }
1492
+ if (typeof modelRaw === 'string' && modelRaw.trim()) {
1493
+ if (backend === 'claude' && !isClaudeModel(modelRaw)) {
1494
+ errors.push(`multi_agent.agents.${agentId}.model must be a Claude model when backend is "claude"`);
1495
+ }
1496
+ if (backend === 'codex' && !isCodexModel(modelRaw)) {
1497
+ errors.push(`multi_agent.agents.${agentId}.model must be a Codex/OpenAI model when backend is "codex"`);
1498
+ }
1499
+ }
1500
+ }
1501
+ }
1502
+ }
1427
1503
  return errors;
1428
1504
  }
1429
1505
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1576,6 +1652,7 @@ async function handleMultiAgentAgentsRequest(_req, res) {
1576
1652
  name: agentConfig.name || id,
1577
1653
  display_name: agentConfig.display_name || agentConfig.name || id,
1578
1654
  tier: agentConfig.tier || 1,
1655
+ backend: agentConfig.backend || null,
1579
1656
  model: agentConfig.model || null,
1580
1657
  enabled: agentConfig.enabled !== false,
1581
1658
  persona_file: agentConfig.persona_file || null,
@@ -1608,7 +1685,7 @@ async function handleMultiAgentAgentsRequest(_req, res) {
1608
1685
  }));
1609
1686
  }
1610
1687
  }
1611
- async function handleMultiAgentUpdateAgentRequest(req, res, pathname) {
1688
+ async function handleMultiAgentUpdateAgentRequest(req, res, pathname, options = {}) {
1612
1689
  try {
1613
1690
  // Security: require authentication for config-writing endpoint
1614
1691
  if (!isAuthenticated(req)) {
@@ -1675,6 +1752,21 @@ async function handleMultiAgentUpdateAgentRequest(req, res, pathname) {
1675
1752
  if (body.can_delegate !== undefined && typeof body.can_delegate !== 'boolean') {
1676
1753
  validationErrors.push('can_delegate must be a boolean');
1677
1754
  }
1755
+ if (body.backend !== undefined &&
1756
+ (typeof body.backend !== 'string' ||
1757
+ !['claude', 'codex'].includes(String(body.backend).toLowerCase()))) {
1758
+ validationErrors.push('backend must be "claude" or "codex"');
1759
+ }
1760
+ const nextBackend = (body.backend !== undefined ? String(body.backend).toLowerCase() : currentAgent.backend);
1761
+ const nextModel = (body.model !== undefined ? body.model : currentAgent.model);
1762
+ if (typeof nextBackend === 'string' && typeof nextModel === 'string' && nextModel.trim()) {
1763
+ if (nextBackend === 'claude' && !isClaudeModel(nextModel)) {
1764
+ validationErrors.push('model must be a Claude model when backend is "claude"');
1765
+ }
1766
+ if (nextBackend === 'codex' && !isCodexModel(nextModel)) {
1767
+ validationErrors.push('model must be a Codex/OpenAI model when backend is "codex"');
1768
+ }
1769
+ }
1678
1770
  if (validationErrors.length > 0) {
1679
1771
  res.writeHead(400, { 'Content-Type': 'application/json' });
1680
1772
  res.end(JSON.stringify({
@@ -1684,18 +1776,34 @@ async function handleMultiAgentUpdateAgentRequest(req, res, pathname) {
1684
1776
  }));
1685
1777
  return;
1686
1778
  }
1687
- if (body.name !== undefined)
1779
+ if (body.name !== undefined) {
1688
1780
  updatedAgent.name = body.name;
1689
- if (body.display_name !== undefined)
1781
+ }
1782
+ if (body.display_name !== undefined) {
1690
1783
  updatedAgent.display_name = body.display_name;
1691
- if (body.tier !== undefined)
1784
+ }
1785
+ if (body.tier !== undefined) {
1692
1786
  updatedAgent.tier = body.tier;
1693
- if (body.model !== undefined)
1787
+ }
1788
+ if (body.backend !== undefined) {
1789
+ updatedAgent.backend = String(body.backend).toLowerCase();
1790
+ }
1791
+ if (body.model !== undefined) {
1694
1792
  updatedAgent.model = body.model;
1695
- if (body.enabled !== undefined)
1793
+ }
1794
+ if (body.enabled !== undefined) {
1696
1795
  updatedAgent.enabled = body.enabled;
1697
- if (body.persona_file !== undefined)
1796
+ }
1797
+ if (body.persona_file !== undefined && body.persona_file !== null) {
1798
+ if (typeof body.persona_file !== 'string' || !isValidPersonaPath(body.persona_file)) {
1799
+ res.writeHead(400, { 'Content-Type': 'application/json' });
1800
+ res.end(JSON.stringify({
1801
+ error: 'Invalid persona_file path. Must be within ~/.mama/personas/ or ~/.mama/workspace/',
1802
+ }));
1803
+ return;
1804
+ }
1698
1805
  updatedAgent.persona_file = body.persona_file;
1806
+ }
1699
1807
  if (body.trigger_prefix !== undefined)
1700
1808
  updatedAgent.trigger_prefix = body.trigger_prefix;
1701
1809
  if (body.auto_respond_keywords !== undefined)
@@ -1722,10 +1830,31 @@ async function handleMultiAgentUpdateAgentRequest(req, res, pathname) {
1722
1830
  }
1723
1831
  config.multi_agent.agents[agentId] = updatedAgent;
1724
1832
  saveMAMAConfig(config);
1833
+ let runtimeReloaded = true;
1834
+ if (options.applyMultiAgentConfig) {
1835
+ try {
1836
+ await options.applyMultiAgentConfig(config.multi_agent);
1837
+ }
1838
+ catch (err) {
1839
+ runtimeReloaded = false;
1840
+ logger.warn(`Multi-agent hot-apply failed for ${agentId}:`, err instanceof Error ? err.message : String(err));
1841
+ }
1842
+ }
1843
+ if (options.restartMultiAgentAgent) {
1844
+ try {
1845
+ await options.restartMultiAgentAgent(agentId);
1846
+ }
1847
+ catch (err) {
1848
+ runtimeReloaded = false;
1849
+ logger.warn(`Agent runtime restart failed for ${agentId}:`, err instanceof Error ? err.message : String(err));
1850
+ }
1851
+ }
1725
1852
  res.writeHead(200, { 'Content-Type': 'application/json' });
1726
1853
  res.end(JSON.stringify({
1727
1854
  success: true,
1728
- message: `Agent '${agentId}' updated successfully`,
1855
+ message: runtimeReloaded
1856
+ ? `Agent '${agentId}' updated successfully (runtime reloaded)`
1857
+ : `Agent '${agentId}' config saved (runtime reload skipped or failed)`,
1729
1858
  }));
1730
1859
  }
1731
1860
  catch (error) {