@0xmaxma/claude-gateway 1.7.6 → 1.7.8

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 (67) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/builtin-commands.d.ts +2 -1
  3. package/dist/agent/builtin-commands.d.ts.map +1 -1
  4. package/dist/agent/builtin-commands.js.map +1 -1
  5. package/dist/agent/incident.d.ts +1 -1
  6. package/dist/agent/incident.d.ts.map +1 -1
  7. package/dist/agent/runner.d.ts +7 -2
  8. package/dist/agent/runner.d.ts.map +1 -1
  9. package/dist/agent/runner.js +141 -9
  10. package/dist/agent/runner.js.map +1 -1
  11. package/dist/api/line-webhook-router.js +8 -8
  12. package/dist/api/line-webhook-router.js.map +1 -1
  13. package/dist/api/{line-pending-senders.d.ts → pending-senders.d.ts} +13 -13
  14. package/dist/api/pending-senders.d.ts.map +1 -0
  15. package/dist/api/pending-senders.js +128 -0
  16. package/dist/api/pending-senders.js.map +1 -0
  17. package/dist/api/router.d.ts.map +1 -1
  18. package/dist/api/router.js +296 -10
  19. package/dist/api/router.js.map +1 -1
  20. package/dist/api/slack-access.d.ts +74 -0
  21. package/dist/api/slack-access.d.ts.map +1 -0
  22. package/dist/api/slack-access.js +78 -0
  23. package/dist/api/slack-access.js.map +1 -0
  24. package/dist/api/slack-client.d.ts +68 -0
  25. package/dist/api/slack-client.d.ts.map +1 -0
  26. package/dist/api/slack-client.js +121 -0
  27. package/dist/api/slack-client.js.map +1 -0
  28. package/dist/api/slack-webhook-router.d.ts +34 -0
  29. package/dist/api/slack-webhook-router.d.ts.map +1 -0
  30. package/dist/api/slack-webhook-router.js +280 -0
  31. package/dist/api/slack-webhook-router.js.map +1 -0
  32. package/dist/api/webhooks-router.d.ts +18 -9
  33. package/dist/api/webhooks-router.d.ts.map +1 -1
  34. package/dist/api/webhooks-router.js +12 -7
  35. package/dist/api/webhooks-router.js.map +1 -1
  36. package/dist/cli-viewer/pairing-store.d.ts +3 -2
  37. package/dist/cli-viewer/pairing-store.d.ts.map +1 -1
  38. package/dist/cli-viewer/pairing-store.js +3 -5
  39. package/dist/cli-viewer/pairing-store.js.map +1 -1
  40. package/dist/history/types.d.ts +29 -1
  41. package/dist/history/types.d.ts.map +1 -1
  42. package/dist/history/types.js +32 -0
  43. package/dist/history/types.js.map +1 -1
  44. package/dist/session/compactor.d.ts +2 -1
  45. package/dist/session/compactor.d.ts.map +1 -1
  46. package/dist/session/compactor.js.map +1 -1
  47. package/dist/session/process.d.ts +17 -2
  48. package/dist/session/process.d.ts.map +1 -1
  49. package/dist/session/process.js +102 -9
  50. package/dist/session/process.js.map +1 -1
  51. package/dist/session/store.d.ts +14 -13
  52. package/dist/session/store.d.ts.map +1 -1
  53. package/dist/session/store.js +7 -2
  54. package/dist/session/store.js.map +1 -1
  55. package/dist/shell/claude-pty-shell.js +13 -0
  56. package/dist/shell/claude-pty-shell.js.map +1 -1
  57. package/dist/types.d.ts +37 -0
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/ui/cli-viewer-ui.d.ts +2 -1
  60. package/dist/ui/cli-viewer-ui.d.ts.map +1 -1
  61. package/dist/ui/cli-viewer-ui.js.map +1 -1
  62. package/mcp/server.ts +2 -0
  63. package/mcp/tools/slack/module.ts +113 -0
  64. package/package.json +1 -1
  65. package/dist/api/line-pending-senders.d.ts.map +0 -1
  66. package/dist/api/line-pending-senders.js +0 -112
  67. package/dist/api/line-pending-senders.js.map +0 -1
