reflectt-node 0.1.8 → 0.1.11

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 (163) hide show
  1. package/defaults/TEAM-ROLES.yaml +317 -5
  2. package/dist/agent-config.d.ts +51 -0
  3. package/dist/agent-config.d.ts.map +1 -0
  4. package/dist/agent-config.js +129 -0
  5. package/dist/agent-config.js.map +1 -0
  6. package/dist/agent-config.test.d.ts +2 -0
  7. package/dist/agent-config.test.d.ts.map +1 -0
  8. package/dist/agent-config.test.js +91 -0
  9. package/dist/agent-config.test.js.map +1 -0
  10. package/dist/agent-memories.d.ts +58 -0
  11. package/dist/agent-memories.d.ts.map +1 -0
  12. package/dist/agent-memories.js +168 -0
  13. package/dist/agent-memories.js.map +1 -0
  14. package/dist/agent-memories.test.d.ts +2 -0
  15. package/dist/agent-memories.test.d.ts.map +1 -0
  16. package/dist/agent-memories.test.js +327 -0
  17. package/dist/agent-memories.test.js.map +1 -0
  18. package/dist/agent-messaging.d.ts +50 -0
  19. package/dist/agent-messaging.d.ts.map +1 -0
  20. package/dist/agent-messaging.js +103 -0
  21. package/dist/agent-messaging.js.map +1 -0
  22. package/dist/agent-messaging.test.d.ts +2 -0
  23. package/dist/agent-messaging.test.d.ts.map +1 -0
  24. package/dist/agent-messaging.test.js +105 -0
  25. package/dist/agent-messaging.test.js.map +1 -0
  26. package/dist/agent-runs.d.ts +158 -0
  27. package/dist/agent-runs.d.ts.map +1 -0
  28. package/dist/agent-runs.js +514 -0
  29. package/dist/agent-runs.js.map +1 -0
  30. package/dist/agent-runs.test.d.ts +2 -0
  31. package/dist/agent-runs.test.d.ts.map +1 -0
  32. package/dist/agent-runs.test.js +386 -0
  33. package/dist/agent-runs.test.js.map +1 -0
  34. package/dist/approval-queue.test.d.ts +2 -0
  35. package/dist/approval-queue.test.d.ts.map +1 -0
  36. package/dist/approval-queue.test.js +118 -0
  37. package/dist/approval-queue.test.js.map +1 -0
  38. package/dist/artifact-store.d.ts +55 -0
  39. package/dist/artifact-store.d.ts.map +1 -0
  40. package/dist/artifact-store.js +128 -0
  41. package/dist/artifact-store.js.map +1 -0
  42. package/dist/artifact-store.test.d.ts +2 -0
  43. package/dist/artifact-store.test.d.ts.map +1 -0
  44. package/dist/artifact-store.test.js +119 -0
  45. package/dist/artifact-store.test.js.map +1 -0
  46. package/dist/boardHealthWorker.d.ts +28 -0
  47. package/dist/boardHealthWorker.d.ts.map +1 -1
  48. package/dist/boardHealthWorker.js +33 -1
  49. package/dist/boardHealthWorker.js.map +1 -1
  50. package/dist/canvas-input.test.d.ts +2 -0
  51. package/dist/canvas-input.test.d.ts.map +1 -0
  52. package/dist/canvas-input.test.js +96 -0
  53. package/dist/canvas-input.test.js.map +1 -0
  54. package/dist/canvas-render.test.d.ts +2 -0
  55. package/dist/canvas-render.test.d.ts.map +1 -0
  56. package/dist/canvas-render.test.js +95 -0
  57. package/dist/canvas-render.test.js.map +1 -0
  58. package/dist/capabilities/browser.d.ts +75 -0
  59. package/dist/capabilities/browser.d.ts.map +1 -0
  60. package/dist/capabilities/browser.js +172 -0
  61. package/dist/capabilities/browser.js.map +1 -0
  62. package/dist/channels.d.ts +1 -1
  63. package/dist/cli.js +4 -2
  64. package/dist/cli.js.map +1 -1
  65. package/dist/cloud.d.ts +2 -0
  66. package/dist/cloud.d.ts.map +1 -1
  67. package/dist/cloud.js +21 -1
  68. package/dist/cloud.js.map +1 -1
  69. package/dist/cost-enforcement.d.ts +38 -0
  70. package/dist/cost-enforcement.d.ts.map +1 -0
  71. package/dist/cost-enforcement.js +84 -0
  72. package/dist/cost-enforcement.js.map +1 -0
  73. package/dist/db.d.ts.map +1 -1
  74. package/dist/db.js +131 -0
  75. package/dist/db.js.map +1 -1
  76. package/dist/e2e-loop-proof.test.d.ts +2 -0
  77. package/dist/e2e-loop-proof.test.d.ts.map +1 -0
  78. package/dist/e2e-loop-proof.test.js +104 -0
  79. package/dist/e2e-loop-proof.test.js.map +1 -0
  80. package/dist/email-sms-send.test.d.ts +2 -0
  81. package/dist/email-sms-send.test.d.ts.map +1 -0
  82. package/dist/email-sms-send.test.js +96 -0
  83. package/dist/email-sms-send.test.js.map +1 -0
  84. package/dist/events.d.ts +1 -1
  85. package/dist/events.d.ts.map +1 -1
  86. package/dist/events.js +2 -0
  87. package/dist/events.js.map +1 -1
  88. package/dist/fingerprint.d.ts.map +1 -1
  89. package/dist/fingerprint.js +5 -10
  90. package/dist/fingerprint.js.map +1 -1
  91. package/dist/github-webhook-chat.d.ts +75 -0
  92. package/dist/github-webhook-chat.d.ts.map +1 -0
  93. package/dist/github-webhook-chat.js +108 -0
  94. package/dist/github-webhook-chat.js.map +1 -0
  95. package/dist/handoff-state.test.d.ts +2 -0
  96. package/dist/handoff-state.test.d.ts.map +1 -0
  97. package/dist/handoff-state.test.js +102 -0
  98. package/dist/handoff-state.test.js.map +1 -0
  99. package/dist/health.d.ts +9 -0
  100. package/dist/health.d.ts.map +1 -1
  101. package/dist/health.js +18 -0
  102. package/dist/health.js.map +1 -1
  103. package/dist/host-error-correlation.d.ts +65 -0
  104. package/dist/host-error-correlation.d.ts.map +1 -0
  105. package/dist/host-error-correlation.js +123 -0
  106. package/dist/host-error-correlation.js.map +1 -0
  107. package/dist/index.js +39 -10
  108. package/dist/index.js.map +1 -1
  109. package/dist/notificationDedupeGuard.d.ts +4 -0
  110. package/dist/notificationDedupeGuard.d.ts.map +1 -1
  111. package/dist/notificationDedupeGuard.js +8 -4
  112. package/dist/notificationDedupeGuard.js.map +1 -1
  113. package/dist/presence.d.ts +37 -5
  114. package/dist/presence.d.ts.map +1 -1
  115. package/dist/presence.js +127 -16
  116. package/dist/presence.js.map +1 -1
  117. package/dist/review-sla.d.ts +9 -0
  118. package/dist/review-sla.d.ts.map +1 -0
  119. package/dist/review-sla.js +51 -0
  120. package/dist/review-sla.js.map +1 -0
  121. package/dist/routing-enforcement.test.d.ts +2 -0
  122. package/dist/routing-enforcement.test.d.ts.map +1 -0
  123. package/dist/routing-enforcement.test.js +86 -0
  124. package/dist/routing-enforcement.test.js.map +1 -0
  125. package/dist/run-retention.test.d.ts +2 -0
  126. package/dist/run-retention.test.d.ts.map +1 -0
  127. package/dist/run-retention.test.js +57 -0
  128. package/dist/run-retention.test.js.map +1 -0
  129. package/dist/run-stream.test.d.ts +2 -0
  130. package/dist/run-stream.test.d.ts.map +1 -0
  131. package/dist/run-stream.test.js +70 -0
  132. package/dist/run-stream.test.js.map +1 -0
  133. package/dist/server.d.ts.map +1 -1
  134. package/dist/server.js +1229 -75
  135. package/dist/server.js.map +1 -1
  136. package/dist/tasks.d.ts.map +1 -1
  137. package/dist/tasks.js +45 -0
  138. package/dist/tasks.js.map +1 -1
  139. package/dist/todoHoardingGuard.d.ts +17 -0
  140. package/dist/todoHoardingGuard.d.ts.map +1 -1
  141. package/dist/todoHoardingGuard.js +25 -2
  142. package/dist/todoHoardingGuard.js.map +1 -1
  143. package/dist/webhook-storage.d.ts +50 -0
  144. package/dist/webhook-storage.d.ts.map +1 -0
  145. package/dist/webhook-storage.js +102 -0
  146. package/dist/webhook-storage.js.map +1 -0
  147. package/dist/webhook-storage.test.d.ts +2 -0
  148. package/dist/webhook-storage.test.d.ts.map +1 -0
  149. package/dist/webhook-storage.test.js +86 -0
  150. package/dist/webhook-storage.test.js.map +1 -0
  151. package/dist/workflow-templates.d.ts +44 -0
  152. package/dist/workflow-templates.d.ts.map +1 -0
  153. package/dist/workflow-templates.js +154 -0
  154. package/dist/workflow-templates.js.map +1 -0
  155. package/dist/workflow-templates.test.d.ts +2 -0
  156. package/dist/workflow-templates.test.d.ts.map +1 -0
  157. package/dist/workflow-templates.test.js +76 -0
  158. package/dist/workflow-templates.test.js.map +1 -0
  159. package/package.json +3 -1
  160. package/public/dashboard.js +11 -0
  161. package/public/design-tokens-platform.md +118 -0
  162. package/public/design-tokens.css +195 -0
  163. package/public/docs.md +127 -2
