crewly 1.20.181 → 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 (136) hide show
  1. package/dist/backend/backend/src/constants.d.ts +66 -1
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +75 -1
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +11 -1
  6. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
  7. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +44 -9
  8. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts +31 -0
  10. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts.map +1 -0
  11. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js +99 -0
  12. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js.map +1 -0
  13. package/dist/backend/backend/src/index.d.ts.map +1 -1
  14. package/dist/backend/backend/src/index.js +4 -0
  15. package/dist/backend/backend/src/index.js.map +1 -1
  16. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  17. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  18. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  19. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  20. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +5 -0
  21. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  22. package/dist/backend/backend/src/services/decisions/decision-card.d.ts +14 -4
  23. package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
  24. package/dist/backend/backend/src/services/decisions/decision-card.js +31 -10
  25. package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
  26. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +40 -2
  27. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  28. package/dist/backend/backend/src/services/decisions/decision.service.js +100 -8
  29. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  30. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/decisions/decision.wiring.js +7 -0
  32. package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
  33. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +8 -0
  34. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -1
  35. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +5 -0
  36. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -1
  37. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +2 -0
  38. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  39. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
  40. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  41. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +2 -0
  42. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
  43. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
  44. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +3 -0
  46. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  47. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +15 -1
  48. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +13 -2
  50. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
  52. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
  53. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
  54. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
  55. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
  56. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
  57. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
  58. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
  59. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts +75 -0
  60. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts.map +1 -0
  61. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js +218 -0
  62. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js.map +1 -0
  63. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
  64. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
  65. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
  66. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
  67. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
  68. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
  69. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
  70. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
  71. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts +39 -0
  72. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts.map +1 -0
  73. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js +161 -0
  74. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js.map +1 -0
  75. package/dist/backend/backend/src/types/decision.types.d.ts +29 -5
  76. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  77. package/dist/backend/build-info.json +2 -2
  78. package/dist/cli/backend/src/constants.d.ts +66 -1
  79. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  80. package/dist/cli/backend/src/constants.js +75 -1
  81. package/dist/cli/backend/src/constants.js.map +1 -1
  82. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  83. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +5 -0
  84. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  85. package/dist/cli/backend/src/services/decisions/decision-card.d.ts +165 -0
  86. package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -0
  87. package/dist/cli/backend/src/services/decisions/decision-card.js +358 -0
  88. package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -0
  89. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +83 -0
  90. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -0
  91. package/dist/cli/backend/src/services/decisions/decision-contract.js +226 -0
  92. package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -0
  93. package/dist/cli/backend/src/services/decisions/decision-store.d.ts +80 -0
  94. package/dist/cli/backend/src/services/decisions/decision-store.d.ts.map +1 -0
  95. package/dist/cli/backend/src/services/decisions/decision-store.js +151 -0
  96. package/dist/cli/backend/src/services/decisions/decision-store.js.map +1 -0
  97. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +376 -0
  98. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -0
  99. package/dist/cli/backend/src/services/decisions/decision.service.js +821 -0
  100. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -0
  101. package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts +97 -0
  102. package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts.map +1 -0
  103. package/dist/cli/backend/src/services/decisions/ticket-thread-store.js +137 -0
  104. package/dist/cli/backend/src/services/decisions/ticket-thread-store.js.map +1 -0
  105. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +136 -0
  106. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
  107. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
  108. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
  109. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +217 -0
  110. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
  111. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +430 -0
  112. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
  113. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
  114. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
  115. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
  116. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
  117. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
  118. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
  119. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
  120. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
  121. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
  122. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
  123. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
  124. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
  125. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
  126. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
  127. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
  128. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
  129. package/dist/cli/backend/src/types/decision.types.d.ts +192 -0
  130. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -0
  131. package/dist/cli/backend/src/types/decision.types.js +13 -0
  132. package/dist/cli/backend/src/types/decision.types.js.map +1 -0
  133. package/dist/cli/cli/src/commands/harness-setup.js +2 -2
  134. package/frontend/dist/assets/{index-4271e95e.js → index-9c91de50.js} +138 -138
  135. package/frontend/dist/index.html +1 -1
  136. package/package.json +1 -1
@@ -9,6 +9,7 @@ import { ensureAntigravityApiKeyProvider, } from '../../utils/antigravity-settin
9
9
  import { getHarnessCredentialsStore } from '../harness/harness-credentials.store.js';
