@tutti-os/workspace-issue-manager 0.0.1

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 (47) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +15 -0
  3. package/dist/assets/workspace-dock-task.d.ts +3 -0
  4. package/dist/assets/workspace-dock-task.png +0 -0
  5. package/dist/chunk-3XE7PXVP.js +14 -0
  6. package/dist/chunk-3XE7PXVP.js.map +1 -0
  7. package/dist/chunk-4B2P64PY.js +938 -0
  8. package/dist/chunk-4B2P64PY.js.map +1 -0
  9. package/dist/chunk-DLB2WIV6.js +5033 -0
  10. package/dist/chunk-DLB2WIV6.js.map +1 -0
  11. package/dist/chunk-JDYJIVGG.js +445 -0
  12. package/dist/chunk-JDYJIVGG.js.map +1 -0
  13. package/dist/chunk-LEL6VWU4.js +1 -0
  14. package/dist/chunk-LEL6VWU4.js.map +1 -0
  15. package/dist/chunk-T5TTRS5M.js +1 -0
  16. package/dist/chunk-T5TTRS5M.js.map +1 -0
  17. package/dist/chunk-WJSZFKUD.js +292 -0
  18. package/dist/chunk-WJSZFKUD.js.map +1 -0
  19. package/dist/contracts/index.d.ts +492 -0
  20. package/dist/contracts/index.js +1 -0
  21. package/dist/contracts/index.js.map +1 -0
  22. package/dist/core/index.d.ts +81 -0
  23. package/dist/core/index.js +66 -0
  24. package/dist/core/index.js.map +1 -0
  25. package/dist/feature-D16xMEZU.d.ts +47 -0
  26. package/dist/i18n/index.d.ts +18 -0
  27. package/dist/i18n/index.js +14 -0
  28. package/dist/i18n/index.js.map +1 -0
  29. package/dist/index.d.ts +12 -0
  30. package/dist/index.js +95 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/issueManagerControllerService.interface-D8Z1B9k4.d.ts +106 -0
  33. package/dist/latestRunStatusRenderer-B_9yU0CM.d.ts +14 -0
  34. package/dist/services/index.d.ts +13 -0
  35. package/dist/services/index.js +24 -0
  36. package/dist/services/index.js.map +1 -0
  37. package/dist/ui/index.d.ts +58 -0
  38. package/dist/ui/index.js +12 -0
  39. package/dist/ui/index.js.map +1 -0
  40. package/dist/workbench/constants.d.ts +6 -0
  41. package/dist/workbench/constants.js +9 -0
  42. package/dist/workbench/constants.js.map +1 -0
  43. package/dist/workbench/index.d.ts +76 -0
  44. package/dist/workbench/index.js +276 -0
  45. package/dist/workbench/index.js.map +1 -0
  46. package/openapi/issue-manager.v1.yaml +1682 -0
  47. package/package.json +93 -0
