azerclaw 1.1.2 → 1.5.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 (98) hide show
  1. package/README.md +8 -0
  2. package/bin/azerclaw.ts +228 -1
  3. package/dist/bin/azerclaw.d.ts +3 -0
  4. package/dist/bin/azerclaw.d.ts.map +1 -1
  5. package/dist/bin/azerclaw.js +196 -1
  6. package/dist/bin/azerclaw.js.map +1 -1
  7. package/dist/src/agents/builtin.js +1 -1
  8. package/dist/src/agents/builtin.js.map +1 -1
  9. package/dist/src/channels/adapter.d.ts +10 -1
  10. package/dist/src/channels/adapter.d.ts.map +1 -1
  11. package/dist/src/channels/adapter.js +89 -5
  12. package/dist/src/channels/adapter.js.map +1 -1
  13. package/dist/src/channels/pairing.d.ts +38 -0
  14. package/dist/src/channels/pairing.d.ts.map +1 -0
  15. package/dist/src/channels/pairing.js +171 -0
  16. package/dist/src/channels/pairing.js.map +1 -0
  17. package/dist/src/channels/routing.d.ts +14 -0
  18. package/dist/src/channels/routing.d.ts.map +1 -0
  19. package/dist/src/channels/routing.js +45 -0
  20. package/dist/src/channels/routing.js.map +1 -0
  21. package/dist/src/channels/security.d.ts +18 -0
  22. package/dist/src/channels/security.d.ts.map +1 -0
  23. package/dist/src/channels/security.js +80 -0
  24. package/dist/src/channels/security.js.map +1 -0
  25. package/dist/src/channels/slack.js +1 -1
  26. package/dist/src/channels/slack.js.map +1 -1
  27. package/dist/src/cli/animations/fish.d.ts +2 -1
  28. package/dist/src/cli/animations/fish.d.ts.map +1 -1
  29. package/dist/src/cli/animations/fish.js +12 -10
  30. package/dist/src/cli/animations/fish.js.map +1 -1
  31. package/dist/src/cli/commands/channels.d.ts +17 -0
  32. package/dist/src/cli/commands/channels.d.ts.map +1 -0
  33. package/dist/src/cli/commands/channels.js +173 -0
  34. package/dist/src/cli/commands/channels.js.map +1 -0
  35. package/dist/src/cli/commands/chat.d.ts.map +1 -1
  36. package/dist/src/cli/commands/chat.js +1 -0
  37. package/dist/src/cli/commands/chat.js.map +1 -1
  38. package/dist/src/cli/commands/config.d.ts.map +1 -1
  39. package/dist/src/cli/commands/config.js +9 -0
  40. package/dist/src/cli/commands/config.js.map +1 -1
  41. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  42. package/dist/src/cli/commands/doctor.js +46 -2
  43. package/dist/src/cli/commands/doctor.js.map +1 -1
  44. package/dist/src/cli/commands/models.d.ts.map +1 -1
  45. package/dist/src/cli/commands/models.js +9 -3
  46. package/dist/src/cli/commands/models.js.map +1 -1
  47. package/dist/src/cli/commands/pairing.d.ts +7 -0
  48. package/dist/src/cli/commands/pairing.d.ts.map +1 -0
  49. package/dist/src/cli/commands/pairing.js +64 -0
  50. package/dist/src/cli/commands/pairing.js.map +1 -0
  51. package/dist/src/cli/commands/run.d.ts.map +1 -1
  52. package/dist/src/cli/commands/run.js +1 -0
  53. package/dist/src/cli/commands/run.js.map +1 -1
  54. package/dist/src/cli/commands/sandbox.d.ts +7 -0
  55. package/dist/src/cli/commands/sandbox.d.ts.map +1 -0
  56. package/dist/src/cli/commands/sandbox.js +98 -0
  57. package/dist/src/cli/commands/sandbox.js.map +1 -0
  58. package/dist/src/cli/commands/tui.d.ts.map +1 -1
  59. package/dist/src/cli/commands/tui.js +1 -0
  60. package/dist/src/cli/commands/tui.js.map +1 -1
  61. package/dist/src/config/schema.d.ts +214 -68
  62. package/dist/src/config/schema.d.ts.map +1 -1
  63. package/dist/src/config/schema.js +53 -7
  64. package/dist/src/config/schema.js.map +1 -1
  65. package/dist/src/core/runtime.d.ts +2 -0
  66. package/dist/src/core/runtime.d.ts.map +1 -1
  67. package/dist/src/core/runtime.js +73 -17
  68. package/dist/src/core/runtime.js.map +1 -1
  69. package/dist/src/core/sandbox.d.ts +34 -0
  70. package/dist/src/core/sandbox.d.ts.map +1 -0
  71. package/dist/src/core/sandbox.js +127 -0
  72. package/dist/src/core/sandbox.js.map +1 -0
  73. package/dist/src/index.d.ts +4 -0
  74. package/dist/src/index.d.ts.map +1 -1
  75. package/dist/src/index.js +4 -0
  76. package/dist/src/index.js.map +1 -1
  77. package/dist/src/providers/openai.d.ts +7 -6
  78. package/dist/src/providers/openai.d.ts.map +1 -1
  79. package/dist/src/providers/openai.js.map +1 -1
  80. package/dist/src/providers/openrouter.d.ts +21 -0
  81. package/dist/src/providers/openrouter.d.ts.map +1 -0
  82. package/dist/src/providers/openrouter.js +65 -0
  83. package/dist/src/providers/openrouter.js.map +1 -0
  84. package/dist/src/providers/router.d.ts.map +1 -1
  85. package/dist/src/providers/router.js +2 -1
  86. package/dist/src/providers/router.js.map +1 -1
  87. package/dist/src/tools/index.d.ts.map +1 -1
  88. package/dist/src/tools/index.js +2 -0
  89. package/dist/src/tools/index.js.map +1 -1
  90. package/dist/src/tools/memory.d.ts +7 -0
  91. package/dist/src/tools/memory.d.ts.map +1 -0
  92. package/dist/src/tools/memory.js +78 -0
  93. package/dist/src/tools/memory.js.map +1 -0
  94. package/dist/src/tools/registry.d.ts +2 -1
  95. package/dist/src/tools/registry.d.ts.map +1 -1
  96. package/dist/src/tools/registry.js +6 -3
  97. package/dist/src/tools/registry.js.map +1 -1
  98. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../src/agents/builtin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../src/agents/builtin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAobH,4BAGC;AAKD,8CA2BC;AAKD,kCAUC;AAKD,gCAEC;AAKD,8CAYC;AA5fD,6CAAkE;AAerD,QAAA,eAAe,GAAsB;IAChD,iEAAiE;IACjE;QACE,EAAE,EAAE,MAAM;QACV,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,8FAA8F;QAC3G,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;iDAyB+B;QAC7C,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC;KACzE;IAED,iEAAiE;IACjE;QACE,EAAE,EAAE,OAAO;QACX,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,wFAAwF;QACrG,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;kEAoBgD;QAC9D,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;KAC5G;IAED,iEAAiE;IACjE;QACE,EAAE,EAAE,OAAO;QACX,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kFAAkF;QAC/F,YAAY,EAAE;;;;;;;;;;;;;;;;;;;iDAmB+B;QAC7C,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC;KACxH;IAED,kEAAkE;IAClE;QACE,EAAE,EAAE,OAAO;QACX,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,mFAAmF;QAChG,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;wDA2BsC;QACpD,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC;KACtG;IAED,iEAAiE;IACjE;QACE,EAAE,EAAE,QAAQ;QACZ,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,mFAAmF;QAChG,YAAY,EAAE;;;;;;;;;;;;;;;;;;;+CAmB6B;QAC3C,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;KACrG;IAED,kEAAkE;IAClE;QACE,EAAE,EAAE,YAAY;QAChB,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,+EAA+E;QAC5F,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDA6BkC;QAChD,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;KACjG;IAED,iEAAiE;IACjE;QACE,EAAE,EAAE,UAAU;QACd,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4EAA4E;QACzF,YAAY,EAAE;;;;;;;;;;;;;;;;;;;uDAmBqC;QACnD,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;KAC3F;IAED,iEAAiE;IACjE;QACE,EAAE,EAAE,QAAQ;QACZ,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,yEAAyE;QACtF,YAAY,EAAE;;;;;;;;;;;;;;;;;uDAiBqC;QACnD,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;KACrF;IAED,iEAAiE;IACjE;QACE,EAAE,EAAE,YAAY;QAChB,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,mFAAmF;QAChG,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;+DAwB6C;QAC3D,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC;KACnG;IAED,gEAAgE;IAChE;QACE,EAAE,EAAE,MAAM;QACV,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+EAA+E;QAC5F,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA6BkB;QAChC,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;KAC3F;IAED,iEAAiE;IACjE;QACE,EAAE,EAAE,OAAO;QACX,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,+EAA+E;QAC5F,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;gCAoBc;QAC5B,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;KAC9F;IAED,gEAAgE;IAChE;QACE,EAAE,EAAE,UAAU;QACd,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,kFAAkF;QAC/F,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;yCAoBuB;QACrC,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;KAChG;CACF,CAAC;AAEF,mEAAmE;AAEnE;;GAEG;AACH,SAAgB,QAAQ,CAAC,QAAgB;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,uBAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;AACrF,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAE7B,IAAI,SAAS,GAAG,uBAAe,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;IACtD,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,KAAK,IAAI,uBAAe,EAAE,CAAC;QACpC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,gCAAgC;QAChC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,KAAK,IAAI,EAAE,CAAC;QACnC,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAEtD,2DAA2D;QAC3D,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAAE,KAAK,IAAI,GAAG,CAAC;QAE3D,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,UAA2B,EAC3B,YAA+B;IAE/B,OAAO,IAAI,sBAAY,CAAC;QACtB,SAAS,EAAE,QAAQ,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE;QACtD,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,OAAO,CAAC,GAAG,uBAAe,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,IAAI,MAAM,GAAG,mEAAmE,CAAC;IACjF,MAAM,IAAO,gEAAgE,CAAC;IAC9E,MAAM,IAAO,mEAAmE,CAAC;IAEjF,KAAK,MAAM,KAAK,IAAI,uBAAe,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9I,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,iEAAiE,CAAC;IAC5E,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * All messages from different platforms are normalized into a unified format.
