@generacy-ai/generacy 0.5.0 → 0.6.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 (87) hide show
  1. package/dist/cli/commands/cockpit/clarification-answer-marker.d.ts +8 -0
  2. package/dist/cli/commands/cockpit/clarification-answer-marker.d.ts.map +1 -0
  3. package/dist/cli/commands/cockpit/clarification-answer-marker.js +76 -0
  4. package/dist/cli/commands/cockpit/clarification-answer-marker.js.map +1 -0
  5. package/dist/cli/commands/cockpit/clarification-comment-finder.d.ts.map +1 -1
  6. package/dist/cli/commands/cockpit/clarification-comment-finder.js +33 -3
  7. package/dist/cli/commands/cockpit/clarification-comment-finder.js.map +1 -1
  8. package/dist/cli/commands/cockpit/clarify-relay.d.ts +38 -0
  9. package/dist/cli/commands/cockpit/clarify-relay.d.ts.map +1 -0
  10. package/dist/cli/commands/cockpit/clarify-relay.js +120 -0
  11. package/dist/cli/commands/cockpit/clarify-relay.js.map +1 -0
  12. package/dist/cli/commands/cockpit/doorbell/aggregate-on-demand.d.ts +43 -0
  13. package/dist/cli/commands/cockpit/doorbell/aggregate-on-demand.d.ts.map +1 -0
  14. package/dist/cli/commands/cockpit/doorbell/aggregate-on-demand.js +72 -0
  15. package/dist/cli/commands/cockpit/doorbell/aggregate-on-demand.js.map +1 -0
  16. package/dist/cli/commands/cockpit/doorbell/channel-discovery.d.ts +37 -0
  17. package/dist/cli/commands/cockpit/doorbell/channel-discovery.d.ts.map +1 -0
  18. package/dist/cli/commands/cockpit/doorbell/channel-discovery.js +92 -0
  19. package/dist/cli/commands/cockpit/doorbell/channel-discovery.js.map +1 -0
  20. package/dist/cli/commands/cockpit/doorbell/smee-source.d.ts +73 -0
  21. package/dist/cli/commands/cockpit/doorbell/smee-source.d.ts.map +1 -0
  22. package/dist/cli/commands/cockpit/doorbell/smee-source.js +362 -0
  23. package/dist/cli/commands/cockpit/doorbell/smee-source.js.map +1 -0
  24. package/dist/cli/commands/cockpit/doorbell/source-selector.d.ts +56 -0
  25. package/dist/cli/commands/cockpit/doorbell/source-selector.d.ts.map +1 -0
  26. package/dist/cli/commands/cockpit/doorbell/source-selector.js +182 -0
  27. package/dist/cli/commands/cockpit/doorbell/source-selector.js.map +1 -0
  28. package/dist/cli/commands/cockpit/doorbell/sse-parser.d.ts +15 -0
  29. package/dist/cli/commands/cockpit/doorbell/sse-parser.d.ts.map +1 -0
  30. package/dist/cli/commands/cockpit/doorbell/sse-parser.js +43 -0
  31. package/dist/cli/commands/cockpit/doorbell/sse-parser.js.map +1 -0
  32. package/dist/cli/commands/cockpit/doorbell/startup-retry.d.ts +55 -0
  33. package/dist/cli/commands/cockpit/doorbell/startup-retry.d.ts.map +1 -0
  34. package/dist/cli/commands/cockpit/doorbell/startup-retry.js +159 -0
  35. package/dist/cli/commands/cockpit/doorbell/startup-retry.js.map +1 -0
  36. package/dist/cli/commands/cockpit/doorbell/subscribe.d.ts +19 -0
  37. package/dist/cli/commands/cockpit/doorbell/subscribe.d.ts.map +1 -0
  38. package/dist/cli/commands/cockpit/doorbell/subscribe.js +54 -0
  39. package/dist/cli/commands/cockpit/doorbell/subscribe.js.map +1 -0
  40. package/dist/cli/commands/cockpit/doorbell/webhook-to-event.d.ts +28 -0
  41. package/dist/cli/commands/cockpit/doorbell/webhook-to-event.d.ts.map +1 -0
  42. package/dist/cli/commands/cockpit/doorbell/webhook-to-event.js +159 -0
  43. package/dist/cli/commands/cockpit/doorbell/webhook-to-event.js.map +1 -0
  44. package/dist/cli/commands/cockpit/doorbell.d.ts +58 -0
  45. package/dist/cli/commands/cockpit/doorbell.d.ts.map +1 -0
  46. package/dist/cli/commands/cockpit/doorbell.js +477 -0
  47. package/dist/cli/commands/cockpit/doorbell.js.map +1 -0
  48. package/dist/cli/commands/cockpit/index.d.ts +1 -0
  49. package/dist/cli/commands/cockpit/index.d.ts.map +1 -1
  50. package/dist/cli/commands/cockpit/index.js +3 -0
  51. package/dist/cli/commands/cockpit/index.js.map +1 -1
  52. package/dist/cli/commands/cockpit/mcp/event-bus-registry.d.ts +2 -1
  53. package/dist/cli/commands/cockpit/mcp/event-bus-registry.d.ts.map +1 -1
  54. package/dist/cli/commands/cockpit/mcp/event-bus-registry.js +38 -9
  55. package/dist/cli/commands/cockpit/mcp/event-bus-registry.js.map +1 -1
  56. package/dist/cli/commands/cockpit/mcp/schemas.d.ts +48 -0
  57. package/dist/cli/commands/cockpit/mcp/schemas.d.ts.map +1 -1
  58. package/dist/cli/commands/cockpit/mcp/schemas.js +28 -0
  59. package/dist/cli/commands/cockpit/mcp/schemas.js.map +1 -1
  60. package/dist/cli/commands/cockpit/mcp/server.d.ts.map +1 -1
  61. package/dist/cli/commands/cockpit/mcp/server.js +6 -1
  62. package/dist/cli/commands/cockpit/mcp/server.js.map +1 -1
  63. package/dist/cli/commands/cockpit/mcp/tools/cockpit_relay_clarify_answers.d.ts +45 -0
  64. package/dist/cli/commands/cockpit/mcp/tools/cockpit_relay_clarify_answers.d.ts.map +1 -0
  65. package/dist/cli/commands/cockpit/mcp/tools/cockpit_relay_clarify_answers.js +45 -0
  66. package/dist/cli/commands/cockpit/mcp/tools/cockpit_relay_clarify_answers.js.map +1 -0
  67. package/dist/cli/commands/cockpit/resume.d.ts +12 -6
  68. package/dist/cli/commands/cockpit/resume.d.ts.map +1 -1
  69. package/dist/cli/commands/cockpit/resume.js +27 -11
  70. package/dist/cli/commands/cockpit/resume.js.map +1 -1
  71. package/dist/cli/commands/cockpit/watch/poll-loop.d.ts +2 -0
  72. package/dist/cli/commands/cockpit/watch/poll-loop.d.ts.map +1 -1
  73. package/dist/cli/commands/cockpit/watch/poll-loop.js +38 -6
  74. package/dist/cli/commands/cockpit/watch/poll-loop.js.map +1 -1
  75. package/dist/cli/commands/cockpit/watch/pr-state.d.ts +15 -1
  76. package/dist/cli/commands/cockpit/watch/pr-state.d.ts.map +1 -1
  77. package/dist/cli/commands/cockpit/watch/pr-state.js +38 -0
  78. package/dist/cli/commands/cockpit/watch/pr-state.js.map +1 -1
  79. package/dist/cli/commands/cockpit/watch/snapshot.d.ts +6 -1
  80. package/dist/cli/commands/cockpit/watch/snapshot.d.ts.map +1 -1
  81. package/dist/cli/commands/cockpit/watch/snapshot.js +3 -1
  82. package/dist/cli/commands/cockpit/watch/snapshot.js.map +1 -1
  83. package/dist/cli/commands/cockpit/watch.d.ts +2 -1
  84. package/dist/cli/commands/cockpit/watch.d.ts.map +1 -1
  85. package/dist/cli/commands/cockpit/watch.js +25 -13
  86. package/dist/cli/commands/cockpit/watch.js.map +1 -1
  87. package/package.json +5 -5