10
10
  import { isUsableEnvValue } from '../harness/harness-status.service.js';
11
11
  import { getSettingsService } from '../settings/settings.service.js';
12
+ import { reportRuntimeTermsScreen } from '../runtime-terms/runtime-terms-consent.service.js';
12
13
  /** Trailing screen lines inspected when deciding whether agy is running. */
13
14
  const ANTIGRAVITY_DETECTION_CAPTURE_LINES = 120;
14
15
  /** Minimum run of `─` that counts as one of the input box's horizontal rules. */
@@ -335,6 +336,10 @@ export class AntigravityRuntimeService extends RuntimeAgentService {
335
336
  this.logger.error('Antigravity start-up blocked', { sessionName, reason: blocked.reason, totalElapsed: Date.now() - startTime });
336
337
  if (blocked.reason === 'account_login_refused')
337
338
  await this.exitAntigravity(sessionName);
339
+ // Only the owner may accept the Terms: ask them with a Slack card
340
+ // (specs/2026-10-01-runtime-terms-consent.md).
341
+ if (blocked.reason === 'first_run_setup')
342
+ reportRuntimeTermsScreen(RUNTIME_TYPES.ANTIGRAVITY_CLI, { source: 'launch' });
338
343
  throw blocked;
339
344
  }
340
345
  if (isAntigravityTrustPrompt(clean)) {
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity-runtime.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/antigravity-runtime.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"antigravity-runtime.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/antigravity-runtime.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Decision cards — Block Kit rendering and answer parsing
3
+ * (specs/2026-10-01-decision-cards.md §3). Pure.
4
+ *
5
+ * @module services/decisions/decision-card
6
+ */
7
+ import type { SlackBlock } from '../../types/slack.types.js';
8
+ import type { DecisionButtonValue, DecisionChoice, DecisionOption, OwnerDecision } from '../../types/decision.types.js';
9
+ /**
10
+ * Short local time for the card: "14:05" today, "tomorrow 12:00", else "Thu Oct 2 12:00".
11
+ *
12
+ * @param at - Moment
13
+ * @param now - Clock
14
+ * @returns Text
15
+ */
16
+ export declare function formatWhen(at: Date, now?: Date): string;
17
+ /**
18
+ * The label of the default, as the card says it ("wait" for none).
19
+ *
20
+ * @param d - Decision
21
+ * @returns Option label, or "wait"
22
+ */
23
+ export declare function defaultLabel(d: Pick<OwnerDecision, 'defaultKey' | 'options'>): string;
24
+ /**
25
+ * The label of an option key.
26
+ *
27
+ * @param d - Decision
28
+ * @param key - Option key
29
+ * @returns Label (the key itself when unknown)
30
+ */
31
+ export declare function optionLabel(d: Pick<OwnerDecision, 'options'>, key: string | undefined): string;
32
+ /**
33
+ * The card header: ticket id + title, else the asker's topic.
34
+ *
35
+ * @param d - Decision
36
+ * @returns Header text (≤ 150 characters, Slack's header limit)
37
+ */
38
+ export declare function cardHeader(d: Pick<OwnerDecision, 'ticket' | 'id' | 'title' | 'browser'>): string;
39
+ /**
40
+ * The thread root for a ticket that has no thread yet.
41
+ *
42
+ * @param ticket - Ticket id + title
43
+ * @returns mrkdwn line
44
+ */
45
+ export declare function ticketThreadRootText(ticket: {
46
+ id: string;
47
+ title: string;
48
+ }): string;
49
+ /**
50
+ * Button value JSON.
51
+ *
52
+ * @param decisionId - Decision id
53
+ * @param option - Option key or `remind`
54
+ * @param instanceId - This instance (Cloud routes the click by it)
55
+ * @returns JSON string
56
+ */
57
+ export declare function buttonValue(decisionId: string, option: string, instanceId: string): string;
58
+ /**
59
+ * Parse a button value.
60
+ *
61
+ * @param raw - `value` of the clicked button
62
+ * @returns The value, or null when it is not a decision button
63
+ */
64
+ export declare function parseButtonValue(raw: unknown): DecisionButtonValue | null;
65
+ /**
66
+ * The context line of a pending card.
67
+ *
68
+ * @param d - Decision
69
+ * @param now - Clock
70
+ * @returns mrkdwn text
71
+ */
72
+ export declare function pendingContextLine(d: OwnerDecision, now?: Date): string;
73
+ /**
74
+ * Blocks of an open card.
75
+ *
76
+ * @param d - Decision
77
+ * @param instanceId - This instance id (button values)
78
+ * @param now - Clock
79
+ * @returns Blocks
80
+ */
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;
100
+ /**
101
+ * Blocks of a settled card (no buttons).
102
+ *
103
+ * @param d - Decision (resolved / defaulted / parked / cancelled)
104
+ * @param ownerName - How to name the owner ("Steve"), when known
105
+ * @param now - Clock
106
+ * @returns Blocks
107
+ */
108
+ export declare function renderSettledCard(d: OwnerDecision, ownerName?: string, now?: Date): SlackBlock[];
109
+ /**
110
+ * The one line a settled card shows.
111
+ *
112
+ * @param d - Decision
113
+ * @param ownerName - Owner display name
114
+ * @param now - Clock
115
+ * @returns Text
116
+ */
117
+ export declare function settledLine(d: OwnerDecision, ownerName?: string, now?: Date): string;
118
+ /**
119
+ * "No answer by <deadline> — going with <default>." (or "— still waiting." for `wait`).
120
+ *
121
+ * @param d - Decision
122
+ * @param now - Clock
123
+ * @returns Text
124
+ */
125
+ export declare function deadlineDefaultLine(d: OwnerDecision, now?: Date): string;
126
+ /**
127
+ * The plain-text fallback of a card (notifications, screen readers).
128
+ *
129
+ * @param d - Decision
130
+ * @returns Text
131
+ */
132
+ export declare function cardFallbackText(d: OwnerDecision): string;
133
+ /**
134
+ * The option that reads as "no", when one does.
135
+ *
136
+ * @param options - Options
137
+ * @returns Option, or null
138
+ */
139
+ export declare function noOption(options: DecisionOption[]): DecisionOption | null;
140
+ /**
141
+ * The option ✅ / "yes" means: `yesKey` when set, else the default, else the first option.
142
+ *
143
+ * @param d - Decision
144
+ * @returns Option key
145
+ */
146
+ export declare function acceptKey(d: Pick<OwnerDecision, 'defaultKey' | 'options' | 'yesKey'>): string;
147
+ /**
148
+ * Map a reaction on a card to a choice.
149
+ *
150
+ * @param d - Decision
151
+ * @param reaction - Emoji name (no colons; skin tone suffix allowed)
152
+ * @returns Choice, or null when the reaction means nothing
153
+ */
154
+ export declare function choiceFromReaction(d: Pick<OwnerDecision, 'defaultKey' | 'options' | 'yesKey'>, reaction: string): DecisionChoice | null;
155
+ /**
156
+ * Map a free-text thread reply to a choice: an option (label, key, number),
157
+ * a yes word (the default / first option), a no word (the "no" option), a
158
+ * remind word — else the text itself, for the asker to read.
159
+ *
160
+ * @param d - Decision
161
+ * @param text - The owner's reply
162
+ * @returns Choice, or null for an empty reply
163
+ */
164
+ export declare function choiceFromText(d: Pick<OwnerDecision, 'defaultKey' | 'options' | 'yesKey'>, text: string): DecisionChoice | null;
165
+ //# sourceMappingURL=decision-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-card.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,358 @@
1
+ /**
2
+ * Decision cards — Block Kit rendering and answer parsing
3
+ * (specs/2026-10-01-decision-cards.md §3). Pure.
4
+ *
5
+ * @module services/decisions/decision-card
6
+ */
7
+ import { DECISION_CONSTANTS } from '../../constants.js';
8
+ import { matchOption } from './decision-contract.js';
9
+ const DAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
10
+ const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
11
+ /**
12
+ * Short local time for the card: "14:05" today, "tomorrow 12:00", else "Thu Oct 2 12:00".
13
+ *
14
+ * @param at - Moment
15
+ * @param now - Clock
16
+ * @returns Text
17
+ */
18
+ export function formatWhen(at, now = new Date()) {
19
+ const hm = `${String(at.getHours()).padStart(2, '0')}:${String(at.getMinutes()).padStart(2, '0')}`;
20
+ const day = (d) => `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;
21
+ if (day(at) === day(now))
22
+ return hm;
23
+ const tomorrow = new Date(now.getTime());
24
+ tomorrow.setDate(tomorrow.getDate() + 1);
25
+ if (day(at) === day(tomorrow))
26
+ return `tomorrow ${hm}`;
27
+ return `${DAYS[at.getDay()]} ${MONTHS[at.getMonth()]} ${at.getDate()} ${hm}`;
28
+ }
29
+ /**
30
+ * The label of the default, as the card says it ("wait" for none).
31
+ *
32
+ * @param d - Decision
33
+ * @returns Option label, or "wait"
34
+ */
35
+ export function defaultLabel(d) {
36
+ return d.options.find((o) => o.key === d.defaultKey)?.label ?? DECISION_CONSTANTS.WAIT_DEFAULT;
37
+ }
38
+ /**
39
+ * The label of an option key.
40
+ *
41
+ * @param d - Decision
42
+ * @param key - Option key
43
+ * @returns Label (the key itself when unknown)
44
+ */
45
+ export function optionLabel(d, key) {
46
+ return d.options.find((o) => o.key === key)?.label ?? String(key ?? '');
47
+ }
48
+ /**
49
+ * The card header: ticket id + title, else the asker's topic.
50
+ *
51
+ * @param d - Decision
52
+ * @returns Header text (≤ 150 characters, Slack's header limit)
53
+ */
54
+ export function cardHeader(d) {
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}`;
62
+ return text.length > 150 ? `${text.slice(0, 149)}…` : text;
63
+ }
64
+ /**
65
+ * The thread root for a ticket that has no thread yet.
66
+ *
67
+ * @param ticket - Ticket id + title
68
+ * @returns mrkdwn line
69
+ */
70
+ export function ticketThreadRootText(ticket) {
71
+ return `*${ticket.id} · ${ticket.title}*`;
72
+ }
73
+ /**
74
+ * Button value JSON.
75
+ *
76
+ * @param decisionId - Decision id
77
+ * @param option - Option key or `remind`
78
+ * @param instanceId - This instance (Cloud routes the click by it)
79
+ * @returns JSON string
80
+ */
81
+ export function buttonValue(decisionId, option, instanceId) {
82
+ const v = { d: decisionId, o: option, i: instanceId };
83
+ return JSON.stringify(v);
84
+ }
85
+ /**
86
+ * Parse a button value.
87
+ *
88
+ * @param raw - `value` of the clicked button
89
+ * @returns The value, or null when it is not a decision button
90
+ */
91
+ export function parseButtonValue(raw) {
92
+ if (typeof raw !== 'string' || !raw.startsWith('{'))
93
+ return null;
94
+ try {
95
+ const v = JSON.parse(raw);
96
+ if (typeof v.d !== 'string' || typeof v.o !== 'string')
97
+ return null;
98
+ return { d: v.d, o: v.o, i: typeof v.i === 'string' ? v.i : '' };
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ }
104
+ /**
105
+ * The context line of a pending card.
106
+ *
107
+ * @param d - Decision
108
+ * @param now - Clock
109
+ * @returns mrkdwn text
110
+ */
111
+ export function pendingContextLine(d, now = new Date()) {
112
+ const when = formatWhen(new Date(d.deadline), now);
113
+ const parts = [];
114
+ if (d.remindAt && Date.parse(d.remindAt) > now.getTime()) {
115
+ parts.push(`⏰ Reminding you ${formatWhen(new Date(d.remindAt), now)}.`);
116
+ }
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) {
124
+ parts.push(`This needs your OK (${d.sensitive}); I won't go ahead without an answer.`);
125
+ }
126
+ else if (d.defaultKey === DECISION_CONSTANTS.WAIT_DEFAULT) {
127
+ parts.push(`If no answer by ${when}, I'll keep waiting.`);
128
+ }
129
+ else {
130
+ parts.push(`If no answer by ${when}, I'll go with ${defaultLabel(d)}.`);
131
+ }
132
+ parts.push(d.id);
133
+ return parts.join(' · ');
134
+ }
135
+ /**
136
+ * The option lines under the question (only when some option has a detail).
137
+ *
138
+ * @param options - Options
139
+ * @returns mrkdwn, or null
140
+ */
141
+ function optionDetails(options) {
142
+ if (!options.some((o) => o.detail))
143
+ return null;
144
+ return options.map((o) => `• *${o.label}*${o.detail ? ` — ${o.detail}` : ''}`).join('\n');
145
+ }
146
+ /**
147
+ * Blocks of an open card.
148
+ *
149
+ * @param d - Decision
150
+ * @param instanceId - This instance id (button values)
151
+ * @param now - Clock
152
+ * @returns Blocks
153
+ */
154
+ export function renderOpenCard(d, instanceId, now = new Date()) {
155
+ const blocks = [
156
+ { type: 'header', text: { type: 'plain_text', text: cardHeader(d), emoji: true } },
157
+ { type: 'section', text: { type: 'mrkdwn', text: d.question } },
158
+ ];
159
+ for (const text of d.body ?? [])
160
+ if (text.trim())
161
+ blocks.push({ type: 'section', text: { type: 'mrkdwn', text } });
162
+ const details = optionDetails(d.options);
163
+ if (details)
164
+ blocks.push({ type: 'section', text: { type: 'mrkdwn', text: details } });
165
+ blocks.push({
166
+ type: 'actions',
167
+ block_id: `decision:${d.id}`,
168
+ elements: [
169
+ ...d.options.map((o) => ({
170
+ type: 'button',
171
+ action_id: `${DECISION_CONSTANTS.ACTION_PREFIX}${o.key}`,
172
+ text: { type: 'plain_text', text: o.label, emoji: true },
173
+ value: buttonValue(d.id, o.key, instanceId),
174
+ ...(o.key === d.defaultKey && !d.sensitive ? { style: 'primary' } : {}),
175
+ })),
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
+ : []),
188
+ ],
189
+ });
190
+ blocks.push({ type: 'context', elements: [{ type: 'mrkdwn', text: pendingContextLine(d, now) }] });
191
+ return blocks;
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
+ }
215
+ /**
216
+ * Blocks of a settled card (no buttons).
217
+ *
218
+ * @param d - Decision (resolved / defaulted / parked / cancelled)
219
+ * @param ownerName - How to name the owner ("Steve"), when known
220
+ * @param now - Clock
221
+ * @returns Blocks
222
+ */
223
+ export function renderSettledCard(d, ownerName, now = new Date()) {
224
+ return [
225
+ { type: 'header', text: { type: 'plain_text', text: cardHeader(d), emoji: true } },
226
+ { type: 'section', text: { type: 'mrkdwn', text: d.question } },
227
+ { type: 'context', elements: [{ type: 'mrkdwn', text: settledLine(d, ownerName, now) }] },
228
+ ];
229
+ }
230
+ /**
231
+ * The one line a settled card shows.
232
+ *
233
+ * @param d - Decision
234
+ * @param ownerName - Owner display name
235
+ * @param now - Clock
236
+ * @returns Text
237
+ */
238
+ export function settledLine(d, ownerName, now = new Date()) {
239
+ const at = formatWhen(new Date(d.resolvedAt ?? d.updatedAt), now);
240
+ const who = ownerName || (d.answeredBy ? `<@${d.answeredBy}>` : 'The owner');
241
+ switch (d.status) {
242
+ case 'resolved':
243
+ return d.chosenKey
244
+ ? `✔ ${who} chose *${optionLabel(d, d.chosenKey)}* · ${at}`
245
+ : `✔ ${who} answered: “${(d.answerText ?? '').slice(0, 200)}” · ${at}`;
246
+ case 'defaulted':
247
+ return deadlineDefaultLine(d, now);
248
+ case 'parked':
249
+ return `⏸ Parked — no answer, so I'm not going ahead. Answer from "Waiting on you" to reopen it. · ${d.id}`;
250
+ case 'cancelled':
251
+ return `Withdrawn · ${at}`;
252
+ case 'expired':
253
+ return `Expired — ${d.browser?.agentName ?? (d.asker || 'the agent')} will ask again · ${at}`;
254
+ default:
255
+ return pendingContextLine(d, now);
256
+ }
257
+ }
258
+ /**
259
+ * "No answer by <deadline> — going with <default>." (or "— still waiting." for `wait`).
260
+ *
261
+ * @param d - Decision
262
+ * @param now - Clock
263
+ * @returns Text
264
+ */
265
+ export function deadlineDefaultLine(d, now = new Date()) {
266
+ const when = formatWhen(new Date(d.deadline), now);
267
+ return d.defaultKey === DECISION_CONSTANTS.WAIT_DEFAULT
268
+ ? `No answer by ${when} — I'll keep waiting.`
269
+ : `No answer by ${when} — going with ${defaultLabel(d)}.`;
270
+ }
271
+ /**
272
+ * The plain-text fallback of a card (notifications, screen readers).
273
+ *
274
+ * @param d - Decision
275
+ * @returns Text
276
+ */
277
+ export function cardFallbackText(d) {
278
+ return `${cardHeader(d)}: ${d.question} (${d.options.map((o) => o.label).join(' / ')})`;
279
+ }
280
+ /**
281
+ * The option that reads as "no", when one does.
282
+ *
283
+ * @param options - Options
284
+ * @returns Option, or null
285
+ */
286
+ export function noOption(options) {
287
+ const words = DECISION_CONSTANTS.NO_WORDS;
288
+ return (options.find((o) => {
289
+ const l = o.label.toLowerCase().trim();
290
+ return words.includes(l) || words.includes(l.split(/[\s,—–-]+/)[0]) || words.some((w) => /[^\x00-\x7F]/.test(w) && l.startsWith(w));
291
+ }) ?? null);
292
+ }
293
+ /**
294
+ * The option ✅ / "yes" means: `yesKey` when set, else the default, else the first option.
295
+ *
296
+ * @param d - Decision
297
+ * @returns Option key
298
+ */
299
+ export function acceptKey(d) {
300
+ if (d.yesKey && d.options.some((o) => o.key === d.yesKey))
301
+ return d.yesKey;
302
+ return d.options.some((o) => o.key === d.defaultKey) ? d.defaultKey : d.options[0].key;
303
+ }
304
+ /**
305
+ * Map a reaction on a card to a choice.
306
+ *
307
+ * @param d - Decision
308
+ * @param reaction - Emoji name (no colons; skin tone suffix allowed)
309
+ * @returns Choice, or null when the reaction means nothing
310
+ */
311
+ export function choiceFromReaction(d, reaction) {
312
+ const name = reaction.replace(/::skin-tone-\d$/, '');
313
+ if (DECISION_CONSTANTS.REACTION_ACCEPT.includes(name))
314
+ return { kind: 'option', key: acceptKey(d) };
315
+ if (DECISION_CONSTANTS.REACTION_REMIND.includes(name))
316
+ return { kind: 'remind' };
317
+ if (DECISION_CONSTANTS.REACTION_REJECT.includes(name)) {
318
+ const no = noOption(d.options);
319
+ return no ? { kind: 'option', key: no.key } : null;
320
+ }
321
+ return null;
322
+ }
323
+ /**
324
+ * Map a free-text thread reply to a choice: an option (label, key, number),
325
+ * a yes word (the default / first option), a no word (the "no" option), a
326
+ * remind word — else the text itself, for the asker to read.
327
+ *
328
+ * @param d - Decision
329
+ * @param text - The owner's reply
330
+ * @returns Choice, or null for an empty reply
331
+ */
332
+ export function choiceFromText(d, text) {
333
+ const clean = text.replace(/<@[A-Z0-9]+>/g, '').replace(/\s+/g, ' ').trim();
334
+ if (!clean)
335
+ return null;
336
+ const opt = matchOption(clean, d.options);
337
+ if (opt)
338
+ return { kind: 'option', key: opt.key };
339
+ const norm = clean.toLowerCase().replace(/[\s.。!!,,]+$/u, '');
340
+ if (DECISION_CONSTANTS.REMIND_WORDS.includes(norm))
341
+ return { kind: 'remind' };
342
+ if (DECISION_CONSTANTS.YES_WORDS.includes(norm))
343
+ return { kind: 'option', key: acceptKey(d) };
344
+ if (DECISION_CONSTANTS.NO_WORDS.includes(norm)) {
345
+ const no = noOption(d.options);
346
+ if (no)
347
+ return { kind: 'option', key: no.key };
348
+ }
349
+ // "go with Hold", "option 2", "let's do B"
350
+ const tail = /^(?:go with|option|choose|pick|let'?s do|do|选)\s*(.+)$/i.exec(norm);
351
+ if (tail) {
352
+ const o = matchOption(tail[1], d.options);
353
+ if (o)
354
+ return { kind: 'option', key: o.key };
355
+ }
356
+ return { kind: 'text', text: clean };
357
+ }
358
+ //# sourceMappingURL=decision-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-card.js","sourceRoot":"","sources":["../../../../../../backend/src/services/decisions/decision-card.ts"],"names":[],"mappings":"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"}