5
5
  */
6
6
  import { AgentRuntime } from '../core/runtime';
7
+ import { PairingStore } from './pairing';
7
8
  export interface NormalizedMessage {
8
9
  id: string;
9
10
  platform: string;
@@ -32,7 +33,7 @@ export interface SendOptions {
32
33
  export declare abstract class ChannelAdapter {
33
34
  abstract readonly platform: string;
34
35
  abstract readonly displayName: string;
35
- protected agent: AgentRuntime | null;
36
+ protected agents: Map<string, AgentRuntime>;
36
37
  /**
37
38
  * Initialize the adapter with credentials.
38
39
  */
@@ -53,5 +54,13 @@ export declare abstract class ChannelAdapter {
53
54
  * Handle an incoming message — routes to agent.
54
55
  */
55
56
  protected handleIncoming(message: NormalizedMessage): Promise<void>;
57
+ protected isDirectMessage(message: NormalizedMessage): boolean;
58
+ protected enforceDmPolicy(message: NormalizedMessage): Promise<boolean>;
59
+ protected getPairingStore(): PairingStore;
60
+ protected getChannelSecurityConfig(): {
61
+ dmPolicy: 'pairing' | 'open' | 'closed';
62
+ allowFrom: string[];
63
+ };
64
+ protected resolveSessionId(message: NormalizedMessage): string;
56
65
  }
57
66
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAK3D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAID,8BAAsB,cAAc;IAClC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE5C;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO;IAE/B;;OAEG;cACa,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B1E"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAmB,YAAY,EAAE,MAAM,WAAW,CAAC;AAK1D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAID,8BAAsB,cAAc;IAClC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAExD;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO;IAE/B;;OAEG;cACa,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCzE,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;cAiB9C,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD7E,SAAS,CAAC,eAAe,IAAI,YAAY;IAIzC,SAAS,CAAC,wBAAwB,IAAI;QAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;IAUtG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CAG/D"}
@@ -8,17 +8,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.ChannelAdapter = void 0;
9
9
  const runtime_1 = require("../core/runtime");
10
10
  const security_1 = require("../core/security");
11
+ const manager_1 = require("../config/manager");
12
+ const pairing_1 = require("./pairing");
13
+ const routing_1 = require("./routing");
11
14
  // ─── Base Adapter ───────────────────────────────────────────────
12
15
  class ChannelAdapter {
13
- agent = null;
16
+ agents = new Map();
14
17
  /**
15
18
  * Handle an incoming message — routes to agent.
16
19
  */
17
20
  async handleIncoming(message) {
18
21
  (0, security_1.auditLog)('CHANNEL_MSG_IN', `${this.platform}:${message.channelId} from ${message.senderName}`);
19
- if (!this.agent) {
20
- this.agent = new runtime_1.AgentRuntime({
21
- sessionId: `${this.platform}_${message.channelId}`,
22
+ const allowed = await this.enforceDmPolicy(message);
23
+ if (!allowed)
24
+ return;
25
+ const sessionId = this.resolveSessionId(message);
26
+ let agent = this.agents.get(sessionId);
27
+ if (!agent) {
28
+ agent = new runtime_1.AgentRuntime({
29
+ sessionId,
22
30
  eventHandler: async (event) => {
23
31
  if (event.type === 'response' && event.content) {
24
32
  await this.send({
@@ -29,9 +37,11 @@ class ChannelAdapter {
29
37
  }
30
38
  },
31
39
  });
40
+ this.agents.set(sessionId, agent);
41
+ (0, security_1.auditLog)('CHANNEL_SESSION_ROUTE', `${this.platform}:${message.channelId} -> ${sessionId}`);
32
42
  }
33
43
  try {
34
- await this.agent.chat(message.content);
44
+ await agent.chat(message.content);
35
45
  }
36
46
  catch (e) {
37
47
  await this.send({
@@ -40,6 +50,80 @@ class ChannelAdapter {
40
50
  });
41
51
  }
42
52
  }
53
+ isDirectMessage(message) {
54
+ if (this.platform === 'telegram') {
55
+ return String(message.metadata.chatType || '').toLowerCase() === 'private';
56
+ }
57
+ if (this.platform === 'discord') {
58
+ return !message.metadata.guildId;
59
+ }
60
+ if (this.platform === 'slack') {
61
+ const channelType = String(message.metadata.channelType || '').toLowerCase();
62
+ return channelType === 'im' || channelType === 'mpim';
63
+ }
64
+ return false;
65
+ }
66
+ async enforceDmPolicy(message) {
67
+ if (!this.isDirectMessage(message))
68
+ return true;
69
+ const { dmPolicy, allowFrom } = this.getChannelSecurityConfig();
70
+ const pairingStore = this.getPairingStore();
71
+ const senderApproved = pairingStore.isApproved(this.platform, message.senderId, allowFrom);
72
+ if (dmPolicy === 'closed') {
73
+ await this.send({
74
+ channelId: message.channelId,
75
+ content: 'DM access is currently disabled for this channel.',
76
+ replyTo: message.id,
77
+ });
78
+ (0, security_1.auditLog)('CHANNEL_DM_BLOCKED', `${this.platform}:${message.senderId} policy=closed`);
79
+ return false;
80
+ }
81
+ if (dmPolicy === 'open') {
82
+ if (allowFrom.length === 0 || senderApproved)
83
+ return true;
84
+ await this.send({
85
+ channelId: message.channelId,
86
+ content: 'DM access is restricted. Ask the operator to allowlist your account.',
87
+ replyTo: message.id,
88
+ });
89
+ (0, security_1.auditLog)('CHANNEL_DM_BLOCKED', `${this.platform}:${message.senderId} policy=open allowlist`);
90
+ return false;
91
+ }
92
+ // pairing (default)
93
+ if (senderApproved)
94
+ return true;
95
+ const pending = pairingStore.requestPairing({
96
+ platform: this.platform,
97
+ senderId: message.senderId,
98
+ senderName: message.senderName,
99
+ channelId: message.channelId,
100
+ });
101
+ await this.send({
102
+ channelId: message.channelId,
103
+ replyTo: message.id,
104
+ content: [
105
+ 'Pairing required before I can respond in DMs.',
106
+ `Approve with: azerclaw pairing approve ${this.platform} ${pending.code}`,
107
+ ].join('\n'),
108
+ });
109
+ (0, security_1.auditLog)('CHANNEL_DM_BLOCKED', `${this.platform}:${message.senderId} policy=pairing code=${pending.code}`);
110
+ return false;
111
+ }
112
+ getPairingStore() {
113
+ return (0, pairing_1.getPairingStore)();
114
+ }
115
+ getChannelSecurityConfig() {
116
+ const channelsConfig = (0, manager_1.getConfigManager)().getAll().channels;
117
+ const channelConfig = channelsConfig?.[this.platform] || {};
118
+ const dmPolicy = channelConfig.dmPolicy === 'open' || channelConfig.dmPolicy === 'closed'
119
+ ? channelConfig.dmPolicy
120
+ : 'pairing';
121
+ const allowFrom = Array.isArray(channelConfig.allowFrom) ? channelConfig.allowFrom : [];
122
+ return { dmPolicy, allowFrom };
123
+ }
124
+ resolveSessionId(message) {
125
+ return (0, routing_1.resolveSessionIdForMessage)(message);
126
+ }
43
127
  }
44
128
  exports.ChannelAdapter = ChannelAdapter;
45
129
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAA2D;AAC3D,+CAA4C;AAgC5C,mEAAmE;AAEnE,MAAsB,cAAc;IAGxB,KAAK,GAAwB,IAAI,CAAC;IAsB5C;;OAEG;IACO,KAAK,CAAC,cAAc,CAAC,OAA0B;QACvD,IAAA,mBAAQ,EAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,SAAS,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAE/F,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,IAAI,sBAAY,CAAC;gBAC5B,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;gBAClD,YAAY,EAAE,KAAK,EAAE,KAAiB,EAAE,EAAE;oBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBAC/C,MAAM,IAAI,CAAC,IAAI,CAAC;4BACd,SAAS,EAAE,OAAO,CAAC,SAAS;4BAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,OAAO,EAAE,OAAO,CAAC,EAAE;yBACpB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,aAAa,CAAC,CAAC,OAAO,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAvDD,wCAuDC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export interface PendingPairing {
2
+ platform: string;
3
+ senderId: string;
4
+ senderName: string;
5
+ channelId: string;
6
+ code: string;
7
+ requestedAt: string;
8
+ expiresAt: string;
9
+ }
10
+ export interface ApprovedPairing {
11
+ platform: string;
12
+ senderId: string;
13
+ senderName: string;
14
+ approvedAt: string;
15
+ approvedBy: string;
16
+ }
17
+ export declare class PairingStore {
18
+ private filePath;
19
+ private pendingTtlMs;
20
+ private data;
21
+ constructor(filePath?: string, pendingTtlMs?: number);
22
+ private load;
23
+ private save;
24
+ private pruneExpiredPending;
25
+ requestPairing(input: {
26
+ platform: string;
27
+ senderId: string;
28
+ senderName: string;
29
+ channelId: string;
30
+ }): PendingPairing;
31
+ approve(platform: string, code: string, approvedBy?: string): ApprovedPairing | null;
32
+ revoke(platform: string, senderId: string): boolean;
33
+ isApproved(platform: string, senderId: string, allowFrom?: string[]): boolean;
34
+ listApproved(platform?: string): ApprovedPairing[];
35
+ listPending(platform?: string): PendingPairing[];
36
+ }
37
+ export declare function getPairingStore(): PairingStore;
38
+ //# sourceMappingURL=pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../../../src/channels/pairing.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0BD,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,IAAI,CAA8C;gBAGhD,QAAQ,GAAE,MAA6B,EACvC,YAAY,GAAE,MAA+B;IAMvD,OAAO,CAAC,IAAI;IAmBZ,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,mBAAmB;IAS3B,cAAc,CAAC,KAAK,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,cAAc;IA2BlB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,SAAQ,GAAG,eAAe,GAAG,IAAI;IA2BnF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUnD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,EAAO,GAAG,OAAO;IAKjF,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE;IAIlD,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;CAIjD;AAID,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PairingStore = void 0;
37
+ exports.getPairingStore = getPairingStore;
38
+ const fs = __importStar(require("fs"));
39
+ const os = __importStar(require("os"));
40
+ const path = __importStar(require("path"));
41
+ const PAIRING_DIR = path.join(os.homedir(), '.azerclaw');
42
+ const DEFAULT_PAIRING_FILE = path.join(PAIRING_DIR, 'pairings.json');
43
+ const DEFAULT_PENDING_TTL_MS = 24 * 60 * 60 * 1000; // 24h
44
+ function ensurePairingDir() {
45
+ if (!fs.existsSync(PAIRING_DIR)) {
46
+ fs.mkdirSync(PAIRING_DIR, { recursive: true, mode: 0o700 });
47
+ }
48
+ }
49
+ function nowIso() {
50
+ return new Date().toISOString();
51
+ }
52
+ function generatePairingCode() {
53
+ const alphabet = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
54
+ let code = '';
55
+ for (let i = 0; i < 6; i++) {
56
+ code += alphabet[Math.floor(Math.random() * alphabet.length)];
57
+ }
58
+ return code;
59
+ }
60
+ class PairingStore {
61
+ filePath;
62
+ pendingTtlMs;
63
+ data = { pending: [], approved: [] };
64
+ constructor(filePath = DEFAULT_PAIRING_FILE, pendingTtlMs = DEFAULT_PENDING_TTL_MS) {
65
+ this.filePath = filePath;
66
+ this.pendingTtlMs = pendingTtlMs;
67
+ ensurePairingDir();
68
+ this.load();
69
+ }
70
+ load() {
71
+ try {
72
+ if (!fs.existsSync(this.filePath)) {
73
+ this.save();
74
+ return;
75
+ }
76
+ const raw = fs.readFileSync(this.filePath, 'utf-8');
77
+ const parsed = JSON.parse(raw);
78
+ this.data = {
79
+ pending: Array.isArray(parsed.pending) ? parsed.pending : [],
80
+ approved: Array.isArray(parsed.approved) ? parsed.approved : [],
81
+ };
82
+ this.pruneExpiredPending();
83
+ }
84
+ catch {
85
+ this.data = { pending: [], approved: [] };
86
+ this.save();
87
+ }
88
+ }
89
+ save() {
90
+ fs.writeFileSync(this.filePath, JSON.stringify(this.data, null, 2), { mode: 0o600 });
91
+ }
92
+ pruneExpiredPending() {
93
+ const now = Date.now();
94
+ const before = this.data.pending.length;
95
+ this.data.pending = this.data.pending.filter(p => new Date(p.expiresAt).getTime() > now);
96
+ if (this.data.pending.length !== before) {
97
+ this.save();
98
+ }
99
+ }
100
+ requestPairing(input) {
101
+ this.pruneExpiredPending();
102
+ const existing = this.data.pending.find(p => p.platform === input.platform && p.senderId === input.senderId);
103
+ if (existing)
104
+ return existing;
105
+ let code = generatePairingCode();
106
+ while (this.data.pending.some(p => p.code === code)) {
107
+ code = generatePairingCode();
108
+ }
109
+ const pending = {
110
+ platform: input.platform,
111
+ senderId: input.senderId,
112
+ senderName: input.senderName,
113
+ channelId: input.channelId,
114
+ code,
115
+ requestedAt: nowIso(),
116
+ expiresAt: new Date(Date.now() + this.pendingTtlMs).toISOString(),
117
+ };
118
+ this.data.pending.push(pending);
119
+ this.save();
120
+ return pending;
121
+ }
122
+ approve(platform, code, approvedBy = 'cli') {
123
+ this.pruneExpiredPending();
124
+ const normalizedCode = code.trim().toUpperCase();
125
+ const idx = this.data.pending.findIndex(p => p.platform === platform && p.code.toUpperCase() === normalizedCode);
126
+ if (idx < 0)
127
+ return null;
128
+ const pending = this.data.pending[idx];
129
+ this.data.pending.splice(idx, 1);
130
+ this.data.approved = this.data.approved.filter(p => !(p.platform === pending.platform && p.senderId === pending.senderId));
131
+ const approved = {
132
+ platform: pending.platform,
133
+ senderId: pending.senderId,
134
+ senderName: pending.senderName,
135
+ approvedAt: nowIso(),
136
+ approvedBy,
137
+ };
138
+ this.data.approved.push(approved);
139
+ this.save();
140
+ return approved;
141
+ }
142
+ revoke(platform, senderId) {
143
+ const before = this.data.approved.length;
144
+ this.data.approved = this.data.approved.filter(p => !(p.platform === platform && p.senderId === senderId));
145
+ const changed = this.data.approved.length !== before;
146
+ if (changed)
147
+ this.save();
148
+ return changed;
149
+ }
150
+ isApproved(platform, senderId, allowFrom = []) {
151
+ if (allowFrom.includes('*') || allowFrom.includes(senderId))
152
+ return true;
153
+ return this.data.approved.some(p => p.platform === platform && p.senderId === senderId);
154
+ }
155
+ listApproved(platform) {
156
+ return this.data.approved.filter(p => !platform || p.platform === platform);
157
+ }
158
+ listPending(platform) {
159
+ this.pruneExpiredPending();
160
+ return this.data.pending.filter(p => !platform || p.platform === platform);
161
+ }
162
+ }
163
+ exports.PairingStore = PairingStore;
164
+ let pairingStoreInstance = null;
165
+ function getPairingStore() {
166
+ if (!pairingStoreInstance) {
167
+ pairingStoreInstance = new PairingStore();
168
+ }
169
+ return pairingStoreInstance;
170
+ }
171
+ //# sourceMappingURL=pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../../../src/channels/pairing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { NormalizedMessage } from './adapter';
2
+ export type SessionRoutingStrategy = 'channel' | 'platform_channel' | 'platform_sender';
3
+ export interface SessionRoutingRule {
4
+ platform?: string;
5
+ channelId?: string;
6
+ senderId?: string;
7
+ sessionId: string;
8
+ }
9
+ export interface SessionRoutingConfig {
10
+ strategy?: SessionRoutingStrategy;
11
+ rules?: SessionRoutingRule[];
12
+ }
13
+ export declare function resolveSessionIdForMessage(message: NormalizedMessage, routingConfig?: SessionRoutingConfig): string;
14
+ //# sourceMappingURL=routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/channels/routing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAoBD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,CAAC,EAAE,oBAAoB,GACnC,MAAM,CAwBR"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveSessionIdForMessage = resolveSessionIdForMessage;
4
+ const manager_1 = require("../config/manager");
5
+ function normalizeSegment(input) {
6
+ return input
7
+ .toLowerCase()
8
+ .replace(/[^a-z0-9._-]+/g, '_')
9
+ .replace(/^_+|_+$/g, '') || 'unknown';
10
+ }
11
+ function normalizeSessionId(input) {
12
+ return normalizeSegment(input).slice(0, 120);
13
+ }
14
+ function ruleMatches(message, rule) {
15
+ if (rule.platform && rule.platform !== message.platform)
16
+ return false;
17
+ if (rule.channelId && rule.channelId !== message.channelId)
18
+ return false;
19
+ if (rule.senderId && rule.senderId !== message.senderId)
20
+ return false;
21
+ return true;
22
+ }
23
+ function resolveSessionIdForMessage(message, routingConfig) {
24
+ const resolvedConfig = routingConfig ??
25
+ ((0, manager_1.getConfigManager)().getAll().channels.routing || {});
26
+ const rules = resolvedConfig.rules || [];
27
+ const matchedRule = rules.find(rule => ruleMatches(message, rule));
28
+ if (matchedRule) {
29
+ return normalizeSessionId(matchedRule.sessionId);
30
+ }
31
+ const strategy = resolvedConfig.strategy || 'platform_channel';
32
+ const platform = normalizeSegment(message.platform || 'platform');
33
+ const channelId = normalizeSegment(message.channelId || 'channel');
34
+ const senderId = normalizeSegment(message.senderId || 'sender');
35
+ switch (strategy) {
36
+ case 'channel':
37
+ return `channel_${channelId}`;
38
+ case 'platform_sender':
39
+ return `${platform}_${senderId}`;
40
+ case 'platform_channel':
41
+ default:
42
+ return `${platform}_${channelId}`;
43
+ }
44
+ }
45
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/channels/routing.ts"],"names":[],"mappings":";;AAmCA,gEA2BC;AA9DD,+CAAqD;AAiBrD,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AAC1C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,OAA0B,EAAE,IAAwB;IACvE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,0BAA0B,CACxC,OAA0B,EAC1B,aAAoC;IAEpC,MAAM,cAAc,GAAG,aAAa;QACjC,CAAE,IAAA,0BAAgB,GAAE,CAAC,MAAM,EAAE,CAAC,QAAgB,CAAC,OAAO,IAAI,EAAE,CAA0B,CAAC;IAE1F,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAEhE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,WAAW,SAAS,EAAE,CAAC;QAChC,KAAK,iBAAiB;YACpB,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACnC,KAAK,kBAAkB,CAAC;QACxB;YACE,OAAO,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ declare const CHANNEL_PLATFORMS: readonly ["discord", "telegram", "slack"];
2
+ declare const VALID_DM_POLICIES: readonly ["pairing", "open", "closed"];
3
+ export type SupportedChannelPlatform = typeof CHANNEL_PLATFORMS[number];
4
+ export type DmPolicy = typeof VALID_DM_POLICIES[number];
5
+ export interface DmPolicyIssue {
6
+ platform: SupportedChannelPlatform;
7
+ severity: 'warn' | 'fail';
8
+ message: string;
9
+ }
10
+ export interface DmPolicyAuditResult {
11
+ issues: DmPolicyIssue[];
12
+ warnings: DmPolicyIssue[];
13
+ failures: DmPolicyIssue[];
14
+ }
15
+ export declare function auditDmPolicies(channelsConfig: any): DmPolicyAuditResult;
16
+ export declare function applySafeDmDefaults(configManager: any): string[];
17
+ export {};
18
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/channels/security.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,2CAA4C,CAAC;AACpE,QAAA,MAAM,iBAAiB,wCAAyC,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,QAAQ,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAUD,wBAAgB,eAAe,CAAC,cAAc,EAAE,GAAG,GAAG,mBAAmB,CAkDxE;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,GAAG,GAAG,MAAM,EAAE,CAwBhE"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.auditDmPolicies = auditDmPolicies;
4
+ exports.applySafeDmDefaults = applySafeDmDefaults;
5
+ const CHANNEL_PLATFORMS = ['discord', 'telegram', 'slack'];
6
+ const VALID_DM_POLICIES = ['pairing', 'open', 'closed'];
7
+ function getChannelConfig(channelsConfig, platform) {
8
+ return channelsConfig?.[platform] || {};
9
+ }
10
+ function isValidPolicy(policy) {
11
+ return VALID_DM_POLICIES.includes(policy);
12
+ }
13
+ function auditDmPolicies(channelsConfig) {
14
+ const issues = [];
15
+ for (const platform of CHANNEL_PLATFORMS) {
16
+ const channelConfig = getChannelConfig(channelsConfig, platform);
17
+ if (!channelConfig.enabled)
18
+ continue;
19
+ const policy = String(channelConfig.dmPolicy || 'pairing');
20
+ const allowFrom = Array.isArray(channelConfig.allowFrom) ? channelConfig.allowFrom : [];
21
+ if (!isValidPolicy(policy)) {
22
+ issues.push({
23
+ platform,
24
+ severity: 'fail',
25
+ message: `${platform}: invalid dmPolicy "${policy}"`,
26
+ });
27
+ continue;
28
+ }
29
+ if (policy === 'open' && (allowFrom.length === 0 || allowFrom.includes('*'))) {
30
+ issues.push({
31
+ platform,
32
+ severity: 'fail',
33
+ message: `${platform}: dmPolicy=open allows unrestricted inbound DMs`,
34
+ });
35
+ continue;
36
+ }
37
+ if (policy === 'open' && allowFrom.length > 0) {
38
+ issues.push({
39
+ platform,
40
+ severity: 'warn',
41
+ message: `${platform}: dmPolicy=open with allowlist (intentional exposure recommended to review)`,
42
+ });
43
+ }
44
+ if (policy === 'pairing' && allowFrom.includes('*')) {
45
+ issues.push({
46
+ platform,
47
+ severity: 'warn',
48
+ message: `${platform}: allowFrom=* bypasses pairing protection`,
49
+ });
50
+ }
51
+ }
52
+ return {
53
+ issues,
54
+ warnings: issues.filter(i => i.severity === 'warn'),
55
+ failures: issues.filter(i => i.severity === 'fail'),
56
+ };
57
+ }
58
+ function applySafeDmDefaults(configManager) {
59
+ const channelsConfig = configManager.getAll().channels || {};
60
+ const changes = [];
61
+ for (const platform of CHANNEL_PLATFORMS) {
62
+ const channelConfig = getChannelConfig(channelsConfig, platform);
63
+ if (!channelConfig.enabled)
64
+ continue;
65
+ const policy = String(channelConfig.dmPolicy || 'pairing');
66
+ const allowFrom = Array.isArray(channelConfig.allowFrom) ? channelConfig.allowFrom : [];
67
+ const invalidPolicy = !isValidPolicy(policy);
68
+ const riskyOpen = policy === 'open' && (allowFrom.length === 0 || allowFrom.includes('*'));
69
+ if (invalidPolicy || riskyOpen) {
70
+ configManager.set(`channels.${platform}.dmPolicy`, 'pairing');
71
+ const sanitizedAllow = allowFrom.filter((x) => x !== '*');
72
+ if (sanitizedAllow.length !== allowFrom.length) {
73
+ configManager.set(`channels.${platform}.allowFrom`, sanitizedAllow);
74
+ }
75
+ changes.push(`${platform}: dmPolicy -> pairing`);
76
+ }
77
+ }
78
+ return changes;
79
+ }
80
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../../src/channels/security.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,7 @@ class SlackAdapter extends adapter_1.ChannelAdapter {
88
88
  size: f.size,
89
89
  })),
90
90
  timestamp: new Date(parseFloat(event.ts) * 1000),
91
- metadata: { threadTs: event.thread_ts },
91
+ metadata: { threadTs: event.thread_ts, channelType: event.channel_type },
92
92
  };
93
93
  this.handleIncoming(normalized);
94
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/channels/slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/channels/slack.ts"],"names":[],"mappings":"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"}