@@ -0,0 +1,159 @@
1
+ function refKey(owner, repo, num) {
2
+ return `${owner}/${repo}#${num}`;
3
+ }
4
+ function repoKey(owner, repo) {
5
+ return `${owner}/${repo}`;
6
+ }
7
+ function extractRepo(body) {
8
+ const repoObj = body['repository'];
9
+ if (repoObj == null || typeof repoObj !== 'object')
10
+ return null;
11
+ const r = repoObj;
12
+ const name = r['name'];
13
+ const ownerObj = r['owner'];
14
+ if (typeof name !== 'string' || ownerObj == null || typeof ownerObj !== 'object') {
15
+ return null;
16
+ }
17
+ const login = ownerObj['login'];
18
+ if (typeof login !== 'string')
19
+ return null;
20
+ return { owner: login, repo: name };
21
+ }
22
+ function extractIssue(body) {
23
+ const issueObj = body['issue'];
24
+ if (issueObj == null || typeof issueObj !== 'object')
25
+ return null;
26
+ const i = issueObj;
27
+ const num = i['number'];
28
+ if (typeof num !== 'number')
29
+ return null;
30
+ const rawLabels = i['labels'];
31
+ const labels = [];
32
+ if (Array.isArray(rawLabels)) {
33
+ for (const l of rawLabels) {
34
+ if (l != null && typeof l === 'object') {
35
+ const lname = l['name'];
36
+ if (typeof lname === 'string')
37
+ labels.push(lname);
38
+ }
39
+ }
40
+ }
41
+ return { number: num, labels };
42
+ }
43
+ function extractPrNumber(body) {
44
+ const prObj = body['pull_request'];
45
+ if (prObj == null || typeof prObj !== 'object')
46
+ return null;
47
+ const num = prObj['number'];
48
+ return typeof num === 'number' ? num : null;
49
+ }
50
+ function extractPrMerged(body) {
51
+ const prObj = body['pull_request'];
52
+ if (prObj == null || typeof prObj !== 'object')
53
+ return null;
54
+ const merged = prObj['merged'];
55
+ return typeof merged === 'boolean' ? merged : null;
56
+ }
57
+ function extractLabelName(body) {
58
+ const labelObj = body['label'];
59
+ if (labelObj == null || typeof labelObj !== 'object')
60
+ return null;
61
+ const name = labelObj['name'];
62
+ return typeof name === 'string' ? name : null;
63
+ }
64
+ function extractCheckPrs(body, container) {
65
+ const holder = body[container];
66
+ if (holder == null || typeof holder !== 'object')
67
+ return [];
68
+ const prs = holder['pull_requests'];
69
+ if (!Array.isArray(prs))
70
+ return [];
71
+ const out = [];
72
+ for (const p of prs) {
73
+ if (p != null && typeof p === 'object') {
74
+ const num = p['number'];
75
+ if (typeof num === 'number')
76
+ out.push(num);
77
+ }
78
+ }
79
+ return out;
80
+ }
81
+ function buildEvent(event, owner, repo, kind, number, sourceLabel, labels, now) {
82
+ return {
83
+ type: 'issue-transition',
84
+ ts: now(),
85
+ repo: `${owner}/${repo}`,
86
+ kind,
87
+ number,
88
+ from: null,
89
+ to: null,
90
+ sourceLabel,
91
+ url: `https://github.com/${owner}/${repo}/${kind === 'pr' ? 'pull' : 'issues'}/${number}`,
92
+ event,
93
+ labels,
94
+ };
95
+ }
96
+ /**
97
+ * Q1=A mapping. Returns exactly one `CockpitEventValidated` for `issues.*` and
98
+ * `pull_request.*` matches, or one per matched PR for `check_run.completed` /
99
+ * `check_suite.completed`. Callers that want single-event semantics should
100
+ * take the first element.
101
+ */
102
+ export function webhookToStreamEvent(githubEvent, action, body, refSet, now) {
103
+ const repoInfo = extractRepo(body);
104
+ if (repoInfo == null)
105
+ return null;
106
+ const { owner, repo } = repoInfo;
107
+ if (!refSet.watchedRepos.has(repoKey(owner, repo)))
108
+ return null;
109
+ if (githubEvent === 'issues') {
110
+ const issue = extractIssue(body);
111
+ if (issue == null)
112
+ return null;
113
+ if (!refSet.issues.has(refKey(owner, repo, issue.number)))
114
+ return null;
115
+ if (action === 'labeled' || action === 'unlabeled') {
116
+ const labelName = extractLabelName(body);
117
+ if (labelName == null)
118
+ return null;
119
+ return buildEvent('label-change', owner, repo, 'issue', issue.number, labelName, issue.labels, now);
120
+ }
121
+ if (action === 'closed') {
122
+ return buildEvent('issue-closed', owner, repo, 'issue', issue.number, null, issue.labels, now);
123
+ }
124
+ return null;
125
+ }
126
+ if (githubEvent === 'pull_request') {
127
+ const prNum = extractPrNumber(body);
128
+ if (prNum == null)
129
+ return null;
130
+ if (!refSet.prs.has(refKey(owner, repo, prNum)))
131
+ return null;
132
+ if (action === 'closed') {
133
+ const merged = extractPrMerged(body);
134
+ const evName = merged === true ? 'pr-merged' : 'pr-closed';
135
+ return buildEvent(evName, owner, repo, 'pr', prNum, null, [], now);
136
+ }
137
+ return null;
138
+ }
139
+ if ((githubEvent === 'check_run' || githubEvent === 'check_suite') &&
140
+ action === 'completed') {
141
+ const container = githubEvent;
142
+ const prs = extractCheckPrs(body, container);
143
+ const out = [];
144
+ const seen = new Set();
145
+ for (const prNum of prs) {
146
+ if (seen.has(prNum))
147
+ continue;
148
+ seen.add(prNum);
149
+ if (!refSet.prs.has(refKey(owner, repo, prNum)))
150
+ continue;
151
+ out.push(buildEvent('pr-checks', owner, repo, 'pr', prNum, null, [], now));
152
+ }
153
+ if (out.length === 0)
154
+ return null;
155
+ return out;
156
+ }
157
+ return null;
158
+ }
159
+ //# sourceMappingURL=webhook-to-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-to-event.js","sourceRoot":"","sources":["../../../../../src/cli/commands/cockpit/doorbell/webhook-to-event.ts"],"names":[],"mappings":"AAsBA,SAAS,MAAM,CAAC,KAAa,EAAE,IAAY,EAAE,GAAW;IACtD,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,IAAY;IAC1C,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,IAA6B;IAIhD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAI,QAAoC,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,IAA6B;IAIjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,CAAC,GAAG,QAAmC,CAAC;IAC9C,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAI,CAA6B,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CAAC,IAA6B;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,GAAG,GAAI,KAAiC,CAAC,QAAQ,CAAC,CAAC;IACzD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,IAA6B;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAI,KAAiC,CAAC,QAAQ,CAAC,CAAC;IAC5D,OAAO,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAA6B;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,IAAI,GAAI,QAAoC,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CACtB,IAA6B,EAC7B,SAAsC;IAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAI,MAAkC,CAAC,eAAe,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,GAAG,GAAI,CAA6B,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CACjB,KAAgF,EAChF,KAAa,EACb,IAAY,EACZ,IAAoB,EACpB,MAAc,EACd,WAA0B,EAC1B,MAAgB,EAChB,GAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE,GAAG,EAAE;QACT,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE;QACxB,IAAI;QACJ,MAAM;QACN,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,IAAI;QACR,WAAW;QACX,GAAG,EAAE,sBAAsB,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,EAAE;QACzF,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,MAAc,EACd,IAA6B,EAC7B,MAAkB,EAClB,GAAiB;IAEjB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAEjC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,SAAS,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACnC,OAAO,UAAU,CACf,cAAc,EACd,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,SAAS,EACT,KAAK,CAAC,MAAM,EACZ,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,UAAU,CACf,cAAc,EACd,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,IAAI,EACJ,KAAK,CAAC,MAAM,EACZ,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;YAC3D,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,CAAC,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,aAAa,CAAC;QAC9D,MAAM,KAAK,WAAW,EACtB,CAAC;QACD,MAAM,SAAS,GAAG,WAA0C,CAAC;QAC7D,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,SAAS;YAC1D,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { Command } from 'commander';
2
+ import { type CommandRunner, type GhWrapper, type RateLimitScheduler } from '@generacy-ai/cockpit';
3
+ import { type AcquireOptions, type Acquired } from './mcp/event-bus-registry.js';
4
+ import { discoverChannelUrl } from './doorbell/channel-discovery.js';
5
+ import { SourceSelector } from './doorbell/source-selector.js';
6
+ import { SmeeDoorbellSource } from './doorbell/smee-source.js';
7
+ export interface DoorbellOptions {
8
+ tracking?: boolean;
9
+ new?: string;
10
+ exitOnEpicComplete?: boolean;
11
+ }
12
+ export interface DoorbellDeps {
13
+ runner?: CommandRunner;
14
+ gh?: GhWrapper;
15
+ rateLimitScheduler?: RateLimitScheduler;
16
+ logger?: {
17
+ warn: (msg: string) => void;
18
+ info?: (msg: string) => void;
19
+ };
20
+ acquireBus?: (options: AcquireOptions) => Promise<Acquired>;
21
+ abortSignal?: AbortSignal;
22
+ stdout?: {
23
+ write(chunk: string, cb?: () => void): boolean | void;
24
+ };
25
+ exit?: (code: number) => void;
26
+ /** Test seam: override channel discovery. */
27
+ discoverChannel?: typeof discoverChannelUrl;
28
+ /** Test seam: override the smee source constructor. */
29
+ smeeSourceFactory?: (opts: ConstructorParameters<typeof SmeeDoorbellSource>[0]) => SmeeDoorbellSource;
30
+ /** Test seam: override the source selector constructor. */
31
+ sourceSelectorFactory?: (opts: ConstructorParameters<typeof SourceSelector>[0]) => SourceSelector;
32
+ /** Test seam: env passed to `discoverChannelUrl`. Defaults to `process.env`. */
33
+ env?: NodeJS.ProcessEnv;
34
+ /** Test seam: filesystem passed to `discoverChannelUrl`. */
35
+ fs?: Parameters<typeof discoverChannelUrl>[0]['fs'];
36
+ /** Test seam: channel-file path override. */
37
+ channelFilePath?: string;
38
+ }
39
+ export type Form = {
40
+ kind: 'form-1';
41
+ ref: string;
42
+ } | {
43
+ kind: 'form-2';
44
+ ref: string;
45
+ } | {
46
+ kind: 'form-3';
47
+ title: string;
48
+ };
49
+ export type Rejection = {
50
+ kind: 'missing-positional';
51
+ } | {
52
+ kind: 'conflicting-flags';
53
+ reason: 'positional-with-new' | 'tracking-with-new';
54
+ };
55
+ export declare function classifyForm(positional: string | undefined, options: DoorbellOptions): Form | Rejection;
56
+ export declare function runDoorbell(positional: string | undefined, options: DoorbellOptions, deps?: DoorbellDeps): Promise<number>;
57
+ export declare function doorbellCommand(): Command;
58
+ //# sourceMappingURL=doorbell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doorbell.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/cockpit/doorbell.ts"],"names":[],"mappings":"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"}