@@ -5,7 +5,7 @@
5
5
  * Contract: process/TASK-2k0iha2hp-payload-contract.md | Reviewer: @sage
6
6
  */
7
7
  import { createHash } from 'node:crypto';
8
- import { execSync } from 'node:child_process';
8
+ // execSync removed use buildInfo instead of shelling out (PR #836 pattern)
9
9
  const STARTED_AT = Date.now();
10
10
  const WINDOW_MS = 5 * 60 * 1000; // 5 minutes
11
11
  // ── Internal state ───────────────────────────────────────────────────────────
@@ -106,16 +106,11 @@ export function getDeployTransition(hostId, deploy) {
106
106
  return null;
107
107
  }
108
108
  export function getDeployInfo() {
109
- let commit = 'unknown';
110
- try {
111
- commit = execSync('git rev-parse --short HEAD', { encoding: 'utf8' }).trim();
112
- }
113
- catch {
114
- // not a git repo or git unavailable — use fallback
115
- }
109
+ // Use baked buildInfo instead of shelling out to git (fixes ambient-repo bug, same as PR #836)
110
+ const { buildInfo } = require('./buildInfo.js');
116
111
  return {
117
- commit,
118
- version: process.env.npm_package_version ?? '0.0.0',
112
+ commit: buildInfo.shortSha || 'unknown',
113
+ version: buildInfo.version || process.env.npm_package_version || '0.0.0',
119
114
  deployed_at: STARTED_AT,
120
115
  };
121
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,4BAA4B;AAE5B;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,6EAA6E;AAE7E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAC7B,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,YAAY;AAsC5C,gFAAgF;AAEhF,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAA;AACpD,IAAI,cAAc,GAAkB,IAAI,CAAA;AACxC,IAAI,cAAc,GAAG,KAAK,CAAA;AAE1B,gFAAgF;AAEhF,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IACzB,iDAAiD;IACjD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAA;IAC3D,8CAA8C;IAC9C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IACnC,cAAc;IACd,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,+DAA+D,EAAE,EAAE,CAAC,CAAA;IAClF,yBAAyB;IACzB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACjC,qBAAqB;IACrB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IAChC,wCAAwC;IACxC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC/B,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAA;YACT,OAAO,OAAO,IAAI,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,sBAAsB;IACtB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,SAAiB,EAAE,UAAkB;IAC/E,MAAM,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChC,IAAI,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;QACrD,QAAQ,CAAC,YAAY,EAAE,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,SAAS;YACT,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACxC,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,CAAC;SAChB,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,MAAkB;IACvE,MAAM,MAAM,GAAuB,EAAE,CAAA;IACrC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;YACV,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,MAAM;YACf,MAAM;YACN,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,YAAY,EAAE,CAAC,CAAC,YAAY;SAC7B,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,MAAkB;IACpE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,CAAA;QACrB,cAAc,GAAG,MAAM,CAAC,MAAM,CAAA;QAC9B,OAAO;YACL,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,MAAM;YACf,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,UAAU;SAC5B,CAAA;IACH,CAAC;IACD,IAAI,cAAc,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,cAAc,CAAA;QAC3B,cAAc,GAAG,MAAM,CAAC,MAAM,CAAA;QAC9B,OAAO;YACL,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,MAAM;YACf,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE;SAC5B,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,+FAA+F;IAC/F,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAyD,CAAA;IACvG,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,QAAQ,IAAI,SAAS;QACvC,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO;QACxE,WAAW,EAAE,UAAU;KACxB,CAAA;AACH,CAAC"}
@@ -0,0 +1,75 @@
1
+ interface ReflecttAttribution {
2
+ agent: string | null;
3
+ githubUser: string | null;
4
+ remapped: boolean;
5
+ source: string;
6
+ }
7
+ interface GitHubEvent extends Record<string, unknown> {
8
+ _reflectt_attribution?: ReflecttAttribution;
9
+ action?: string;
10
+ sender?: {
11
+ login?: string;
12
+ };
13
+ repository?: {
14
+ full_name?: string;
15
+ name?: string;
16
+ };
17
+ pull_request?: {
18
+ number?: number;
19
+ title?: string;
20
+ html_url?: string;
21
+ user?: {
22
+ login?: string;
23
+ };
24
+ merged?: boolean;
25
+ body?: string;
26
+ };
27
+ issue?: {
28
+ number?: number;
29
+ title?: string;
30
+ html_url?: string;
31
+ user?: {
32
+ login?: string;
33
+ };
34
+ };
35
+ comment?: {
36
+ body?: string;
37
+ html_url?: string;
38
+ user?: {
39
+ login?: string;
40
+ };
41
+ };
42
+ review?: {
43
+ state?: string;
44
+ body?: string;
45
+ html_url?: string;
46
+ user?: {
47
+ login?: string;
48
+ };
49
+ };
50
+ ref?: string;
51
+ head_commit?: {
52
+ message?: string;
53
+ author?: {
54
+ username?: string;
55
+ };
56
+ };
57
+ check_run?: {
58
+ name?: string;
59
+ conclusion?: string;
60
+ html_url?: string;
61
+ };
62
+ workflow_run?: {
63
+ name?: string;
64
+ conclusion?: string;
65
+ html_url?: string;
66
+ head_branch?: string;
67
+ };
68
+ }
69
+ /**
70
+ * Format a GitHub webhook event into a chat message.
71
+ * Returns null if the event should not be posted to chat.
72
+ */
73
+ export declare function formatGitHubEvent(eventType: string, payload: GitHubEvent): string | null;
74
+ export {};
75
+ //# sourceMappingURL=github-webhook-chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-webhook-chat.d.ts","sourceRoot":"","sources":["../src/github-webhook-chat.ts"],"names":[],"mappings":"AAeA,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,WAAY,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnD,qBAAqB,CAAC,EAAE,mBAAmB,CAAA;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3B,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClD,YAAY,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QACzB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC1B,CAAA;IACD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC1B,CAAA;IACD,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC1B,CAAA;IACD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC/B,CAAA;IACD,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CA0FxF"}
@@ -0,0 +1,108 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) Reflectt AI
3
+ /**
4
+ * GitHub Webhook → Chat Bridge
5
+ *
6
+ * Formats incoming GitHub webhook events as chat messages with
7
+ * agent-remapped mentions and posts them to the 'github' channel.
8
+ * Replaces Discord's native GitHub integration to ensure @mentions
9
+ * resolve to agent names instead of shared GitHub usernames.
10
+ */
11
+ import { remapGitHubMentions } from './github-webhook-attribution.js';
12
+ /**
13
+ * Format a GitHub webhook event into a chat message.
14
+ * Returns null if the event should not be posted to chat.
15
+ */
16
+ export function formatGitHubEvent(eventType, payload) {
17
+ const repo = payload.repository?.name || payload.repository?.full_name || 'unknown';
18
+ const rawSender = payload.sender?.login || 'unknown';
19
+ // Prefer branch-resolved agent name from enriched payload attribution.
20
+ // Falls back to remapped GitHub username (e.g. @itskaidev → @kai).
21
+ // This ensures PR events from `link/feature-x` mention @link, not @kai.
22
+ const resolvedAgent = payload._reflectt_attribution?.agent;
23
+ const sender = resolvedAgent ?? remapGitHubMentions(rawSender) ?? rawSender;
24
+ let message = null;
25
+ switch (eventType) {
26
+ case 'pull_request': {
27
+ const pr = payload.pull_request;
28
+ if (!pr)
29
+ break;
30
+ const action = payload.action;
31
+ if (action === 'opened') {
32
+ message = `@${sender} 📝 **PR opened** #${pr.number}: [${pr.title}](${pr.html_url})\nRepo: \`${repo}\``;
33
+ }
34
+ else if (action === 'closed' && pr.merged) {
35
+ message = `@${sender} ✅ **PR merged** #${pr.number}: [${pr.title}](${pr.html_url})\nRepo: \`${repo}\``;
36
+ }
37
+ else if (action === 'closed') {
38
+ message = `@${sender} ❌ **PR closed** #${pr.number}: [${pr.title}](${pr.html_url})\nRepo: \`${repo}\``;
39
+ }
40
+ else if (action === 'review_requested') {
41
+ message = `@${sender} 👀 **Review requested** on #${pr.number}: [${pr.title}](${pr.html_url})\nRepo: \`${repo}\``;
42
+ }
43
+ break;
44
+ }
45
+ case 'pull_request_review': {
46
+ const review = payload.review;
47
+ const pr = payload.pull_request;
48
+ if (!review || !pr)
49
+ break;
50
+ const state = review.state === 'approved' ? '✅ approved' :
51
+ review.state === 'changes_requested' ? '🔄 changes requested' :
52
+ '💬 commented';
53
+ message = `@${sender} ${state} on #${pr.number}: [${pr.title}](${pr.html_url})\nRepo: \`${repo}\``;
54
+ if (review.body)
55
+ message += `\n> ${review.body.slice(0, 200)}`;
56
+ break;
57
+ }
58
+ case 'issue_comment':
59
+ case 'pull_request_review_comment': {
60
+ const comment = payload.comment;
61
+ const issue = payload.issue || payload.pull_request;
62
+ if (!comment || !issue)
63
+ break;
64
+ const type = payload.pull_request ? 'PR' : 'Issue';
65
+ message = `@${sender} 💬 **Comment** on ${type} #${issue.number}: [${issue.title}](${issue.html_url})\nRepo: \`${repo}\``;
66
+ if (comment.body)
67
+ message += `\n> ${comment.body.slice(0, 200)}`;
68
+ break;
69
+ }
70
+ case 'issues': {
71
+ const issue = payload.issue;
72
+ if (!issue || payload.action !== 'opened')
73
+ break;
74
+ message = `@${sender} 🐛 **Issue opened** #${issue.number}: [${issue.title}](${issue.html_url})\nRepo: \`${repo}\``;
75
+ break;
76
+ }
77
+ case 'push': {
78
+ const commit = payload.head_commit;
79
+ if (!commit)
80
+ break;
81
+ const branch = payload.ref?.replace('refs/heads/', '') || 'unknown';
82
+ message = `@${sender} 📦 **Push** to \`${branch}\` on \`${repo}\`\n> ${commit.message?.split('\n')[0]?.slice(0, 100) || 'no message'}`;
83
+ break;
84
+ }
85
+ case 'workflow_run': {
86
+ const run = payload.workflow_run;
87
+ if (!run || payload.action !== 'completed')
88
+ break;
89
+ const icon = run.conclusion === 'success' ? '✅' : run.conclusion === 'failure' ? '❌' : '⚠️';
90
+ message = `${icon} **${run.name}** ${run.conclusion} on \`${run.head_branch}\`\nRepo: \`${repo}\` [View](${run.html_url})`;
91
+ break;
92
+ }
93
+ case 'check_run': {
94
+ const check = payload.check_run;
95
+ if (!check || payload.action !== 'completed' || check.conclusion === 'success')
96
+ break;
97
+ // Only post failed checks
98
+ message = `❌ **Check failed**: ${check.name} — ${check.conclusion}\nRepo: \`${repo}\` [View](${check.html_url})`;
99
+ break;
100
+ }
101
+ default:
102
+ // Don't post unknown event types
103
+ return null;
104
+ }
105
+ // Remap GitHub mentions to agent names
106
+ return message ? remapGitHubMentions(message) : null;
107
+ }
108
+ //# sourceMappingURL=github-webhook-chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-webhook-chat.js","sourceRoot":"","sources":["../src/github-webhook-chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=handoff-state.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff-state.test.d.ts","sourceRoot":"","sources":["../src/handoff-state.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,102 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { describe, it } from 'node:test';
3
+ import assert from 'node:assert/strict';
4
+ /**
5
+ * Tests for handoff state validation schema.
6
+ * The actual server integration is tested via the PATCH /tasks/:id flow,
7
+ * but we test the schema shape here to catch regressions early.
8
+ */
9
+ const VALID_DECISIONS = ['approved', 'rejected', 'needs_changes', 'escalated'];
10
+ function validateHandoffState(input) {
11
+ if (!input || typeof input !== 'object')
12
+ return { valid: false, error: 'must be an object' };
13
+ const obj = input;
14
+ if (typeof obj.reviewed_by !== 'string' || !obj.reviewed_by.trim()) {
15
+ return { valid: false, error: 'reviewed_by is required (non-empty string)' };
16
+ }
17
+ if (!VALID_DECISIONS.includes(obj.decision)) {
18
+ return { valid: false, error: `decision must be one of: ${VALID_DECISIONS.join(', ')}` };
19
+ }
20
+ if (obj.next_owner !== undefined && (typeof obj.next_owner !== 'string' || !obj.next_owner.trim())) {
21
+ return { valid: false, error: 'next_owner must be a non-empty string if provided' };
22
+ }
23
+ // Max 3 fields (COO rule)
24
+ const knownKeys = new Set(['reviewed_by', 'decision', 'next_owner']);
25
+ const extraKeys = Object.keys(obj).filter(k => !knownKeys.has(k));
26
+ if (extraKeys.length > 0) {
27
+ return { valid: false, error: `Unknown fields: ${extraKeys.join(', ')}. Max 3 columns per COO rule.` };
28
+ }
29
+ return { valid: true };
30
+ }
31
+ describe('handoff state validation', () => {
32
+ it('accepts valid handoff with all 3 fields', () => {
33
+ const result = validateHandoffState({
34
+ reviewed_by: 'sage',
35
+ decision: 'approved',
36
+ next_owner: 'link',
37
+ });
38
+ assert.equal(result.valid, true);
39
+ });
40
+ it('accepts valid handoff without next_owner', () => {
41
+ const result = validateHandoffState({
42
+ reviewed_by: 'kai',
43
+ decision: 'rejected',
44
+ });
45
+ assert.equal(result.valid, true);
46
+ });
47
+ it('rejects missing reviewed_by', () => {
48
+ const result = validateHandoffState({
49
+ decision: 'approved',
50
+ });
51
+ assert.equal(result.valid, false);
52
+ assert.ok(result.error?.includes('reviewed_by'));
53
+ });
54
+ it('rejects missing decision', () => {
55
+ const result = validateHandoffState({
56
+ reviewed_by: 'sage',
57
+ });
58
+ assert.equal(result.valid, false);
59
+ assert.ok(result.error?.includes('decision'));
60
+ });
61
+ it('rejects invalid decision value', () => {
62
+ const result = validateHandoffState({
63
+ reviewed_by: 'sage',
64
+ decision: 'maybe',
65
+ });
66
+ assert.equal(result.valid, false);
67
+ assert.ok(result.error?.includes('decision'));
68
+ });
69
+ it('rejects extra fields (COO 3-column rule)', () => {
70
+ const result = validateHandoffState({
71
+ reviewed_by: 'sage',
72
+ decision: 'approved',
73
+ next_owner: 'link',
74
+ extra_field: 'not allowed',
75
+ });
76
+ assert.equal(result.valid, false);
77
+ assert.ok(result.error?.includes('extra_field'));
78
+ });
79
+ it('accepts all valid decision types', () => {
80
+ for (const decision of VALID_DECISIONS) {
81
+ const result = validateHandoffState({
82
+ reviewed_by: 'sage',
83
+ decision,
84
+ });
85
+ assert.equal(result.valid, true, `Expected ${decision} to be valid`);
86
+ }
87
+ });
88
+ it('rejects null input', () => {
89
+ assert.equal(validateHandoffState(null).valid, false);
90
+ });
91
+ it('rejects non-object input', () => {
92
+ assert.equal(validateHandoffState('string').valid, false);
93
+ });
94
+ it('rejects empty reviewed_by', () => {
95
+ const result = validateHandoffState({
96
+ reviewed_by: ' ',
97
+ decision: 'approved',
98
+ });
99
+ assert.equal(result.valid, false);
100
+ });
101
+ });
102
+ //# sourceMappingURL=handoff-state.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff-state.test.js","sourceRoot":"","sources":["../src/handoff-state.test.ts"],"names":[],"mappings":"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"}
package/dist/health.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface StaleDoingTask {
20
20
  }
