devchain-cli 0.2.2 → 0.3.1

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 (146) hide show
  1. package/README.md +2 -0
  2. package/dist/drizzle/0018_whole_zodiak.sql +43 -0
  3. package/dist/drizzle/0019_flat_avengers.sql +3 -0
  4. package/dist/drizzle/0020_statuses_mcp_hidden.sql +1 -0
  5. package/dist/drizzle/meta/0018_snapshot.json +2920 -0
  6. package/dist/drizzle/meta/0019_snapshot.json +2943 -0
  7. package/dist/drizzle/meta/0020_snapshot.json +2951 -0
  8. package/dist/drizzle/meta/_journal.json +21 -0
  9. package/dist/server/app.module.js +11 -1
  10. package/dist/server/app.module.js.map +1 -1
  11. package/dist/server/common/config/env.config.d.ts +1 -0
  12. package/dist/server/common/config/env.config.js +4 -0
  13. package/dist/server/common/config/env.config.js.map +1 -1
  14. package/dist/server/common/filters/http-exception.filter.js +24 -1
  15. package/dist/server/common/filters/http-exception.filter.js.map +1 -1
  16. package/dist/server/common/logging/logger.js +4 -3
  17. package/dist/server/common/logging/logger.js.map +1 -1
  18. package/dist/server/main.js +0 -3
  19. package/dist/server/main.js.map +1 -1
  20. package/dist/server/modules/agents/agents.module.js +2 -1
  21. package/dist/server/modules/agents/agents.module.js.map +1 -1
  22. package/dist/server/modules/agents/controllers/agents.controller.d.ts +17 -2
  23. package/dist/server/modules/agents/controllers/agents.controller.js +84 -3
  24. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  25. package/dist/server/modules/chat/dtos/chat.dto.d.ts +18 -18
  26. package/dist/server/modules/chat/services/invite-template.util.js +1 -1
  27. package/dist/server/modules/chat/services/invite-template.util.js.map +1 -1
  28. package/dist/server/modules/events/catalog/index.d.ts +40 -0
  29. package/dist/server/modules/events/catalog/index.js +2 -0
  30. package/dist/server/modules/events/catalog/index.js.map +1 -1
  31. package/dist/server/modules/events/catalog/terminal.watcher.triggered.d.ts +45 -0
  32. package/dist/server/modules/events/catalog/terminal.watcher.triggered.js +22 -0
  33. package/dist/server/modules/events/catalog/terminal.watcher.triggered.js.map +1 -0
  34. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.d.ts +1 -0
  35. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.js +30 -12
  36. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.js.map +1 -1
  37. package/dist/server/modules/mcp/constants.js +5 -1
  38. package/dist/server/modules/mcp/constants.js.map +1 -1
  39. package/dist/server/modules/mcp/controllers/mcp-http.controller.js +78 -77
  40. package/dist/server/modules/mcp/controllers/mcp-http.controller.js.map +1 -1
  41. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js +78 -77
  42. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js.map +1 -1
  43. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +125 -97
  44. package/dist/server/modules/mcp/dtos/mcp.dto.js +23 -26
  45. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  46. package/dist/server/modules/mcp/services/instructions-resolver.d.ts +3 -0
  47. package/dist/server/modules/mcp/services/instructions-resolver.js +83 -2
  48. package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -1
  49. package/dist/server/modules/mcp/services/mcp.service.d.ts +3 -2
  50. package/dist/server/modules/mcp/services/mcp.service.js +549 -263
  51. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  52. package/dist/server/modules/projects/controllers/projects.controller.d.ts +41 -0
  53. package/dist/server/modules/projects/projects.module.js +2 -1
  54. package/dist/server/modules/projects/projects.module.js.map +1 -1
  55. package/dist/server/modules/projects/services/projects.service.d.ts +46 -1
  56. package/dist/server/modules/projects/services/projects.service.js +243 -18
  57. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  58. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +1 -1
  59. package/dist/server/modules/prompts/controllers/prompts.controller.js +26 -4
  60. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  61. package/dist/server/modules/sessions/utils/template-renderer.js +1 -0
  62. package/dist/server/modules/sessions/utils/template-renderer.js.map +1 -1
  63. package/dist/server/modules/statuses/controllers/statuses.controller.js +2 -0
  64. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  65. package/dist/server/modules/storage/db/schema.d.ts +613 -0
  66. package/dist/server/modules/storage/db/schema.js +50 -1
  67. package/dist/server/modules/storage/db/schema.js.map +1 -1
  68. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +40 -2
  69. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  70. package/dist/server/modules/storage/local/local-storage.service.d.ts +18 -3
  71. package/dist/server/modules/storage/local/local-storage.service.js +407 -11
  72. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  73. package/dist/server/modules/storage/models/domain.models.d.ts +59 -1
  74. package/dist/server/modules/subscribers/actions/action.interface.d.ts +67 -0
  75. package/dist/server/modules/subscribers/actions/action.interface.js +3 -0
  76. package/dist/server/modules/subscribers/actions/action.interface.js.map +1 -0
  77. package/dist/server/modules/subscribers/actions/actions.registry.d.ts +7 -0
  78. package/dist/server/modules/subscribers/actions/actions.registry.js +37 -0
  79. package/dist/server/modules/subscribers/actions/actions.registry.js.map +1 -0
  80. package/dist/server/modules/subscribers/actions/restart-agent.action.d.ts +8 -0
  81. package/dist/server/modules/subscribers/actions/restart-agent.action.js +119 -0
  82. package/dist/server/modules/subscribers/actions/restart-agent.action.js.map +1 -0
  83. package/dist/server/modules/subscribers/actions/send-message.action.d.ts +2 -0
  84. package/dist/server/modules/subscribers/actions/send-message.action.js +83 -0
  85. package/dist/server/modules/subscribers/actions/send-message.action.js.map +1 -0
  86. package/dist/server/modules/subscribers/controllers/actions.controller.d.ts +6 -0
  87. package/dist/server/modules/subscribers/controllers/actions.controller.js +51 -0
  88. package/dist/server/modules/subscribers/controllers/actions.controller.js.map +1 -0
  89. package/dist/server/modules/subscribers/controllers/subscribers.controller.d.ts +17 -0
  90. package/dist/server/modules/subscribers/controllers/subscribers.controller.js +178 -0
  91. package/dist/server/modules/subscribers/controllers/subscribers.controller.js.map +1 -0
  92. package/dist/server/modules/subscribers/dtos/subscriber.dto.d.ts +251 -0
  93. package/dist/server/modules/subscribers/dtos/subscriber.dto.js +68 -0
  94. package/dist/server/modules/subscribers/dtos/subscriber.dto.js.map +1 -0
  95. package/dist/server/modules/subscribers/events/event-fields-catalog.d.ts +19 -0
  96. package/dist/server/modules/subscribers/events/event-fields-catalog.js +98 -0
  97. package/dist/server/modules/subscribers/events/event-fields-catalog.js.map +1 -0
  98. package/dist/server/modules/subscribers/services/automation-scheduler.service.d.ts +49 -0
  99. package/dist/server/modules/subscribers/services/automation-scheduler.service.js +300 -0
  100. package/dist/server/modules/subscribers/services/automation-scheduler.service.js.map +1 -0
  101. package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +77 -0
  102. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +576 -0
  103. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -0
  104. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +14 -0
  105. package/dist/server/modules/subscribers/services/subscribers.service.js +70 -0
  106. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -0
  107. package/dist/server/modules/subscribers/subscribers.module.d.ts +2 -0
  108. package/dist/server/modules/subscribers/subscribers.module.js +36 -0
  109. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -0
  110. package/dist/server/modules/terminal/services/tmux.service.js +9 -6
  111. package/dist/server/modules/terminal/services/tmux.service.js.map +1 -1
  112. package/dist/server/modules/watchers/controllers/watchers.controller.d.ts +16 -0
  113. package/dist/server/modules/watchers/controllers/watchers.controller.js +180 -0
  114. package/dist/server/modules/watchers/controllers/watchers.controller.js.map +1 -0
  115. package/dist/server/modules/watchers/dtos/watcher.dto.d.ts +206 -0
  116. package/dist/server/modules/watchers/dtos/watcher.dto.js +54 -0
  117. package/dist/server/modules/watchers/dtos/watcher.dto.js.map +1 -0
  118. package/dist/server/modules/watchers/services/watcher-runner.service.d.ts +68 -0
  119. package/dist/server/modules/watchers/services/watcher-runner.service.js +477 -0
  120. package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -0
  121. package/dist/server/modules/watchers/services/watchers.service.d.ts +29 -0
  122. package/dist/server/modules/watchers/services/watchers.service.js +98 -0
  123. package/dist/server/modules/watchers/services/watchers.service.js.map +1 -0
  124. package/dist/server/modules/watchers/watchers.module.d.ts +2 -0
  125. package/dist/server/modules/watchers/watchers.module.js +34 -0
  126. package/dist/server/modules/watchers/watchers.module.js.map +1 -0
  127. package/dist/server/templates/claude-codex-advanced.json +377 -0
  128. package/dist/server/templates/claude-opus.json +29 -25
  129. package/dist/server/templates/simple-codex.json +29 -25
  130. package/dist/server/test-setup-node.d.ts +1 -0
  131. package/dist/server/test-setup-node.js +8 -0
  132. package/dist/server/test-setup-node.js.map +1 -0
  133. package/dist/server/test-setup.js +2 -0
  134. package/dist/server/test-setup.js.map +1 -1
  135. package/dist/server/tsconfig.tsbuildinfo +1 -1
  136. package/dist/server/ui/assets/index-C9GXCjnF.js +700 -0
  137. package/dist/server/ui/assets/index-o0FbZg-1.css +32 -0
  138. package/dist/server/ui/index.html +2 -2
  139. package/dist/templates/claude-codex-advanced.json +377 -0
  140. package/dist/templates/claude-opus.json +29 -25
  141. package/dist/templates/simple-codex.json +29 -25
  142. package/package.json +41 -27
  143. package/dist/server/templates/codex-claude.json +0 -178
  144. package/dist/server/ui/assets/index-CbYIbCQV.css +0 -32
  145. package/dist/server/ui/assets/index-sfYpjMjv.js +0 -641
  146. package/dist/templates/codex-claude.json +0 -178
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ACTIONS_REGISTRY = void 0;
4
+ exports.getAction = getAction;
5
+ exports.getAllActions = getAllActions;
6
+ exports.getActionMetadata = getActionMetadata;
7
+ exports.hasAction = hasAction;
8
+ exports.getActionTypes = getActionTypes;
9
+ const send_message_action_1 = require("./send-message.action");
10
+ const restart_agent_action_1 = require("./restart-agent.action");
11
+ exports.ACTIONS_REGISTRY = [
12
+ send_message_action_1.sendMessageAction,
13
+ restart_agent_action_1.restartAgentAction,
14
+ ];
15
+ function getAction(type) {
16
+ return exports.ACTIONS_REGISTRY.find((action) => action.type === type);
17
+ }
18
+ function getAllActions() {
19
+ return exports.ACTIONS_REGISTRY.map((action) => {
20
+ const { execute, ...actionWithoutExecute } = action;
21
+ return actionWithoutExecute;
22
+ });
23
+ }
24
+ function getActionMetadata(type) {
25
+ const action = getAction(type);
26
+ if (!action)
27
+ return undefined;
28
+ const { execute, ...actionWithoutExecute } = action;
29
+ return actionWithoutExecute;
30
+ }
31
+ function hasAction(type) {
32
+ return exports.ACTIONS_REGISTRY.some((action) => action.type === type);
33
+ }
34
+ function getActionTypes() {
35
+ return exports.ACTIONS_REGISTRY.map((action) => action.type);
36
+ }
37
+ //# sourceMappingURL=actions.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.registry.js","sourceRoot":"","sources":["../../../../src/modules/subscribers/actions/actions.registry.ts"],"names":[],"mappings":";;;AA+BA,8BAEC;AAQD,sCAOC;AAQD,8CAOC;AAQD,8BAEC;AAOD,wCAEC;AAjFD,+DAA0D;AAC1D,iEAA4D;AAgB/C,QAAA,gBAAgB,GAAuB;IAClD,uCAAiB;IACjB,yCAAkB;CAGnB,CAAC;AAQF,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,wBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACjE,CAAC;AAQD,SAAgB,aAAa;IAC3B,OAAO,wBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAGrC,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,CAAC;QACpD,OAAO,oBAAoB,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAG9B,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,CAAC;IACpD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAQD,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,wBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACjE,CAAC;AAOD,SAAgB,cAAc;IAC5B,OAAO,wBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ActionDefinition } from './action.interface';
2
+ export interface RestartAgentResultData {
3
+ resolvedAgentId: string;
4
+ previousSessionId?: string;
5
+ newSessionId: string;
6
+ resolvedBy: 'event' | 'agentName';
7
+ }
8
+ export declare const restartAgentAction: ActionDefinition;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.restartAgentAction = void 0;
4
+ exports.restartAgentAction = {
5
+ type: 'restart_agent',
6
+ name: 'Restart Agent',
7
+ description: 'Restart an agent by terminating its session and launching a fresh independent session',
8
+ category: 'session',
9
+ inputs: [
10
+ {
11
+ name: 'agentName',
12
+ label: 'Agent Name (Override)',
13
+ type: 'string',
14
+ required: false,
15
+ description: 'Optional: Specify agent by name to restart a different agent. Leave empty to use the agent from the triggering event.',
16
+ placeholder: 'e.g., Coder',
17
+ },
18
+ ],
19
+ execute: async (context, inputs) => {
20
+ const { sessionsService, sessionCoordinator, storage, projectId, agentId: contextAgentId, logger, } = context;
21
+ const inputAgentName = inputs.agentName;
22
+ let resolvedAgentId = null;
23
+ let resolvedAgentProjectId = null;
24
+ let resolvedBy = 'event';
25
+ try {
26
+ if (inputAgentName && inputAgentName.trim()) {
27
+ try {
28
+ const agent = await storage.getAgentByName(projectId, inputAgentName.trim());
29
+ resolvedAgentId = agent.id;
30
+ resolvedAgentProjectId = agent.projectId;
31
+ resolvedBy = 'agentName';
32
+ logger.debug({ agentName: inputAgentName, resolvedAgentId }, 'Resolved agent by name');
33
+ }
34
+ catch (error) {
35
+ return {
36
+ success: false,
37
+ error: `Agent not found: "${inputAgentName}" in project ${projectId}`,
38
+ };
39
+ }
40
+ }
41
+ else if (contextAgentId) {
42
+ resolvedAgentId = contextAgentId;
43
+ resolvedBy = 'event';
44
+ logger.debug({ contextAgentId }, 'Using agent ID from event context');
45
+ }
46
+ if (!resolvedAgentId) {
47
+ return {
48
+ success: false,
49
+ error: 'No agent specified: provide agentName input, or trigger from an event with agentId',
50
+ };
51
+ }
52
+ if (!resolvedAgentProjectId) {
53
+ try {
54
+ const agent = await storage.getAgent(resolvedAgentId);
55
+ resolvedAgentProjectId = agent.projectId;
56
+ }
57
+ catch (error) {
58
+ return {
59
+ success: false,
60
+ error: `Agent not found: "${resolvedAgentId}"`,
61
+ };
62
+ }
63
+ }
64
+ if (resolvedAgentProjectId !== projectId) {
65
+ return {
66
+ success: false,
67
+ error: `Refusing to restart agent from a different project (agentProjectId=${resolvedAgentProjectId}, contextProjectId=${projectId})`,
68
+ };
69
+ }
70
+ const result = await sessionCoordinator.withAgentLock(resolvedAgentId, async () => {
71
+ let previousSessionId;
72
+ const activeSessions = await sessionsService.listActiveSessions(projectId);
73
+ const existingSession = activeSessions.find((s) => s.agentId === resolvedAgentId);
74
+ if (existingSession) {
75
+ previousSessionId = existingSession.id;
76
+ logger.info({ sessionId: existingSession.id, agentId: resolvedAgentId }, 'Terminating existing session before restart');
77
+ await sessionsService.terminateSession(existingSession.id);
78
+ }
79
+ logger.info({ agentId: resolvedAgentId }, 'Launching new independent session');
80
+ const newSession = await sessionsService.launchSession({
81
+ agentId: resolvedAgentId,
82
+ projectId,
83
+ });
84
+ return {
85
+ previousSessionId,
86
+ newSessionId: newSession.id,
87
+ };
88
+ });
89
+ const resultData = {
90
+ resolvedAgentId,
91
+ previousSessionId: result.previousSessionId,
92
+ newSessionId: result.newSessionId,
93
+ resolvedBy,
94
+ };
95
+ logger.info({
96
+ resolvedAgentId,
97
+ previousSessionId: result.previousSessionId,
98
+ newSessionId: result.newSessionId,
99
+ resolvedBy,
100
+ }, 'Agent restarted successfully');
101
+ return {
102
+ success: true,
103
+ message: result.previousSessionId
104
+ ? `Agent restarted: terminated session ${result.previousSessionId}, launched ${result.newSessionId}`
105
+ : `Agent started: launched session ${result.newSessionId}`,
106
+ data: resultData,
107
+ };
108
+ }
109
+ catch (error) {
110
+ const errorMessage = error instanceof Error ? error.message : String(error);
111
+ logger.error({ resolvedAgentId, error: errorMessage }, 'Failed to restart agent');
112
+ return {
113
+ success: false,
114
+ error: `Failed to restart agent: ${errorMessage}`,
115
+ };
116
+ }
117
+ },
118
+ };
119
+ //# sourceMappingURL=restart-agent.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart-agent.action.js","sourceRoot":"","sources":["../../../../src/modules/subscribers/actions/restart-agent.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ActionDefinition } from './action.interface';
2
+ export declare const sendMessageAction: ActionDefinition;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendMessageAction = void 0;
4
+ exports.sendMessageAction = {
5
+ type: 'send_agent_message',
6
+ name: 'Send Message to Agent',
7
+ description: 'Send text input to the agent terminal session',
8
+ category: 'terminal',
9
+ inputs: [
10
+ {
11
+ name: 'text',
12
+ label: 'Message Text',
13
+ type: 'textarea',
14
+ required: true,
15
+ description: 'Text to send to the terminal',
16
+ placeholder: '/compact',
17
+ maxLength: 10000,
18
+ },
19
+ {
20
+ name: 'submitKey',
21
+ label: 'Submit Key',
22
+ type: 'select',
23
+ required: false,
24
+ description: 'Key to press after pasting text',
25
+ defaultValue: 'Enter',
26
+ options: [
27
+ { value: 'Enter', label: 'Enter (submit)' },
28
+ { value: 'none', label: 'None (paste only)' },
29
+ ],
30
+ allowedSources: ['custom'],
31
+ },
32
+ ],
33
+ execute: async (context, inputs) => {
34
+ const { tmuxService, sendCoordinator, sessionId, agentId, tmuxSessionName, logger } = context;
35
+ const text = inputs.text;
36
+ const submitKey = inputs.submitKey || 'Enter';
37
+ if (!text || text.trim().length === 0) {
38
+ return {
39
+ success: false,
40
+ error: 'Text is required',
41
+ };
42
+ }
43
+ if (!tmuxSessionName) {
44
+ return {
45
+ success: false,
46
+ error: 'No tmux session available',
47
+ };
48
+ }
49
+ try {
50
+ if (agentId) {
51
+ await sendCoordinator.ensureAgentGap(agentId, 500);
52
+ }
53
+ const submitKeys = submitKey === 'none' ? [] : ['Enter'];
54
+ await tmuxService.pasteAndSubmit(tmuxSessionName, text, {
55
+ bracketed: true,
56
+ submitKeys,
57
+ delayMs: 250,
58
+ });
59
+ logger.info({
60
+ sessionId,
61
+ textLength: text.length,
62
+ submitKey,
63
+ }, 'Sent message to terminal');
64
+ return {
65
+ success: true,
66
+ message: `Message sent to session ${sessionId}`,
67
+ data: {
68
+ sessionId,
69
+ textLength: text.length,
70
+ submitKey,
71
+ },
72
+ };
73
+ }
74
+ catch (error) {
75
+ logger.error({ sessionId, error: String(error) }, 'Failed to send message');
76
+ return {
77
+ success: false,
78
+ error: `Failed to send message: ${error instanceof Error ? error.message : String(error)}`,
79
+ };
80
+ }
81
+ },
82
+ };
83
+ //# sourceMappingURL=send-message.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-message.action.js","sourceRoot":"","sources":["../../../../src/modules/subscribers/actions/send-message.action.ts"],"names":[],"mappings":";;;AAiBa,QAAA,iBAAiB,GAAqB;IACjD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,+CAA+C;IAC5D,QAAQ,EAAE,UAAU;IAEpB,MAAM,EAAE;QACN;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8BAA8B;YAC3C,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,KAAK;SACjB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,iCAAiC;YAC9C,YAAY,EAAE,OAAO;YACrB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE;gBAC3C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE;aAC9C;YACD,cAAc,EAAE,CAAC,QAAQ,CAAC;SAC3B;KACF;IAED,OAAO,EAAE,KAAK,EACZ,OAAsB,EACtB,MAA+B,EACR,EAAE;QACzB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAG9F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;QACnC,MAAM,SAAS,GAAI,MAAM,CAAC,SAAoB,IAAI,OAAO,CAAC;QAE1D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kBAAkB;aAC1B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,2BAA2B;aACnC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YAEH,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;YAGD,MAAM,UAAU,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAGzD,MAAM,WAAW,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE;gBACtD,SAAS,EAAE,IAAI;gBACf,UAAU;gBACV,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CACT;gBACE,SAAS;gBACT,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,SAAS;aACV,EACD,0BAA0B,CAC3B,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,2BAA2B,SAAS,EAAE;gBAC/C,IAAI,EAAE;oBACJ,SAAS;oBACT,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,SAAS;iBACV;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAE5E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3F,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ActionDefinition } from '../actions/action.interface';
2
+ export type ActionMetadataDto = Omit<ActionDefinition, 'execute'>;
3
+ export declare class ActionsController {
4
+ listActions(): ActionMetadataDto[];
5
+ getAction(type: string): ActionMetadataDto;
6
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ActionsController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const logger_1 = require("../../../common/logging/logger");
18
+ const actions_registry_1 = require("../actions/actions.registry");
19
+ const logger = (0, logger_1.createLogger)('ActionsController');
20
+ let ActionsController = class ActionsController {
21
+ listActions() {
22
+ logger.info('GET /api/actions');
23
+ return (0, actions_registry_1.getAllActions)();
24
+ }
25
+ getAction(type) {
26
+ logger.info({ type }, 'GET /api/actions/:type');
27
+ const action = (0, actions_registry_1.getActionMetadata)(type);
28
+ if (!action) {
29
+ throw new common_1.NotFoundException(`Action type '${type}' not found`);
30
+ }
31
+ return action;
32
+ }
33
+ };
34
+ exports.ActionsController = ActionsController;
35
+ __decorate([
36
+ (0, common_1.Get)(),
37
+ __metadata("design:type", Function),
38
+ __metadata("design:paramtypes", []),
39
+ __metadata("design:returntype", Array)
40
+ ], ActionsController.prototype, "listActions", null);
41
+ __decorate([
42
+ (0, common_1.Get)(':type'),
43
+ __param(0, (0, common_1.Param)('type')),
44
+ __metadata("design:type", Function),
45
+ __metadata("design:paramtypes", [String]),
46
+ __metadata("design:returntype", Object)
47
+ ], ActionsController.prototype, "getAction", null);
48
+ exports.ActionsController = ActionsController = __decorate([
49
+ (0, common_1.Controller)('api/actions')
50
+ ], ActionsController);
51
+ //# sourceMappingURL=actions.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.controller.js","sourceRoot":"","sources":["../../../../src/modules/subscribers/controllers/actions.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,2DAA8D;AAC9D,kEAA+E;AAG/E,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,mBAAmB,CAAC,CAAC;AAQ1C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAO5B,WAAW;QACT,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,IAAA,gCAAa,GAAE,CAAC;IACzB,CAAC;IAQD,SAAS,CAAgB,IAAY;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,IAAA,oCAAiB,EAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,IAAI,aAAa,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA5BY,8CAAiB;AAO5B;IADC,IAAA,YAAG,GAAE;;;;oDAIL;AAQD;IADC,IAAA,YAAG,EAAC,OAAO,CAAC;IACF,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;;;;kDASvB;4BA3BU,iBAAiB;IAD7B,IAAA,mBAAU,EAAC,aAAa,CAAC;GACb,iBAAiB,CA4B7B"}
@@ -0,0 +1,17 @@
1
+ import { SubscribersService } from '../services/subscribers.service';
2
+ import { type SubscriberDto } from '../dtos/subscriber.dto';
3
+ import { type SubscribableEventDefinition } from '../events/event-fields-catalog';
4
+ export declare class SubscribersController {
5
+ private readonly subscribersService;
6
+ constructor(subscribersService: SubscribersService);
7
+ listSubscribableEvents(): {
8
+ events: SubscribableEventDefinition[];
9
+ };
10
+ listSubscribers(projectId?: string): Promise<SubscriberDto[]>;
11
+ getSubscriber(id: string): Promise<SubscriberDto>;
12
+ createSubscriber(body: unknown): Promise<SubscriberDto>;
13
+ updateSubscriber(id: string, body: unknown): Promise<SubscriberDto>;
14
+ deleteSubscriber(id: string): Promise<void>;
15
+ toggleSubscriber(id: string, body: unknown): Promise<SubscriberDto>;
16
+ private toDto;
17
+ }
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SubscribersController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const logger_1 = require("../../../common/logging/logger");
18
+ const subscribers_service_1 = require("../services/subscribers.service");
19
+ const subscriber_dto_1 = require("../dtos/subscriber.dto");
20
+ const event_fields_catalog_1 = require("../events/event-fields-catalog");
21
+ const logger = (0, logger_1.createLogger)('SubscribersController');
22
+ let SubscribersController = class SubscribersController {
23
+ constructor(subscribersService) {
24
+ this.subscribersService = subscribersService;
25
+ }
26
+ listSubscribableEvents() {
27
+ logger.info('GET /api/subscribers/events');
28
+ const events = Object.values(event_fields_catalog_1.EVENT_FIELDS_CATALOG);
29
+ return { events };
30
+ }
31
+ async listSubscribers(projectId) {
32
+ logger.info({ projectId }, 'GET /api/subscribers');
33
+ if (!projectId) {
34
+ throw new common_1.BadRequestException('projectId query parameter is required');
35
+ }
36
+ const subscribers = await this.subscribersService.listSubscribers(projectId);
37
+ return subscribers.map(this.toDto);
38
+ }
39
+ async getSubscriber(id) {
40
+ logger.info({ id }, 'GET /api/subscribers/:id');
41
+ const subscriber = await this.subscribersService.getSubscriber(id);
42
+ return this.toDto(subscriber);
43
+ }
44
+ async createSubscriber(body) {
45
+ logger.info('POST /api/subscribers');
46
+ const parseResult = subscriber_dto_1.CreateSubscriberSchema.safeParse(body);
47
+ if (!parseResult.success) {
48
+ throw new common_1.BadRequestException({
49
+ message: 'Validation failed',
50
+ errors: parseResult.error.errors,
51
+ });
52
+ }
53
+ const data = parseResult.data;
54
+ const subscriber = await this.subscribersService.createSubscriber({
55
+ projectId: data.projectId,
56
+ name: data.name,
57
+ description: data.description ?? null,
58
+ enabled: data.enabled,
59
+ eventName: data.eventName,
60
+ eventFilter: data.eventFilter ?? null,
61
+ actionType: data.actionType,
62
+ actionInputs: data.actionInputs,
63
+ delayMs: data.delayMs,
64
+ cooldownMs: data.cooldownMs,
65
+ retryOnError: data.retryOnError,
66
+ groupName: data.groupName ?? null,
67
+ position: data.position,
68
+ priority: data.priority,
69
+ });
70
+ return this.toDto(subscriber);
71
+ }
72
+ async updateSubscriber(id, body) {
73
+ logger.info({ id }, 'PUT /api/subscribers/:id');
74
+ const parseResult = subscriber_dto_1.UpdateSubscriberSchema.safeParse(body);
75
+ if (!parseResult.success) {
76
+ throw new common_1.BadRequestException({
77
+ message: 'Validation failed',
78
+ errors: parseResult.error.errors,
79
+ });
80
+ }
81
+ const data = parseResult.data;
82
+ const subscriber = await this.subscribersService.updateSubscriber(id, data);
83
+ return this.toDto(subscriber);
84
+ }
85
+ async deleteSubscriber(id) {
86
+ logger.info({ id }, 'DELETE /api/subscribers/:id');
87
+ await this.subscribersService.deleteSubscriber(id);
88
+ }
89
+ async toggleSubscriber(id, body) {
90
+ logger.info({ id }, 'POST /api/subscribers/:id/toggle');
91
+ const parseResult = subscriber_dto_1.ToggleSubscriberSchema.safeParse(body);
92
+ if (!parseResult.success) {
93
+ throw new common_1.BadRequestException({
94
+ message: 'Validation failed',
95
+ errors: parseResult.error.errors,
96
+ });
97
+ }
98
+ const subscriber = await this.subscribersService.toggleSubscriber(id, parseResult.data.enabled);
99
+ return this.toDto(subscriber);
100
+ }
101
+ toDto(subscriber) {
102
+ return {
103
+ id: subscriber.id,
104
+ projectId: subscriber.projectId,
105
+ name: subscriber.name,
106
+ description: subscriber.description,
107
+ enabled: subscriber.enabled,
108
+ eventName: subscriber.eventName,
109
+ eventFilter: subscriber.eventFilter,
110
+ actionType: subscriber.actionType,
111
+ actionInputs: subscriber.actionInputs,
112
+ delayMs: subscriber.delayMs,
113
+ cooldownMs: subscriber.cooldownMs,
114
+ retryOnError: subscriber.retryOnError,
115
+ groupName: subscriber.groupName,
116
+ position: subscriber.position,
117
+ priority: subscriber.priority,
118
+ createdAt: subscriber.createdAt,
119
+ updatedAt: subscriber.updatedAt,
120
+ };
121
+ }
122
+ };
123
+ exports.SubscribersController = SubscribersController;
124
+ __decorate([
125
+ (0, common_1.Get)('events'),
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", []),
128
+ __metadata("design:returntype", Object)
129
+ ], SubscribersController.prototype, "listSubscribableEvents", null);
130
+ __decorate([
131
+ (0, common_1.Get)(),
132
+ __param(0, (0, common_1.Query)('projectId')),
133
+ __metadata("design:type", Function),
134
+ __metadata("design:paramtypes", [String]),
135
+ __metadata("design:returntype", Promise)
136
+ ], SubscribersController.prototype, "listSubscribers", null);
137
+ __decorate([
138
+ (0, common_1.Get)(':id'),
139
+ __param(0, (0, common_1.Param)('id')),
140
+ __metadata("design:type", Function),
141
+ __metadata("design:paramtypes", [String]),
142
+ __metadata("design:returntype", Promise)
143
+ ], SubscribersController.prototype, "getSubscriber", null);
144
+ __decorate([
145
+ (0, common_1.Post)(),
146
+ __param(0, (0, common_1.Body)()),
147
+ __metadata("design:type", Function),
148
+ __metadata("design:paramtypes", [Object]),
149
+ __metadata("design:returntype", Promise)
150
+ ], SubscribersController.prototype, "createSubscriber", null);
151
+ __decorate([
152
+ (0, common_1.Put)(':id'),
153
+ __param(0, (0, common_1.Param)('id')),
154
+ __param(1, (0, common_1.Body)()),
155
+ __metadata("design:type", Function),
156
+ __metadata("design:paramtypes", [String, Object]),
157
+ __metadata("design:returntype", Promise)
158
+ ], SubscribersController.prototype, "updateSubscriber", null);
159
+ __decorate([
160
+ (0, common_1.Delete)(':id'),
161
+ __param(0, (0, common_1.Param)('id')),
162
+ __metadata("design:type", Function),
163
+ __metadata("design:paramtypes", [String]),
164
+ __metadata("design:returntype", Promise)
165
+ ], SubscribersController.prototype, "deleteSubscriber", null);
166
+ __decorate([
167
+ (0, common_1.Post)(':id/toggle'),
168
+ __param(0, (0, common_1.Param)('id')),
169
+ __param(1, (0, common_1.Body)()),
170
+ __metadata("design:type", Function),
171
+ __metadata("design:paramtypes", [String, Object]),
172
+ __metadata("design:returntype", Promise)
173
+ ], SubscribersController.prototype, "toggleSubscriber", null);
174
+ exports.SubscribersController = SubscribersController = __decorate([
175
+ (0, common_1.Controller)('api/subscribers'),
176
+ __metadata("design:paramtypes", [subscribers_service_1.SubscribersService])
177
+ ], SubscribersController);
178
+ //# sourceMappingURL=subscribers.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribers.controller.js","sourceRoot":"","sources":["../../../../src/modules/subscribers/controllers/subscribers.controller.ts"],"names":[],"mappings":"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"}