crewly 1.20.180 → 1.20.182

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 (157) hide show
  1. package/config/skills/agent/remote-browser/SKILL.md +28 -8
  2. package/dist/backend/backend/src/constants.d.ts +89 -1
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +99 -2
  5. package/dist/backend/backend/src/constants.js.map +1 -1
  6. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +2 -1
  7. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  8. package/dist/backend/backend/src/controllers/browser/browser.controller.js +15 -1
  9. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +11 -1
  11. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +44 -9
  13. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts +31 -0
  15. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts.map +1 -0
  16. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js +99 -0
  17. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js.map +1 -0
  18. package/dist/backend/backend/src/index.d.ts.map +1 -1
  19. package/dist/backend/backend/src/index.js +51 -0
  20. package/dist/backend/backend/src/index.js.map +1 -1
  21. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  22. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  23. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  24. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +5 -0
  26. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  27. package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts +202 -0
  28. package/dist/backend/backend/src/services/browser/browser-approval.service.d.ts.map +1 -0
  29. package/dist/backend/backend/src/services/browser/browser-approval.service.js +533 -0
  30. package/dist/backend/backend/src/services/browser/browser-approval.service.js.map +1 -0
  31. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +24 -0
  32. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +55 -0
  34. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  35. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts +51 -0
  36. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/browser/browser-session.service.js +82 -3
  38. package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -1
  39. package/dist/backend/backend/src/services/browser/held-action-store.d.ts +125 -0
  40. package/dist/backend/backend/src/services/browser/held-action-store.d.ts.map +1 -0
  41. package/dist/backend/backend/src/services/browser/held-action-store.js +141 -0
  42. package/dist/backend/backend/src/services/browser/held-action-store.js.map +1 -0
  43. package/dist/backend/backend/src/services/decisions/decision-card.d.ts +23 -5
  44. package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/decisions/decision-card.js +56 -9
  46. package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
  47. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +96 -1
  48. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/decisions/decision.service.js +190 -8
  50. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/decisions/decision.wiring.js +7 -0
  53. package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
  54. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +8 -0
  55. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +5 -0
  57. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -1
  58. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +2 -0
  59. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  60. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
  61. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  62. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +2 -0
  63. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
  64. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
  65. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +3 -0
  67. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  68. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +15 -1
  69. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -1
  70. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +13 -2
  71. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -1
  72. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
  73. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
  74. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
  75. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
  76. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
  77. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
  78. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
  79. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
  80. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts +75 -0
  81. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts.map +1 -0
  82. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js +218 -0
  83. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js.map +1 -0
  84. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
  85. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
  86. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
  87. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
  88. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
  89. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
  90. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
  91. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
  92. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts +39 -0
  93. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts.map +1 -0
  94. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js +161 -0
  95. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js.map +1 -0
  96. package/dist/backend/backend/src/types/decision.types.d.ts +55 -2
  97. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  98. package/dist/backend/build-info.json +2 -2
  99. package/dist/cli/backend/src/constants.d.ts +89 -1
  100. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  101. package/dist/cli/backend/src/constants.js +99 -2
  102. package/dist/cli/backend/src/constants.js.map +1 -1
  103. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  104. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +5 -0
  105. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  106. package/dist/cli/backend/src/services/decisions/decision-card.d.ts +165 -0
  107. package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -0
  108. package/dist/cli/backend/src/services/decisions/decision-card.js +358 -0
  109. package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -0
  110. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +83 -0
  111. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -0
  112. package/dist/cli/backend/src/services/decisions/decision-contract.js +226 -0
  113. package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -0
  114. package/dist/cli/backend/src/services/decisions/decision-store.d.ts +80 -0
  115. package/dist/cli/backend/src/services/decisions/decision-store.d.ts.map +1 -0
  116. package/dist/cli/backend/src/services/decisions/decision-store.js +151 -0
  117. package/dist/cli/backend/src/services/decisions/decision-store.js.map +1 -0
  118. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +376 -0
  119. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -0
  120. package/dist/cli/backend/src/services/decisions/decision.service.js +821 -0
  121. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -0
  122. package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts +97 -0
  123. package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts.map +1 -0
  124. package/dist/cli/backend/src/services/decisions/ticket-thread-store.js +137 -0
  125. package/dist/cli/backend/src/services/decisions/ticket-thread-store.js.map +1 -0
  126. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +136 -0
  127. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
  128. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
  129. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
  130. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +217 -0
  131. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
  132. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +430 -0
  133. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
  134. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
  135. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
  136. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
  137. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
  138. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
  139. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
  140. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
  141. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
  142. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
  143. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
  144. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
  145. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
  146. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
  147. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
  148. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
  149. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
  150. package/dist/cli/backend/src/types/decision.types.d.ts +192 -0
  151. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -0
  152. package/dist/cli/backend/src/types/decision.types.js +13 -0
  153. package/dist/cli/backend/src/types/decision.types.js.map +1 -0
  154. package/dist/cli/cli/src/commands/harness-setup.js +2 -2
  155. package/frontend/dist/assets/{index-4271e95e.js → index-9c91de50.js} +138 -138
  156. package/frontend/dist/index.html +1 -1
  157. package/package.json +1 -1
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Durable store of held browser actions (irreversible clicks waiting for the
3
+ * owner). One JSON file under CREWLY_HOME, so a held action survives a
4
+ * Crewly restart: it is re-attached to its tab, or expired and the agent is
5
+ * told — never silently dropped.
6
+ *
7
+ * Only what is needed to ask and to tell is stored: never the call's params
8
+ * (a page script or typed text may hold anything).
9
+ *
10
+ * @module services/browser/held-action-store
11
+ */
12
+ import * as path from 'path';
13
+ import { BROWSER_APPROVAL_CONSTANTS } from '../../constants.js';
14
+ import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
15
+ /**
16
+ * Persistent store of held browser actions.
17
+ */
18
+ export class HeldActionStore {
19
+ filePath;
20
+ now;
21
+ data = null;
22
+ chain = Promise.resolve();
23
+ /**
24
+ * @param filePath - JSON file
25
+ * @param now - Clock (tests)
26
+ */
27
+ constructor(filePath, now = () => Date.now()) {
28
+ this.filePath = filePath;
29
+ this.now = now;
30
+ }
31
+ /**
32
+ * Store under a CREWLY_HOME.
33
+ *
34
+ * @param crewlyHome - CREWLY_HOME
35
+ * @returns The store
36
+ */
37
+ static inHome(crewlyHome) {
38
+ return new HeldActionStore(path.join(crewlyHome, BROWSER_APPROVAL_CONSTANTS.STORE_FILENAME));
39
+ }
40
+ /**
41
+ * Add (or replace) a held action.
42
+ *
43
+ * @param action - The record
44
+ * @returns A copy
45
+ */
46
+ async put(action) {
47
+ return this.serial(async () => {
48
+ const data = await this.load();
49
+ data.actions = data.actions.filter((a) => a.pendingId !== action.pendingId);
50
+ data.actions.push({ ...action });
51
+ await this.save();
52
+ return { ...action };
53
+ });
54
+ }
55
+ /**
56
+ * Change a record under the write lock.
57
+ *
58
+ * @param pendingId - Record id
59
+ * @param fn - Returns the patch, or null to leave it alone
60
+ * @returns The updated record, or null when missing / unchanged
61
+ */
62
+ async update(pendingId, fn) {
63
+ return this.serial(async () => {
64
+ const data = await this.load();
65
+ const idx = data.actions.findIndex((a) => a.pendingId === pendingId);
66
+ if (idx < 0)
67
+ return null;
68
+ const patch = fn({ ...data.actions[idx] });
69
+ if (!patch)
70
+ return null;
71
+ data.actions[idx] = { ...data.actions[idx], ...patch };
72
+ await this.save();
73
+ return { ...data.actions[idx] };
74
+ });
75
+ }
76
+ /**
77
+ * Settle a pending record (only once).
78
+ *
79
+ * @param pendingId - Record id
80
+ * @param status - Outcome
81
+ * @returns The settled record, or null when it was not pending
82
+ */
83
+ settle(pendingId, status) {
84
+ return this.update(pendingId, (a) => (a.status === 'pending' ? { status, settledAt: this.now() } : null));
85
+ }
86
+ /**
87
+ * One record.
88
+ *
89
+ * @param pendingId - Record id
90
+ * @returns Copy, or null
91
+ */
92
+ async get(pendingId) {
93
+ const data = await this.load();
94
+ const a = data.actions.find((x) => x.pendingId === pendingId);
95
+ return a ? { ...a } : null;
96
+ }
97
+ /**
98
+ * Records, optionally filtered.
99
+ *
100
+ * @param filter - Predicate
101
+ * @returns Copies, oldest first
102
+ */
103
+ async list(filter) {
104
+ const data = await this.load();
105
+ return data.actions.filter((a) => !filter || filter(a)).map((a) => ({ ...a }));
106
+ }
107
+ /**
108
+ * Drop settled records older than the keep window.
109
+ *
110
+ * @returns How many were dropped
111
+ */
112
+ async prune() {
113
+ return this.serial(async () => {
114
+ const data = await this.load();
115
+ const cutoff = this.now() - BROWSER_APPROVAL_CONSTANTS.KEEP_SETTLED_MS;
116
+ const before = data.actions.length;
117
+ data.actions = data.actions.filter((a) => a.status === 'pending' || (a.settledAt ?? a.raisedAt) >= cutoff);
118
+ const dropped = before - data.actions.length;
119
+ if (dropped > 0)
120
+ await this.save();
121
+ return dropped;
122
+ });
123
+ }
124
+ async load() {
125
+ if (this.data)
126
+ return this.data;
127
+ const raw = await safeReadJson(this.filePath, {});
128
+ this.data = { actions: Array.isArray(raw.actions) ? raw.actions : [] };
129
+ return this.data;
130
+ }
131
+ async save() {
132
+ if (this.data)
133
+ await atomicWriteJson(this.filePath, this.data);
134
+ }
135
+ serial(fn) {
136
+ const next = this.chain.then(fn, fn);
137
+ this.chain = next.catch(() => undefined);
138
+ return next;
139
+ }
140
+ }
141
+ //# sourceMappingURL=held-action-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"held-action-store.js","sourceRoot":"","sources":["../../../../../../backend/src/services/browser/held-action-store.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export declare function optionLabel(d: Pick<OwnerDecision, 'options'>, key: stri
35
35
  * @param d - Decision
