@irvingdinh/porygon-z 0.1.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 (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +162 -0
  3. package/dist/app.module.d.ts +2 -0
  4. package/dist/app.module.js +21 -0
  5. package/dist/app.module.js.map +1 -0
  6. package/dist/core/config/config.d.ts +13 -0
  7. package/dist/core/config/config.js +67 -0
  8. package/dist/core/config/config.js.map +1 -0
  9. package/dist/core/core.module.d.ts +2 -0
  10. package/dist/core/core.module.js +24 -0
  11. package/dist/core/core.module.js.map +1 -0
  12. package/dist/core/modules/config.module.d.ts +1 -0
  13. package/dist/core/modules/config.module.js +10 -0
  14. package/dist/core/modules/config.module.js.map +1 -0
  15. package/dist/core/modules/index.d.ts +1 -0
  16. package/dist/core/modules/index.js +6 -0
  17. package/dist/core/modules/index.js.map +1 -0
  18. package/dist/core/services/index.d.ts +2 -0
  19. package/dist/core/services/index.js +6 -0
  20. package/dist/core/services/index.js.map +1 -0
  21. package/dist/core/services/template.service.d.ts +7 -0
  22. package/dist/core/services/template.service.js +93 -0
  23. package/dist/core/services/template.service.js.map +1 -0
  24. package/dist/core/templates/slack/commands/command-cd-error-escape.handlebars +1 -0
  25. package/dist/core/templates/slack/commands/command-cd-error-not-found.handlebars +1 -0
  26. package/dist/core/templates/slack/commands/command-cd-ok.handlebars +1 -0
  27. package/dist/core/templates/slack/commands/command-cd-show.handlebars +1 -0
  28. package/dist/core/templates/slack/commands/command-kill-ok.handlebars +1 -0
  29. package/dist/core/templates/slack/commands/command-ll-error.handlebars +2 -0
  30. package/dist/core/templates/slack/commands/command-ll-ok.handlebars +1 -0
  31. package/dist/core/templates/slack/commands/command-sh-error-usage.handlebars +1 -0
  32. package/dist/core/templates/slack/commands/command-workspace-ok-created.handlebars +9 -0
  33. package/dist/core/templates/slack/commands/command-workspace-ok.handlebars +7 -0
  34. package/dist/core/templates/slack/listeners/listener-message-attachments.handlebars +13 -0
  35. package/dist/core/templates/slack/listeners/listener-message-error.handlebars +1 -0
  36. package/dist/core/templates/slack/listeners/listener-message-follow-up-prompt.handlebars +26 -0
  37. package/dist/core/templates/slack/listeners/listener-message-session-corrupted.handlebars +1 -0
  38. package/dist/core/templates/slack/listeners/listener-message-session-expired.handlebars +1 -0
  39. package/dist/core/templates/slack/listeners/listener-message-system-prompt.handlebars +79 -0
  40. package/dist/main.d.ts +2 -0
  41. package/dist/main.js +11 -0
  42. package/dist/main.js.map +1 -0
  43. package/dist/slack/services/attachment.service.d.ts +23 -0
  44. package/dist/slack/services/attachment.service.js +113 -0
  45. package/dist/slack/services/attachment.service.js.map +1 -0
  46. package/dist/slack/services/bot.service.d.ts +16 -0
  47. package/dist/slack/services/bot.service.js +61 -0
  48. package/dist/slack/services/bot.service.js.map +1 -0
  49. package/dist/slack/services/claude-formatter.service.d.ts +9 -0
  50. package/dist/slack/services/claude-formatter.service.js +116 -0
  51. package/dist/slack/services/claude-formatter.service.js.map +1 -0
  52. package/dist/slack/services/claude.service.d.ts +48 -0
  53. package/dist/slack/services/claude.service.js +97 -0
  54. package/dist/slack/services/claude.service.js.map +1 -0
  55. package/dist/slack/services/commands/command-cd.service.d.ts +12 -0
  56. package/dist/slack/services/commands/command-cd.service.js +88 -0
  57. package/dist/slack/services/commands/command-cd.service.js.map +1 -0
  58. package/dist/slack/services/commands/command-kill.service.d.ts +12 -0
  59. package/dist/slack/services/commands/command-kill.service.js +40 -0
  60. package/dist/slack/services/commands/command-kill.service.js.map +1 -0
  61. package/dist/slack/services/commands/command-ll.service.d.ts +12 -0
  62. package/dist/slack/services/commands/command-ll.service.js +52 -0
  63. package/dist/slack/services/commands/command-ll.service.js.map +1 -0
  64. package/dist/slack/services/commands/command-sh.service.d.ts +10 -0
  65. package/dist/slack/services/commands/command-sh.service.js +38 -0
  66. package/dist/slack/services/commands/command-sh.service.js.map +1 -0
  67. package/dist/slack/services/commands/command-workspace.service.d.ts +15 -0
  68. package/dist/slack/services/commands/command-workspace.service.js +302 -0
  69. package/dist/slack/services/commands/command-workspace.service.js.map +1 -0
  70. package/dist/slack/services/commands/index.d.ts +13 -0
  71. package/dist/slack/services/commands/index.js +26 -0
  72. package/dist/slack/services/commands/index.js.map +1 -0
  73. package/dist/slack/services/commands/registry.service.d.ts +13 -0
  74. package/dist/slack/services/commands/registry.service.js +38 -0
  75. package/dist/slack/services/commands/registry.service.js.map +1 -0
  76. package/dist/slack/services/index.d.ts +15 -0
  77. package/dist/slack/services/index.js +22 -0
  78. package/dist/slack/services/index.js.map +1 -0
  79. package/dist/slack/services/listeners/index.d.ts +9 -0
  80. package/dist/slack/services/listeners/index.js +16 -0
  81. package/dist/slack/services/listeners/index.js.map +1 -0
  82. package/dist/slack/services/listeners/listener-message.service.d.ts +28 -0
  83. package/dist/slack/services/listeners/listener-message.service.js +297 -0
  84. package/dist/slack/services/listeners/listener-message.service.js.map +1 -0
  85. package/dist/slack/services/listeners/registry.service.d.ts +13 -0
  86. package/dist/slack/services/listeners/registry.service.js +38 -0
  87. package/dist/slack/services/listeners/registry.service.js.map +1 -0
  88. package/dist/slack/services/thread.service.d.ts +22 -0
  89. package/dist/slack/services/thread.service.js +125 -0
  90. package/dist/slack/services/thread.service.js.map +1 -0
  91. package/dist/slack/services/workspace.service.d.ts +21 -0
  92. package/dist/slack/services/workspace.service.js +98 -0
  93. package/dist/slack/services/workspace.service.js.map +1 -0
  94. package/dist/slack/slack.module.d.ts +2 -0
  95. package/dist/slack/slack.module.js +23 -0
  96. package/dist/slack/slack.module.js.map +1 -0
  97. package/dist/tsconfig.build.tsbuildinfo +1 -0
  98. package/package.json +75 -0
@@ -0,0 +1,88 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var CommandCdService_1;
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.CommandCdService = void 0;
47
+ const fs = __importStar(require("node:fs"));
48
+ const path = __importStar(require("node:path"));
49
+ const common_1 = require("@nestjs/common");
50
+ const template_service_1 = require("../../../core/services/template.service");
51
+ const workspace_service_1 = require("../workspace.service");
52
+ let CommandCdService = CommandCdService_1 = class CommandCdService {
53
+ workspace;
54
+ template;
55
+ logger = new common_1.Logger(CommandCdService_1.name);
56
+ command = '/cd';
57
+ constructor(workspace, template) {
58
+ this.workspace = workspace;
59
+ this.template = template;
60
+ }
61
+ async handle({ ack, command, }) {
62
+ const target = command.text.trim();
63
+ const channelId = command.channel_id;
64
+ const currentDir = this.workspace.resolveCwd(channelId);
65
+ if (!target) {
66
+ await ack(this.template.render('slack.commands.command-cd-show', {
67
+ cwd: currentDir,
68
+ }));
69
+ return;
70
+ }
71
+ const resolved = path.resolve(currentDir, target);
72
+ if (!fs.existsSync(resolved)) {
73
+ await ack(this.template.render('slack.commands.command-cd-error-not-found', {
74
+ resolved,
75
+ }));
76
+ return;
77
+ }
78
+ this.workspace.set(channelId, { cwd: resolved });
79
+ await ack(this.template.render('slack.commands.command-cd-ok', { cwd: resolved }));
80
+ }
81
+ };
82
+ exports.CommandCdService = CommandCdService;
83
+ exports.CommandCdService = CommandCdService = CommandCdService_1 = __decorate([
84
+ (0, common_1.Injectable)(),
85
+ __metadata("design:paramtypes", [workspace_service_1.WorkspaceService,
86
+ template_service_1.TemplateService])
87
+ ], CommandCdService);
88
+ //# sourceMappingURL=command-cd.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-cd.service.js","sourceRoot":"","sources":["../../../../src/slack/services/commands/command-cd.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAElC,2CAAoD;AAMpD,8EAA0E;AAC1E,4DAAwD;AAIjD,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAMR;IACA;IANF,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,GAAG,KAAK,CAAC;IAEzB,YACmB,SAA2B,EAC3B,QAAyB;QADzB,cAAS,GAAT,SAAS,CAAkB;QAC3B,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,EACX,GAAG,EACH,OAAO,GACwC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gCAAgC,EAAE;gBACrD,GAAG,EAAE,UAAU;aAChB,CAAC,CACH,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,2CAA2C,EAAE;gBAChE,QAAQ;aACT,CAAC,CACH,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjD,MAAM,GAAG,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;CACF,CAAA;AA3CY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAOmB,oCAAgB;QACjB,kCAAe;GAPjC,gBAAgB,CA2C5B"}
@@ -0,0 +1,12 @@
1
+ import type { AllMiddlewareArgs, SlackCommandMiddlewareArgs } from '@slack/bolt';
2
+ import { TemplateService } from '../../../core/services/template.service';
3
+ import { ClaudeService } from '../claude.service';
4
+ import { SlackCommand } from './registry.service';
5
+ export declare class CommandKillService implements SlackCommand {
6
+ private readonly claude;
7
+ private readonly template;
8
+ private readonly logger;
9
+ readonly command = "/kill";
10
+ constructor(claude: ClaudeService, template: TemplateService);
11
+ handle({ ack }: SlackCommandMiddlewareArgs & AllMiddlewareArgs): Promise<void>;
12
+ }
@@ -0,0 +1,40 @@
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 CommandKillService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CommandKillService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const template_service_1 = require("../../../core/services/template.service");
16
+ const claude_service_1 = require("../claude.service");
17
+ let CommandKillService = CommandKillService_1 = class CommandKillService {
18
+ claude;
19
+ template;
20
+ logger = new common_1.Logger(CommandKillService_1.name);
21
+ command = '/kill';
22
+ constructor(claude, template) {
23
+ this.claude = claude;
24
+ this.template = template;
25
+ }
26
+ async handle({ ack }) {
27
+ const count = this.claude.killAll();
28
+ await ack(this.template.render('slack.commands.command-kill-ok', {
29
+ count,
30
+ plural: count !== 1,
31
+ }));
32
+ }
33
+ };
34
+ exports.CommandKillService = CommandKillService;
35
+ exports.CommandKillService = CommandKillService = CommandKillService_1 = __decorate([
36
+ (0, common_1.Injectable)(),
37
+ __metadata("design:paramtypes", [claude_service_1.ClaudeService,
38
+ template_service_1.TemplateService])
39
+ ], CommandKillService);
40
+ //# sourceMappingURL=command-kill.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-kill.service.js","sourceRoot":"","sources":["../../../../src/slack/services/commands/command-kill.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAMpD,8EAA0E;AAC1E,sDAAkD;AAI3C,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAMV;IACA;IANF,MAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAErD,OAAO,GAAG,OAAO,CAAC;IAE3B,YACmB,MAAqB,EACrB,QAAyB;QADzB,WAAM,GAAN,MAAM,CAAe;QACrB,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAkD;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,GAAG,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gCAAgC,EAAE;YACrD,KAAK;YACL,MAAM,EAAE,KAAK,KAAK,CAAC;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAnBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAOgB,8BAAa;QACX,kCAAe;GAPjC,kBAAkB,CAmB9B"}
@@ -0,0 +1,12 @@
1
+ import type { AllMiddlewareArgs, SlackCommandMiddlewareArgs } from '@slack/bolt';
2
+ import { TemplateService } from '../../../core/services/template.service';
3
+ import { WorkspaceService } from '../workspace.service';
4
+ import { SlackCommand } from './registry.service';
5
+ export declare class CommandLlService implements SlackCommand {
6
+ private readonly workspace;
7
+ private readonly template;
8
+ private readonly logger;
9
+ readonly command = "/ll";
10
+ constructor(workspace: WorkspaceService, template: TemplateService);
11
+ handle({ ack, command, }: SlackCommandMiddlewareArgs & AllMiddlewareArgs): Promise<void>;
12
+ }
@@ -0,0 +1,52 @@
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 CommandLlService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CommandLlService = void 0;
14
+ const node_child_process_1 = require("node:child_process");
15
+ const common_1 = require("@nestjs/common");
16
+ const template_service_1 = require("../../../core/services/template.service");
17
+ const workspace_service_1 = require("../workspace.service");
18
+ let CommandLlService = CommandLlService_1 = class CommandLlService {
19
+ workspace;
20
+ template;
21
+ logger = new common_1.Logger(CommandLlService_1.name);
22
+ command = '/ll';
23
+ constructor(workspace, template) {
24
+ this.workspace = workspace;
25
+ this.template = template;
26
+ }
27
+ async handle({ ack, command, }) {
28
+ const channelId = command.channel_id;
29
+ const cwd = this.workspace.resolveCwd(channelId);
30
+ try {
31
+ const output = (0, node_child_process_1.execSync)('/bin/ls -la', {
32
+ cwd,
33
+ encoding: 'utf-8',
34
+ }).trim();
35
+ await ack(this.template.render('slack.commands.command-ll-ok', { cwd, output }));
36
+ }
37
+ catch (err) {
38
+ const message = err instanceof Error ? err.message : 'ls failed';
39
+ await ack(this.template.render('slack.commands.command-ll-error', {
40
+ cwd,
41
+ message,
42
+ }));
43
+ }
44
+ }
45
+ };
46
+ exports.CommandLlService = CommandLlService;
47
+ exports.CommandLlService = CommandLlService = CommandLlService_1 = __decorate([
48
+ (0, common_1.Injectable)(),
49
+ __metadata("design:paramtypes", [workspace_service_1.WorkspaceService,
50
+ template_service_1.TemplateService])
51
+ ], CommandLlService);
52
+ //# sourceMappingURL=command-ll.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-ll.service.js","sourceRoot":"","sources":["../../../../src/slack/services/commands/command-ll.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2DAA8C;AAE9C,2CAAoD;AAMpD,8EAA0E;AAC1E,4DAAwD;AAIjD,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAMR;IACA;IANF,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,GAAG,KAAK,CAAC;IAEzB,YACmB,SAA2B,EAC3B,QAAyB;QADzB,cAAS,GAAT,SAAS,CAAkB;QAC3B,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,EACX,GAAG,EACH,OAAO,GACwC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,6BAAQ,EAAC,aAAa,EAAE;gBACrC,GAAG;gBACH,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CACtE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;YACjE,MAAM,GAAG,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iCAAiC,EAAE;gBACtD,GAAG;gBACH,OAAO;aACR,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAnCY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAOmB,oCAAgB;QACjB,kCAAe;GAPjC,gBAAgB,CAmC5B"}
@@ -0,0 +1,10 @@
1
+ import type { AllMiddlewareArgs, SlackCommandMiddlewareArgs } from '@slack/bolt';
2
+ import { TemplateService } from '../../../core/services/template.service';
3
+ import { SlackCommand } from './registry.service';
4
+ export declare class CommandShService implements SlackCommand {
5
+ private readonly template;
6
+ private readonly logger;
7
+ readonly command = "/sh";
8
+ constructor(template: TemplateService);
9
+ handle({ ack, command, }: SlackCommandMiddlewareArgs & AllMiddlewareArgs): Promise<void>;
10
+ }
@@ -0,0 +1,38 @@
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 CommandShService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CommandShService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const template_service_1 = require("../../../core/services/template.service");
16
+ let CommandShService = CommandShService_1 = class CommandShService {
17
+ template;
18
+ logger = new common_1.Logger(CommandShService_1.name);
19
+ command = '/sh';
20
+ constructor(template) {
21
+ this.template = template;
22
+ }
23
+ async handle({ ack, command, }) {
24
+ const rawCommand = command.text.trim();
25
+ if (!rawCommand) {
26
+ await ack(this.template.render('slack.commands.command-sh-error-usage'));
27
+ return;
28
+ }
29
+ await ack();
30
+ this.logger.warn('/sh is not yet implemented.');
31
+ }
32
+ };
33
+ exports.CommandShService = CommandShService;
34
+ exports.CommandShService = CommandShService = CommandShService_1 = __decorate([
35
+ (0, common_1.Injectable)(),
36
+ __metadata("design:paramtypes", [template_service_1.TemplateService])
37
+ ], CommandShService);
38
+ //# sourceMappingURL=command-sh.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-sh.service.js","sourceRoot":"","sources":["../../../../src/slack/services/commands/command-sh.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAMpD,8EAA0E;AAInE,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAKE;IAJZ,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,GAAG,KAAK,CAAC;IAEzB,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,KAAK,CAAC,MAAM,CAAC,EACX,GAAG,EACH,OAAO,GACwC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,GAAG,EAAE,CAAC;QAGZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAvBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAM4B,kCAAe;GAL3C,gBAAgB,CAuB5B"}
@@ -0,0 +1,15 @@
1
+ import type { AllMiddlewareArgs, SlackCommandMiddlewareArgs, SlackViewAction, SlackViewMiddlewareArgs } from '@slack/bolt';
2
+ import { TemplateService } from '../../../core/services/template.service';
3
+ import { WorkspaceService } from '../workspace.service';
4
+ import { SlackCommand } from './registry.service';
5
+ export declare class CommandWorkspaceService implements SlackCommand {
6
+ private readonly workspace;
7
+ private readonly template;
8
+ private readonly logger;
9
+ readonly command = "/workspace";
10
+ readonly callbackId = "workspace_config_modal";
11
+ constructor(workspace: WorkspaceService, template: TemplateService);
12
+ handle({ ack, command, client, }: SlackCommandMiddlewareArgs & AllMiddlewareArgs): Promise<void>;
13
+ handleSubmission({ ack, view, client, }: SlackViewMiddlewareArgs<SlackViewAction> & AllMiddlewareArgs): Promise<void>;
14
+ private permissionLabel;
15
+ }
@@ -0,0 +1,302 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var CommandWorkspaceService_1;
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.CommandWorkspaceService = void 0;
47
+ const fs = __importStar(require("node:fs"));
48
+ const os = __importStar(require("node:os"));
49
+ const common_1 = require("@nestjs/common");
50
+ const template_service_1 = require("../../../core/services/template.service");
51
+ const workspace_service_1 = require("../workspace.service");
52
+ const CALLBACK_ID = 'workspace_config_modal';
53
+ let CommandWorkspaceService = CommandWorkspaceService_1 = class CommandWorkspaceService {
54
+ workspace;
55
+ template;
56
+ logger = new common_1.Logger(CommandWorkspaceService_1.name);
57
+ command = '/workspace';
58
+ callbackId = CALLBACK_ID;
59
+ constructor(workspace, template) {
60
+ this.workspace = workspace;
61
+ this.template = template;
62
+ }
63
+ async handle({ ack, command, client, }) {
64
+ await ack();
65
+ const channelId = command.channel_id;
66
+ const config = this.workspace.get(channelId);
67
+ const currentCwd = config?.cwd ?? os.homedir();
68
+ const currentSystemPrompt = config?.systemPrompt ?? '';
69
+ const currentModel = config?.model ?? 'opus[1m]';
70
+ const currentEffort = config?.effort ?? 'max';
71
+ const currentPermissionMode = config?.permissionMode ?? 'bypassPermissions';
72
+ await client.views.open({
73
+ trigger_id: command.trigger_id,
74
+ view: {
75
+ type: 'modal',
76
+ callback_id: CALLBACK_ID,
77
+ private_metadata: JSON.stringify({ channelId }),
78
+ title: {
79
+ type: 'plain_text',
80
+ text: 'Workspace',
81
+ },
82
+ submit: {
83
+ type: 'plain_text',
84
+ text: 'Save',
85
+ },
86
+ close: {
87
+ type: 'plain_text',
88
+ text: 'Cancel',
89
+ },
90
+ blocks: [
91
+ {
92
+ type: 'input',
93
+ block_id: 'cwd_block',
94
+ label: {
95
+ type: 'plain_text',
96
+ text: 'Working Directory',
97
+ },
98
+ element: {
99
+ type: 'plain_text_input',
100
+ action_id: 'cwd_input',
101
+ initial_value: currentCwd,
102
+ placeholder: {
103
+ type: 'plain_text',
104
+ text: '/absolute/path/to/directory',
105
+ },
106
+ },
107
+ },
108
+ {
109
+ type: 'input',
110
+ block_id: 'model_block',
111
+ label: {
112
+ type: 'plain_text',
113
+ text: 'Model',
114
+ },
115
+ element: {
116
+ type: 'plain_text_input',
117
+ action_id: 'model_input',
118
+ initial_value: currentModel,
119
+ placeholder: {
120
+ type: 'plain_text',
121
+ text: 'e.g. opus[1m]',
122
+ },
123
+ },
124
+ hint: {
125
+ type: 'plain_text',
126
+ text: 'haiku, sonnet, sonnet[1m], opus, opus[1m], mythos',
127
+ },
128
+ },
129
+ {
130
+ type: 'input',
131
+ block_id: 'effort_block',
132
+ label: {
133
+ type: 'plain_text',
134
+ text: 'Effort',
135
+ },
136
+ element: {
137
+ type: 'static_select',
138
+ action_id: 'effort_input',
139
+ initial_option: {
140
+ text: { type: 'plain_text', text: currentEffort },
141
+ value: currentEffort,
142
+ },
143
+ options: [
144
+ { text: { type: 'plain_text', text: 'max' }, value: 'max' },
145
+ { text: { type: 'plain_text', text: 'high' }, value: 'high' },
146
+ {
147
+ text: { type: 'plain_text', text: 'medium' },
148
+ value: 'medium',
149
+ },
150
+ { text: { type: 'plain_text', text: 'low' }, value: 'low' },
151
+ ],
152
+ },
153
+ },
154
+ {
155
+ type: 'input',
156
+ block_id: 'permission_block',
157
+ label: {
158
+ type: 'plain_text',
159
+ text: 'Permission Mode',
160
+ },
161
+ element: {
162
+ type: 'static_select',
163
+ action_id: 'permission_input',
164
+ initial_option: {
165
+ text: {
166
+ type: 'plain_text',
167
+ text: this.permissionLabel(currentPermissionMode),
168
+ },
169
+ value: currentPermissionMode,
170
+ },
171
+ options: [
172
+ {
173
+ text: {
174
+ type: 'plain_text',
175
+ text: 'Bypass Permissions',
176
+ },
177
+ value: 'bypassPermissions',
178
+ },
179
+ {
180
+ text: { type: 'plain_text', text: 'Auto' },
181
+ value: 'auto',
182
+ },
183
+ {
184
+ text: { type: 'plain_text', text: 'Plan (read-only)' },
185
+ value: 'plan',
186
+ },
187
+ ],
188
+ },
189
+ },
190
+ {
191
+ type: 'input',
192
+ block_id: 'system_prompt_block',
193
+ optional: true,
194
+ label: {
195
+ type: 'plain_text',
196
+ text: 'Workspace Instruction',
197
+ },
198
+ element: {
199
+ type: 'plain_text_input',
200
+ action_id: 'system_prompt_input',
201
+ multiline: true,
202
+ initial_value: currentSystemPrompt,
203
+ placeholder: {
204
+ type: 'plain_text',
205
+ text: 'Optional instructions for Claude in this workspace...',
206
+ },
207
+ },
208
+ },
209
+ ],
210
+ },
211
+ });
212
+ }
213
+ async handleSubmission({ ack, view, client, }) {
214
+ const { channelId } = JSON.parse(view.private_metadata);
215
+ const values = view.state.values;
216
+ const cwd = values.cwd_block.cwd_input.value?.trim() ?? '';
217
+ const model = values.model_block.model_input.value?.trim() ?? 'opus[1m]';
218
+ const effort = values.effort_block.effort_input.selected_option
219
+ ?.value ?? 'max';
220
+ const permissionMode = values.permission_block.permission_input.selected_option
221
+ ?.value ?? 'bypassPermissions';
222
+ const systemPrompt = values.system_prompt_block.system_prompt_input.value?.trim() ?? '';
223
+ if (!cwd.startsWith('/')) {
224
+ await ack({
225
+ response_action: 'errors',
226
+ errors: {
227
+ cwd_block: 'Working directory must be an absolute path (starts with /).',
228
+ },
229
+ });
230
+ return;
231
+ }
232
+ let dirCreated = false;
233
+ if (!fs.existsSync(cwd)) {
234
+ try {
235
+ fs.mkdirSync(cwd, { recursive: true });
236
+ dirCreated = true;
237
+ }
238
+ catch (err) {
239
+ const errorMsg = err instanceof Error ? err.message : 'Unknown error';
240
+ await ack({
241
+ response_action: 'errors',
242
+ errors: {
243
+ cwd_block: `Failed to create directory: ${errorMsg}`,
244
+ },
245
+ });
246
+ return;
247
+ }
248
+ }
249
+ else {
250
+ const stat = fs.statSync(cwd);
251
+ if (!stat.isDirectory()) {
252
+ await ack({
253
+ response_action: 'errors',
254
+ errors: {
255
+ cwd_block: 'Path exists but is not a directory.',
256
+ },
257
+ });
258
+ return;
259
+ }
260
+ }
261
+ await ack();
262
+ this.workspace.set(channelId, {
263
+ cwd,
264
+ model,
265
+ effort,
266
+ permissionMode,
267
+ systemPrompt,
268
+ });
269
+ this.logger.log(`Workspace config updated for channel ${channelId}: cwd=${cwd}, model=${model}, effort=${effort}, permissionMode=${permissionMode}`);
270
+ const templateName = dirCreated
271
+ ? 'slack.commands.command-workspace-ok-created'
272
+ : 'slack.commands.command-workspace-ok';
273
+ const text = this.template.render(templateName, {
274
+ cwd,
275
+ model,
276
+ effort,
277
+ permissionLabel: this.permissionLabel(permissionMode),
278
+ hasSystemPrompt: systemPrompt.length > 0,
279
+ });
280
+ await client.chat.postMessage({
281
+ channel: channelId,
282
+ text,
283
+ });
284
+ }
285
+ permissionLabel(mode) {
286
+ switch (mode) {
287
+ case 'bypassPermissions':
288
+ return 'Bypass Permissions';
289
+ case 'auto':
290
+ return 'Auto';
291
+ case 'plan':
292
+ return 'Plan (read-only)';
293
+ }
294
+ }
295
+ };
296
+ exports.CommandWorkspaceService = CommandWorkspaceService;
297
+ exports.CommandWorkspaceService = CommandWorkspaceService = CommandWorkspaceService_1 = __decorate([
298
+ (0, common_1.Injectable)(),
299
+ __metadata("design:paramtypes", [workspace_service_1.WorkspaceService,
300
+ template_service_1.TemplateService])
301
+ ], CommandWorkspaceService);
302
+ //# sourceMappingURL=command-workspace.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-workspace.service.js","sourceRoot":"","sources":["../../../../src/slack/services/commands/command-workspace.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { CommandCdService } from './command-cd.service';
2
+ import { CommandKillService } from './command-kill.service';
3
+ import { CommandLlService } from './command-ll.service';
4
+ import { CommandShService } from './command-sh.service';
5
+ import { CommandWorkspaceService } from './command-workspace.service';
6
+ import { RegistryService } from './registry.service';
7
+ declare const commandClasses: (typeof CommandWorkspaceService | typeof CommandCdService | typeof CommandKillService | typeof CommandLlService | typeof CommandShService)[];
8
+ export declare const commandServices: (typeof RegistryService | typeof CommandWorkspaceService | typeof CommandCdService | typeof CommandKillService | typeof CommandLlService | typeof CommandShService | {
9
+ provide: symbol;
10
+ useFactory: (...commands: InstanceType<(typeof commandClasses)[number]>[]) => (CommandWorkspaceService | CommandCdService | CommandKillService | CommandLlService | CommandShService)[];
11
+ inject: (typeof CommandWorkspaceService | typeof CommandCdService | typeof CommandKillService | typeof CommandLlService | typeof CommandShService)[];
12
+ })[];
13
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commandServices = void 0;
4
+ const command_cd_service_1 = require("./command-cd.service");
5
+ const command_kill_service_1 = require("./command-kill.service");
6
+ const command_ll_service_1 = require("./command-ll.service");
7
+ const command_sh_service_1 = require("./command-sh.service");
8
+ const command_workspace_service_1 = require("./command-workspace.service");
9
+ const registry_service_1 = require("./registry.service");
10
+ const commandClasses = [
11
+ command_kill_service_1.CommandKillService,
12
+ command_workspace_service_1.CommandWorkspaceService,
13
+ command_cd_service_1.CommandCdService,
14
+ command_ll_service_1.CommandLlService,
15
+ command_sh_service_1.CommandShService,
16
+ ];
17
+ exports.commandServices = [
18
+ registry_service_1.RegistryService,
19
+ ...commandClasses,
20
+ {
21
+ provide: registry_service_1.SLACK_COMMAND,
22
+ useFactory: (...commands) => commands,
23
+ inject: commandClasses,
24
+ },
25
+ ];
26
+ //# sourceMappingURL=index.js.map