21
21
  export interface TeamHealthMetrics {
22
22
  timestamp: number;
23
+ scope: TeamHealthScope;
23
24
  agents: AgentHealthStatus[];
24
25
  blockers: BlockerAlert[];
25
26
  overlaps: OverlapAlert[];
@@ -32,12 +33,20 @@ export interface TeamHealthMetrics {
32
33
  tasks: StaleDoingTask[];
33
34
  };
34
35
  }
36
+ export interface TeamHealthScope {
37
+ kind: 'host-local';
38
+ hostName: string;
39
+ label: string;
40
+ message: string;
41
+ orgHealthUrl: string | null;
42
+ }
35
43
  export type ActiveLane = 'doing' | 'blocked' | 'validating' | 'queue-clear' | 'offline';
36
44
  /**
37
45
  * Compute per-agent active lane from task board + presence data.
38
46
  * Priority: doing > blocked > validating > offline > queue-clear
39
47
  */
40
48
  export declare function computeActiveLane(agentName: string, tasks: Pick<Task, 'assignee' | 'status'>[], presenceStatus?: string, lastSeenMs?: number, offlineThresholdMs?: number, now?: number): ActiveLane;
49
+ export declare function getTeamHealthScope(): TeamHealthScope;
41
50
  export interface AgentHealthSummaryRow {
42
51
  agent: string;
43
52
  last_seen: number;
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
package/dist/health.js CHANGED
@@ -10,6 +10,7 @@
10
10
  * - Collaboration compliance (protocol v1)
11
11
  */
12
12
  import { appendFile, mkdir, readFile } from 'node:fs/promises';
13
+ import { hostname } from 'node:os';
13
14
  import { dirname, resolve } from 'node:path';
14
15
  import { presenceManager } from './presence.js';
15
16
  import { chatManager } from './chat.js';
@@ -19,6 +20,7 @@ import { resolveIdleNudgeLane } from './watchdog/idleNudgeLane.js';
19
20
  import { getDb } from './db.js';
20
21
  import { policyManager } from './policy.js';
21
22
  import { recordSystemLoopTick } from './system-loop-state.js';
23
+ import { isCloudConfigured } from './cloud.js';
22
24
  /**
23
25
  * Validate a task timestamp is within reasonable bounds.
24
26
  * Rejects: 0, negative, NaN, future timestamps (>1h ahead), impossibly old (>1 year).
@@ -74,6 +76,21 @@ export function computeActiveLane(agentName, tasks, presenceStatus, lastSeenMs,
74
76
  return 'offline';
75
77
  return 'queue-clear';
76
78
  }
79
+ export function getTeamHealthScope() {
80
+ const hostName = process.env.REFLECTT_HOST_NAME || hostname();
81
+ const cloudConfigured = isCloudConfigured();
82
+ const cloudBaseUrl = (process.env.REFLECTT_CLOUD_URL || 'https://app.reflectt.ai').replace(/\/+$/, '');
83
+ const orgHealthUrl = cloudConfigured ? `${cloudBaseUrl}/org-health` : null;
84
+ return {
85
+ kind: 'host-local',
86
+ hostName,
87
+ label: `Host-local health (${hostName})`,
88
+ message: orgHealthUrl
89
+ ? `This /health/team snapshot is host-local for ${hostName}. Use Reflectt Cloud org-health for cross-host truth.`
90
+ : `This /health/team snapshot is host-local for ${hostName}. Cross-host org-health lives in Reflectt Cloud when configured.`,
91
+ orgHealthUrl,
92
+ };
93
+ }
77
94
  class TeamHealthMonitor {
78
95
  blockerKeywords = [
79
96
  'blocked',
@@ -165,6 +182,7 @@ class TeamHealthMonitor {
165
182
  .map(a => a.agent);
166
183
  return {
167
184
  timestamp: now,
185
+ scope: getTeamHealthScope(),
168
186
  agents,
169
187
  blockers,
170
188
  overlaps,