36
36
  * @returns Header text (≤ 150 characters, Slack's header limit)
37
37
  */
38
- export declare function cardHeader(d: Pick<OwnerDecision, 'ticket' | 'id'>): string;
38
+ export declare function cardHeader(d: Pick<OwnerDecision, 'ticket' | 'id' | 'title' | 'browser'>): string;
39
39
  /**
40
40
  * The thread root for a ticket that has no thread yet.
41
41
  *
@@ -79,6 +79,24 @@ export declare function pendingContextLine(d: OwnerDecision, now?: Date): string
79
79
  * @returns Blocks
80
80
  */
81
81
  export declare function renderOpenCard(d: OwnerDecision, instanceId: string, now?: Date): SlackBlock[];
82
+ /**
83
+ * Whether "Remind me tomorrow" is offered: not for held browser actions
84
+ * (a deadline of hours), nor for system decisions (answered with exactly
85
+ * their options).
86
+ *
87
+ * @param d - Decision
88
+ * @returns True when snoozing is allowed
89
+ */
90
+ export declare function canRemind(d: Pick<OwnerDecision, 'kind' | 'system'>): boolean;
91
+ /**
92
+ * Whether the default never lets anything through (a held browser action's
93
+ * "No", a declining system decision), so it is applied at the deadline even
94
+ * when the decision is sensitive.
95
+ *
96
+ * @param d - Decision
97
+ * @returns True when the default is safe to apply unanswered
98
+ */
99
+ export declare function defaultIsSafe(d: Pick<OwnerDecision, 'kind' | 'system'>): boolean;
82
100
  /**
83
101
  * Blocks of a settled card (no buttons).
84
102
  *
@@ -120,12 +138,12 @@ export declare function cardFallbackText(d: OwnerDecision): string;
120
138
  */
121
139
  export declare function noOption(options: DecisionOption[]): DecisionOption | null;
122
140
  /**
123
- * The option ✅ / "yes" means: the default, else the first option.
141
+ * The option ✅ / "yes" means: `yesKey` when set, else the default, else the first option.
124
142
  *
125
143
  * @param d - Decision
126
144
  * @returns Option key
127
145
  */
128
- export declare function acceptKey(d: Pick<OwnerDecision, 'defaultKey' | 'options'>): string;
146
+ export declare function acceptKey(d: Pick<OwnerDecision, 'defaultKey' | 'options' | 'yesKey'>): string;
129
147
  /**
130
148
  * Map a reaction on a card to a choice.
131
149
  *
@@ -133,7 +151,7 @@ export declare function acceptKey(d: Pick<OwnerDecision, 'defaultKey' | 'options
133
151
  * @param reaction - Emoji name (no colons; skin tone suffix allowed)
134
152
  * @returns Choice, or null when the reaction means nothing
135
153
  */
136
- export declare function choiceFromReaction(d: Pick<OwnerDecision, 'defaultKey' | 'options'>, reaction: string): DecisionChoice | null;
154
+ export declare function choiceFromReaction(d: Pick<OwnerDecision, 'defaultKey' | 'options' | 'yesKey'>, reaction: string): DecisionChoice | null;
137
155
  /**
138
156
  * Map a free-text thread reply to a choice: an option (label, key, number),
139
157
  * a yes word (the default / first option), a no word (the "no" option), a
@@ -143,5 +161,5 @@ export declare function choiceFromReaction(d: Pick<OwnerDecision, 'defaultKey' |
143
161
  * @param text - The owner's reply
144
162
  * @returns Choice, or null for an empty reply
145
163
  */
146
- export declare function choiceFromText(d: Pick<OwnerDecision, 'defaultKey' | 'options'>, text: string): DecisionChoice | null;
164
+ export declare function choiceFromText(d: Pick<OwnerDecision, 'defaultKey' | 'options' | 'yesKey'>, text: string): DecisionChoice | null;
147
165
  //# sourceMappingURL=decision-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decision-card.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAMxH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAQnE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,MAAM,CAErF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE9F;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAG1E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAElF;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG1F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CASzE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAenF;AAaD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,UAAU,EAAE,CA4BzG;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,UAAU,EAAE,CAM5G;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAiBhG;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAKpF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,IAAI,CAQzE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,MAAM,CAElF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS5H;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAmBpH"}
1
+ {"version":3,"file":"decision-card.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,13 @@ export function optionLabel(d, key) {
52
52
  * @returns Header text (≤ 150 characters, Slack's header limit)
53
53
  */
54
54
  export function cardHeader(d) {
55
- const text = d.ticket ? `${d.ticket.id} · ${d.ticket.title}` : `Decision ${d.id}`;
55
+ const text = d.title
56
+ ? d.title
57
+ : d.ticket
58
+ ? `${d.ticket.id} · ${d.ticket.title}`
59
+ : d.browser
60
+ ? `Browser · ${d.browser.agentName} is waiting for your OK`
61
+ : `Decision ${d.id}`;
56
62
  return text.length > 150 ? `${text.slice(0, 149)}…` : text;
57
63
  }
58
64
  /**
@@ -108,7 +114,13 @@ export function pendingContextLine(d, now = new Date()) {
108
114
  if (d.remindAt && Date.parse(d.remindAt) > now.getTime()) {
109
115
  parts.push(`⏰ Reminding you ${formatWhen(new Date(d.remindAt), now)}.`);
110
116
  }
111
- if (d.sensitive) {
117
+ if (d.system?.defaultIsDecline) {
118
+ parts.push(`Nothing is accepted until you answer. No answer by ${when}: ${defaultLabel(d)}.`);
119
+ }
120
+ else if (d.kind === 'browser_action') {
121
+ parts.push(`Nothing happens without your OK. If no answer by ${when}, the answer is ${defaultLabel(d)}.`);
122
+ }
123
+ else if (d.sensitive) {
112
124
  parts.push(`This needs your OK (${d.sensitive}); I won't go ahead without an answer.`);
113
125
  }
114
126
  else if (d.defaultKey === DECISION_CONSTANTS.WAIT_DEFAULT) {
@@ -144,6 +156,9 @@ export function renderOpenCard(d, instanceId, now = new Date()) {
144
156
  { type: 'header', text: { type: 'plain_text', text: cardHeader(d), emoji: true } },
145
157
  { type: 'section', text: { type: 'mrkdwn', text: d.question } },
146
158
  ];
159
+ for (const text of d.body ?? [])
160
+ if (text.trim())
161
+ blocks.push({ type: 'section', text: { type: 'mrkdwn', text } });
147
162
  const details = optionDetails(d.options);
148
163
  if (details)
149
164
  blocks.push({ type: 'section', text: { type: 'mrkdwn', text: details } });
@@ -158,17 +173,45 @@ export function renderOpenCard(d, instanceId, now = new Date()) {
158
173
  value: buttonValue(d.id, o.key, instanceId),
159
174
  ...(o.key === d.defaultKey && !d.sensitive ? { style: 'primary' } : {}),
160
175
  })),
161
- {
162
- type: 'button',
163
- action_id: DECISION_CONSTANTS.REMIND_ACTION_ID,
164
- text: { type: 'plain_text', text: 'Remind me tomorrow', emoji: true },
165
- value: buttonValue(d.id, 'remind', instanceId),
166
- },
176
+ // Held browser actions (short deadline) and system decisions (exactly
177
+ // their options) cannot be snoozed.
178
+ ...(canRemind(d)
179
+ ? [
180
+ {
181
+ type: 'button',
182
+ action_id: DECISION_CONSTANTS.REMIND_ACTION_ID,
183
+ text: { type: 'plain_text', text: 'Remind me tomorrow', emoji: true },
184
+ value: buttonValue(d.id, 'remind', instanceId),
185
+ },
186
+ ]
187
+ : []),
167
188
  ],
168
189
  });
169
190
  blocks.push({ type: 'context', elements: [{ type: 'mrkdwn', text: pendingContextLine(d, now) }] });
170
191
  return blocks;
171
192
  }
193
+ /**
194
+ * Whether "Remind me tomorrow" is offered: not for held browser actions
195
+ * (a deadline of hours), nor for system decisions (answered with exactly
196
+ * their options).
197
+ *
198
+ * @param d - Decision
199
+ * @returns True when snoozing is allowed
200
+ */
201
+ export function canRemind(d) {
202
+ return d.kind !== 'browser_action' && !d.system;
203
+ }
204
+ /**
205
+ * Whether the default never lets anything through (a held browser action's
206
+ * "No", a declining system decision), so it is applied at the deadline even
207
+ * when the decision is sensitive.
208
+ *
209
+ * @param d - Decision
210
+ * @returns True when the default is safe to apply unanswered
211
+ */
212
+ export function defaultIsSafe(d) {
213
+ return d.kind === 'browser_action' || d.system?.defaultIsDecline === true;
214
+ }
172
215
  /**
173
216
  * Blocks of a settled card (no buttons).
174
217
  *
@@ -206,6 +249,8 @@ export function settledLine(d, ownerName, now = new Date()) {
206
249
  return `⏸ Parked — no answer, so I'm not going ahead. Answer from "Waiting on you" to reopen it. · ${d.id}`;
207
250
  case 'cancelled':
208
251
  return `Withdrawn · ${at}`;
252
+ case 'expired':
253
+ return `Expired — ${d.browser?.agentName ?? (d.asker || 'the agent')} will ask again · ${at}`;
209
254
  default:
210
255
  return pendingContextLine(d, now);
211
256
  }
@@ -246,12 +291,14 @@ export function noOption(options) {
246
291
  }) ?? null);
247
292
  }
248
293
  /**
249
- * The option ✅ / "yes" means: the default, else the first option.
294
+ * The option ✅ / "yes" means: `yesKey` when set, else the default, else the first option.
250
295
  *
251
296
  * @param d - Decision
252
297
  * @returns Option key
253
298
  */
254
299
  export function acceptKey(d) {
300
+ if (d.yesKey && d.options.some((o) => o.key === d.yesKey))
301
+ return d.yesKey;
255
302
  return d.options.some((o) => o.key === d.defaultKey) ? d.defaultKey : d.options[0].key;
256
303
  }
257
304
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"decision-card.js","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-card.js","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/D,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEpG;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,EAAQ,EAAE,MAAY,IAAI,IAAI,EAAE;IACzD,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACnG,MAAM,GAAG,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IACrF,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,EAAE,EAAE,CAAC;IACvD,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,CAAgD;IAC3E,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,IAAI,kBAAkB,CAAC,YAAY,CAAC;AACjG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,CAAiC,EAAE,GAAuB;IACpF,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,CAA6D;IACtF,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK;QAClB,CAAC,CAAC,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;YACtC,CAAC,CAAC,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,SAAS,yBAAyB;gBAC3D,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqC;IACxE,OAAO,IAAI,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,MAAc,EAAE,UAAkB;IAChF,MAAM,CAAC,GAAwB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3E,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiC,CAAC;QAC1D,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACpE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IACzE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,sDAAsD,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,oDAAoD,IAAI,mBAAmB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5G,CAAC;SAAM,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC;IACzF,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,KAAK,kBAAkB,CAAC,YAAY,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,sBAAsB,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,kBAAkB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,OAAyB;IAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,CAAgB,EAAE,UAAkB,EAAE,MAAY,IAAI,IAAI,EAAE;IACzF,MAAM,MAAM,GAAmC;QAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;KAChE,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE;QAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACnH,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACvF,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE;QAC5B,QAAQ,EAAE;YACR,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,GAAG,kBAAkB,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE;gBACxD,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;gBACxD,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC;gBAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC,CAAC;YACH,sEAAsE;YACtE,oCAAoC;YACpC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACd,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,kBAAkB,CAAC,gBAAgB;wBAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE;wBACrE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC;qBAC/C;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnG,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,CAAyC;IACjE,OAAO,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,CAAyC;IACrE,OAAO,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAgB,EAAE,SAAkB,EAAE,MAAY,IAAI,IAAI,EAAE;IAC5F,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC/D,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE;KAC/D,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,CAAgB,EAAE,SAAkB,EAAE,MAAY,IAAI,IAAI,EAAE;IACtF,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC7E,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,SAAS;gBAChB,CAAC,CAAC,KAAK,GAAG,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;gBAC3D,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3E,KAAK,WAAW;YACd,OAAO,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,8FAA8F,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9G,KAAK,WAAW;YACd,OAAO,eAAe,EAAE,EAAE,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAChG;YACE,OAAO,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,CAAC,CAAC,UAAU,KAAK,kBAAkB,CAAC,YAAY;QACrD,CAAC,CAAC,gBAAgB,IAAI,uBAAuB;QAC7C,CAAC,CAAC,gBAAgB,IAAI,iBAAiB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAgB;IAC/C,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAyB;IAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAA6B,CAAC;IAC/D,OAAO,CACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACtI,CAAC,CAAC,IAAI,IAAI,CACX,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,CAA2D;IACnF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACzF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAA2D,EAAE,QAAgB;IAC9G,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACrD,IAAK,kBAAkB,CAAC,eAAqC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3H,IAAK,kBAAkB,CAAC,eAAqC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACxG,IAAK,kBAAkB,CAAC,eAAqC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7E,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,CAA2D,EAAE,IAAY;IACtG,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAK,kBAAkB,CAAC,YAAkC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrG,IAAK,kBAAkB,CAAC,SAA+B,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACrH,IAAK,kBAAkB,CAAC,QAA8B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,EAAE;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,CAAC;IACD,2CAA2C;IAC3C,MAAM,IAAI,GAAG,yDAAyD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC"}
@@ -16,7 +16,7 @@
16
16
  */
17
17
  import { type ComponentLogger } from '../core/logger.service.js';
18
18
  import type { SlackBlock, SlackIncomingMessage, SlackOutgoingMessage } from '../../types/slack.types.js';
19
- import type { AskOwnerInput, OwnerDecision } from '../../types/decision.types.js';
19
+ import type { AskOwnerInput, DecisionKind, DecisionOption, DecisionSensitiveKind, DecisionSystemRef, OwnerDecision } from '../../types/decision.types.js';
20
20
  import { formatWhen } from './decision-card.js';
21
21
  import { DecisionStore } from './decision-store.js';
22
22
  import type { TicketThreadStore } from './ticket-thread-store.js';
@@ -89,9 +89,29 @@ export interface DecisionServiceDeps {
89
89
  deliverToAgent: (session: string, text: string) => Promise<boolean>;
90
90
  /** Close the owner-message watchdog entries this agent owes in the thread */
91
91
  closeWatchdog?: (session: string, slackChannelId: string, threadTs: string) => void;
92
+ /** The owner's DM with the bot of `identity` (system decisions); null when there is none */
93
+ ownerDmOf?: (identity: DecisionPostIdentity) => Promise<string | null>;
92
94
  now?: () => Date;
93
95
  logger?: ComponentLogger;
94
96
  }
97
+ /** A decision the harness asks itself ({@link DecisionService.askSystem}). */
98
+ export interface SystemAskInput {
99
+ /** Kind whose registered handler acts on the answer */
100
+ kind: DecisionKind;
101
+ system: DecisionSystemRef;
102
+ /** Card header */
103
+ title: string;
104
+ /** One line */
105
+ question: string;
106
+ /** Extra mrkdwn sections under the question */
107
+ body?: string[];
108
+ /** `["Label", "Label — detail"]` or `[{label, detail?}]` */
109
+ options: unknown[];
110
+ /** Option label */
111
+ default: string;
112
+ deadline: Date;
113
+ sensitive?: DecisionSensitiveKind;
114
+ }
95
115
  /** What a Slack interaction did. */
96
116
  export interface InteractionOutcome {
97
117
  handled: boolean;
@@ -134,6 +154,34 @@ export interface ReactionEvent {
134
154
  ts?: string;
135
155
  };
136
156
  }
157
+ /**
158
+ * Acts on the outcome of a decision Crewly asked itself ({@link DecisionKind}).
159
+ */
160
+ export interface DecisionKindHandler {
161
+ /**
162
+ * Called once when such a decision settles (resolved, defaulted at the
163
+ * deadline, parked, cancelled or expired). Does the kind's work (e.g. lets a held
164
+ * browser click through) and returns the note for the asking agent, which
165
+ * replaces the generic `[DECISION]` note; null sends nothing.
166
+ *
167
+ * @param decision - The settled decision
168
+ * @returns Note for the asker, or null
169
+ */
170
+ onSettled(decision: OwnerDecision): Promise<string | null>;
171
+ }
172
+ /** A question Crewly builds itself (no ask-owner contract parsing). */
173
+ export interface PrebuiltAsk {
174
+ kind: DecisionKind;
175
+ /** Agent the question is about — its bot posts the card and it gets the answer */
176
+ asker: string;
177
+ question: string;
178
+ options: DecisionOption[];
179
+ defaultKey: string;
180
+ yesKey?: string;
181
+ deadline: Date;
182
+ sensitive?: DecisionSensitiveKind;
183
+ browser?: OwnerDecision['browser'];
184
+ }
137
185
  /**
138
186
  * Decision cards service.
139
187
  */
@@ -152,6 +200,13 @@ export declare class DecisionService {
152
200
  static getInstance(): DecisionService | null;
153
201
  /** @param service - Instance to install (null clears) */
154
202
  static setInstance(service: DecisionService | null): void;
203
+ /**
204
+ * Register the handler of a decision kind.
205
+ *
206
+ * @param kind - Decision kind
207
+ * @param handler - Handler (null removes it)
208
+ */
209
+ static registerKindHandler(kind: DecisionKind, handler: DecisionKindHandler | null): void;
155
210
  /** Start the deadline / reminder tick. */
156
211
  start(): void;
157
212
  /** Stop the tick. */
@@ -166,6 +221,41 @@ export declare class DecisionService {
166
221
  * @throws DecisionError(400) for a contract violation, other 4xx from ticket resolution
167
222
  */
168
223
  ask(callerSession: string | undefined, input: AskOwnerInput): Promise<OwnerDecision>;
224
+ /**
225
+ * Ask the owner on the harness's own behalf (no agent): the card goes to
226
+ * the owner's DM with this machine's orc bot, and the answer goes to the
227
+ * kind's handler only — no agent is told or woken.
228
+ *
229
+ * @param input - The ask
230
+ * @returns The stored decision (with `card`, or `postError`; retried on the tick)
231
+ * @throws DecisionError(400) for bad options / default / deadline
232
+ */
233
+ askSystem(input: SystemAskInput): Promise<OwnerDecision>;
234
+ /**
235
+ * Ask a question Crewly built itself (e.g. a held browser action). The card
236
+ * goes where an ask-owner card without a ticket goes: the thread of the
237
+ * agent's current work item, else its team channel — from its own bot.
238
+ *
239
+ * @param ask - The prebuilt question
240
+ * @returns The stored decision (with `card`, or `postError`; retried on the tick)
241
+ */
242
+ askPrebuilt(ask: PrebuiltAsk): Promise<OwnerDecision>;
243
+ /**
244
+ * Post a line in a decision's card thread (as the asker's bot).
245
+ *
246
+ * @param id - Decision id
247
+ * @param text - mrkdwn text
248
+ * @returns True when there was a card to reply to
249
+ */
250
+ replyInThread(id: string, text: string): Promise<boolean>;
251
+ /**
252
+ * Mark an open decision as expired: what it asked about is gone. The card
253
+ * says so, and the kind's handler tells the agent.
254
+ *
255
+ * @param id - Decision id
256
+ * @returns The expired decision, or null when it was not pending
257
+ */
258
+ expire(id: string): Promise<OwnerDecision | null>;
169
259
  /**
170
260
  * Post (or re-try posting) the card of an open decision.
171
261
  *
@@ -273,6 +363,11 @@ export declare class DecisionService {
273
363
  /** Post a line in the card's thread, as the asker. */
274
364
  private postInThread;
275
365
  private logTicket;
366
+ /**
367
+ * Tell the asker how a decision settled: through its kind's handler when
368
+ * it has one (which also acts on the answer), else with `fallback`.
369
+ */
370
+ private notifyAsker;
276
371
  private tellAsker;
277
372
  private closeWatchdog;
278
373
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decision.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,KAAK,EAAE,aAAa,EAAqC,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAErH,OAAO,EAML,UAAU,EAOX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,0DAA0D;AAC1D,qBAAa,aAAc,SAAQ,KAAK;aAEpB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM;CAKlB;AAED,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5H;AAED,qFAAqF;AACrF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAqB;AACrB,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACrC,wEAAwE;IACxE,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,kDAAkD;IAClD,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChE,yBAAyB;IACzB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/D,8BAA8B;IAC9B,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1D,mCAAmC;IACnC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzD,kEAAkE;IAClE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxH,iEAAiE;IACjE,eAAe,EAAE,CAAC,GAAG,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,gFAAgF;IAChF,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnH,kFAAkF;IAClF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC1E,oCAAoC;IACpC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrE,mFAAmF;IACnF,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,6EAA6E;IAC7E,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,SAAS,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAgBD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IAEvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACS,IAAI,EAAE,mBAAmB;IAMrC,gEAAgE;IAChE,MAAM,CAAC,WAAW,IAAI,eAAe,GAAG,IAAI;IAI5C,yDAAyD;IACzD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAIzD,0CAA0C;IAC1C,KAAK,IAAI,IAAI;IAMb,qBAAqB;IACrB,IAAI,IAAI,IAAI;IASZ;;;;;;;;OAQG;IACG,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA2C1F;;;;;OAKG;IACG,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAmC/D;;;OAGG;YACW,QAAQ;IAkBtB;;;OAGG;YACW,IAAI;IAqBlB;;;;;;OAMG;IACG,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwBlF;;;;;OAKG;IACG,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAavE;;;;;;OAMG;IACG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,oBAAoB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkBrK;;;;;;;OAOG;IACG,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQhF;;;;;OAKG;IACG,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAM7D;;;;;;;OAOG;IACG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxF;;;;;OAKG;IACG,IAAI,CAAC,KAAK,GAAE,MAAM,GAAG,KAAc,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKpE;;;;;OAKG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAIhC,cAAc;IAO5B;;;OAGG;YACW,KAAK;IA0CnB,2DAA2D;IAC3D,OAAO,CAAC,UAAU;IASlB,2CAA2C;IAC3C,OAAO,CAAC,SAAS;IAUjB;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAoC/B,mEAAmE;YACrD,SAAS;IAQvB,2EAA2E;YAC7D,YAAY;IA2B1B,iFAAiF;YACnE,aAAa;IAgC3B,0FAA0F;YAC5E,WAAW;IAiBzB,sDAAsD;YACxC,YAAY;YAWZ,SAAS;YAYT,SAAS;IASvB,OAAO,CAAC,aAAa;CAQtB;AAgBD,8DAA8D;AAC9D,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"decision.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision.service.ts"],"names":[],"mappings":"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"}