@@ -0,0 +1,276 @@
1
+ import {
2
+ IssueManagerNode,
3
+ IssueManagerNodeHeader,
4
+ dispatchIssueManagerTaskListCollapsed
5
+ } from "../chunk-DLB2WIV6.js";
6
+ import "../chunk-4B2P64PY.js";
7
+ import {
8
+ normalizeIssueManagerNodeState,
9
+ resolveIssueManagerExpandedFrame,
10
+ shouldAutoCollapseIssueManagerSidebar
11
+ } from "../chunk-WJSZFKUD.js";
12
+ import "../chunk-JDYJIVGG.js";
13
+ import {
14
+ defaultIssueManagerNodeFrame,
15
+ defaultIssueManagerWorkbenchTypeId
16
+ } from "../chunk-3XE7PXVP.js";
17
+
18
+ // src/workbench/index.ts
19
+ import { createElement } from "react";
20
+
21
+ // src/workbench/openActivation.ts
22
+ var issueManagerOpenActivationType = "open-workspace-issue";
23
+ function readIssueManagerOpenActivationPayload(activation) {
24
+ if (activation?.type !== issueManagerOpenActivationType || !activation.payload || typeof activation.payload !== "object") {
25
+ return null;
26
+ }
27
+ const typed = activation.payload;
28
+ const issueId = typed.issueId?.trim() || "";
29
+ if (!issueId) {
30
+ return null;
31
+ }
32
+ return {
33
+ issueId,
34
+ ...typed.mode === "breakdown" || typed.mode === "execute" ? { mode: typed.mode } : {},
35
+ ...typed.outputDir?.trim() ? { outputDir: typed.outputDir.trim() } : {},
36
+ ...typed.runId?.trim() ? { runId: typed.runId.trim() } : {},
37
+ ...typed.taskId?.trim() ? { taskId: typed.taskId.trim() } : {},
38
+ ...typed.topicId?.trim() ? { topicId: typed.topicId.trim() } : {}
39
+ };
40
+ }
41
+
42
+ // src/workbench/index.ts
43
+ function createIssueManagerWorkbenchNodeDefinition({
44
+ emptyIllustration,
45
+ feature,
46
+ frame = defaultIssueManagerNodeFrame,
47
+ onStateChange,
48
+ resolveRichTextAtProviders,
49
+ renderLatestRunStatus,
50
+ service,
51
+ title,
52
+ typeId = defaultIssueManagerWorkbenchTypeId
53
+ }) {
54
+ return {
55
+ frame,
56
+ instance: {
57
+ mode: "single"
58
+ },
59
+ renderBody: (context) => createElement(IssueManagerNode, {
60
+ emptyIllustration,
61
+ feature,
62
+ nodeId: context.node.id,
63
+ openRequest: toIssueManagerNodeOpenRequest(context.activation),
64
+ openSource: resolveIssueManagerOpenSource(
65
+ context.node.data.launchSource
66
+ ),
67
+ onStateChange: onStateChange ? (state) => onStateChange({
68
+ instanceId: context.instanceId,
69
+ instanceKey: context.instanceKey ?? null,
70
+ nodeId: context.node.id,
71
+ state,
72
+ workspaceState: context.externalWorkspaceState
73
+ }) : void 0,
74
+ renderLatestRunStatus,
75
+ resolveRichTextAtProviders,
76
+ service,
77
+ state: context.externalNodeState,
78
+ workspaceId: context.externalWorkspaceState.workspaceId ?? ""
79
+ }),
80
+ renderHeader: ({
81
+ defaultActions,
82
+ dragHandleProps,
83
+ externalNodeState,
84
+ externalWorkspaceState,
85
+ instanceId,
86
+ instanceKey,
87
+ isFocused,
88
+ node,
89
+ surfaceSize,
90
+ windowActions
91
+ }) => {
92
+ const nodeState = normalizeIssueManagerNodeState(externalNodeState);
93
+ const isSidebarAutoCollapsed = shouldAutoCollapseIssueManagerSidebar(
94
+ node.frame.width
95
+ );
96
+ const isSidebarCollapsed = nodeState.taskListCollapsed === true || isSidebarAutoCollapsed;
97
+ const persistTaskListCollapsed = (collapsed) => {
98
+ onStateChange?.({
99
+ instanceId,
100
+ instanceKey: instanceKey ?? null,
101
+ nodeId: node.id,
102
+ state: {
103
+ ...nodeState,
104
+ taskListCollapsed: collapsed
105
+ },
106
+ workspaceState: externalWorkspaceState
107
+ });
108
+ };
109
+ const applyTaskListCollapsed = (collapsed) => {
110
+ dispatchIssueManagerTaskListCollapsed({
111
+ collapsed,
112
+ nodeId: node.id,
113
+ workspaceId: externalWorkspaceState.workspaceId ?? ""
114
+ });
115
+ persistTaskListCollapsed(collapsed);
116
+ };
117
+ return createElement(IssueManagerNodeHeader, {
118
+ activeTopicId: nodeState.activeTopicId ?? null,
119
+ copy: feature.i18n,
120
+ defaultActions,
121
+ isSidebarAutoCollapsed,
122
+ isSidebarCollapsed,
123
+ nodeId: node.id,
124
+ title: node.title,
125
+ workspaceId: externalWorkspaceState.workspaceId ?? "",
126
+ ...dragHandleProps,
127
+ onPointerDown: (event) => {
128
+ dragHandleProps.onPointerDown?.(event);
129
+ if (!isFocused) {
130
+ windowActions.focus();
131
+ }
132
+ },
133
+ onToggleSidebar: (nextCollapsed) => {
134
+ if (isSidebarCollapsed && nextCollapsed === false && node.displayMode !== "fullscreen") {
135
+ windowActions.resize(
136
+ resolveIssueManagerExpandedFrame(node.frame, surfaceSize.width)
137
+ );
138
+ applyTaskListCollapsed(false);
139
+ return;
140
+ }
141
+ applyTaskListCollapsed(nextCollapsed);
142
+ }
143
+ });
144
+ },
145
+ title: title ?? feature.i18n.t("title"),
146
+ typeId,
147
+ window: {
148
+ closable: true,
149
+ defaultOpen: false,
150
+ minimizedDock: {
151
+ kind: "snapshot"
152
+ },
153
+ minimizable: true,
154
+ restoreOnLoad: true
155
+ }
156
+ };
157
+ }
158
+ function resolveIssueManagerOpenSource(launchSource) {
159
+ switch (launchSource) {
160
+ case "agent_command":
161
+ case "command":
162
+ case "dock":
163
+ case "keyboard":
164
+ case "launchpad":
165
+ return launchSource;
166
+ default:
167
+ return "restore";
168
+ }
169
+ }
170
+ function toIssueManagerNodeOpenRequest(activation) {
171
+ const payload = readIssueManagerOpenActivationPayload(activation);
172
+ if (!payload) {
173
+ return null;
174
+ }
175
+ return {
176
+ ...payload,
177
+ requestId: String(activation?.sequence ?? "")
178
+ };
179
+ }
180
+ function createIssueManagerDockEntry({
181
+ dockIcon,
182
+ feature,
183
+ id,
184
+ order,
185
+ separatorAfter,
186
+ sectionId,
187
+ typeId = defaultIssueManagerWorkbenchTypeId
188
+ }) {
189
+ return {
190
+ icon: dockIcon ?? null,
191
+ id: id ?? typeId,
192
+ label: feature.i18n.t("dockLabel"),
193
+ launchBehavior: "enabled",
194
+ matchNode: (node) => node.data.typeId === typeId,
195
+ order,
196
+ resolvePopupItem: ({ node }) => ({
197
+ title: node.title
198
+ }),
199
+ separatorAfter,
200
+ sectionId,
201
+ typeId,
202
+ visibility: "always"
203
+ };
204
+ }
205
+ function createIssueManagerDockIconImage(src) {
206
+ return createElement("img", {
207
+ alt: "",
208
+ "aria-hidden": "true",
209
+ "data-issue-manager-dock-icon": "true",
210
+ draggable: false,
211
+ src
212
+ });
213
+ }
214
+ function createIssueManagerWorkbenchLaunchHandler({
215
+ frame = defaultIssueManagerNodeFrame,
216
+ title,
217
+ typeId = defaultIssueManagerWorkbenchTypeId
218
+ } = {}) {
219
+ return (request) => {
220
+ if (request.typeId !== typeId) {
221
+ return Promise.resolve(null);
222
+ }
223
+ return Promise.resolve({
224
+ defaultFrame: frame,
225
+ dockEntryId: request.dockEntryId ?? typeId,
226
+ framePolicy: "cascade",
227
+ instanceId: typeId,
228
+ title,
229
+ typeId
230
+ });
231
+ };
232
+ }
233
+ function createIssueManagerWorkbenchContribution({
234
+ contributionId,
235
+ dockEntry,
236
+ externalStateSource,
237
+ feature,
238
+ node,
239
+ typeId = defaultIssueManagerWorkbenchTypeId
240
+ }) {
241
+ return {
242
+ dockEntries: [
243
+ createIssueManagerDockEntry({
244
+ ...dockEntry,
245
+ feature,
246
+ typeId
247
+ })
248
+ ],
249
+ externalStateSource,
250
+ id: contributionId ?? typeId,
251
+ nodes: [
252
+ createIssueManagerWorkbenchNodeDefinition({
253
+ ...node,
254
+ feature,
255
+ typeId
256
+ })
257
+ ],
258
+ onLaunchRequest: createIssueManagerWorkbenchLaunchHandler({
259
+ frame: node?.frame,
260
+ title: node?.title,
261
+ typeId
262
+ })
263
+ };
264
+ }
265
+ export {
266
+ createIssueManagerDockEntry,
267
+ createIssueManagerDockIconImage,
268
+ createIssueManagerWorkbenchContribution,
269
+ createIssueManagerWorkbenchLaunchHandler,
270
+ createIssueManagerWorkbenchNodeDefinition,
271
+ defaultIssueManagerNodeFrame,
272
+ defaultIssueManagerWorkbenchTypeId,
273
+ issueManagerOpenActivationType,
274
+ readIssueManagerOpenActivationPayload
275
+ };
276
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/workbench/index.ts","../../src/workbench/openActivation.ts"],"sourcesContent":["import { createElement, type ReactNode } from \"react\";\nimport type { RichTextAtProvider } from \"@tutti-os/ui-rich-text/types\";\nimport type {\n WorkbenchContribution,\n WorkbenchFrame,\n WorkbenchHostActivation,\n WorkbenchHostDockEntry,\n WorkbenchHostExternalStateSource,\n WorkbenchHostLaunchRequest,\n WorkbenchHostLaunchResult,\n WorkbenchHostNodeDefinition\n} from \"@tutti-os/workbench-surface\";\nimport type {\n IssueManagerNodeState,\n IssueManagerOpenSource\n} from \"../contracts/index.ts\";\nimport {\n normalizeIssueManagerNodeState,\n resolveIssueManagerExpandedFrame,\n shouldAutoCollapseIssueManagerSidebar,\n type IssueManagerFeature\n} from \"../core/index.ts\";\nimport type { IssueManagerControllerService } from \"../services/issueManagerControllerService.interface.ts\";\nimport {\n dispatchIssueManagerTaskListCollapsed,\n IssueManagerNode,\n IssueManagerNodeHeader,\n type IssueManagerNodeOpenRequest\n} from \"../ui/IssueManagerNode.tsx\";\nimport type { IssueManagerLatestRunStatusRenderer } from \"../ui/latestRunStatusRenderer.ts\";\nexport {\n defaultIssueManagerNodeFrame,\n defaultIssueManagerWorkbenchTypeId\n} from \"./constants.ts\";\nexport {\n issueManagerOpenActivationType,\n readIssueManagerOpenActivationPayload,\n type IssueManagerOpenActivationPayload\n} from \"./openActivation.ts\";\nimport {\n defaultIssueManagerNodeFrame,\n defaultIssueManagerWorkbenchTypeId\n} from \"./constants.ts\";\nimport { readIssueManagerOpenActivationPayload } from \"./openActivation.ts\";\n\nexport interface IssueManagerExternalWorkspaceState {\n workspaceId?: string | null;\n}\n\nexport interface CreateIssueManagerWorkbenchNodeDefinitionInput {\n emptyIllustration?: ReactNode;\n feature: IssueManagerFeature;\n frame?: WorkbenchFrame;\n onStateChange?: (input: {\n instanceId: string;\n instanceKey?: string | null;\n nodeId: string;\n state: IssueManagerNodeState;\n workspaceState: IssueManagerExternalWorkspaceState;\n }) => void;\n resolveRichTextAtProviders?: (input: {\n surface: \"issue\" | \"task\";\n workspaceId: string;\n }) => readonly RichTextAtProvider[];\n renderLatestRunStatus?: IssueManagerLatestRunStatusRenderer;\n service?: IssueManagerControllerService;\n title?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerWorkbenchLaunchHandlerInput {\n frame?: WorkbenchFrame;\n title?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerDockEntryInput {\n dockIcon?: ReactNode;\n feature: IssueManagerFeature;\n id?: string;\n order?: number;\n separatorAfter?: boolean;\n sectionId?: string;\n typeId?: string;\n}\n\nexport interface CreateIssueManagerWorkbenchContributionInput {\n contributionId?: string;\n dockEntry?: Omit<CreateIssueManagerDockEntryInput, \"feature\">;\n externalStateSource?: WorkbenchHostExternalStateSource<\n Partial<IssueManagerNodeState> | null,\n IssueManagerExternalWorkspaceState\n >;\n feature: IssueManagerFeature;\n node?: Omit<CreateIssueManagerWorkbenchNodeDefinitionInput, \"feature\">;\n typeId?: string;\n}\n\nexport function createIssueManagerWorkbenchNodeDefinition<\n TExternalWorkspaceState extends IssueManagerExternalWorkspaceState =\n IssueManagerExternalWorkspaceState\n>({\n emptyIllustration,\n feature,\n frame = defaultIssueManagerNodeFrame,\n onStateChange,\n resolveRichTextAtProviders,\n renderLatestRunStatus,\n service,\n title,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchNodeDefinitionInput): WorkbenchHostNodeDefinition<\n Partial<IssueManagerNodeState> | null,\n TExternalWorkspaceState\n> {\n return {\n frame,\n instance: {\n mode: \"single\"\n },\n renderBody: (context) =>\n createElement(IssueManagerNode, {\n emptyIllustration,\n feature,\n nodeId: context.node.id,\n openRequest: toIssueManagerNodeOpenRequest(context.activation),\n openSource: resolveIssueManagerOpenSource(\n context.node.data.launchSource\n ),\n onStateChange: onStateChange\n ? (state) =>\n onStateChange({\n instanceId: context.instanceId,\n instanceKey: context.instanceKey ?? null,\n nodeId: context.node.id,\n state,\n workspaceState: context.externalWorkspaceState\n })\n : undefined,\n renderLatestRunStatus,\n resolveRichTextAtProviders,\n service,\n state: context.externalNodeState,\n workspaceId: context.externalWorkspaceState.workspaceId ?? \"\"\n }),\n renderHeader: ({\n defaultActions,\n dragHandleProps,\n externalNodeState,\n externalWorkspaceState,\n instanceId,\n instanceKey,\n isFocused,\n node,\n surfaceSize,\n windowActions\n }) => {\n const nodeState = normalizeIssueManagerNodeState(externalNodeState);\n const isSidebarAutoCollapsed = shouldAutoCollapseIssueManagerSidebar(\n node.frame.width\n );\n const isSidebarCollapsed =\n nodeState.taskListCollapsed === true || isSidebarAutoCollapsed;\n const persistTaskListCollapsed = (collapsed: boolean) => {\n onStateChange?.({\n instanceId,\n instanceKey: instanceKey ?? null,\n nodeId: node.id,\n state: {\n ...nodeState,\n taskListCollapsed: collapsed\n },\n workspaceState: externalWorkspaceState\n });\n };\n const applyTaskListCollapsed = (collapsed: boolean) => {\n dispatchIssueManagerTaskListCollapsed({\n collapsed,\n nodeId: node.id,\n workspaceId: externalWorkspaceState.workspaceId ?? \"\"\n });\n persistTaskListCollapsed(collapsed);\n };\n\n return createElement(IssueManagerNodeHeader, {\n activeTopicId: nodeState.activeTopicId ?? null,\n copy: feature.i18n,\n defaultActions,\n isSidebarAutoCollapsed,\n isSidebarCollapsed,\n nodeId: node.id,\n title: node.title,\n workspaceId: externalWorkspaceState.workspaceId ?? \"\",\n ...dragHandleProps,\n onPointerDown: (event) => {\n dragHandleProps.onPointerDown?.(event);\n if (!isFocused) {\n windowActions.focus();\n }\n },\n onToggleSidebar: (nextCollapsed) => {\n if (\n isSidebarCollapsed &&\n nextCollapsed === false &&\n node.displayMode !== \"fullscreen\"\n ) {\n windowActions.resize(\n resolveIssueManagerExpandedFrame(node.frame, surfaceSize.width)\n );\n applyTaskListCollapsed(false);\n return;\n }\n\n applyTaskListCollapsed(nextCollapsed);\n }\n });\n },\n title: title ?? feature.i18n.t(\"title\"),\n typeId,\n window: {\n closable: true,\n defaultOpen: false,\n minimizedDock: {\n kind: \"snapshot\"\n },\n minimizable: true,\n restoreOnLoad: true\n }\n };\n}\n\nfunction resolveIssueManagerOpenSource(\n launchSource: string | null | undefined\n): IssueManagerOpenSource {\n switch (launchSource) {\n case \"agent_command\":\n case \"command\":\n case \"dock\":\n case \"keyboard\":\n case \"launchpad\":\n return launchSource;\n default:\n return \"restore\";\n }\n}\n\nfunction toIssueManagerNodeOpenRequest(\n activation: WorkbenchHostActivation | null\n): IssueManagerNodeOpenRequest | null {\n const payload = readIssueManagerOpenActivationPayload(activation);\n if (!payload) {\n return null;\n }\n return {\n ...payload,\n requestId: String(activation?.sequence ?? \"\")\n };\n}\n\nexport function createIssueManagerDockEntry({\n dockIcon,\n feature,\n id,\n order,\n separatorAfter,\n sectionId,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerDockEntryInput): WorkbenchHostDockEntry {\n return {\n icon: dockIcon ?? null,\n id: id ?? typeId,\n label: feature.i18n.t(\"dockLabel\"),\n launchBehavior: \"enabled\",\n matchNode: (node) => node.data.typeId === typeId,\n order,\n resolvePopupItem: ({ node }) => ({\n title: node.title\n }),\n separatorAfter,\n sectionId,\n typeId,\n visibility: \"always\"\n };\n}\n\nexport function createIssueManagerDockIconImage(src: string): ReactNode {\n return createElement(\"img\", {\n alt: \"\",\n \"aria-hidden\": \"true\",\n \"data-issue-manager-dock-icon\": \"true\",\n draggable: false,\n src\n });\n}\n\nexport function createIssueManagerWorkbenchLaunchHandler({\n frame = defaultIssueManagerNodeFrame,\n title,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchLaunchHandlerInput = {}): (\n request: WorkbenchHostLaunchRequest\n) => Promise<WorkbenchHostLaunchResult | null> {\n return (request) => {\n if (request.typeId !== typeId) {\n return Promise.resolve(null);\n }\n\n return Promise.resolve({\n defaultFrame: frame,\n dockEntryId: request.dockEntryId ?? typeId,\n framePolicy: \"cascade\",\n instanceId: typeId,\n title,\n typeId\n });\n };\n}\n\nexport function createIssueManagerWorkbenchContribution({\n contributionId,\n dockEntry,\n externalStateSource,\n feature,\n node,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerWorkbenchContributionInput): WorkbenchContribution {\n return {\n dockEntries: [\n createIssueManagerDockEntry({\n ...dockEntry,\n feature,\n typeId\n })\n ],\n externalStateSource,\n id: contributionId ?? typeId,\n nodes: [\n createIssueManagerWorkbenchNodeDefinition({\n ...node,\n feature,\n typeId\n })\n ],\n onLaunchRequest: createIssueManagerWorkbenchLaunchHandler({\n frame: node?.frame,\n title: node?.title,\n typeId\n })\n };\n}\n","import type { WorkbenchHostActivation } from \"@tutti-os/workbench-surface\";\n\nexport const issueManagerOpenActivationType = \"open-workspace-issue\";\n\nexport interface IssueManagerOpenActivationPayload {\n issueId: string;\n mode?: \"breakdown\" | \"execute\";\n outputDir?: string;\n runId?: string;\n taskId?: string;\n topicId?: string;\n}\n\nexport function readIssueManagerOpenActivationPayload(\n activation: WorkbenchHostActivation | null\n): IssueManagerOpenActivationPayload | null {\n if (\n activation?.type !== issueManagerOpenActivationType ||\n !activation.payload ||\n typeof activation.payload !== \"object\"\n ) {\n return null;\n }\n\n const typed =\n activation.payload as Partial<IssueManagerOpenActivationPayload>;\n const issueId = typed.issueId?.trim() || \"\";\n if (!issueId) {\n return null;\n }\n\n return {\n issueId,\n ...(typed.mode === \"breakdown\" || typed.mode === \"execute\"\n ? { mode: typed.mode }\n : {}),\n ...(typed.outputDir?.trim() ? { outputDir: typed.outputDir.trim() } : {}),\n ...(typed.runId?.trim() ? { runId: typed.runId.trim() } : {}),\n ...(typed.taskId?.trim() ? { taskId: typed.taskId.trim() } : {}),\n ...(typed.topicId?.trim() ? { topicId: typed.topicId.trim() } : {})\n };\n}\n"],"mappings":"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","names":[]}