@nextop-os/workspace-issue-manager 0.0.16 → 0.0.17
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.
- package/dist/assets/workspace-dock-task.png +0 -0
- package/dist/chunk-5YEGAJKA.js +313 -0
- package/dist/chunk-5YEGAJKA.js.map +1 -0
- package/dist/chunk-LYYOPZIJ.js +308 -0
- package/dist/chunk-LYYOPZIJ.js.map +1 -0
- package/dist/chunk-RX6P2DPR.js +3316 -0
- package/dist/chunk-RX6P2DPR.js.map +1 -0
- package/dist/contracts/index.d.ts +13 -1
- package/dist/feature-B6_wXych.d.ts +25 -0
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +34 -23
- package/dist/index.js +28 -4
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +3 -3
- package/dist/workbench/index.d.ts +9 -2
- package/dist/workbench/index.js +22 -11
- package/dist/workbench/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-CSDFXQBD.js +0 -73
- package/dist/chunk-CSDFXQBD.js.map +0 -1
- package/dist/chunk-HMMAMS4Z.js +0 -33
- package/dist/chunk-HMMAMS4Z.js.map +0 -1
- package/dist/chunk-POBWWUUQ.js +0 -44
- package/dist/chunk-POBWWUUQ.js.map +0 -1
package/dist/i18n/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { I18nRuntime, I18nDictionary } from '@nextop-os/ui-i18n-runtime';
|
|
|
3
3
|
|
|
4
4
|
declare const issueManagerI18nNamespace = "issueManager";
|
|
5
5
|
declare const issueManagerI18nModule: _nextop_os_ui_i18n_runtime.ScopedLocaleObjectsI18nModuleManifest;
|
|
6
|
-
type IssueManagerI18nKey =
|
|
6
|
+
type IssueManagerI18nKey = string;
|
|
7
7
|
type IssueManagerI18nRuntime = I18nRuntime<IssueManagerI18nKey>;
|
|
8
8
|
declare const issueManagerI18nResources: {
|
|
9
9
|
readonly en: {
|
package/dist/i18n/index.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,25 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
export { C as CreateIssueManagerFeatureInput, I as IssueManagerFeature, c as createIssueManagerFeature, d as defaultIssueManagerNodeState, n as normalizeIssueManagerNodeState } from './feature-B6_wXych.js';
|
|
2
|
+
import { IssueManagerIssueSummary, IssueManagerTaskSummary } from './contracts/index.js';
|
|
3
|
+
import '@nextop-os/ui-i18n-runtime';
|
|
4
|
+
import './i18n/index.js';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
declare
|
|
22
|
-
declare function
|
|
23
|
-
declare function
|
|
6
|
+
type IssueManagerWorkspaceFileLinkRef = {
|
|
7
|
+
href: string;
|
|
8
|
+
kind: "file" | "folder";
|
|
9
|
+
name: string;
|
|
10
|
+
path: string;
|
|
11
|
+
};
|
|
12
|
+
type IssueManagerWorkspaceFileLinkInput = {
|
|
13
|
+
kind?: "file" | "folder";
|
|
14
|
+
name?: string | null;
|
|
15
|
+
path: string;
|
|
16
|
+
};
|
|
17
|
+
declare function normalizeIssueManagerContent(value?: string | null): string;
|
|
18
|
+
declare function normalizeIssueManagerWorkspaceFileLinkHref(pathOrHref: string, kind?: "file" | "folder"): string;
|
|
19
|
+
declare function createIssueManagerWorkspaceFileLinkMarkdown(input: IssueManagerWorkspaceFileLinkInput): string;
|
|
20
|
+
declare function appendIssueManagerWorkspaceFileLinksToContent(value: string | null | undefined, refs: readonly IssueManagerWorkspaceFileLinkInput[]): string;
|
|
21
|
+
declare function extractIssueManagerWorkspaceFileLinksFromContent(value: string | null | undefined): IssueManagerWorkspaceFileLinkRef[];
|
|
22
|
+
declare function removeIssueManagerWorkspaceFileLinkFromContent(content: string, path: string): string;
|
|
23
|
+
declare function extractIssueManagerPlainTextFromContent(value?: string | null): string;
|
|
24
|
+
declare function extractIssueManagerPlainTextWithoutFilesFromContent(value?: string | null): string;
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
declare function buildIssueManagerRunOutputDir(issueId: string, taskId: string, runId: string): string;
|
|
27
|
+
declare function buildIssueManagerUploadDir(issueId: string, taskId?: string | null): string;
|
|
28
|
+
declare function resolveIssueManagerWorkspaceRuntimePath(workspaceRoot: string, requestedPath: string): string;
|
|
29
|
+
declare function buildIssueManagerRunPrompt(input: {
|
|
30
|
+
issue: IssueManagerIssueSummary;
|
|
31
|
+
runId: string;
|
|
32
|
+
task: IssueManagerTaskSummary;
|
|
33
|
+
workspaceRoot: string;
|
|
34
|
+
}): string;
|
|
35
|
+
|
|
36
|
+
export { type IssueManagerWorkspaceFileLinkInput, type IssueManagerWorkspaceFileLinkRef, appendIssueManagerWorkspaceFileLinksToContent, buildIssueManagerRunOutputDir, buildIssueManagerRunPrompt, buildIssueManagerUploadDir, createIssueManagerWorkspaceFileLinkMarkdown, extractIssueManagerPlainTextFromContent, extractIssueManagerPlainTextWithoutFilesFromContent, extractIssueManagerWorkspaceFileLinksFromContent, normalizeIssueManagerContent, normalizeIssueManagerWorkspaceFileLinkHref, removeIssueManagerWorkspaceFileLinkFromContent, resolveIssueManagerWorkspaceRuntimePath };
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
import {
|
|
2
|
+
appendIssueManagerWorkspaceFileLinksToContent,
|
|
3
|
+
buildIssueManagerRunOutputDir,
|
|
4
|
+
buildIssueManagerRunPrompt,
|
|
5
|
+
buildIssueManagerUploadDir,
|
|
2
6
|
createIssueManagerFeature,
|
|
7
|
+
createIssueManagerWorkspaceFileLinkMarkdown,
|
|
3
8
|
defaultIssueManagerNodeState,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
9
|
+
extractIssueManagerPlainTextFromContent,
|
|
10
|
+
extractIssueManagerPlainTextWithoutFilesFromContent,
|
|
11
|
+
extractIssueManagerWorkspaceFileLinksFromContent,
|
|
12
|
+
normalizeIssueManagerContent,
|
|
13
|
+
normalizeIssueManagerNodeState,
|
|
14
|
+
normalizeIssueManagerWorkspaceFileLinkHref,
|
|
15
|
+
removeIssueManagerWorkspaceFileLinkFromContent,
|
|
16
|
+
resolveIssueManagerWorkspaceRuntimePath
|
|
17
|
+
} from "./chunk-LYYOPZIJ.js";
|
|
18
|
+
import "./chunk-5YEGAJKA.js";
|
|
7
19
|
export {
|
|
20
|
+
appendIssueManagerWorkspaceFileLinksToContent,
|
|
21
|
+
buildIssueManagerRunOutputDir,
|
|
22
|
+
buildIssueManagerRunPrompt,
|
|
23
|
+
buildIssueManagerUploadDir,
|
|
8
24
|
createIssueManagerFeature,
|
|
25
|
+
createIssueManagerWorkspaceFileLinkMarkdown,
|
|
9
26
|
defaultIssueManagerNodeState,
|
|
10
|
-
|
|
27
|
+
extractIssueManagerPlainTextFromContent,
|
|
28
|
+
extractIssueManagerPlainTextWithoutFilesFromContent,
|
|
29
|
+
extractIssueManagerWorkspaceFileLinksFromContent,
|
|
30
|
+
normalizeIssueManagerContent,
|
|
31
|
+
normalizeIssueManagerNodeState,
|
|
32
|
+
normalizeIssueManagerWorkspaceFileLinkHref,
|
|
33
|
+
removeIssueManagerWorkspaceFileLinkFromContent,
|
|
34
|
+
resolveIssueManagerWorkspaceRuntimePath
|
|
11
35
|
};
|
|
12
36
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from 'react';
|
|
2
2
|
import { IssueManagerNodeState } from '../contracts/index.js';
|
|
3
|
-
import { IssueManagerFeature } from '../
|
|
3
|
+
import { I as IssueManagerFeature } from '../feature-B6_wXych.js';
|
|
4
4
|
import '@nextop-os/ui-i18n-runtime';
|
|
5
5
|
import '../i18n/index.js';
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ interface IssueManagerNodeProps {
|
|
|
11
11
|
state?: Partial<IssueManagerNodeState> | null;
|
|
12
12
|
workspaceId: string;
|
|
13
13
|
}
|
|
14
|
-
declare function IssueManagerNode({ feature, nodeId, state, workspaceId }: IssueManagerNodeProps): JSX.Element;
|
|
14
|
+
declare function IssueManagerNode({ feature, nodeId, onStateChange, state, workspaceId }: IssueManagerNodeProps): JSX.Element;
|
|
15
15
|
declare function IssueManagerNodeHeader(): JSX.Element | null;
|
|
16
16
|
|
|
17
17
|
export { IssueManagerNode, IssueManagerNodeHeader, type IssueManagerNodeProps };
|
package/dist/react/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IssueManagerNode,
|
|
3
3
|
IssueManagerNodeHeader
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-RX6P2DPR.js";
|
|
5
|
+
import "../chunk-LYYOPZIJ.js";
|
|
6
|
+
import "../chunk-5YEGAJKA.js";
|
|
7
7
|
export {
|
|
8
8
|
IssueManagerNode,
|
|
9
9
|
IssueManagerNodeHeader
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { WorkbenchFrame, WorkbenchHostDockEntry, WorkbenchHostLaunchRequest, WorkbenchHostLaunchResult, WorkbenchHostNodeDefinition } from '@nextop-os/workbench-surface';
|
|
3
3
|
import { IssueManagerNodeState } from '../contracts/index.js';
|
|
4
|
-
import { IssueManagerFeature } from '../
|
|
4
|
+
import { I as IssueManagerFeature } from '../feature-B6_wXych.js';
|
|
5
5
|
import '@nextop-os/ui-i18n-runtime';
|
|
6
6
|
import '../i18n/index.js';
|
|
7
7
|
|
|
@@ -11,6 +11,13 @@ interface IssueManagerExternalWorkspaceState {
|
|
|
11
11
|
interface CreateIssueManagerWorkbenchNodeDefinitionInput {
|
|
12
12
|
feature: IssueManagerFeature;
|
|
13
13
|
frame?: WorkbenchFrame;
|
|
14
|
+
onStateChange?: (input: {
|
|
15
|
+
instanceId: string;
|
|
16
|
+
instanceKey?: string | null;
|
|
17
|
+
nodeId: string;
|
|
18
|
+
state: IssueManagerNodeState;
|
|
19
|
+
workspaceState: IssueManagerExternalWorkspaceState;
|
|
20
|
+
}) => void;
|
|
14
21
|
title?: string;
|
|
15
22
|
typeId?: string;
|
|
16
23
|
}
|
|
@@ -28,7 +35,7 @@ interface CreateIssueManagerDockEntryInput {
|
|
|
28
35
|
typeId?: string;
|
|
29
36
|
}
|
|
30
37
|
declare const defaultIssueManagerWorkbenchTypeId = "issue-manager";
|
|
31
|
-
declare function createIssueManagerWorkbenchNodeDefinition<TExternalWorkspaceState extends IssueManagerExternalWorkspaceState = IssueManagerExternalWorkspaceState>({ feature, frame, title, typeId }: CreateIssueManagerWorkbenchNodeDefinitionInput): WorkbenchHostNodeDefinition<Partial<IssueManagerNodeState> | null, TExternalWorkspaceState>;
|
|
38
|
+
declare function createIssueManagerWorkbenchNodeDefinition<TExternalWorkspaceState extends IssueManagerExternalWorkspaceState = IssueManagerExternalWorkspaceState>({ feature, frame, onStateChange, title, typeId }: CreateIssueManagerWorkbenchNodeDefinitionInput): WorkbenchHostNodeDefinition<Partial<IssueManagerNodeState> | null, TExternalWorkspaceState>;
|
|
32
39
|
declare function createIssueManagerDockEntry({ dockIcon, feature, id, order, sectionId, typeId }: CreateIssueManagerDockEntryInput): WorkbenchHostDockEntry;
|
|
33
40
|
declare function createIssueManagerWorkbenchLaunchHandler({ frame, title, typeId }?: CreateIssueManagerWorkbenchLaunchHandlerInput): (request: WorkbenchHostLaunchRequest) => Promise<WorkbenchHostLaunchResult | null>;
|
|
34
41
|
|
package/dist/workbench/index.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IssueManagerNode
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-RX6P2DPR.js";
|
|
4
|
+
import "../chunk-LYYOPZIJ.js";
|
|
5
|
+
import "../chunk-5YEGAJKA.js";
|
|
6
6
|
|
|
7
7
|
// src/workbench/index.ts
|
|
8
8
|
import { createElement } from "react";
|
|
9
9
|
var defaultIssueManagerWorkbenchTypeId = "issue-manager";
|
|
10
|
+
var defaultIssueManagerDockIconUrl = new URL(
|
|
11
|
+
"../assets/workspace-dock-task.png",
|
|
12
|
+
import.meta.url
|
|
13
|
+
).href;
|
|
10
14
|
var defaultIssueManagerNodeFrame = {
|
|
11
15
|
height: 620,
|
|
12
16
|
width: 960,
|
|
@@ -16,6 +20,7 @@ var defaultIssueManagerNodeFrame = {
|
|
|
16
20
|
function createIssueManagerWorkbenchNodeDefinition({
|
|
17
21
|
feature,
|
|
18
22
|
frame = defaultIssueManagerNodeFrame,
|
|
23
|
+
onStateChange,
|
|
19
24
|
title,
|
|
20
25
|
typeId = defaultIssueManagerWorkbenchTypeId
|
|
21
26
|
}) {
|
|
@@ -27,6 +32,13 @@ function createIssueManagerWorkbenchNodeDefinition({
|
|
|
27
32
|
renderBody: (context) => createElement(IssueManagerNode, {
|
|
28
33
|
feature,
|
|
29
34
|
nodeId: context.node.id,
|
|
35
|
+
onStateChange: onStateChange ? (state) => onStateChange({
|
|
36
|
+
instanceId: context.instanceId,
|
|
37
|
+
instanceKey: context.instanceKey ?? null,
|
|
38
|
+
nodeId: context.node.id,
|
|
39
|
+
state,
|
|
40
|
+
workspaceState: context.externalWorkspaceState
|
|
41
|
+
}) : void 0,
|
|
30
42
|
state: context.externalNodeState,
|
|
31
43
|
workspaceId: context.externalWorkspaceState.workspaceId ?? ""
|
|
32
44
|
}),
|
|
@@ -83,14 +95,13 @@ function createIssueManagerWorkbenchLaunchHandler({
|
|
|
83
95
|
};
|
|
84
96
|
}
|
|
85
97
|
function DefaultIssueManagerDockIcon() {
|
|
86
|
-
return createElement(
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
);
|
|
98
|
+
return createElement("img", {
|
|
99
|
+
alt: "",
|
|
100
|
+
"aria-hidden": "true",
|
|
101
|
+
"data-issue-manager-dock-icon": "true",
|
|
102
|
+
draggable: false,
|
|
103
|
+
src: defaultIssueManagerDockIconUrl
|
|
104
|
+
});
|
|
94
105
|
}
|
|
95
106
|
export {
|
|
96
107
|
createIssueManagerDockEntry,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/workbench/index.ts"],"sourcesContent":["import { createElement, type ReactNode } from \"react\";\nimport type {\n WorkbenchFrame,\n WorkbenchHostDockEntry,\n WorkbenchHostLaunchRequest,\n WorkbenchHostLaunchResult,\n WorkbenchHostNodeDefinition\n} from \"@nextop-os/workbench-surface\";\nimport type { IssueManagerNodeState } from \"../contracts/index.ts\";\nimport type { IssueManagerFeature } from \"../core/index.ts\";\nimport { IssueManagerNode } from \"../react/IssueManagerNode.tsx\";\n\nexport interface IssueManagerExternalWorkspaceState {\n workspaceId?: string | null;\n}\n\nexport interface CreateIssueManagerWorkbenchNodeDefinitionInput {\n feature: IssueManagerFeature;\n frame?: WorkbenchFrame;\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 sectionId?: string;\n typeId?: string;\n}\n\nexport const defaultIssueManagerWorkbenchTypeId = \"issue-manager\";\n\nconst defaultIssueManagerNodeFrame: WorkbenchFrame = {\n height: 620,\n width: 960,\n x: 220,\n y: 120\n};\n\nexport function createIssueManagerWorkbenchNodeDefinition<\n TExternalWorkspaceState extends IssueManagerExternalWorkspaceState =\n IssueManagerExternalWorkspaceState\n>({\n feature,\n frame = defaultIssueManagerNodeFrame,\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 feature,\n nodeId: context.node.id,\n state: context.externalNodeState,\n workspaceId: context.externalWorkspaceState.workspaceId ?? \"\"\n }),\n title: title ?? feature.i18n.t(\"title\"),\n typeId,\n window: {\n closable: true,\n defaultOpen: false,\n minimizable: true,\n restoreOnLoad: true\n }\n };\n}\n\nexport function createIssueManagerDockEntry({\n dockIcon,\n feature,\n id,\n order,\n sectionId,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerDockEntryInput): WorkbenchHostDockEntry {\n return {\n icon: dockIcon ?? createElement(DefaultIssueManagerDockIcon),\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 sectionId,\n typeId,\n visibility: \"always\"\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\nfunction DefaultIssueManagerDockIcon() {\n return createElement(\n \"
|
|
1
|
+
{"version":3,"sources":["../../src/workbench/index.ts"],"sourcesContent":["import { createElement, type ReactNode } from \"react\";\nimport type {\n WorkbenchFrame,\n WorkbenchHostDockEntry,\n WorkbenchHostLaunchRequest,\n WorkbenchHostLaunchResult,\n WorkbenchHostNodeDefinition\n} from \"@nextop-os/workbench-surface\";\nimport type { IssueManagerNodeState } from \"../contracts/index.ts\";\nimport type { IssueManagerFeature } from \"../core/index.ts\";\nimport { IssueManagerNode } from \"../react/IssueManagerNode.tsx\";\n\nexport interface IssueManagerExternalWorkspaceState {\n workspaceId?: string | null;\n}\n\nexport interface CreateIssueManagerWorkbenchNodeDefinitionInput {\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 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 sectionId?: string;\n typeId?: string;\n}\n\nexport const defaultIssueManagerWorkbenchTypeId = \"issue-manager\";\nconst defaultIssueManagerDockIconUrl = new URL(\n \"../assets/workspace-dock-task.png\",\n import.meta.url\n).href;\n\nconst defaultIssueManagerNodeFrame: WorkbenchFrame = {\n height: 620,\n width: 960,\n x: 220,\n y: 120\n};\n\nexport function createIssueManagerWorkbenchNodeDefinition<\n TExternalWorkspaceState extends IssueManagerExternalWorkspaceState =\n IssueManagerExternalWorkspaceState\n>({\n feature,\n frame = defaultIssueManagerNodeFrame,\n onStateChange,\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 feature,\n nodeId: context.node.id,\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 state: context.externalNodeState,\n workspaceId: context.externalWorkspaceState.workspaceId ?? \"\"\n }),\n title: title ?? feature.i18n.t(\"title\"),\n typeId,\n window: {\n closable: true,\n defaultOpen: false,\n minimizable: true,\n restoreOnLoad: true\n }\n };\n}\n\nexport function createIssueManagerDockEntry({\n dockIcon,\n feature,\n id,\n order,\n sectionId,\n typeId = defaultIssueManagerWorkbenchTypeId\n}: CreateIssueManagerDockEntryInput): WorkbenchHostDockEntry {\n return {\n icon: dockIcon ?? createElement(DefaultIssueManagerDockIcon),\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 sectionId,\n typeId,\n visibility: \"always\"\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\nfunction DefaultIssueManagerDockIcon() {\n return createElement(\"img\", {\n alt: \"\",\n \"aria-hidden\": \"true\",\n \"data-issue-manager-dock-icon\": \"true\",\n draggable: false,\n src: defaultIssueManagerDockIconUrl\n });\n}\n"],"mappings":";;;;;;;AAAA,SAAS,qBAAqC;AA6CvC,IAAM,qCAAqC;AAClD,IAAM,iCAAiC,IAAI;AAAA,EACzC;AAAA,EACA,YAAY;AACd,EAAE;AAEF,IAAM,+BAA+C;AAAA,EACnD,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,GAAG;AAAA,EACH,GAAG;AACL;AAEO,SAAS,0CAGd;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,SAAS;AACX,GAGE;AACA,SAAO;AAAA,IACL;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,IACR;AAAA,IACA,YAAY,CAAC,YACX,cAAc,kBAAkB;AAAA,MAC9B;AAAA,MACA,QAAQ,QAAQ,KAAK;AAAA,MACrB,eAAe,gBACX,CAAC,UACC,cAAc;AAAA,QACZ,YAAY,QAAQ;AAAA,QACpB,aAAa,QAAQ,eAAe;AAAA,QACpC,QAAQ,QAAQ,KAAK;AAAA,QACrB;AAAA,QACA,gBAAgB,QAAQ;AAAA,MAC1B,CAAC,IACH;AAAA,MACJ,OAAO,QAAQ;AAAA,MACf,aAAa,QAAQ,uBAAuB,eAAe;AAAA,IAC7D,CAAC;AAAA,IACH,OAAO,SAAS,QAAQ,KAAK,EAAE,OAAO;AAAA,IACtC;AAAA,IACA,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,aAAa;AAAA,MACb,aAAa;AAAA,MACb,eAAe;AAAA,IACjB;AAAA,EACF;AACF;AAEO,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AACX,GAA6D;AAC3D,SAAO;AAAA,IACL,MAAM,YAAY,cAAc,2BAA2B;AAAA,IAC3D,IAAI,MAAM;AAAA,IACV,OAAO,QAAQ,KAAK,EAAE,WAAW;AAAA,IACjC,gBAAgB;AAAA,IAChB,WAAW,CAAC,SAAS,KAAK,KAAK,WAAW;AAAA,IAC1C;AAAA,IACA,kBAAkB,CAAC,EAAE,KAAK,OAAO;AAAA,MAC/B,OAAO,KAAK;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd;AACF;AAEO,SAAS,yCAAyC;AAAA,EACvD,QAAQ;AAAA,EACR;AAAA,EACA,SAAS;AACX,IAAmD,CAAC,GAEL;AAC7C,SAAO,CAAC,YAAY;AAClB,QAAI,QAAQ,WAAW,QAAQ;AAC7B,aAAO,QAAQ,QAAQ,IAAI;AAAA,IAC7B;AAEA,WAAO,QAAQ,QAAQ;AAAA,MACrB,cAAc;AAAA,MACd,aAAa,QAAQ,eAAe;AAAA,MACpC,aAAa;AAAA,MACb,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,SAAS,8BAA8B;AACrC,SAAO,cAAc,OAAO;AAAA,IAC1B,KAAK;AAAA,IACL,eAAe;AAAA,IACf,gCAAgC;AAAA,IAChC,WAAW;AAAA,IACX,KAAK;AAAA,EACP,CAAC;AACH;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextop-os/workspace-issue-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"directory": "packages/workspace/issue-manager"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@nextop-os/ui-i18n-runtime": "0.0.
|
|
42
|
-
"@nextop-os/ui-system": "0.0.
|
|
43
|
-
"@nextop-os/workbench-surface": "0.0.
|
|
41
|
+
"@nextop-os/ui-i18n-runtime": "0.0.17",
|
|
42
|
+
"@nextop-os/ui-system": "0.0.17",
|
|
43
|
+
"@nextop-os/workbench-surface": "0.0.17"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^24.0.1",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
},
|
|
64
64
|
"scripts": {
|
|
65
65
|
"build": "tsup --config tsup.config.ts",
|
|
66
|
-
"test": "node --test --experimental-strip-types ./src
|
|
66
|
+
"test": "node --test --experimental-strip-types ./src/*.test.ts ./src/*/*.test.ts ./src/*/*/*.test.ts",
|
|
67
67
|
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
68
68
|
}
|
|
69
69
|
}
|
package/dist/chunk-CSDFXQBD.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
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
|
-
dockLabel: "Issues",
|
|
19
|
-
emptyState: "No issue selected",
|
|
20
|
-
status: {
|
|
21
|
-
canceled: "Canceled",
|
|
22
|
-
completed: "Completed",
|
|
23
|
-
failed: "Failed",
|
|
24
|
-
notStarted: "Not started",
|
|
25
|
-
pendingAcceptance: "Pending acceptance",
|
|
26
|
-
running: "Running",
|
|
27
|
-
unknown: "Unknown"
|
|
28
|
-
},
|
|
29
|
-
title: "Issue Manager"
|
|
30
|
-
};
|
|
31
|
-
var issueManagerZhCN = {
|
|
32
|
-
dockLabel: "\u4EFB\u52A1",
|
|
33
|
-
emptyState: "\u672A\u9009\u62E9\u4EFB\u52A1",
|
|
34
|
-
status: {
|
|
35
|
-
canceled: "\u5DF2\u53D6\u6D88",
|
|
36
|
-
completed: "\u5DF2\u5B8C\u6210",
|
|
37
|
-
failed: "\u5931\u8D25",
|
|
38
|
-
notStarted: "\u672A\u542F\u52A8",
|
|
39
|
-
pendingAcceptance: "\u5F85\u9A8C\u6536",
|
|
40
|
-
running: "\u6267\u884C\u4E2D",
|
|
41
|
-
unknown: "\u672A\u77E5"
|
|
42
|
-
},
|
|
43
|
-
title: "\u4EFB\u52A1\u7BA1\u7406"
|
|
44
|
-
};
|
|
45
|
-
var issueManagerDefaults = {
|
|
46
|
-
en: issueManagerEn,
|
|
47
|
-
"zh-CN": issueManagerZhCN
|
|
48
|
-
};
|
|
49
|
-
var issueManagerI18nResources = {
|
|
50
|
-
en: {
|
|
51
|
-
[issueManagerI18nNamespace]: issueManagerDefaults.en
|
|
52
|
-
},
|
|
53
|
-
"zh-CN": {
|
|
54
|
-
[issueManagerI18nNamespace]: issueManagerDefaults["zh-CN"]
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
var defaultIssueManagerI18n = createI18nRuntime({
|
|
58
|
-
dictionaries: [issueManagerI18nResources.en]
|
|
59
|
-
});
|
|
60
|
-
function createIssueManagerI18nRuntime(runtime) {
|
|
61
|
-
return createScopedI18nRuntime(
|
|
62
|
-
runtime ?? defaultIssueManagerI18n,
|
|
63
|
-
issueManagerI18nNamespace
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export {
|
|
68
|
-
issueManagerI18nNamespace,
|
|
69
|
-
issueManagerI18nModule,
|
|
70
|
-
issueManagerI18nResources,
|
|
71
|
-
createIssueManagerI18nRuntime
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=chunk-CSDFXQBD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 dockLabel: \"Issues\",\n emptyState: \"No issue selected\",\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: \"Issue Manager\"\n} as const satisfies I18nDictionary;\n\nconst issueManagerZhCN = {\n dockLabel: \"任务\",\n emptyState: \"未选择任务\",\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 =\n | \"dockLabel\"\n | \"emptyState\"\n | \"status.canceled\"\n | \"status.completed\"\n | \"status.failed\"\n | \"status.notStarted\"\n | \"status.pendingAcceptance\"\n | \"status.running\"\n | \"status.unknown\"\n | \"title\";\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":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAIA,IAAM,4BAA4B;AAClC,IAAM,yBACX,4CAA4C;AAAA,EAC1C,sBAAsB;AAAA,IACpB,IAAI;AAAA,IACJ,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,EACN,WAAW;AAAA,EACX,YAAY;AACd,CAAC;AAEH,IAAM,iBAAiB;AAAA,EACrB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,OAAO;AACT;AAEA,IAAM,mBAAmB;AAAA,EACvB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,OAAO;AACT;AAgBA,IAAM,uBAAuE;AAAA,EAC3E,IAAI;AAAA,EACJ,SAAS;AACX;AAEO,IAAM,4BAA4B;AAAA,EACvC,IAAI;AAAA,IACF,CAAC,yBAAyB,GAAG,qBAAqB;AAAA,EACpD;AAAA,EACA,SAAS;AAAA,IACP,CAAC,yBAAyB,GAAG,qBAAqB,OAAO;AAAA,EAC3D;AACF;AAEA,IAAM,0BAA0B,kBAAkB;AAAA,EAChD,cAAc,CAAC,0BAA0B,EAAE;AAC7C,CAAC;AAEM,SAAS,8BACd,SACyB;AACzB,SAAO;AAAA,IACL,WAAW;AAAA,IACX;AAAA,EACF;AACF;","names":[]}
|
package/dist/chunk-HMMAMS4Z.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
normalizeIssueManagerNodeState
|
|
3
|
-
} from "./chunk-POBWWUUQ.js";
|
|
4
|
-
|
|
5
|
-
// src/react/IssueManagerNode.tsx
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
function IssueManagerNode({
|
|
8
|
-
feature,
|
|
9
|
-
nodeId,
|
|
10
|
-
state,
|
|
11
|
-
workspaceId
|
|
12
|
-
}) {
|
|
13
|
-
const normalizedState = normalizeIssueManagerNodeState(state);
|
|
14
|
-
return /* @__PURE__ */ jsx(
|
|
15
|
-
"section",
|
|
16
|
-
{
|
|
17
|
-
"aria-label": feature.i18n.t("title"),
|
|
18
|
-
className: "flex h-full min-h-0 w-full min-w-0 text-foreground",
|
|
19
|
-
"data-issue-manager-node-id": nodeId,
|
|
20
|
-
"data-issue-manager-workspace-id": workspaceId,
|
|
21
|
-
children: /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 items-center justify-center p-4 text-center text-[13px] text-muted-foreground", children: normalizedState.selectedIssueId ?? feature.i18n.t("emptyState") })
|
|
22
|
-
}
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
function IssueManagerNodeHeader() {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export {
|
|
30
|
-
IssueManagerNode,
|
|
31
|
-
IssueManagerNodeHeader
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=chunk-HMMAMS4Z.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react/IssueManagerNode.tsx"],"sourcesContent":["import type { JSX } from \"react\";\nimport type { IssueManagerNodeState } from \"../contracts/index.ts\";\nimport {\n normalizeIssueManagerNodeState,\n type IssueManagerFeature\n} from \"../core/index.ts\";\n\nexport interface IssueManagerNodeProps {\n feature: IssueManagerFeature;\n nodeId: string;\n onStateChange?: (state: IssueManagerNodeState) => void;\n state?: Partial<IssueManagerNodeState> | null;\n workspaceId: string;\n}\n\nexport function IssueManagerNode({\n feature,\n nodeId,\n state,\n workspaceId\n}: IssueManagerNodeProps): JSX.Element {\n const normalizedState = normalizeIssueManagerNodeState(state);\n return (\n <section\n aria-label={feature.i18n.t(\"title\")}\n className=\"flex h-full min-h-0 w-full min-w-0 text-foreground\"\n data-issue-manager-node-id={nodeId}\n data-issue-manager-workspace-id={workspaceId}\n >\n <div className=\"flex min-w-0 flex-1 items-center justify-center p-4 text-center text-[13px] text-muted-foreground\">\n {normalizedState.selectedIssueId ?? feature.i18n.t(\"emptyState\")}\n </div>\n </section>\n );\n}\n\nexport function IssueManagerNodeHeader(): JSX.Element | null {\n return null;\n}\n"],"mappings":";;;;;AA6BM;AAdC,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAuC;AACrC,QAAM,kBAAkB,+BAA+B,KAAK;AAC5D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY,QAAQ,KAAK,EAAE,OAAO;AAAA,MAClC,WAAU;AAAA,MACV,8BAA4B;AAAA,MAC5B,mCAAiC;AAAA,MAEjC,8BAAC,SAAI,WAAU,qGACZ,0BAAgB,mBAAmB,QAAQ,KAAK,EAAE,YAAY,GACjE;AAAA;AAAA,EACF;AAEJ;AAEO,SAAS,yBAA6C;AAC3D,SAAO;AACT;","names":[]}
|
package/dist/chunk-POBWWUUQ.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createIssueManagerI18nRuntime
|
|
3
|
-
} from "./chunk-CSDFXQBD.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
|
-
shareAdapter: input.shareAdapter
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function normalizeIssueManagerNodeState(state) {
|
|
24
|
-
return {
|
|
25
|
-
...defaultIssueManagerNodeState,
|
|
26
|
-
...state,
|
|
27
|
-
issueSearchQuery: state?.issueSearchQuery?.trim() ?? "",
|
|
28
|
-
issueStatusFilter: state?.issueStatusFilter ?? "all",
|
|
29
|
-
selectedAgentProvider: state?.selectedAgentProvider?.trim() || "codex",
|
|
30
|
-
selectedIssueId: normalizeNullableString(state?.selectedIssueId),
|
|
31
|
-
selectedTaskId: normalizeNullableString(state?.selectedTaskId)
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function normalizeNullableString(value) {
|
|
35
|
-
const trimmed = value?.trim() ?? "";
|
|
36
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export {
|
|
40
|
-
defaultIssueManagerNodeState,
|
|
41
|
-
createIssueManagerFeature,
|
|
42
|
-
normalizeIssueManagerNodeState
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=chunk-POBWWUUQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/feature.ts"],"sourcesContent":["import type { I18nRuntime } from \"@nextop-os/ui-i18n-runtime\";\nimport {\n createIssueManagerI18nRuntime,\n type IssueManagerI18nRuntime\n} from \"../i18n/issueManagerI18n.ts\";\nimport type {\n IssueManagerAgentRunner,\n IssueManagerBackend,\n IssueManagerFileAdapter,\n IssueManagerIdentityAdapter,\n IssueManagerNodeState,\n IssueManagerShareAdapter\n} from \"../contracts/index.ts\";\n\nexport interface IssueManagerFeature {\n agentRunner: IssueManagerAgentRunner;\n backend: IssueManagerBackend;\n fileAdapter?: IssueManagerFileAdapter;\n i18n: IssueManagerI18nRuntime;\n identityAdapter: IssueManagerIdentityAdapter;\n shareAdapter?: IssueManagerShareAdapter;\n}\n\nexport interface CreateIssueManagerFeatureInput {\n agentRunner: IssueManagerAgentRunner;\n backend: IssueManagerBackend;\n fileAdapter?: IssueManagerFileAdapter;\n i18n?: I18nRuntime<string>;\n identityAdapter: IssueManagerIdentityAdapter;\n shareAdapter?: IssueManagerShareAdapter;\n}\n\nexport const defaultIssueManagerNodeState: IssueManagerNodeState = {\n issueSearchQuery: \"\",\n issueStatusFilter: \"all\",\n selectedAgentProvider: \"codex\",\n selectedIssueId: null,\n selectedTaskId: null\n};\n\nexport function createIssueManagerFeature(\n input: CreateIssueManagerFeatureInput\n): IssueManagerFeature {\n return {\n agentRunner: input.agentRunner,\n backend: input.backend,\n fileAdapter: input.fileAdapter,\n i18n: createIssueManagerI18nRuntime(input.i18n),\n identityAdapter: input.identityAdapter,\n shareAdapter: input.shareAdapter\n };\n}\n\nexport function normalizeIssueManagerNodeState(\n state: Partial<IssueManagerNodeState> | null | undefined\n): IssueManagerNodeState {\n return {\n ...defaultIssueManagerNodeState,\n ...state,\n issueSearchQuery: state?.issueSearchQuery?.trim() ?? \"\",\n issueStatusFilter: state?.issueStatusFilter ?? \"all\",\n selectedAgentProvider: state?.selectedAgentProvider?.trim() || \"codex\",\n selectedIssueId: normalizeNullableString(state?.selectedIssueId),\n selectedTaskId: normalizeNullableString(state?.selectedTaskId)\n };\n}\n\nfunction normalizeNullableString(\n value: string | null | undefined\n): string | null {\n const trimmed = value?.trim() ?? \"\";\n return trimmed.length > 0 ? trimmed : null;\n}\n"],"mappings":";;;;;AAgCO,IAAM,+BAAsD;AAAA,EACjE,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,gBAAgB;AAClB;AAEO,SAAS,0BACd,OACqB;AACrB,SAAO;AAAA,IACL,aAAa,MAAM;AAAA,IACnB,SAAS,MAAM;AAAA,IACf,aAAa,MAAM;AAAA,IACnB,MAAM,8BAA8B,MAAM,IAAI;AAAA,IAC9C,iBAAiB,MAAM;AAAA,IACvB,cAAc,MAAM;AAAA,EACtB;AACF;AAEO,SAAS,+BACd,OACuB;AACvB,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,kBAAkB,OAAO,kBAAkB,KAAK,KAAK;AAAA,IACrD,mBAAmB,OAAO,qBAAqB;AAAA,IAC/C,uBAAuB,OAAO,uBAAuB,KAAK,KAAK;AAAA,IAC/D,iBAAiB,wBAAwB,OAAO,eAAe;AAAA,IAC/D,gBAAgB,wBAAwB,OAAO,cAAc;AAAA,EAC/D;AACF;AAEA,SAAS,wBACP,OACe;AACf,QAAM,UAAU,OAAO,KAAK,KAAK;AACjC,SAAO,QAAQ,SAAS,IAAI,UAAU;AACxC;","names":[]}
|