@owlmeans/viable-sdk 0.1.19-rc.0 → 0.1.19

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 (165) hide show
  1. package/README.md +1 -1
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/viable-sdk/SKILL.md +123 -13
  4. package/build/api/collect/types.d.ts +12 -1
  5. package/build/api/collect/types.d.ts.map +1 -1
  6. package/build/api/collect.d.ts.map +1 -1
  7. package/build/api/collect.js +18 -1
  8. package/build/api/collect.js.map +1 -1
  9. package/build/api/consts.local.d.ts +2 -0
  10. package/build/api/consts.local.d.ts.map +1 -1
  11. package/build/api/consts.local.js +2 -0
  12. package/build/api/consts.local.js.map +1 -1
  13. package/build/api/remote.d.ts.map +1 -1
  14. package/build/api/remote.js +13 -0
  15. package/build/api/remote.js.map +1 -1
  16. package/build/context/index.d.ts.map +1 -1
  17. package/build/context/index.js +7 -3
  18. package/build/context/index.js.map +1 -1
  19. package/build/context/types.d.ts +7 -1
  20. package/build/context/types.d.ts.map +1 -1
  21. package/build/session/consts.local.d.ts +2 -0
  22. package/build/session/consts.local.d.ts.map +1 -1
  23. package/build/session/consts.local.js +2 -0
  24. package/build/session/consts.local.js.map +1 -1
  25. package/build/session/index.d.ts.map +1 -1
  26. package/build/session/index.js +18 -1
  27. package/build/session/index.js.map +1 -1
  28. package/build/session/types.d.ts +7 -0
  29. package/build/session/types.d.ts.map +1 -1
  30. package/build/tools/catalogue.d.ts.map +1 -1
  31. package/build/tools/catalogue.js +13 -2
  32. package/build/tools/catalogue.js.map +1 -1
  33. package/build/tools/consts.d.ts +9 -1
  34. package/build/tools/consts.d.ts.map +1 -1
  35. package/build/tools/consts.js +16 -0
  36. package/build/tools/consts.js.map +1 -1
  37. package/build/tools/consts.local.d.ts +1 -9
  38. package/build/tools/consts.local.d.ts.map +1 -1
  39. package/build/tools/consts.local.js +2 -16
  40. package/build/tools/consts.local.js.map +1 -1
  41. package/build/tools/index.d.ts +6 -0
  42. package/build/tools/index.d.ts.map +1 -1
  43. package/build/tools/index.js +4 -0
  44. package/build/tools/index.js.map +1 -1
  45. package/build/tools/instructions/types.d.ts +21 -0
  46. package/build/tools/instructions/types.d.ts.map +1 -0
  47. package/build/tools/instructions/types.js +2 -0
  48. package/build/tools/instructions/types.js.map +1 -0
  49. package/build/tools/instructions.d.ts +4 -0
  50. package/build/tools/instructions.d.ts.map +1 -0
  51. package/build/tools/instructions.js +143 -0
  52. package/build/tools/instructions.js.map +1 -0
  53. package/build/tools/mcp.d.ts +2 -6
  54. package/build/tools/mcp.d.ts.map +1 -1
  55. package/build/tools/mcp.js +36 -122
  56. package/build/tools/mcp.js.map +1 -1
  57. package/build/tools/platform.d.ts.map +1 -1
  58. package/build/tools/platform.js +13 -4
  59. package/build/tools/platform.js.map +1 -1
  60. package/build/tools/profile/consts.d.ts +8 -0
  61. package/build/tools/profile/consts.d.ts.map +1 -0
  62. package/build/tools/profile/consts.js +10 -0
  63. package/build/tools/profile/consts.js.map +1 -0
  64. package/build/tools/profile/listing/consts.local.d.ts +44 -0
  65. package/build/tools/profile/listing/consts.local.d.ts.map +1 -0
  66. package/build/tools/profile/listing/consts.local.js +612 -0
  67. package/build/tools/profile/listing/consts.local.js.map +1 -0
  68. package/build/tools/profile/listing/presentation.d.ts +12 -0
  69. package/build/tools/profile/listing/presentation.d.ts.map +1 -0
  70. package/build/tools/profile/listing/presentation.js +38 -0
  71. package/build/tools/profile/listing/presentation.js.map +1 -0
  72. package/build/tools/profile/listing/text.d.ts +13 -0
  73. package/build/tools/profile/listing/text.d.ts.map +1 -0
  74. package/build/tools/profile/listing/text.js +51 -0
  75. package/build/tools/profile/listing/text.js.map +1 -0
  76. package/build/tools/profile/listing/types.d.ts +18 -0
  77. package/build/tools/profile/listing/types.d.ts.map +1 -0
  78. package/build/tools/profile/listing/types.js +2 -0
  79. package/build/tools/profile/listing/types.js.map +1 -0
  80. package/build/tools/profile/listing.d.ts +18 -0
  81. package/build/tools/profile/listing.d.ts.map +1 -0
  82. package/build/tools/profile/listing.js +66 -0
  83. package/build/tools/profile/listing.js.map +1 -0
  84. package/build/tools/profile/presentation/platform/account.d.ts +4 -0
  85. package/build/tools/profile/presentation/platform/account.d.ts.map +1 -0
  86. package/build/tools/profile/presentation/platform/account.js +46 -0
  87. package/build/tools/profile/presentation/platform/account.js.map +1 -0
  88. package/build/tools/profile/presentation/platform/consts.d.ts +541 -0
  89. package/build/tools/profile/presentation/platform/consts.d.ts.map +1 -0
  90. package/build/tools/profile/presentation/platform/consts.js +335 -0
  91. package/build/tools/profile/presentation/platform/consts.js.map +1 -0
  92. package/build/tools/profile/presentation/platform/git.d.ts +4 -0
  93. package/build/tools/profile/presentation/platform/git.d.ts.map +1 -0
  94. package/build/tools/profile/presentation/platform/git.js +123 -0
  95. package/build/tools/profile/presentation/platform/git.js.map +1 -0
  96. package/build/tools/profile/presentation/platform/iam.d.ts +4 -0
  97. package/build/tools/profile/presentation/platform/iam.d.ts.map +1 -0
  98. package/build/tools/profile/presentation/platform/iam.js +202 -0
  99. package/build/tools/profile/presentation/platform/iam.js.map +1 -0
  100. package/build/tools/profile/presentation/platform/production.d.ts +4 -0
  101. package/build/tools/profile/presentation/platform/production.d.ts.map +1 -0
  102. package/build/tools/profile/presentation/platform/production.js +73 -0
  103. package/build/tools/profile/presentation/platform/production.js.map +1 -0
  104. package/build/tools/profile/presentation/platform/read.d.ts +4 -0
  105. package/build/tools/profile/presentation/platform/read.d.ts.map +1 -0
  106. package/build/tools/profile/presentation/platform/read.js +68 -0
  107. package/build/tools/profile/presentation/platform/read.js.map +1 -0
  108. package/build/tools/profile/presentation/platform/settings.d.ts +4 -0
  109. package/build/tools/profile/presentation/platform/settings.d.ts.map +1 -0
  110. package/build/tools/profile/presentation/platform/settings.js +48 -0
  111. package/build/tools/profile/presentation/platform/settings.js.map +1 -0
  112. package/build/tools/profile/presentation/platform/types.d.ts +174 -0
  113. package/build/tools/profile/presentation/platform/types.d.ts.map +1 -0
  114. package/build/tools/profile/presentation/platform/types.js +2 -0
  115. package/build/tools/profile/presentation/platform/types.js.map +1 -0
  116. package/build/tools/profile/presentation/platform/workspace.d.ts +4 -0
  117. package/build/tools/profile/presentation/platform/workspace.d.ts.map +1 -0
  118. package/build/tools/profile/presentation/platform/workspace.js +37 -0
  119. package/build/tools/profile/presentation/platform/workspace.js.map +1 -0
  120. package/build/tools/profile/presentation/platform.d.ts +11 -0
  121. package/build/tools/profile/presentation/platform.d.ts.map +1 -0
  122. package/build/tools/profile/presentation/platform.js +64 -0
  123. package/build/tools/profile/presentation/platform.js.map +1 -0
  124. package/build/tools/profile/presentation/work/consts.d.ts +22 -0
  125. package/build/tools/profile/presentation/work/consts.d.ts.map +1 -0
  126. package/build/tools/profile/presentation/work/consts.js +22 -0
  127. package/build/tools/profile/presentation/work/consts.js.map +1 -0
  128. package/build/tools/profile/presentation/work/presenters.d.ts +4 -0
  129. package/build/tools/profile/presentation/work/presenters.d.ts.map +1 -0
  130. package/build/tools/profile/presentation/work/presenters.js +502 -0
  131. package/build/tools/profile/presentation/work/presenters.js.map +1 -0
  132. package/build/tools/profile/presentation/work/schemas.d.ts +496 -0
  133. package/build/tools/profile/presentation/work/schemas.d.ts.map +1 -0
  134. package/build/tools/profile/presentation/work/schemas.js +358 -0
  135. package/build/tools/profile/presentation/work/schemas.js.map +1 -0
  136. package/build/tools/profile/presentation/work/shape.d.ts +4 -0
  137. package/build/tools/profile/presentation/work/shape.d.ts.map +1 -0
  138. package/build/tools/profile/presentation/work/shape.js +35 -0
  139. package/build/tools/profile/presentation/work/shape.js.map +1 -0
  140. package/build/tools/profile/presentation/work/types.d.ts +109 -0
  141. package/build/tools/profile/presentation/work/types.d.ts.map +1 -0
  142. package/build/tools/profile/presentation/work/types.js +2 -0
  143. package/build/tools/profile/presentation/work/types.js.map +1 -0
  144. package/build/tools/profile/presentation/work.d.ts +13 -0
  145. package/build/tools/profile/presentation/work.d.ts.map +1 -0
  146. package/build/tools/profile/presentation/work.js +66 -0
  147. package/build/tools/profile/presentation/work.js.map +1 -0
  148. package/build/tools/profile/types.d.ts +125 -0
  149. package/build/tools/profile/types.d.ts.map +1 -0
  150. package/build/tools/profile/types.js +2 -0
  151. package/build/tools/profile/types.js.map +1 -0
  152. package/build/tools/profile.d.ts +9 -0
  153. package/build/tools/profile.d.ts.map +1 -0
  154. package/build/tools/profile.js +114 -0
  155. package/build/tools/profile.js.map +1 -0
  156. package/build/tools/status/types.d.ts +7 -1
  157. package/build/tools/status/types.d.ts.map +1 -1
  158. package/build/tools/status.d.ts.map +1 -1
  159. package/build/tools/status.js +5 -1
  160. package/build/tools/status.js.map +1 -1
  161. package/build/tools/types.d.ts +12 -1
  162. package/build/tools/types.d.ts.map +1 -1
  163. package/build/types.d.ts +7 -1
  164. package/build/types.d.ts.map +1 -1
  165. package/package.json +25 -25