@@ -1,112 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_PENDING_PER_AGENT = void 0;
4
- exports.generatePairingCode = generatePairingCode;
5
- exports.recordDeniedSender = recordDeniedSender;
6
- exports.recordDeniedConversation = recordDeniedConversation;
7
- exports.getPendingSenders = getPendingSenders;
8
- exports.getPendingSender = getPendingSender;
9
- exports.clearPendingSender = clearPendingSender;
10
- exports._resetPendingSenders = _resetPendingSenders;
11
- /**
12
- * LINE "pending senders" — in-memory discovery aid for the Tier 1 allowlist.
13
- * When the webhook access gate drops a sender that is not on the allowlist, we
14
- * remember them here (with their LINE display name, best-effort) so the admin
15
- * can see who is pending and one-click-add them from the UI instead of grepping
16
- * `line-webhook.log`.
17
- *
18
- * Intentionally ephemeral: a process-lifetime Map, no persistence. Adding to the
19
- * allowlist is the durable action (config.json via the agent PATCH API); this is
20
- * just a transient "pending list". Bounded per agent so a flood can't grow it.
21
- */
22
- const crypto_1 = require("crypto");
23
- /** Mint a short visual-match pairing code (6 uppercase hex). */
24
- function generatePairingCode() {
25
- return (0, crypto_1.randomBytes)(3).toString('hex').toUpperCase();
26
- }
27
- /**
28
- * Max distinct senders retained per agent (oldest evicted first). Kept at 5 to
29
- * match the per-kind pending cap in the Telegram/Discord gate (countPending ⇒ 5
30
- * for each of DM and group), so every channel bounds unapproved knocks the same
31
- * way and a flood can't exhaust memory.
32
- */
33
- exports.MAX_PENDING_PER_AGENT = 5;
34
- // agentId -> (id -> entry) (id = userId | groupId | roomId)
35
- const store = new Map();
36
- /**
37
- * Record a denied knock (DM sender or group/room conversation). Dedups by id
38
- * (bumps count + lastSeen, fills in a name/kind if newly resolved). Evicts the
39
- * least-recently-seen entry when the per-agent cap is exceeded.
40
- *
41
- * `code` is set only when the entry is newly created (never overwritten on
42
- * dedup), so a pairing code stays stable. Returns `true` when this call created
43
- * a new entry (first contact) — the webhook uses this to send the pairing code
44
- * exactly once.
45
- */
46
- function recordDenied(agentId, id, kind, displayName, now, code) {
47
- if (!agentId || !id)
48
- return false;
49
- let byId = store.get(agentId);
50
- if (!byId) {
51
- byId = new Map();
52
- store.set(agentId, byId);
53
- }
54
- const existing = byId.get(id);
55
- if (existing) {
56
- existing.lastSeen = now;
57
- existing.count += 1;
58
- if (displayName && !existing.displayName)
59
- existing.displayName = displayName;
60
- if (!existing.kind)
61
- existing.kind = kind;
62
- return false;
63
- }
64
- byId.set(id, { userId: id, displayName, kind, code, firstSeen: now, lastSeen: now, count: 1 });
65
- if (byId.size > exports.MAX_PENDING_PER_AGENT) {
66
- let oldestId = null;
67
- let oldestTs = Infinity;
68
- for (const [eid, entry] of byId) {
69
- if (entry.lastSeen < oldestTs) {
70
- oldestTs = entry.lastSeen;
71
- oldestId = eid;
72
- }
73
- }
74
- if (oldestId)
75
- byId.delete(oldestId);
76
- }
77
- return true;
78
- }
79
- /**
80
- * Record a denied 1:1 DM sender (Tier 1 discovery). Returns true on first
81
- * contact (entry newly created).
82
- */
83
- function recordDeniedSender(agentId, userId, displayName, now = Date.now(), code) {
84
- return recordDenied(agentId, userId, 'user', displayName, now, code);
85
- }
86
- /**
87
- * Record a denied group/room conversation (Tier 3 discovery). Returns true on
88
- * first contact (entry newly created).
89
- */
90
- function recordDeniedConversation(agentId, conversationId, kind, name, now = Date.now(), code) {
91
- return recordDenied(agentId, conversationId, kind, name, now, code);
92
- }
93
- /** Pending senders for an agent, most-recent first. */
94
- function getPendingSenders(agentId) {
95
- const byId = store.get(agentId);
96
- if (!byId)
97
- return [];
98
- return [...byId.values()].sort((a, b) => b.lastSeen - a.lastSeen);
99
- }
100
- /** One pending-sender entry by id (used to reuse an already-minted pairing code). */
101
- function getPendingSender(agentId, id) {
102
- return store.get(agentId)?.get(id);
103
- }
104
- /** Drop an entry from the pending list (e.g. once added to an allowlist). */
105
- function clearPendingSender(agentId, id) {
106
- store.get(agentId)?.delete(id);
107
- }
108
- /** Test/maintenance helper — wipe all retained senders. */
109
- function _resetPendingSenders() {
110
- store.clear();
111
- }
112
- //# sourceMappingURL=line-pending-senders.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"line-pending-senders.js","sourceRoot":"","sources":["../../src/api/line-pending-senders.ts"],"names":[],"mappings":"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"}