@nextop-os/workspace-issue-manager 0.0.16 → 0.0.18

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.
@@ -0,0 +1,327 @@
1
+ // src/i18n/issueManagerI18n.ts
2
+ import {
3
+ createI18nRuntime,
4
+ createScopedI18nRuntime,
5
+ createScopedLocaleObjectsI18nModuleManifest
6
+ } from "@nextop-os/ui-i18n-runtime";
7
+ var issueManagerI18nNamespace = "issueManager";
8
+ var issueManagerI18nModule = createScopedLocaleObjectsI18nModuleManifest({
9
+ localeObjectByLocale: {
10
+ en: "issueManagerEn",
11
+ "zh-CN": "issueManagerZhCN"
12
+ },
13
+ name: "workspace-issue-manager",
14
+ namespace: issueManagerI18nNamespace,
15
+ sourceRoot: "packages/workspace/issue-manager/src"
16
+ });
17
+ var issueManagerEn = {
18
+ actions: {
19
+ add: "Add",
20
+ addReferences: "Add references",
21
+ addSubtask: "Add subtask",
22
+ askAgentToRun: "Ask agent to run",
23
+ cancel: "Cancel",
24
+ clearSearch: "Clear search",
25
+ collapseIssueList: "Collapse issue list",
26
+ copyShareLink: "Copy share link",
27
+ createIssue: "New issue",
28
+ createTask: "Create task",
29
+ delete: "Delete",
30
+ deleteIssue: "Delete issue",
31
+ deleteTask: "Delete task",
32
+ edit: "Edit",
33
+ editIssue: "Edit issue",
34
+ editTask: "Edit task",
35
+ expandIssueList: "Expand issue list",
36
+ inviteCollaborator: "Invite collaborator",
37
+ insertReferences: "Insert references",
38
+ moreActions: "More actions",
39
+ openReference: "Open",
40
+ refresh: "Refresh",
41
+ referenceWorkspaceFiles: "Reference files",
42
+ removeReference: "Remove",
43
+ runTask: "Run task",
44
+ saveIssue: "Save issue",
45
+ saveSubtask: "Save subtask",
46
+ saveTask: "Save task",
47
+ uploadFiles: "Upload files",
48
+ uploadFolder: "Upload folder"
49
+ },
50
+ composer: {
51
+ issueContentPlaceholder: "Describe the issue, goals, or context.",
52
+ issueTitlePlaceholder: "Issue title",
53
+ subtaskContentPlaceholder: "Add the subtask goal, execution approach, and acceptance criteria.",
54
+ subtaskTitlePlaceholder: "Enter a subtask title",
55
+ taskContentPlaceholder: "Describe the executable task and expected result.",
56
+ taskTitlePlaceholder: "Task title"
57
+ },
58
+ confirmations: {
59
+ deleteIssue: "Delete this issue?",
60
+ deleteTask: "Delete this task?"
61
+ },
62
+ dockLabel: "Tasks",
63
+ emptyState: "Create an issue, add the goal and references, then start executing.",
64
+ labels: {
65
+ allStatus: "All",
66
+ content: "Content",
67
+ contextReferences: "Context references",
68
+ createdAt: "Created",
69
+ creator: "Creator",
70
+ description: "Description",
71
+ executionOutputs: "Execution outputs",
72
+ issueDetails: "Issue details",
73
+ issueList: "Issues",
74
+ latestRunStatus: "Latest execution status",
75
+ outputs: "Outputs",
76
+ priority: "Priority",
77
+ provider: "Provider",
78
+ recentRuns: "Recent runs",
79
+ requirementDescription: "Requirements",
80
+ resizeIssueList: "Resize issue list",
81
+ searchIssues: "Search issues",
82
+ scrollStatusTabsLeft: "Scroll status tabs left",
83
+ scrollStatusTabsRight: "Scroll status tabs right",
84
+ status: "Status",
85
+ subtasks: "Subtasks",
86
+ title: "Title",
87
+ updatedAt: "Updated",
88
+ taskCount: "{{count}} tasks",
89
+ taskDetails: "Task details",
90
+ taskList: "Tasks"
91
+ },
92
+ messages: {
93
+ clipboardUnavailable: "Clipboard is unavailable.",
94
+ copiedShareLink: "Share link copied.",
95
+ issueRefreshFailed: "Couldn't refresh issues.",
96
+ issueDeleted: "Issue deleted.",
97
+ issueSaved: "Issue saved.",
98
+ issueContentEmpty: "No issue description yet.",
99
+ noExecutionOutputs: "No execution outputs yet.",
100
+ noExecutionStatus: "No execution records yet.",
101
+ noIssueReferences: "No issue references yet.",
102
+ noIssuesForFilterBody: "Try another filter, or create a new issue to get things started.",
103
+ noIssuesForFilterTitle: "No issues match the current filter.",
104
+ noIssues: "No issues yet.",
105
+ noOutputs: "No outputs yet.",
106
+ noRecentRuns: "No runs yet.",
107
+ taskContentEmpty: "No task description yet.",
108
+ noTaskReferences: "No task references yet.",
109
+ noTasksForIssueBody: "Create the first task for this issue and let an agent or yourself execute it.",
110
+ noSubtasksForIssue: "You can continue breaking down this item by adding subtasks.",
111
+ noTasks: "No tasks yet.",
112
+ refreshingIssues: "Refreshing issues...",
113
+ titleRequired: "Enter a title before saving.",
114
+ runExitCode: "Codex exited with code {{code}}.",
115
+ runCompleted: "Run completed.",
116
+ runFailed: "Run failed.",
117
+ runStarted: "Run started.",
118
+ runStatusMissing: "Terminal exited before the issue run produced a status marker.",
119
+ runTimedOut: "Issue run timed out while waiting for Codex output.",
120
+ taskDeleted: "Task deleted.",
121
+ taskSaved: "Task saved.",
122
+ uploadTypeConflict: "Upload target contains conflicting entry types.",
123
+ workspacePathUnavailable: "Workspace path is unavailable."
124
+ },
125
+ priority: {
126
+ high: "High",
127
+ low: "Low",
128
+ medium: "Medium"
129
+ },
130
+ referencePicker: {
131
+ browse: "Browse",
132
+ confirm: "Use selected references",
133
+ emptyDirectory: "This folder is empty.",
134
+ emptySearch: "No matching files or folders.",
135
+ loading: "Loading...",
136
+ searchPlaceholder: "Search files and folders",
137
+ selectedCount: "{{count}} selected",
138
+ title: "Pick workspace references"
139
+ },
140
+ run: {
141
+ failedSummaryFallback: "Run failed",
142
+ outputDirectory: "Output directory",
143
+ requester: "Requester",
144
+ status: "Run status",
145
+ summary: "Summary"
146
+ },
147
+ status: {
148
+ canceled: "Canceled",
149
+ completed: "Completed",
150
+ failed: "Failed",
151
+ notStarted: "Not started",
152
+ pendingAcceptance: "Pending acceptance",
153
+ running: "Running",
154
+ unknown: "Unknown"
155
+ },
156
+ title: "Task Center"
157
+ };
158
+ var issueManagerZhCN = {
159
+ actions: {
160
+ add: "\u6DFB\u52A0",
161
+ addReferences: "\u6DFB\u52A0\u5F15\u7528",
162
+ addSubtask: "\u6DFB\u52A0\u5B50\u4EFB\u52A1",
163
+ askAgentToRun: "\u8BA9 Agent \u6267\u884C",
164
+ cancel: "\u53D6\u6D88",
165
+ clearSearch: "\u6E05\u7A7A\u641C\u7D22",
166
+ collapseIssueList: "\u6536\u8D77\u4E8B\u9879\u5217\u8868",
167
+ copyShareLink: "\u590D\u5236\u5206\u4EAB\u94FE\u63A5",
168
+ createIssue: "\u65B0\u5EFA\u4E8B\u9879",
169
+ createTask: "\u65B0\u5EFA\u4EFB\u52A1",
170
+ delete: "\u5220\u9664",
171
+ deleteIssue: "\u5220\u9664\u4E8B\u9879",
172
+ deleteTask: "\u5220\u9664\u4EFB\u52A1",
173
+ edit: "\u7F16\u8F91",
174
+ editIssue: "\u7F16\u8F91\u4E8B\u9879",
175
+ editTask: "\u7F16\u8F91\u4EFB\u52A1",
176
+ expandIssueList: "\u5C55\u5F00\u4E8B\u9879\u5217\u8868",
177
+ inviteCollaborator: "\u9080\u8BF7\u534F\u4F5C\u8005",
178
+ insertReferences: "\u63D2\u5165\u5F15\u7528",
179
+ moreActions: "\u66F4\u591A\u64CD\u4F5C",
180
+ openReference: "\u6253\u5F00",
181
+ refresh: "\u5237\u65B0",
182
+ referenceWorkspaceFiles: "\u5F15\u7528\u6587\u4EF6",
183
+ removeReference: "\u79FB\u9664",
184
+ runTask: "\u8FD0\u884C\u4EFB\u52A1",
185
+ saveIssue: "\u4FDD\u5B58\u4E8B\u9879",
186
+ saveSubtask: "\u4FDD\u5B58\u5B50\u4EFB\u52A1",
187
+ saveTask: "\u4FDD\u5B58\u4EFB\u52A1",
188
+ uploadFiles: "\u4E0A\u4F20\u6587\u4EF6",
189
+ uploadFolder: "\u4E0A\u4F20\u6587\u4EF6\u5939"
190
+ },
191
+ composer: {
192
+ issueContentPlaceholder: "\u8865\u5145\u8FD9\u4E2A\u4E8B\u9879\u7684\u80CC\u666F\u3001\u76EE\u6807\u6216\u4E0A\u4E0B\u6587\u3002",
193
+ issueTitlePlaceholder: "\u4E8B\u9879\u6807\u9898",
194
+ subtaskContentPlaceholder: "\u8865\u5145\u5B50\u4EFB\u52A1\u76EE\u6807\u3001\u6267\u884C\u65B9\u5F0F\u548C\u9A8C\u6536\u6807\u51C6",
195
+ subtaskTitlePlaceholder: "\u8BF7\u8F93\u5165\u5B50\u4EFB\u52A1\u6807\u9898",
196
+ taskContentPlaceholder: "\u63CF\u8FF0\u8FD9\u4E2A\u4EFB\u52A1\u7684\u6267\u884C\u8981\u6C42\u548C\u9884\u671F\u7ED3\u679C\u3002",
197
+ taskTitlePlaceholder: "\u4EFB\u52A1\u6807\u9898"
198
+ },
199
+ confirmations: {
200
+ deleteIssue: "\u786E\u5B9A\u5220\u9664\u8FD9\u4E2A\u4E8B\u9879\u5417\uFF1F",
201
+ deleteTask: "\u786E\u5B9A\u5220\u9664\u8FD9\u4E2A\u4EFB\u52A1\u5417\uFF1F"
202
+ },
203
+ dockLabel: "\u4EFB\u52A1",
204
+ emptyState: "\u65B0\u5EFA\u4E8B\u9879\uFF0C\u8865\u5145\u9700\u6C42\u63CF\u8FF0\u548C\u76F8\u5173\u6587\u4EF6\uFF0C\u5373\u53EF\u5F00\u59CB\u6267\u884C\u3002",
205
+ labels: {
206
+ allStatus: "\u5168\u90E8",
207
+ content: "\u5185\u5BB9",
208
+ contextReferences: "\u4E0A\u4E0B\u6587\u5F15\u7528",
209
+ createdAt: "\u521B\u5EFA\u65F6\u95F4",
210
+ creator: "\u521B\u5EFA\u8005",
211
+ description: "\u63CF\u8FF0",
212
+ executionOutputs: "\u6267\u884C\u4EA7\u7269",
213
+ issueDetails: "\u4E8B\u9879\u8BE6\u60C5",
214
+ issueList: "\u4E8B\u9879",
215
+ latestRunStatus: "\u6700\u65B0\u6267\u884C\u72B6\u6001",
216
+ outputs: "\u8F93\u51FA\u4EA7\u7269",
217
+ priority: "\u4F18\u5148\u7EA7",
218
+ provider: "Provider",
219
+ recentRuns: "\u6700\u8FD1\u8FD0\u884C",
220
+ requirementDescription: "\u9700\u6C42\u63CF\u8FF0",
221
+ resizeIssueList: "\u8C03\u6574\u4E8B\u9879\u5217\u8868\u5BBD\u5EA6",
222
+ searchIssues: "\u641C\u7D22\u4E8B\u9879",
223
+ scrollStatusTabsLeft: "\u5411\u5DE6\u6EDA\u52A8\u72B6\u6001\u6807\u7B7E",
224
+ scrollStatusTabsRight: "\u5411\u53F3\u6EDA\u52A8\u72B6\u6001\u6807\u7B7E",
225
+ status: "\u72B6\u6001",
226
+ subtasks: "\u5B50\u4EFB\u52A1",
227
+ title: "\u6807\u9898",
228
+ updatedAt: "\u66F4\u65B0\u65F6\u95F4",
229
+ taskCount: "{{count}} \u4E2A\u4EFB\u52A1",
230
+ taskDetails: "\u4EFB\u52A1\u8BE6\u60C5",
231
+ taskList: "\u4EFB\u52A1"
232
+ },
233
+ messages: {
234
+ clipboardUnavailable: "\u5F53\u524D\u73AF\u5883\u65E0\u6CD5\u8BBF\u95EE\u526A\u8D34\u677F\u3002",
235
+ copiedShareLink: "\u5DF2\u590D\u5236\u5206\u4EAB\u94FE\u63A5\u3002",
236
+ issueRefreshFailed: "\u5237\u65B0\u4E8B\u9879\u5217\u8868\u5931\u8D25\u3002",
237
+ issueDeleted: "\u4E8B\u9879\u5DF2\u5220\u9664\u3002",
238
+ issueSaved: "\u4E8B\u9879\u5DF2\u4FDD\u5B58\u3002",
239
+ issueContentEmpty: "\u8FD9\u4E2A\u4E8B\u9879\u8FD8\u6CA1\u6709\u63CF\u8FF0\u3002",
240
+ noExecutionOutputs: "\u6682\u65E0\u6267\u884C\u4EA7\u7269",
241
+ noExecutionStatus: "\u6682\u65E0\u6267\u884C\u8BB0\u5F55",
242
+ noIssueReferences: "\u8FD9\u4E2A\u4E8B\u9879\u8FD8\u6CA1\u6709\u5F15\u7528\u3002",
243
+ noIssuesForFilterBody: "\u8BD5\u8BD5\u5207\u6362\u7B5B\u9009\u6761\u4EF6\uFF0C\u6216\u8005\u65B0\u5EFA\u4E00\u4E2A\u4E8B\u9879\u3002",
244
+ noIssuesForFilterTitle: "\u5F53\u524D\u7B5B\u9009\u6761\u4EF6\u4E0B\u6682\u65E0\u4E8B\u9879\u3002",
245
+ noIssues: "\u8FD8\u6CA1\u6709\u4E8B\u9879\u3002",
246
+ noOutputs: "\u8FD8\u6CA1\u6709\u8F93\u51FA\u4EA7\u7269\u3002",
247
+ noRecentRuns: "\u8FD8\u6CA1\u6709\u8FD0\u884C\u8BB0\u5F55\u3002",
248
+ taskContentEmpty: "\u8FD9\u4E2A\u4EFB\u52A1\u8FD8\u6CA1\u6709\u63CF\u8FF0\u3002",
249
+ noTaskReferences: "\u8FD9\u4E2A\u4EFB\u52A1\u8FD8\u6CA1\u6709\u5F15\u7528\u3002",
250
+ noTasksForIssueBody: "\u4E3A\u8FD9\u4E2A\u4E8B\u9879\u521B\u5EFA\u7B2C\u4E00\u4E2A\u4EFB\u52A1\uFF0C\u7136\u540E\u4EA4\u7ED9 Agent \u6216\u4F60\u81EA\u5DF1\u6267\u884C\u3002",
251
+ noSubtasksForIssue: "\u4F60\u53EF\u4EE5\u56F4\u7ED5\u5F53\u524D\u4EFB\u52A1\u7EE7\u7EED\u6DFB\u52A0\u5B50\u4EFB\u52A1",
252
+ noTasks: "\u8FD8\u6CA1\u6709\u4EFB\u52A1\u3002",
253
+ refreshingIssues: "\u6B63\u5728\u5237\u65B0\u4E8B\u9879\u5217\u8868...",
254
+ titleRequired: "\u8BF7\u5148\u586B\u5199\u6807\u9898\u540E\u518D\u4FDD\u5B58\u3002",
255
+ runExitCode: "Codex \u4EE5\u9000\u51FA\u7801 {{code}} \u7ED3\u675F\u3002",
256
+ runCompleted: "\u8FD0\u884C\u5DF2\u5B8C\u6210\u3002",
257
+ runFailed: "\u8FD0\u884C\u5931\u8D25\u3002",
258
+ runStarted: "\u8FD0\u884C\u5DF2\u5F00\u59CB\u3002",
259
+ runStatusMissing: "\u7EC8\u7AEF\u5728\u5199\u5165\u8FD0\u884C\u72B6\u6001\u524D\u5C31\u9000\u51FA\u4E86\u3002",
260
+ runTimedOut: "\u7B49\u5F85 Codex \u8F93\u51FA\u8D85\u65F6\u3002",
261
+ taskDeleted: "\u4EFB\u52A1\u5DF2\u5220\u9664\u3002",
262
+ taskSaved: "\u4EFB\u52A1\u5DF2\u4FDD\u5B58\u3002",
263
+ uploadTypeConflict: "\u4E0A\u4F20\u76EE\u6807\u4E2D\u5B58\u5728\u7C7B\u578B\u51B2\u7A81\u7684\u540C\u540D\u6761\u76EE\u3002",
264
+ workspacePathUnavailable: "\u5F53\u524D\u5DE5\u4F5C\u533A\u8DEF\u5F84\u4E0D\u53EF\u7528\u3002"
265
+ },
266
+ priority: {
267
+ high: "\u9AD8",
268
+ low: "\u4F4E",
269
+ medium: "\u4E2D"
270
+ },
271
+ referencePicker: {
272
+ browse: "\u6D4F\u89C8",
273
+ confirm: "\u4F7F\u7528\u5DF2\u9009\u5F15\u7528",
274
+ emptyDirectory: "\u5F53\u524D\u76EE\u5F55\u4E3A\u7A7A\u3002",
275
+ emptySearch: "\u6CA1\u6709\u5339\u914D\u7684\u6587\u4EF6\u6216\u6587\u4EF6\u5939\u3002",
276
+ loading: "\u6B63\u5728\u52A0\u8F7D...",
277
+ searchPlaceholder: "\u641C\u7D22\u6587\u4EF6\u548C\u6587\u4EF6\u5939",
278
+ selectedCount: "\u5DF2\u9009\u62E9 {{count}} \u9879",
279
+ title: "\u9009\u62E9\u5DE5\u4F5C\u533A\u5F15\u7528"
280
+ },
281
+ run: {
282
+ failedSummaryFallback: "\u8FD0\u884C\u5931\u8D25",
283
+ outputDirectory: "\u8F93\u51FA\u76EE\u5F55",
284
+ requester: "\u53D1\u8D77\u4EBA",
285
+ status: "\u8FD0\u884C\u72B6\u6001",
286
+ summary: "\u6458\u8981"
287
+ },
288
+ status: {
289
+ canceled: "\u5DF2\u53D6\u6D88",
290
+ completed: "\u5DF2\u5B8C\u6210",
291
+ failed: "\u5931\u8D25",
292
+ notStarted: "\u672A\u542F\u52A8",
293
+ pendingAcceptance: "\u5F85\u9A8C\u6536",
294
+ running: "\u6267\u884C\u4E2D",
295
+ unknown: "\u672A\u77E5"
296
+ },
297
+ title: "\u4EFB\u52A1\u4E2D\u5FC3"
298
+ };
299
+ var issueManagerDefaults = {
300
+ en: issueManagerEn,
301
+ "zh-CN": issueManagerZhCN
302
+ };
303
+ var issueManagerI18nResources = {
304
+ en: {
305
+ [issueManagerI18nNamespace]: issueManagerDefaults.en
306
+ },
307
+ "zh-CN": {
308
+ [issueManagerI18nNamespace]: issueManagerDefaults["zh-CN"]
309
+ }
310
+ };
311
+ var defaultIssueManagerI18n = createI18nRuntime({
312
+ dictionaries: [issueManagerI18nResources.en]
313
+ });
314
+ function createIssueManagerI18nRuntime(runtime) {
315
+ return createScopedI18nRuntime(
316
+ runtime ?? defaultIssueManagerI18n,
317
+ issueManagerI18nNamespace
318
+ );
319
+ }
320
+
321
+ export {
322
+ issueManagerI18nNamespace,
323
+ issueManagerI18nModule,
324
+ issueManagerI18nResources,
325
+ createIssueManagerI18nRuntime
326
+ };
327
+ //# sourceMappingURL=chunk-H2ZF6X6A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/issueManagerI18n.ts"],"sourcesContent":["import {\n createI18nRuntime,\n createScopedI18nRuntime,\n createScopedLocaleObjectsI18nModuleManifest,\n type I18nDictionary,\n type I18nRuntime\n} from \"@nextop-os/ui-i18n-runtime\";\n\ntype IssueManagerI18nLocale = \"en\" | \"zh-CN\";\n\nexport const issueManagerI18nNamespace = \"issueManager\";\nexport const issueManagerI18nModule =\n createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"issueManagerEn\",\n \"zh-CN\": \"issueManagerZhCN\"\n },\n name: \"workspace-issue-manager\",\n namespace: issueManagerI18nNamespace,\n sourceRoot: \"packages/workspace/issue-manager/src\"\n });\n\nconst issueManagerEn = {\n actions: {\n add: \"Add\",\n addReferences: \"Add references\",\n addSubtask: \"Add subtask\",\n askAgentToRun: \"Ask agent to run\",\n cancel: \"Cancel\",\n clearSearch: \"Clear search\",\n collapseIssueList: \"Collapse issue list\",\n copyShareLink: \"Copy share link\",\n createIssue: \"New issue\",\n createTask: \"Create task\",\n delete: \"Delete\",\n deleteIssue: \"Delete issue\",\n deleteTask: \"Delete task\",\n edit: \"Edit\",\n editIssue: \"Edit issue\",\n editTask: \"Edit task\",\n expandIssueList: \"Expand issue list\",\n inviteCollaborator: \"Invite collaborator\",\n insertReferences: \"Insert references\",\n moreActions: \"More actions\",\n openReference: \"Open\",\n refresh: \"Refresh\",\n referenceWorkspaceFiles: \"Reference files\",\n removeReference: \"Remove\",\n runTask: \"Run task\",\n saveIssue: \"Save issue\",\n saveSubtask: \"Save subtask\",\n saveTask: \"Save task\",\n uploadFiles: \"Upload files\",\n uploadFolder: \"Upload folder\"\n },\n composer: {\n issueContentPlaceholder: \"Describe the issue, goals, or context.\",\n issueTitlePlaceholder: \"Issue title\",\n subtaskContentPlaceholder:\n \"Add the subtask goal, execution approach, and acceptance criteria.\",\n subtaskTitlePlaceholder: \"Enter a subtask title\",\n taskContentPlaceholder: \"Describe the executable task and expected result.\",\n taskTitlePlaceholder: \"Task title\"\n },\n confirmations: {\n deleteIssue: \"Delete this issue?\",\n deleteTask: \"Delete this task?\"\n },\n dockLabel: \"Tasks\",\n emptyState:\n \"Create an issue, add the goal and references, then start executing.\",\n labels: {\n allStatus: \"All\",\n content: \"Content\",\n contextReferences: \"Context references\",\n createdAt: \"Created\",\n creator: \"Creator\",\n description: \"Description\",\n executionOutputs: \"Execution outputs\",\n issueDetails: \"Issue details\",\n issueList: \"Issues\",\n latestRunStatus: \"Latest execution status\",\n outputs: \"Outputs\",\n priority: \"Priority\",\n provider: \"Provider\",\n recentRuns: \"Recent runs\",\n requirementDescription: \"Requirements\",\n resizeIssueList: \"Resize issue list\",\n searchIssues: \"Search issues\",\n scrollStatusTabsLeft: \"Scroll status tabs left\",\n scrollStatusTabsRight: \"Scroll status tabs right\",\n status: \"Status\",\n subtasks: \"Subtasks\",\n title: \"Title\",\n updatedAt: \"Updated\",\n taskCount: \"{{count}} tasks\",\n taskDetails: \"Task details\",\n taskList: \"Tasks\"\n },\n messages: {\n clipboardUnavailable: \"Clipboard is unavailable.\",\n copiedShareLink: \"Share link copied.\",\n issueRefreshFailed: \"Couldn't refresh issues.\",\n issueDeleted: \"Issue deleted.\",\n issueSaved: \"Issue saved.\",\n issueContentEmpty: \"No issue description yet.\",\n noExecutionOutputs: \"No execution outputs yet.\",\n noExecutionStatus: \"No execution records yet.\",\n noIssueReferences: \"No issue references yet.\",\n noIssuesForFilterBody:\n \"Try another filter, or create a new issue to get things started.\",\n noIssuesForFilterTitle: \"No issues match the current filter.\",\n noIssues: \"No issues yet.\",\n noOutputs: \"No outputs yet.\",\n noRecentRuns: \"No runs yet.\",\n taskContentEmpty: \"No task description yet.\",\n noTaskReferences: \"No task references yet.\",\n noTasksForIssueBody:\n \"Create the first task for this issue and let an agent or yourself execute it.\",\n noSubtasksForIssue:\n \"You can continue breaking down this item by adding subtasks.\",\n noTasks: \"No tasks yet.\",\n refreshingIssues: \"Refreshing issues...\",\n titleRequired: \"Enter a title before saving.\",\n runExitCode: \"Codex exited with code {{code}}.\",\n runCompleted: \"Run completed.\",\n runFailed: \"Run failed.\",\n runStarted: \"Run started.\",\n runStatusMissing:\n \"Terminal exited before the issue run produced a status marker.\",\n runTimedOut: \"Issue run timed out while waiting for Codex output.\",\n taskDeleted: \"Task deleted.\",\n taskSaved: \"Task saved.\",\n uploadTypeConflict: \"Upload target contains conflicting entry types.\",\n workspacePathUnavailable: \"Workspace path is unavailable.\"\n },\n priority: {\n high: \"High\",\n low: \"Low\",\n medium: \"Medium\"\n },\n referencePicker: {\n browse: \"Browse\",\n confirm: \"Use selected references\",\n emptyDirectory: \"This folder is empty.\",\n emptySearch: \"No matching files or folders.\",\n loading: \"Loading...\",\n searchPlaceholder: \"Search files and folders\",\n selectedCount: \"{{count}} selected\",\n title: \"Pick workspace references\"\n },\n run: {\n failedSummaryFallback: \"Run failed\",\n outputDirectory: \"Output directory\",\n requester: \"Requester\",\n status: \"Run status\",\n summary: \"Summary\"\n },\n status: {\n canceled: \"Canceled\",\n completed: \"Completed\",\n failed: \"Failed\",\n notStarted: \"Not started\",\n pendingAcceptance: \"Pending acceptance\",\n running: \"Running\",\n unknown: \"Unknown\"\n },\n title: \"Task Center\"\n} as const satisfies I18nDictionary;\n\nconst issueManagerZhCN = {\n actions: {\n add: \"添加\",\n addReferences: \"添加引用\",\n addSubtask: \"添加子任务\",\n askAgentToRun: \"让 Agent 执行\",\n cancel: \"取消\",\n clearSearch: \"清空搜索\",\n collapseIssueList: \"收起事项列表\",\n copyShareLink: \"复制分享链接\",\n createIssue: \"新建事项\",\n createTask: \"新建任务\",\n delete: \"删除\",\n deleteIssue: \"删除事项\",\n deleteTask: \"删除任务\",\n edit: \"编辑\",\n editIssue: \"编辑事项\",\n editTask: \"编辑任务\",\n expandIssueList: \"展开事项列表\",\n inviteCollaborator: \"邀请协作者\",\n insertReferences: \"插入引用\",\n moreActions: \"更多操作\",\n openReference: \"打开\",\n refresh: \"刷新\",\n referenceWorkspaceFiles: \"引用文件\",\n removeReference: \"移除\",\n runTask: \"运行任务\",\n saveIssue: \"保存事项\",\n saveSubtask: \"保存子任务\",\n saveTask: \"保存任务\",\n uploadFiles: \"上传文件\",\n uploadFolder: \"上传文件夹\"\n },\n composer: {\n issueContentPlaceholder: \"补充这个事项的背景、目标或上下文。\",\n issueTitlePlaceholder: \"事项标题\",\n subtaskContentPlaceholder: \"补充子任务目标、执行方式和验收标准\",\n subtaskTitlePlaceholder: \"请输入子任务标题\",\n taskContentPlaceholder: \"描述这个任务的执行要求和预期结果。\",\n taskTitlePlaceholder: \"任务标题\"\n },\n confirmations: {\n deleteIssue: \"确定删除这个事项吗?\",\n deleteTask: \"确定删除这个任务吗?\"\n },\n dockLabel: \"任务\",\n emptyState: \"新建事项,补充需求描述和相关文件,即可开始执行。\",\n labels: {\n allStatus: \"全部\",\n content: \"内容\",\n contextReferences: \"上下文引用\",\n createdAt: \"创建时间\",\n creator: \"创建者\",\n description: \"描述\",\n executionOutputs: \"执行产物\",\n issueDetails: \"事项详情\",\n issueList: \"事项\",\n latestRunStatus: \"最新执行状态\",\n outputs: \"输出产物\",\n priority: \"优先级\",\n provider: \"Provider\",\n recentRuns: \"最近运行\",\n requirementDescription: \"需求描述\",\n resizeIssueList: \"调整事项列表宽度\",\n searchIssues: \"搜索事项\",\n scrollStatusTabsLeft: \"向左滚动状态标签\",\n scrollStatusTabsRight: \"向右滚动状态标签\",\n status: \"状态\",\n subtasks: \"子任务\",\n title: \"标题\",\n updatedAt: \"更新时间\",\n taskCount: \"{{count}} 个任务\",\n taskDetails: \"任务详情\",\n taskList: \"任务\"\n },\n messages: {\n clipboardUnavailable: \"当前环境无法访问剪贴板。\",\n copiedShareLink: \"已复制分享链接。\",\n issueRefreshFailed: \"刷新事项列表失败。\",\n issueDeleted: \"事项已删除。\",\n issueSaved: \"事项已保存。\",\n issueContentEmpty: \"这个事项还没有描述。\",\n noExecutionOutputs: \"暂无执行产物\",\n noExecutionStatus: \"暂无执行记录\",\n noIssueReferences: \"这个事项还没有引用。\",\n noIssuesForFilterBody: \"试试切换筛选条件,或者新建一个事项。\",\n noIssuesForFilterTitle: \"当前筛选条件下暂无事项。\",\n noIssues: \"还没有事项。\",\n noOutputs: \"还没有输出产物。\",\n noRecentRuns: \"还没有运行记录。\",\n taskContentEmpty: \"这个任务还没有描述。\",\n noTaskReferences: \"这个任务还没有引用。\",\n noTasksForIssueBody:\n \"为这个事项创建第一个任务,然后交给 Agent 或你自己执行。\",\n noSubtasksForIssue: \"你可以围绕当前任务继续添加子任务\",\n noTasks: \"还没有任务。\",\n refreshingIssues: \"正在刷新事项列表...\",\n titleRequired: \"请先填写标题后再保存。\",\n runExitCode: \"Codex 以退出码 {{code}} 结束。\",\n runCompleted: \"运行已完成。\",\n runFailed: \"运行失败。\",\n runStarted: \"运行已开始。\",\n runStatusMissing: \"终端在写入运行状态前就退出了。\",\n runTimedOut: \"等待 Codex 输出超时。\",\n taskDeleted: \"任务已删除。\",\n taskSaved: \"任务已保存。\",\n uploadTypeConflict: \"上传目标中存在类型冲突的同名条目。\",\n workspacePathUnavailable: \"当前工作区路径不可用。\"\n },\n priority: {\n high: \"高\",\n low: \"低\",\n medium: \"中\"\n },\n referencePicker: {\n browse: \"浏览\",\n confirm: \"使用已选引用\",\n emptyDirectory: \"当前目录为空。\",\n emptySearch: \"没有匹配的文件或文件夹。\",\n loading: \"正在加载...\",\n searchPlaceholder: \"搜索文件和文件夹\",\n selectedCount: \"已选择 {{count}} 项\",\n title: \"选择工作区引用\"\n },\n run: {\n failedSummaryFallback: \"运行失败\",\n outputDirectory: \"输出目录\",\n requester: \"发起人\",\n status: \"运行状态\",\n summary: \"摘要\"\n },\n status: {\n canceled: \"已取消\",\n completed: \"已完成\",\n failed: \"失败\",\n notStarted: \"未启动\",\n pendingAcceptance: \"待验收\",\n running: \"执行中\",\n unknown: \"未知\"\n },\n title: \"任务中心\"\n} as const satisfies I18nDictionary;\n\nexport type IssueManagerI18nKey = string;\n\nexport type IssueManagerI18nRuntime = I18nRuntime<IssueManagerI18nKey>;\n\nconst issueManagerDefaults: Record<IssueManagerI18nLocale, I18nDictionary> = {\n en: issueManagerEn,\n \"zh-CN\": issueManagerZhCN\n};\n\nexport const issueManagerI18nResources = {\n en: {\n [issueManagerI18nNamespace]: issueManagerDefaults.en\n },\n \"zh-CN\": {\n [issueManagerI18nNamespace]: issueManagerDefaults[\"zh-CN\"]\n }\n} as const satisfies Record<IssueManagerI18nLocale, I18nDictionary>;\n\nconst defaultIssueManagerI18n = createI18nRuntime({\n dictionaries: [issueManagerI18nResources.en]\n});\n\nexport function createIssueManagerI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): IssueManagerI18nRuntime {\n return createScopedI18nRuntime<IssueManagerI18nKey>(\n runtime ?? defaultIssueManagerI18n,\n issueManagerI18nNamespace\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,262 @@
1
+ import {
2
+ createIssueManagerI18nRuntime
3
+ } from "./chunk-H2ZF6X6A.js";
4
+
5
+ // src/core/feature.ts
6
+ var defaultIssueManagerNodeState = {
7
+ issueSearchQuery: "",
8
+ issueStatusFilter: "all",
9
+ selectedAgentProvider: "codex",
10
+ selectedIssueId: null,
11
+ selectedTaskId: null
12
+ };
13
+ function createIssueManagerFeature(input) {
14
+ return {
15
+ agentRunner: input.agentRunner,
16
+ backend: input.backend,
17
+ fileAdapter: input.fileAdapter,
18
+ i18n: createIssueManagerI18nRuntime(input.i18n),
19
+ identityAdapter: input.identityAdapter,
20
+ notifications: input.notifications,
21
+ shareAdapter: input.shareAdapter
22
+ };
23
+ }
24
+ function normalizeIssueManagerNodeState(state) {
25
+ return {
26
+ ...defaultIssueManagerNodeState,
27
+ ...state,
28
+ issueSearchQuery: state?.issueSearchQuery?.trim() ?? "",
29
+ issueStatusFilter: state?.issueStatusFilter ?? "all",
30
+ selectedAgentProvider: state?.selectedAgentProvider?.trim() || "codex",
31
+ selectedIssueId: normalizeNullableString(state?.selectedIssueId),
32
+ selectedTaskId: normalizeNullableString(state?.selectedTaskId)
33
+ };
34
+ }
35
+ function normalizeNullableString(value) {
36
+ const trimmed = value?.trim() ?? "";
37
+ return trimmed.length > 0 ? trimmed : null;
38
+ }
39
+
40
+ // src/core/content.ts
41
+ import {
42
+ createRichTextMentionHref,
43
+ createRichTextMentionMarkdown,
44
+ extractPlainTextFromContent,
45
+ extractPlainTextWithoutFilesFromContent,
46
+ extractRichTextMentionsFromContent,
47
+ normalizeRichTextContent,
48
+ parseRichTextMentionHref,
49
+ removeRichTextMentionFromContent
50
+ } from "@nextop-os/ui-rich-text/core";
51
+ var markdownLinkPattern = /\[([^\]]+)\]\(([^)\s]+)\)/g;
52
+ var externalLinkPrefix = /^(?:[a-z]+:)?\/\//i;
53
+ var mentionLinkPrefix = /^mention:\/\//i;
54
+ function isWorkspaceReferenceHref(href) {
55
+ const trimmed = href.trim();
56
+ if (!trimmed || mentionLinkPrefix.test(trimmed) || externalLinkPrefix.test(trimmed)) {
57
+ return false;
58
+ }
59
+ return true;
60
+ }
61
+ var normalizeIssueManagerContent = normalizeRichTextContent;
62
+ function normalizeIssueManagerWorkspaceFileLinkHref(pathOrHref, kind = "file") {
63
+ const trimmed = pathOrHref.trim();
64
+ if (!trimmed) {
65
+ return "";
66
+ }
67
+ if (kind === "folder" && !trimmed.endsWith("/")) {
68
+ return `${trimmed}/`;
69
+ }
70
+ return trimmed;
71
+ }
72
+ function createIssueManagerWorkspaceFileLinkMarkdown(input) {
73
+ const kind = input.kind === "folder" ? "folder" : "file";
74
+ const href = normalizeIssueManagerWorkspaceFileLinkHref(input.path, kind);
75
+ const displayName = input.name?.trim() || href.split("/").filter(Boolean).at(-1) || href || input.path.trim();
76
+ if (!href || !displayName) {
77
+ return "";
78
+ }
79
+ return `[${displayName}](${href})`;
80
+ }
81
+ function appendIssueManagerWorkspaceFileLinksToContent(value, refs) {
82
+ const content = normalizeIssueManagerContent(value);
83
+ const existing = new Set(
84
+ extractIssueManagerWorkspaceFileLinksFromContent(content).map(
85
+ (ref) => ref.path
86
+ )
87
+ );
88
+ const rendered = refs.map((ref) => {
89
+ const kind = ref.kind === "folder" ? "folder" : "file";
90
+ const path = normalizeIssueManagerWorkspaceFileLinkHref(ref.path, kind);
91
+ if (!path || existing.has(path)) {
92
+ return "";
93
+ }
94
+ existing.add(path);
95
+ return createIssueManagerWorkspaceFileLinkMarkdown({
96
+ ...ref,
97
+ kind,
98
+ path
99
+ });
100
+ }).filter(Boolean);
101
+ if (rendered.length === 0) {
102
+ return content;
103
+ }
104
+ return content ? `${content}
105
+
106
+ ${rendered.join("\n")}` : rendered.join("\n");
107
+ }
108
+ function extractIssueManagerWorkspaceFileLinksFromContent(value) {
109
+ const content = normalizeIssueManagerContent(value);
110
+ const refs = /* @__PURE__ */ new Map();
111
+ for (const match of content.matchAll(markdownLinkPattern)) {
112
+ const name = match[1]?.trim() ?? "";
113
+ const href = match[2]?.trim() ?? "";
114
+ if (!name || !isWorkspaceReferenceHref(href)) {
115
+ continue;
116
+ }
117
+ const kind = href.endsWith("/") ? "folder" : "file";
118
+ const path = normalizeIssueManagerWorkspaceFileLinkHref(href, kind);
119
+ if (!path || refs.has(path)) {
120
+ continue;
121
+ }
122
+ refs.set(path, {
123
+ href: path,
124
+ kind,
125
+ name,
126
+ path
127
+ });
128
+ }
129
+ return [...refs.values()];
130
+ }
131
+ function removeIssueManagerWorkspaceFileLinkFromContent(content, path) {
132
+ const targetPath = path.trim();
133
+ if (!targetPath) {
134
+ return normalizeIssueManagerContent(content);
135
+ }
136
+ const normalized = normalizeIssueManagerContent(content);
137
+ const next = normalized.split("\n").filter((line) => {
138
+ const trimmed = line.trim();
139
+ if (!trimmed) {
140
+ return true;
141
+ }
142
+ const refs = extractIssueManagerWorkspaceFileLinksFromContent(trimmed);
143
+ return !refs.some((ref) => ref.path === targetPath) || refs.length > 1;
144
+ }).join("\n").replace(/\n{3,}/g, "\n\n");
145
+ return next.trim();
146
+ }
147
+ var extractIssueManagerPlainTextFromContent = extractPlainTextFromContent;
148
+ var extractIssueManagerPlainTextWithoutFilesFromContent = extractPlainTextWithoutFilesFromContent;
149
+ var createIssueManagerMentionHref = createRichTextMentionHref;
150
+ var createIssueManagerMentionMarkdown = createRichTextMentionMarkdown;
151
+ var parseIssueManagerMentionHref = parseRichTextMentionHref;
152
+ var extractIssueManagerMentionsFromContent = extractRichTextMentionsFromContent;
153
+ var removeIssueManagerMentionFromContent = removeRichTextMentionFromContent;
154
+
155
+ // src/core/runPrompt.ts
156
+ function buildIssueManagerRunOutputDir(issueId, taskId, runId) {
157
+ return `/workspace/issues/${issueId}/tasks/${taskId}/runs/${runId}`;
158
+ }
159
+ function buildIssueManagerUploadDir(issueId, taskId) {
160
+ const normalizedTaskId = taskId?.trim();
161
+ if (normalizedTaskId) {
162
+ return `/workspace/issues/${issueId}/tasks/${normalizedTaskId}/attachments`;
163
+ }
164
+ return `/workspace/issues/${issueId}/attachments`;
165
+ }
166
+ function resolveIssueManagerWorkspaceRuntimePath(workspaceRoot, requestedPath) {
167
+ const normalizedWorkspaceRoot = workspaceRoot.trim().replace(/\/+$/, "");
168
+ const normalizedRequestedPath = requestedPath.trim();
169
+ if (!normalizedWorkspaceRoot || !normalizedRequestedPath) {
170
+ return normalizedRequestedPath;
171
+ }
172
+ if (normalizedRequestedPath === normalizedWorkspaceRoot || normalizedRequestedPath.startsWith(`${normalizedWorkspaceRoot}/`)) {
173
+ return normalizedRequestedPath;
174
+ }
175
+ if (normalizedRequestedPath === "/workspace") {
176
+ return normalizedWorkspaceRoot;
177
+ }
178
+ if (normalizedRequestedPath.startsWith("/workspace/")) {
179
+ return `${normalizedWorkspaceRoot}/${normalizedRequestedPath.slice("/workspace/".length)}`;
180
+ }
181
+ if (!normalizedRequestedPath.startsWith("/")) {
182
+ return `${normalizedWorkspaceRoot}/${normalizedRequestedPath.replace(/^\/+/, "")}`;
183
+ }
184
+ return normalizedRequestedPath;
185
+ }
186
+ function buildIssueManagerRunPrompt(input) {
187
+ const outputDir = resolveIssueManagerWorkspaceRuntimePath(
188
+ input.workspaceRoot,
189
+ buildIssueManagerRunOutputDir(
190
+ input.issue.issueId,
191
+ input.task.taskId,
192
+ input.runId
193
+ )
194
+ );
195
+ const workspaceFileRefs = collectIssueManagerWorkspaceReferencePaths(
196
+ input.task.content || "",
197
+ input.issue.content || ""
198
+ ).map(
199
+ (refPath) => `- [file] ${resolveIssueManagerWorkspaceRuntimePath(input.workspaceRoot, refPath)}`
200
+ ).join("\n");
201
+ const taskContent = extractIssueManagerPlainTextFromContent(
202
+ input.task.content || ""
203
+ );
204
+ const issueContent = extractIssueManagerPlainTextFromContent(
205
+ input.issue.content || ""
206
+ );
207
+ return [
208
+ "\u4F60\u6B63\u5728\u5904\u7406\u4E00\u4E2A\u5DE5\u4F5C\u533A\u4EFB\u52A1\u3002",
209
+ "",
210
+ `Issue \u6807\u9898\uFF1A${input.issue.title}`,
211
+ `Issue \u5185\u5BB9\uFF1A${issueContent || "\uFF08\u65E0\u8865\u5145\u5185\u5BB9\uFF09"}`,
212
+ `Task \u6807\u9898\uFF1A${input.task.title}`,
213
+ `Task \u5185\u5BB9\uFF1A${taskContent || "\uFF08\u65E0\u8865\u5145\u5185\u5BB9\uFF09"}`,
214
+ `\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\uFF1A${input.workspaceRoot}`,
215
+ `\u4EFB\u52A1\u8F93\u51FA\u76EE\u5F55\uFF1A${outputDir}`,
216
+ "",
217
+ "\u5F15\u7528\u8D44\u6599\uFF1A",
218
+ workspaceFileRefs || "- \uFF08\u65E0\u5F15\u7528\u8D44\u6599\uFF09",
219
+ "",
220
+ "\u6267\u884C\u8981\u6C42\uFF1A",
221
+ `1. \u5728 ${input.workspaceRoot} \u4E0B\u5DE5\u4F5C\uFF0C\u4E0D\u8981\u5207\u6362\u5230\u5176\u4ED6\u65E0\u5173\u76EE\u5F55\u3002`,
222
+ "2. \u5982\u9700\u8BFB\u53D6\u5F15\u7528\u8D44\u6599\uFF0C\u8BF7\u76F4\u63A5\u4F7F\u7528\u4E0A\u9762\u7684\u8DEF\u5F84\u3002",
223
+ `3. \u5982\u679C\u7528\u6237\u6CA1\u6709\u53E6\u884C\u6307\u5B9A\u4F4D\u7F6E\uFF0C\u6240\u6709\u6700\u7EC8\u4EA7\u7269\u90FD\u5199\u5165 ${outputDir}/\u3002`,
224
+ "4. \u81F3\u5C11\u8F93\u51FA summary.md\uFF0C\u8BF4\u660E\u5904\u7406\u7ED3\u679C\u3001\u6539\u52A8\u4E0E\u7ED3\u8BBA\u3002",
225
+ "5. \u4E0D\u8981\u628A\u6700\u7EC8\u4EA7\u7269\u5199\u5230\u5DE5\u4F5C\u533A\u4E4B\u5916\u3002"
226
+ ].join("\n");
227
+ }
228
+ function collectIssueManagerWorkspaceReferencePaths(...contents) {
229
+ const paths = /* @__PURE__ */ new Set();
230
+ for (const content of contents) {
231
+ for (const ref of extractIssueManagerWorkspaceFileLinksFromContent(
232
+ content
233
+ )) {
234
+ paths.add(ref.path);
235
+ }
236
+ }
237
+ return [...paths];
238
+ }
239
+
240
+ export {
241
+ defaultIssueManagerNodeState,
242
+ createIssueManagerFeature,
243
+ normalizeIssueManagerNodeState,
244
+ normalizeIssueManagerContent,
245
+ normalizeIssueManagerWorkspaceFileLinkHref,
246
+ createIssueManagerWorkspaceFileLinkMarkdown,
247
+ appendIssueManagerWorkspaceFileLinksToContent,
248
+ extractIssueManagerWorkspaceFileLinksFromContent,
249
+ removeIssueManagerWorkspaceFileLinkFromContent,
250
+ extractIssueManagerPlainTextFromContent,
251
+ extractIssueManagerPlainTextWithoutFilesFromContent,
252
+ createIssueManagerMentionHref,
253
+ createIssueManagerMentionMarkdown,
254
+ parseIssueManagerMentionHref,
255
+ extractIssueManagerMentionsFromContent,
256
+ removeIssueManagerMentionFromContent,
257
+ buildIssueManagerRunOutputDir,
258
+ buildIssueManagerUploadDir,
259
+ resolveIssueManagerWorkspaceRuntimePath,
260
+ buildIssueManagerRunPrompt
261
+ };
262
+ //# sourceMappingURL=chunk-HKIH3OTZ.js.map