@@ -0,0 +1,502 @@
1
+ import { ConversionStatus, STORY_BATCH_LIVE, STORY_BATCH_STALLED, StoryBatchStatus, conversionStageHelper, } from '@owlmeans/viable-common';
2
+ import { STORY_PAGE_SIZE } from '../../../../consts.js';
3
+ import { BATCH_STALLED_WORDS, DRAFT_CAP } from '../../../consts.local.js';
4
+ import { feedToolHelper } from '../../../feed.js';
5
+ import { BATCH_STORY_PENDING, LOCAL_ORIGIN, NARRATIVE_CAP, WARNING_CAP } from './consts.js';
6
+ import { shapeHelper } from './shape.js';
7
+ export const createWorkPresenters = () => {
8
+ const { isRecord, record, records, text, required, texts, textOrTexts, number, flag, phrase, phrases, nonEmpty, compact, } = shapeHelper;
9
+ /**
10
+ * The record a write wraps under `key` — `{ project: status }` around a status that itself has a
11
+ * `project` — or the result itself where it IS that record.
12
+ */
13
+ const within = (structured, key) => {
14
+ const outer = record(structured);
15
+ const inner = record(outer[key]);
16
+ return isRecord(inner[key]) ? inner : outer;
17
+ };
18
+ /** What a call named, where the result does not repeat it. */
19
+ const projectIdOf = (value, args) => text(value.projectId) ?? required(args.projectId);
20
+ /** A question waiting on a person — `answer_question` takes its id; nothing when there is none. */
21
+ const inquiryOf = (value) => {
22
+ const inquiry = record(value);
23
+ const questionId = text(inquiry.id);
24
+ if (questionId == null)
25
+ return undefined;
26
+ const options = records(inquiry.options).map(option => compact({
27
+ value: required(option.value), label: required(option.label), description: text(option.description),
28
+ }));
29
+ return compact({
30
+ questionId,
31
+ kind: required(inquiry.kind),
32
+ question: text(inquiry.question, NARRATIVE_CAP) ?? '',
33
+ context: text(inquiry.context, NARRATIVE_CAP),
34
+ options: nonEmpty(options),
35
+ multiple: flag(inquiry.multiple),
36
+ allowText: flag(inquiry.allowText),
37
+ default: textOrTexts(inquiry.default),
38
+ });
39
+ };
40
+ /** A run as a status carries it: its id kept — `pipeline_status` and `resume_pipeline` take it. */
41
+ const runOf = (value) => {
42
+ const run = record(value);
43
+ const runId = text(run.runId);
44
+ if (runId == null)
45
+ return undefined;
46
+ return compact({
47
+ runId,
48
+ pipeline: required(run.pipeline),
49
+ status: required(run.status),
50
+ step: text(run.step),
51
+ completed: texts(run.completed),
52
+ pending: texts(run.pending),
53
+ warnings: nonEmpty(phrases(run.warnings)),
54
+ error: phrase(run.error),
55
+ });
56
+ };
57
+ /** A workload — never its record id; its warnings phrased as the text result phrases them. */
58
+ const slotOf = (value) => {
59
+ const slot = record(value);
60
+ return compact({
61
+ projectId: text(slot.projectId),
62
+ // A record written before `kind` existed is an ephemeral preview workload.
63
+ kind: text(slot.kind) ?? 'ephemeral',
64
+ status: required(slot.status),
65
+ slug: text(slot.slug),
66
+ host: text(slot.host),
67
+ initialized: flag(slot.initialized),
68
+ warnings: nonEmpty(phrases([slot.lastError, slot.buildWarning, slot.backendWarning])),
69
+ });
70
+ };
71
+ /** The agent lock — not when it was taken, nor which story card a stop was filed against. */
72
+ const agentOf = (value) => {
73
+ const lock = record(value);
74
+ return compact({
75
+ locked: lock.locked === true,
76
+ task: text(lock.task),
77
+ stopping: lock.stopping === true ? true : undefined,
78
+ stopScope: text(lock.stopScope),
79
+ steerable: lock.steerable === true ? true : undefined,
80
+ });
81
+ };
82
+ const projectRefOf = (value) => {
83
+ const project = record(value);
84
+ return compact({
85
+ id: required(project.id),
86
+ name: required(project.name),
87
+ slug: text(project.alias) ?? required(project.slug),
88
+ status: text(project.status),
89
+ });
90
+ };
91
+ /** A story card — its code, narrative, flow status and the flags the board shows. */
92
+ const storyOf = (value) => {
93
+ const card = record(value);
94
+ const fields = record(card.fields);
95
+ return compact({
96
+ id: required(card.id),
97
+ code: text(card.code),
98
+ title: text(card.title, NARRATIVE_CAP) ?? '',
99
+ status: text(card.status),
100
+ intrinsic: text(card.intrinsic),
101
+ area: text(fields.area),
102
+ primary: isRecord(card.fields) ? fields.primary === true : undefined,
103
+ landing: fields.landing === true ? true : undefined,
104
+ warning: phrase(fields.warning),
105
+ });
106
+ };
107
+ const stackOf = (value) => {
108
+ const stack = record(value);
109
+ const label = text(stack.label);
110
+ return label == null ? undefined : compact({ label, language: text(stack.language), framework: text(stack.framework) });
111
+ };
112
+ /** A stage's estimate as a person weighs it: the stage, the money, whether it is theirs to perform. */
113
+ const estimateOf = (value) => {
114
+ const estimate = record(value);
115
+ const stage = text(estimate.stage);
116
+ const usd = number(estimate.usd);
117
+ return stage == null || usd == null ? undefined : { stage, usd, delegated: estimate.delegated === true };
118
+ };
119
+ /** One feed entry as one line a person reads (its time of day included), and the handles it names. */
120
+ const entryOf = (value, withProject) => {
121
+ const entry = record(value);
122
+ const data = record(entry.data);
123
+ const kind = required(entry.kind);
124
+ const line = () => {
125
+ try {
126
+ return feedToolHelper.renderEntry({ ...entry, kind, at: required(entry.at), data });
127
+ }
128
+ catch {
129
+ return kind;
130
+ }
131
+ };
132
+ return compact({
133
+ kind,
134
+ summary: line(),
135
+ projectId: withProject ? text(entry.projectId) : undefined,
136
+ storyId: text(entry.storyId),
137
+ code: text(data.code),
138
+ status: text(data.status),
139
+ path: text(data.path),
140
+ event: text(data.event),
141
+ });
142
+ };
143
+ const feedOf = (value, withProject) => ({
144
+ cursor: required(value.cursor),
145
+ gap: value.gap === true,
146
+ entries: records(value.entries).map(entry => entryOf(entry, withProject)),
147
+ });
148
+ const capabilitiesOf = (value) => Object.fromEntries(Object.entries(record(value)).filter((entry) => typeof entry[1] === 'boolean'));
149
+ const serviceOf = (value) => {
150
+ const service = record(value);
151
+ return compact({
152
+ configured: service.configured === true, reachable: service.reachable === true, address: text(service.redacted),
153
+ });
154
+ };
155
+ const localUrl = (port) => port != null ? `${LOCAL_ORIGIN}${port}` : undefined;
156
+ const blueprints = structured => {
157
+ const registry = record(structured);
158
+ return {
159
+ defaultBlueprintId: required(registry.defaultBlueprintId),
160
+ blueprints: records(registry.blueprints).map(blueprint => ({
161
+ id: required(blueprint.id),
162
+ title: required(blueprint.title),
163
+ language: required(blueprint.language),
164
+ runtime: required(blueprint.runtime),
165
+ framework: required(blueprint.framework),
166
+ capabilities: capabilitiesOf(blueprint.capabilities),
167
+ cases: records(blueprint.cases).map(entry => compact({
168
+ id: required(entry.id),
169
+ title: required(entry.title),
170
+ description: required(entry.description),
171
+ tenancy: required(entry.tenancy),
172
+ capabilities: capabilitiesOf(entry.capabilities),
173
+ categoryKind: text(entry.categoryKind),
174
+ categories: records(entry.categories).map(category => compact({
175
+ id: required(category.id),
176
+ title: required(category.title),
177
+ description: required(category.description),
178
+ aliases: nonEmpty(texts(category.aliases)),
179
+ records: nonEmpty(texts(category.records)),
180
+ })),
181
+ planningResources: nonEmpty(texts(entry.planningResources)),
182
+ botPlatforms: nonEmpty(texts(entry.botPlatforms)),
183
+ })),
184
+ })),
185
+ };
186
+ };
187
+ const projectStatus = structured => {
188
+ const status = within(structured, 'project');
189
+ const project = record(status.project);
190
+ const production = record(status.production);
191
+ return compact({
192
+ project: compact({
193
+ id: required(project.id),
194
+ name: required(project.name),
195
+ slug: text(project.alias) ?? required(project.slug),
196
+ status: text(project.status),
197
+ intrinsic: text(project.intrinsic),
198
+ // The drafted brief, because confirm_project accepts edits to exactly these fields.
199
+ description: text(project.description, DRAFT_CAP),
200
+ specification: text(project.specification, DRAFT_CAP),
201
+ vision: text(project.vision, DRAFT_CAP),
202
+ designSystem: text(project.designSystem, DRAFT_CAP),
203
+ }),
204
+ slot: isRecord(status.slot) ? slotOf(status.slot) : undefined,
205
+ production: isRecord(status.production)
206
+ ? compact({ status: required(production.status), host: text(production.host) })
207
+ : undefined,
208
+ agent: agentOf(status.agent),
209
+ run: runOf(status.run),
210
+ waitingFor: text(status.waitingFor),
211
+ question: inquiryOf(status.pendingInquiry),
212
+ local: flag(status.local),
213
+ });
214
+ };
215
+ const projectList = structured => {
216
+ const projects = records(record(structured).projects).map(projectRefOf);
217
+ return { total: projects.length, projects };
218
+ };
219
+ const projectDeleted = structured => ({ deleted: true, project: projectRefOf(record(structured).project) });
220
+ const kits = (structured, args) => {
221
+ const result = record(structured);
222
+ return {
223
+ projectId: projectIdOf(result, args),
224
+ kits: records(result.kits).map(kit => {
225
+ const container = record(kit.container);
226
+ return {
227
+ id: required(kit.id),
228
+ kind: required(kit.kind),
229
+ title: required(kit.title),
230
+ purpose: required(kit.purpose),
231
+ container: { key: required(container.key), label: required(container.label) },
232
+ types: records(kit.types).map(type => ({
233
+ key: required(type.key), label: required(type.label), flow: required(type.flow),
234
+ })),
235
+ flows: records(kit.flows).map(flow => ({
236
+ key: required(flow.key),
237
+ label: required(flow.label),
238
+ statuses: records(flow.statuses).map(status => ({
239
+ key: required(status.key), label: required(status.label), intrinsic: required(status.intrinsic),
240
+ })),
241
+ })),
242
+ };
243
+ }),
244
+ };
245
+ };
246
+ const kitApply = (structured, args) => {
247
+ const answer = record(structured);
248
+ const result = record(answer.result);
249
+ return {
250
+ projectId: projectIdOf(answer, args),
251
+ kit: text(answer.kit) ?? required(args.kit),
252
+ applied: texts(result.applied),
253
+ skipped: texts(result.skipped),
254
+ warnings: phrases(result.warnings),
255
+ };
256
+ };
257
+ const pageOf = (structured, args, paged) => {
258
+ const list = record(structured);
259
+ const stories = records(list.items).map(storyOf);
260
+ const page = number(list.page) ?? (paged ? number(args.page) : undefined) ?? 0;
261
+ const size = number(list.size) ?? (paged ? number(args.size) : undefined) ?? STORY_PAGE_SIZE;
262
+ const total = number(list.total) ?? stories.length;
263
+ return compact({
264
+ total,
265
+ page,
266
+ nextPage: paged && size > 0 && (page + 1) * size < total ? page + 1 : undefined,
267
+ stories,
268
+ });
269
+ };
270
+ const storyPage = (structured, args) => pageOf(structured, args, true);
271
+ const storySearch = (structured, args) => pageOf(structured, args, false);
272
+ const storyCard = structured => {
273
+ const value = record(structured);
274
+ // A create answers its transition when the card has not landed yet: the card's id and the
275
+ // narrative it was created with are all it says.
276
+ if (typeof value.card === 'string' && typeof value.title !== 'string') {
277
+ const changes = record(value.changes);
278
+ return {
279
+ story: compact({
280
+ id: value.card, code: text(changes.code), title: text(changes.title, NARRATIVE_CAP) ?? '', status: text(value.to),
281
+ }),
282
+ };
283
+ }
284
+ return { story: storyOf(value) };
285
+ };
286
+ const storyStatus = (structured, args) => {
287
+ const outer = record(structured);
288
+ const status = within(outer, 'story');
289
+ const story = record(status.story);
290
+ return compact({
291
+ projectId: projectIdOf(status, args),
292
+ story: compact({
293
+ id: required(story.id),
294
+ code: text(story.code),
295
+ title: text(story.title, NARRATIVE_CAP) ?? '',
296
+ status: text(story.status),
297
+ intrinsic: text(story.intrinsic),
298
+ warning: phrase(story.warning),
299
+ // Read off the card the tool holds: developing it also replaces the guest-home sketch.
300
+ landing: outer.landing === true ? true : undefined,
301
+ }),
302
+ run: runOf(status.run),
303
+ waitingFor: text(status.waitingFor),
304
+ question: inquiryOf(status.pendingInquiry),
305
+ });
306
+ };
307
+ const storyBatch = (structured, args) => {
308
+ const outer = record(structured);
309
+ const view = record(outer.batch);
310
+ const projectId = text(view.projectId) ?? projectIdOf(outer, args);
311
+ // `null`: no batch has run on the project.
312
+ if (!isRecord(outer.batch))
313
+ return { projectId };
314
+ const codes = record(view.codes);
315
+ const outcomes = record(view.outcomes);
316
+ const ordering = record(view.ordering);
317
+ const reasons = record(ordering.reasons);
318
+ const status = required(view.status);
319
+ const live = STORY_BATCH_LIVE.includes(status);
320
+ const current = text(view.current);
321
+ const ids = texts(view.stories);
322
+ const refOf = (id) => compact({ id, code: text(codes[id]) });
323
+ const stateOf = (id) => text(outcomes[id]) ?? (id === current
324
+ ? live ? BATCH_STORY_PENDING.current : BATCH_STORY_PENDING.currentSettled
325
+ : live ? BATCH_STORY_PENDING.queued : BATCH_STORY_PENDING.unreached);
326
+ const reason = text(view.reason);
327
+ const stopped = text(outer.stopped);
328
+ return compact({
329
+ projectId,
330
+ batch: compact({
331
+ kind: required(view.kind),
332
+ status,
333
+ orderedBy: text(ordering.source),
334
+ stories: ids.map(id => compact({ ...refOf(id), state: stateOf(id), reason: text(reasons[id], WARNING_CAP) })),
335
+ current: current != null ? refOf(current) : undefined,
336
+ finished: Object.values(outcomes).filter(outcome => typeof outcome === 'string').length,
337
+ total: ids.length,
338
+ halted: status === StoryBatchStatus.Halted
339
+ ? reason === STORY_BATCH_STALLED ? BATCH_STALLED_WORDS : phrase(reason)
340
+ : undefined,
341
+ }),
342
+ stopped: stopped != null ? refOf(stopped) : undefined,
343
+ });
344
+ };
345
+ // The queued message's own id is dropped: no tool takes it.
346
+ const steer = (structured, args) => {
347
+ const result = record(structured);
348
+ return { projectId: projectIdOf(result, args), queued: result.queued === true };
349
+ };
350
+ const stop = (structured, args) => {
351
+ const result = record(structured);
352
+ return { projectId: projectIdOf(result, args), agent: agentOf(result.lock) };
353
+ };
354
+ const pipeline = structured => {
355
+ const outer = record(structured);
356
+ // Wrapped as `{ pipeline: state }`; the state's own `pipeline` is the pipeline's NAME.
357
+ const state = isRecord(outer.pipeline) ? record(outer.pipeline) : outer;
358
+ return compact({
359
+ run: compact({
360
+ runId: required(state.runId),
361
+ pipeline: required(state.pipeline),
362
+ status: required(state.status),
363
+ step: text(state.step),
364
+ completed: texts(state.completed),
365
+ pending: texts(state.pending),
366
+ warnings: phrases(state.warnings),
367
+ failedAt: text(state.failedAt),
368
+ error: phrase(state.error),
369
+ note: text(state.note, WARNING_CAP),
370
+ attempts: number(state.attempts),
371
+ }),
372
+ waitingFor: text(state.waitingFor),
373
+ question: inquiryOf(state.pendingInquiry),
374
+ });
375
+ };
376
+ const convertCheck = (structured, args) => {
377
+ const check = record(structured);
378
+ return compact({
379
+ projectId: projectIdOf(check, args),
380
+ verdict: required(check.verdict),
381
+ reasons: texts(check.reasons),
382
+ stack: stackOf(check.stack),
383
+ architecture: text(check.architecture),
384
+ shape: required(check.shape),
385
+ monorepo: check.monorepo === true,
386
+ unlinked: texts(check.unlinked),
387
+ files: number(check.files) ?? 0,
388
+ bytes: number(check.bytes) ?? 0,
389
+ bulk: number(check.bulk) ?? 0,
390
+ estimate: estimateOf(check.estimate),
391
+ });
392
+ };
393
+ const conversion = (structured, args) => {
394
+ const outer = record(structured);
395
+ const view = isRecord(outer.conversion) ? record(outer.conversion) : outer;
396
+ const stage = required(view.stage);
397
+ const status = required(view.status);
398
+ const estimates = records(view.estimates);
399
+ const band = record(view.storyEstimate);
400
+ const minUsd = number(band.minUsd);
401
+ const maxUsd = number(band.maxUsd);
402
+ return compact({
403
+ projectId: projectIdOf(view, args),
404
+ stage,
405
+ status,
406
+ decision: text(view.decision),
407
+ nextDecision: status === ConversionStatus.Awaiting
408
+ ? conversionStageHelper.decisionFor(stage)
409
+ : undefined,
410
+ verdict: text(view.verdict),
411
+ stack: stackOf(view.stack),
412
+ targetStack: stackOf(view.targetStack),
413
+ architecture: text(view.architecture),
414
+ estimate: estimateOf(estimates[estimates.length - 1]),
415
+ storyEstimate: minUsd != null && maxUsd != null
416
+ ? { minUsd, maxUsd, stories: records(band.perStory).length }
417
+ : undefined,
418
+ originState: text(view.originState),
419
+ assumptions: number(view.assumptions) ?? 0,
420
+ // Kept: pipeline_status reads the stage's run by it.
421
+ runId: text(view.runId),
422
+ waitingFor: text(view.waitingFor),
423
+ question: inquiryOf(view.pendingInquiry),
424
+ error: phrase(view.lastError),
425
+ });
426
+ };
427
+ const question = structured => {
428
+ const questionId = text(record(structured).questionId);
429
+ return compact({ asked: questionId != null, questionId });
430
+ };
431
+ const activity = (structured, args) => {
432
+ const page = record(structured);
433
+ return { projectId: projectIdOf(page, args), ...feedOf(page, false) };
434
+ };
435
+ // An organization notice names the project it is about; a project feed's entries are all its own.
436
+ const notifications = structured => feedOf(record(structured), true);
437
+ const fileChanges = (structured, args) => {
438
+ const page = record(structured);
439
+ return { projectId: projectIdOf(page, args), ...feedOf(page, false), watching: page.watching === true };
440
+ };
441
+ const intent = structured => ({ prompt: required(record(structured).prompt) });
442
+ const localStatus = structured => {
443
+ const result = record(structured);
444
+ const env = record(result.env);
445
+ const run = record(result.running);
446
+ const services = record(env.services);
447
+ const missing = texts(env.missing);
448
+ const running = run.running === true;
449
+ const ports = compact({ api: number(run.api), web: number(run.web), worker: number(run.worker) });
450
+ return compact({
451
+ configured: missing.length < 1,
452
+ missing,
453
+ services: isRecord(env.services) ? { database: services.db === true, queue: services.valkey === true } : undefined,
454
+ running,
455
+ ready: flag(run.ready),
456
+ phase: text(run.phase),
457
+ reason: text(run.reason, WARNING_CAP),
458
+ appUrl: running ? localUrl(ports.web) : undefined,
459
+ apiUrl: running ? localUrl(ports.api) : undefined,
460
+ ports: Object.keys(ports).length > 0 ? ports : undefined,
461
+ });
462
+ };
463
+ const runLocal = structured => {
464
+ const result = record(structured);
465
+ const ports = compact({ api: number(result.api), web: number(result.web), worker: number(result.worker) });
466
+ return compact({
467
+ appUrl: localUrl(ports.web),
468
+ apiUrl: localUrl(ports.api),
469
+ ports,
470
+ error: phrase(result.error),
471
+ buildError: phrase(result.buildError),
472
+ });
473
+ };
474
+ const setupReport = structured => {
475
+ const report = record(structured);
476
+ const tools = record(report.tools);
477
+ const database = serviceOf(report.database);
478
+ const queue = serviceOf(report.queue);
479
+ const needsWorker = report.needsWorker === true;
480
+ return {
481
+ needsWorker,
482
+ database,
483
+ queue,
484
+ tools: { bun: tools.bun === true, git: tools.git === true, docker: tools.docker === true },
485
+ platform: required(report.platform),
486
+ envIgnored: report.envIgnored === true,
487
+ // What run_local still waits for — the same rule the setup guide says it by.
488
+ missing: [...(database.reachable ? [] : ['database']), ...(needsWorker && !queue.reachable ? ['queue'] : [])],
489
+ };
490
+ };
491
+ const slots = structured => {
492
+ const list = records(record(structured).slots).map(slotOf);
493
+ return { total: list.length, slots: list };
494
+ };
495
+ return {
496
+ blueprints, projectStatus, projectList, projectDeleted, kits, kitApply, storyPage, storySearch, storyCard,
497
+ storyStatus, storyBatch, steer, stop, pipeline, convertCheck, conversion, question, activity, notifications,
498
+ fileChanges, intent, localStatus, runLocal, setupReport, slots,
499
+ };
500
+ };
501
+ export const workPresenters = createWorkPresenters();
502
+ //# sourceMappingURL=presenters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presenters.js","sourceRoot":"","sources":["../../../../../src/tools/profile/presentation/work/presenters.ts"],"names":[],"mappings":"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"}