@nextclaw/ui 0.24.2 → 0.24.3
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/CHANGELOG.md +18 -0
- package/dist/.vite/manifest.json +517 -517
- package/dist/assets/{account-panel-BxMlLXYH.js → account-panel-BRTSwNvA.js} +1 -1
- package/dist/assets/{api-Utt-xzrT.js → api-BnUzdltV.js} +5 -5
- package/dist/assets/{app-data-DYXDL6X2.js → app-data-Bjh_zM45.js} +1 -1
- package/dist/assets/app-presenter-provider-CBt-lyr_.js +109 -0
- package/dist/assets/{appearance-settings-page-BfYznAK5.js → appearance-settings-page-BrOYSgG0.js} +1 -1
- package/dist/assets/{book-open-DDW_3XpM.js → book-open-xqEj1OLE.js} +1 -1
- package/dist/assets/{boxes-DwJeuK_h.js → boxes-D6uPnkGo.js} +1 -1
- package/dist/assets/{card-IevY2nm-.js → card-CS8su2Zh.js} +1 -1
- package/dist/assets/{channels-list-page-DitnqbMR.js → channels-list-page-BE0TxB3B.js} +1 -1
- package/dist/assets/{chevron-down-An7Km-t4.js → chevron-down-BL-yMYcX.js} +1 -1
- package/dist/assets/{circle-alert-CDXqELuo.js → circle-alert-lSa3LRvS.js} +1 -1
- package/dist/assets/{circle-dashed-CapXEpiV.js → circle-dashed-CU3yApvP.js} +1 -1
- package/dist/assets/{client-B0krol7A.js → client-BtGBwLTs.js} +1 -1
- package/dist/assets/{config-split-page-BtnkqWVp.js → config-split-page-BxDwwAGa.js} +1 -1
- package/dist/assets/{confirm-dialog-DFt4jpN7.js → confirm-dialog-S5JxZcS1.js} +1 -1
- package/dist/assets/{createLucideIcon-BTHK0Ot9.js → createLucideIcon-BNKf0_kc.js} +1 -1
- package/dist/assets/{desktop-capabilities-page-CCf14WId.js → desktop-capabilities-page-BwHxJpbl.js} +1 -1
- package/dist/assets/{desktop-update-config-DVoVgfFi.js → desktop-update-config-Bfg7OdJ2.js} +1 -1
- package/dist/assets/{dialog-BFN_1DBH.js → dialog-Xe73hpQz.js} +1 -1
- package/dist/assets/{dist-Bc9hOVNN.js → dist-BiIcnf9j.js} +1 -1
- package/dist/assets/{dist-CEhIDAnr.js → dist-C5I0v8Qn.js} +1 -1
- package/dist/assets/{dist-hkVPP1th.js → dist-czPa8xFO.js} +1 -1
- package/dist/assets/doc-browser-BgRP0Wni.js +1 -0
- package/dist/assets/{doc-browser-BNUxmwD6.js → doc-browser-C8eqJLi_.js} +1 -1
- package/dist/assets/{doc-browser-context-C4yQrKrH.js → doc-browser-context-BPCDFcC-.js} +1 -1
- package/dist/assets/{ellipsis-BRI6ROeu.js → ellipsis-C5YXdOUx.js} +1 -1
- package/dist/assets/{es2015-MOCbM0Eu.js → es2015-cuwbYI-l.js} +1 -1
- package/dist/assets/{extensions-DxUBMtHW.js → extensions-DgKQRebe.js} +1 -1
- package/dist/assets/{eye-cnynUDGt.js → eye-C84inPcV.js} +1 -1
- package/dist/assets/{form-actions-gQ0JEUwB.js → form-actions-AIdXOoCL.js} +1 -1
- package/dist/assets/{i18n-B9yXA8KO.js → i18n-CKvm9zyk.js} +2 -2
- package/dist/assets/{i18n-provider-BYBJua91.js → i18n-provider-CPV43pMX.js} +1 -1
- package/dist/assets/loader-circle-K1BDdHR5.js +1 -0
- package/dist/assets/login-page-ClcrvN04.js +1 -0
- package/dist/assets/{login-page-CqrHhzaN.js → login-page-DeDQjVxv.js} +1 -1
- package/dist/assets/{logo-badge-Cr03YceJ.js → logo-badge-C-5-zim6.js} +1 -1
- package/dist/assets/main-DGqlaAaI.css +1 -0
- package/dist/assets/main-i18n-catalog.config-CpNF5aVc.js +1 -0
- package/dist/assets/main-nMVfHb5K.js +2 -0
- package/dist/assets/{mcp-marketplace-page-CifiVgFD.js → mcp-marketplace-page-CWjJGp_D.js} +1 -1
- package/dist/assets/mcp-marketplace-page-fvu2NcXT.js +1 -0
- package/dist/assets/{model-config-page-C6jVNbSj.js → model-config-page-Dv_zE7HN.js} +1 -1
- package/dist/assets/{navigation-link-kbCLRSr_.js → navigation-link-BAQjgx2F.js} +1 -1
- package/dist/assets/panel-app-i18n-catalog.config-BzxE3tZb.js +1 -0
- package/dist/assets/{panelStandalone-DMBnYyTw.js → panelStandalone-CFRBHV94.js} +2 -2
- package/dist/assets/plus-LA8-jpxP.js +1 -0
- package/dist/assets/{popover-XVDgjxcl.js → popover-NkrFlWHp.js} +1 -1
- package/dist/assets/{privacy-settings-page-BN27MBVA.js → privacy-settings-page-D6uc9f-A.js} +1 -1
- package/dist/assets/projects-BD1rG75R.js +1 -0
- package/dist/assets/{provider-scoped-model-input-BGZMCThn.js → provider-scoped-model-input-DUa_9uwg.js} +1 -1
- package/dist/assets/{providers-config-page-D5aBwbOD.js → providers-config-page-DAiqxlF_.js} +1 -1
- package/dist/assets/{puzzle-D5Dhacmb.js → puzzle-D6gulz7u.js} +1 -1
- package/dist/assets/{pwa-ClQK56Qe.js → pwa-C_Zte1xe.js} +1 -1
- package/dist/assets/{refresh-cw-Bw5BY7vp.js → refresh-cw-h9Xq3LY3.js} +1 -1
- package/dist/assets/remote-BO0QP7ua.js +1 -0
- package/dist/assets/{rotate-cw-BksCLAeE.js → rotate-cw-B6xm41Wn.js} +1 -1
- package/dist/assets/runtime-config-page-w1UAkGF_.js +1 -0
- package/dist/assets/{save-CVi8VWzb.js → save-fff_WpY2.js} +1 -1
- package/dist/assets/{search-DN-f7IIC.js → search-CUe41wjm.js} +1 -1
- package/dist/assets/{search-config-page-BmuZTVxs.js → search-config-page-3xbhRlW2.js} +1 -1
- package/dist/assets/{secrets-config-page-NPHpg9sb.js → secrets-config-page-Dn8_rdOj.js} +1 -1
- package/dist/assets/security-config-Y1nEGM3A.js +1 -0
- package/dist/assets/{select-CmDTqk2C.js → select-CG5YWnwe.js} +1 -1
- package/dist/assets/{service-apps-panel-BYGJ9_pO.js → service-apps-panel-CGc04aMn.js} +1 -1
- package/dist/assets/{settings-2-B62YtZon.js → settings-2-CE3ELQyk.js} +1 -1
- package/dist/assets/skeleton-BL9h32W7.js +1 -0
- package/dist/assets/{tabs-Bk_mG7ql.js → tabs-BuE0qKMh.js} +1 -1
- package/dist/assets/{tag-chip-DgqKlI5D.js → tag-chip-BDzpHEli.js} +1 -1
- package/dist/assets/{theme-provider-CeBY2pyu.js → theme-provider-B6FinATQ.js} +1 -1
- package/dist/assets/{tooltip-CgGbBdYf.js → tooltip-DYcuWhuP.js} +1 -1
- package/dist/assets/{trash-2-CVOev8yc.js → trash-2-BPPYt2NV.js} +1 -1
- package/dist/assets/{use-config-b2DN67gs.js → use-config-BPUM2lbo.js} +1 -1
- package/dist/assets/{use-desktop-capabilities-B3tLU1yl.js → use-desktop-capabilities-BDjArQP3.js} +1 -1
- package/dist/assets/{use-panel-app-scroll-restoration-BekzoX6z.js → use-panel-app-scroll-restoration-DsV1IJx-.js} +1 -1
- package/dist/assets/{use-viewport-layout-CUA3jQsA.js → use-viewport-layout-BS18drMT.js} +1 -1
- package/dist/assets/{utils-UBHTdG5Q.js → utils-CBZPzC_b.js} +1 -1
- package/dist/assets/x-DdXOqLnX.js +1 -0
- package/dist/index.html +50 -50
- package/dist/panel-standalone.html +15 -15
- package/package.json +3 -3
- package/src/features/chat/features/message/utils/__tests__/chat-message-timeline.utils.test.ts +10 -0
- package/src/features/chat/features/session/components/__tests__/chat-sidebar-project-groups.test.tsx +90 -6
- package/src/features/chat/features/session/components/chat-sidebar-project-groups.tsx +64 -2
- package/src/features/panel-apps/components/__tests__/panel-app-open-standalone-menu-item.test.tsx +3 -2
- package/src/features/panel-apps/components/panel-app-open-standalone-menu-item.tsx +4 -1
- package/src/features/projects/AGENTS.md +1 -2
- package/src/features/projects/components/project-agreement.tsx +36 -77
- package/src/features/projects/components/project-artifacts.test.tsx +90 -62
- package/src/features/projects/components/project-artifacts.tsx +81 -160
- package/src/features/projects/components/project-materials.test.tsx +80 -0
- package/src/features/projects/components/project-overview.test.tsx +50 -40
- package/src/features/projects/components/project-overview.tsx +5 -4
- package/src/features/projects/components/project-skills.tsx +24 -14
- package/src/features/projects/components/work/project-work-item-drawer.test.tsx +3 -2
- package/src/features/projects/components/work/project-work-items.test.tsx +13 -1
- package/src/features/projects/components/work/project-work-items.tsx +7 -7
- package/src/features/projects/hooks/use-project-materials.test.tsx +65 -0
- package/src/features/projects/hooks/use-project-materials.ts +24 -0
- package/src/features/projects/hooks/use-project-work.test.tsx +57 -1
- package/src/features/projects/hooks/use-project-work.ts +11 -5
- package/src/features/projects/pages/project-home-page.tsx +51 -127
- package/src/features/projects/pages/projects-page.test.tsx +68 -75
- package/src/features/projects/presenters/project-home.presenter.test.ts +1 -64
- package/src/features/projects/presenters/project-home.presenter.ts +17 -54
- package/src/features/projects/utils/project-artifact-view.utils.test.ts +0 -46
- package/src/features/projects/utils/project-artifact-view.utils.ts +0 -47
- package/src/shared/lib/i18n/locales/en-US/projects.json +8 -59
- package/src/shared/lib/i18n/locales/zh-CN/projects.json +8 -59
- package/dist/assets/app-presenter-provider-CLsFiXvV.js +0 -109
- package/dist/assets/doc-browser-w4eGZXLu.js +0 -1
- package/dist/assets/loader-circle-rWr5Yo0E.js +0 -1
- package/dist/assets/login-page-CfMSkOsg.js +0 -1
- package/dist/assets/main-8cVkMfgE.css +0 -1
- package/dist/assets/main-Bys58GxY.js +0 -2
- package/dist/assets/main-i18n-catalog.config-BSq9yiUQ.js +0 -1
- package/dist/assets/mcp-marketplace-page-DX5VE3mU.js +0 -1
- package/dist/assets/panel-app-i18n-catalog.config-C2St67SP.js +0 -1
- package/dist/assets/plus-BHnKwuPq.js +0 -1
- package/dist/assets/projects-DV3UuJMS.js +0 -1
- package/dist/assets/remote-Bl005fzu.js +0 -1
- package/dist/assets/runtime-config-page-CmktQcMW.js +0 -1
- package/dist/assets/security-config-Djptuyf2.js +0 -1
- package/dist/assets/skeleton-Eh64l4T2.js +0 -1
- package/dist/assets/x-C0iaOsRW.js +0 -1
- package/src/features/projects/components/project-requests.tsx +0 -57
- package/src/features/projects/components/project-runs.tsx +0 -60
- package/src/features/projects/hooks/use-project-observation.test.tsx +0 -93
- package/src/features/projects/hooks/use-project-observation.ts +0 -115
- package/src/features/projects/utils/project-request-response.utils.test.ts +0 -44
- package/src/features/projects/utils/project-request-response.utils.ts +0 -39
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
import type { ProjectObservationSnapshot } from "@nextclaw/client-sdk";
|
|
2
1
|
import { formatDateShort, t } from "@/shared/lib/i18n";
|
|
3
2
|
|
|
4
|
-
export type ProjectArtifactSort =
|
|
5
|
-
| "updated-desc"
|
|
6
|
-
| "updated-asc"
|
|
7
|
-
| "created-desc"
|
|
8
|
-
| "name";
|
|
9
|
-
|
|
10
|
-
export const DEFAULT_PROJECT_ARTIFACT_SORT: ProjectArtifactSort =
|
|
11
|
-
"updated-desc";
|
|
12
|
-
|
|
13
3
|
export function joinProjectPath(
|
|
14
4
|
rootPath: string,
|
|
15
5
|
relativePath: string,
|
|
@@ -19,43 +9,6 @@ export function joinProjectPath(
|
|
|
19
9
|
return `${rootPath}${separator}${relativePath}`;
|
|
20
10
|
}
|
|
21
11
|
|
|
22
|
-
function timestamp(value?: string): number {
|
|
23
|
-
if (!value) return Number.NEGATIVE_INFINITY;
|
|
24
|
-
const parsed = new Date(value).getTime();
|
|
25
|
-
return Number.isNaN(parsed) ? Number.NEGATIVE_INFINITY : parsed;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function byName(
|
|
29
|
-
left: ProjectObservationSnapshot["artifacts"][number],
|
|
30
|
-
right: ProjectObservationSnapshot["artifacts"][number],
|
|
31
|
-
): number {
|
|
32
|
-
return left.path.localeCompare(right.path);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function sortProjectArtifacts(
|
|
36
|
-
artifacts: ProjectObservationSnapshot["artifacts"],
|
|
37
|
-
sort: ProjectArtifactSort = DEFAULT_PROJECT_ARTIFACT_SORT,
|
|
38
|
-
): ProjectObservationSnapshot["artifacts"] {
|
|
39
|
-
return [...artifacts].sort((left, right) => {
|
|
40
|
-
if (sort === "name") return byName(left, right);
|
|
41
|
-
const leftTimestamp = timestamp(
|
|
42
|
-
sort === "created-desc"
|
|
43
|
-
? (left.fileCreatedAt ?? left.fileUpdatedAt)
|
|
44
|
-
: (left.fileUpdatedAt ?? left.fileCreatedAt),
|
|
45
|
-
);
|
|
46
|
-
const rightTimestamp = timestamp(
|
|
47
|
-
sort === "created-desc"
|
|
48
|
-
? (right.fileCreatedAt ?? right.fileUpdatedAt)
|
|
49
|
-
: (right.fileUpdatedAt ?? right.fileCreatedAt),
|
|
50
|
-
);
|
|
51
|
-
const order =
|
|
52
|
-
sort === "updated-asc"
|
|
53
|
-
? leftTimestamp - rightTimestamp
|
|
54
|
-
: rightTimestamp - leftTimestamp;
|
|
55
|
-
return order || byName(left, right);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
12
|
export function formatProjectRelativeTime(
|
|
60
13
|
value?: string,
|
|
61
14
|
now: Date = new Date(),
|
|
@@ -6,28 +6,22 @@
|
|
|
6
6
|
"projectsSkills": "Skills",
|
|
7
7
|
"projectsSkillsCountSuffix": "skills",
|
|
8
8
|
"projectsAgreement": "Working rules",
|
|
9
|
-
"
|
|
9
|
+
"projectsAgreementFile": "AGENTS.md",
|
|
10
|
+
"projectsAgreementDescription": "Project working rules come from AGENTS.md at the project root.",
|
|
11
|
+
"projectsAgreementOpen": "Open working rules",
|
|
12
|
+
"projectsNoAgreement": "No AGENTS.md exists at the project root",
|
|
10
13
|
"projectsLoading": "Loading project…",
|
|
11
14
|
"projectsLoadFailed": "Failed to load project",
|
|
12
15
|
"projectsEmpty": "No registered projects",
|
|
13
16
|
"projectsChoose": "Choose a project",
|
|
17
|
+
"projectsMoreActions": "More actions for {name}",
|
|
14
18
|
"projectsRemoveFromList": "Remove from project list",
|
|
15
19
|
"projectsRemoveConfirmTitle": "Remove from project list",
|
|
16
20
|
"projectsRemoveConfirmDescription": "The local folder, previous sessions, and project work records will not be deleted. Existing sessions remain available in the session list, and adding the same folder again restores the original project.",
|
|
17
21
|
"projectsRemoveConfirmAction": "Remove project",
|
|
18
22
|
"projectsRemoveSuccess": "Project removed from the list",
|
|
19
23
|
"projectsRemoveFailed": "Failed to remove project",
|
|
20
|
-
"
|
|
21
|
-
"projectsQuality": "Data quality",
|
|
22
|
-
"projectsQuality_complete": "Complete",
|
|
23
|
-
"projectsQuality_partial": "Partially available",
|
|
24
|
-
"projectsQuality_unavailable": "Unavailable",
|
|
25
|
-
"projectsNoSummary": "This project has no configured summary. Existing sources remain available under Working rules.",
|
|
26
|
-
"projectsObservationSetupTitle": "Set up project observation",
|
|
27
|
-
"projectsObservationSetupDescription": "This project has no observation convention yet. Ask AI to inspect existing materials, recommend a work-item lifecycle and artifact scope, and prepare the project configuration, always-on rule, and project tracking Skill. Nothing is written until you confirm.",
|
|
28
|
-
"projectsObservationSetupAction": "Let AI set up project observation",
|
|
29
|
-
"projectsObservationSetupPrompt": "Follow the built-in project observation setup guidance to establish a durable work-tracking convention for this project. Read the existing materials, then directly propose one editable recommendation containing all three assets: .nextclaw/project.yaml, the minimal always-on section in the root AGENTS.md, and the project-specific .agents/skills/project-work-tracking/SKILL.md. A Workflow describes how one work item progresses; it is not the macro lifecycle of the whole project. Markers must be emitted before a stage starts, never batched at the end. Do not turn this into a long interview; recommend directly when the evidence is sufficient. Write nothing until I confirm, then write and verify all three files together.",
|
|
30
|
-
"projectsNoData": "No observable data",
|
|
24
|
+
"projectsNoData": "No work items in this view",
|
|
31
25
|
"projectsUnavailable": "Currently unavailable",
|
|
32
26
|
"projectsWorkList": "List",
|
|
33
27
|
"projectsWorkBoard": "Board",
|
|
@@ -35,64 +29,19 @@
|
|
|
35
29
|
"projectsWorkViews": "Work item views",
|
|
36
30
|
"projectsWorkDetails": "Work item details",
|
|
37
31
|
"projectsCloseDetails": "Close details",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"projectsWorkNoSessions": "No conversation has started in this project yet. Once substantive project work begins, AI-reported progress will appear here.",
|
|
41
|
-
"projectsWorkNoReports": "AI has not explicitly reported any work items from the existing project conversations yet. Real progress will appear here as the work continues.",
|
|
42
|
-
"projectsAiActivity": "AI runs",
|
|
43
|
-
"projectsAiRun": "Project session",
|
|
44
|
-
"projectsRunUnreported": "Work item and stage not reported yet",
|
|
45
|
-
"projectsRunState_running": "Running",
|
|
46
|
-
"projectsRunState_completed": "Finished",
|
|
47
|
-
"projectsRunState_failed": "Failed",
|
|
48
|
-
"projectsRunState_cancelled": "Cancelled",
|
|
49
|
-
"projectsRunState_idle": "Idle",
|
|
50
|
-
"projectsStartProjectWork": "Start project work",
|
|
51
|
-
"projectsStartProjectWorkPrompt": "Start working on this project. First read the project configuration and the materials relevant to this goal; I will add or revise the specific goal before sending.",
|
|
52
|
-
"projectsBoardNeedsWorkflow": "No workflow stages are available. The board does not invent stages.",
|
|
53
|
-
"projectsGanttNeedsSchedule": "No schedule markers are available. The Gantt view does not infer dates from files.",
|
|
54
|
-
"projectsUnstaged": "Stage not reported",
|
|
55
|
-
"projectsStage": "Stage",
|
|
56
|
-
"projectsSchedule": "Schedule",
|
|
57
|
-
"projectsNoArtifacts": "No artifacts matched by configuration or reported by AI",
|
|
58
|
-
"projectsNoSkills": "No project Skills are available",
|
|
59
|
-
"projectsNoContext": "No vision or working-rule sources are configured",
|
|
60
|
-
"projectsRequests": "Waiting for your reply",
|
|
61
|
-
"projectsConfirm": "Confirm",
|
|
62
|
-
"projectsReject": "Reject",
|
|
63
|
-
"projectsResponseSent": "Reply sent; waiting for AI to update",
|
|
64
|
-
"projectsResponseWaiting": "Replied; waiting for AI to update",
|
|
65
|
-
"projectsResponseFailed": "Failed to send reply",
|
|
32
|
+
"projectsNoArtifacts": "No linked artifacts yet. Link a file from a work item to show it here.",
|
|
33
|
+
"projectsNoSkills": "No project Skills found in .agents/skills",
|
|
66
34
|
"projectsActivity": "Recent activity",
|
|
67
|
-
"projectsNoActivity": "No AI-reported activity",
|
|
68
|
-
"projectsOpenSession": "Open source session",
|
|
69
|
-
"projectsAttention": "Needs attention",
|
|
70
|
-
"projectsNoAttention": "No open attention signals",
|
|
71
|
-
"projectsSourceHealth": "Sources and diagnostics",
|
|
72
35
|
"projectsArtifactsCountSuffix": "artifacts",
|
|
73
36
|
"projectsArtifactsSearchPlaceholder": "Search artifacts",
|
|
74
37
|
"projectsArtifactsShowMore": "Show more",
|
|
75
38
|
"projectsArtifactsNoMatches": "No matching artifacts",
|
|
76
|
-
"projectsArtifactsSort": "Sort",
|
|
77
|
-
"projectsArtifactsSortUpdatedDesc": "Recently updated",
|
|
78
|
-
"projectsArtifactsSortUpdatedAsc": "Oldest updated",
|
|
79
|
-
"projectsArtifactsSortCreatedDesc": "Recently created",
|
|
80
|
-
"projectsArtifactsSortName": "File name",
|
|
81
39
|
"projectsTimeJustNow": "Just now",
|
|
82
40
|
"projectsTimeMinutesAgo": "{count} minutes ago",
|
|
83
41
|
"projectsTimeHoursAgo": "{count} hours ago",
|
|
84
42
|
"projectsTimeYesterday": "Yesterday",
|
|
85
43
|
"projectsTimeDaysAgo": "{count} days ago",
|
|
86
|
-
"projectsReadable": "Readable",
|
|
87
44
|
"projectsStatus": "Status",
|
|
88
|
-
"projectsUpdated": "Updated",
|
|
89
|
-
"projectsStatus_active": "Active",
|
|
90
|
-
"projectsStatus_blocked": "Blocked",
|
|
91
|
-
"projectsStatus_completed": "Completed",
|
|
92
|
-
"projectsStatus_cancelled": "Cancelled",
|
|
93
|
-
"projectsSource_available": "Available",
|
|
94
|
-
"projectsSource_empty": "No data",
|
|
95
|
-
"projectsSource_error": "Failed",
|
|
96
45
|
"projectsWorkNewItem": "Add a work item",
|
|
97
46
|
"projectsWorkEmpty": "No work items yet. Add one here or ask AI from a project conversation.",
|
|
98
47
|
"projectsWorkShowDeleted": "Show deleted work items",
|
|
@@ -6,28 +6,22 @@
|
|
|
6
6
|
"projectsSkills": "Skills",
|
|
7
7
|
"projectsSkillsCountSuffix": "个 Skills",
|
|
8
8
|
"projectsAgreement": "工作约定",
|
|
9
|
-
"
|
|
9
|
+
"projectsAgreementFile": "AGENTS.md",
|
|
10
|
+
"projectsAgreementDescription": "项目工作约定统一来自项目根目录的 AGENTS.md。",
|
|
11
|
+
"projectsAgreementOpen": "打开工作约定",
|
|
12
|
+
"projectsNoAgreement": "项目根目录还没有 AGENTS.md",
|
|
10
13
|
"projectsLoading": "正在读取项目…",
|
|
11
14
|
"projectsLoadFailed": "项目读取失败",
|
|
12
15
|
"projectsEmpty": "还没有注册项目",
|
|
13
16
|
"projectsChoose": "选择项目",
|
|
17
|
+
"projectsMoreActions": "{name} 的更多操作",
|
|
14
18
|
"projectsRemoveFromList": "从项目列表移除",
|
|
15
19
|
"projectsRemoveConfirmTitle": "从项目列表移除",
|
|
16
20
|
"projectsRemoveConfirmDescription": "本地目录、历史会话和项目工作记录不会删除。已有会话仍可在会话列表中使用;以后重新添加同一目录时,会恢复原项目。",
|
|
17
21
|
"projectsRemoveConfirmAction": "移除项目",
|
|
18
22
|
"projectsRemoveSuccess": "项目已从列表移除",
|
|
19
23
|
"projectsRemoveFailed": "项目移除失败",
|
|
20
|
-
"
|
|
21
|
-
"projectsQuality": "数据质量",
|
|
22
|
-
"projectsQuality_complete": "完整",
|
|
23
|
-
"projectsQuality_partial": "部分可用",
|
|
24
|
-
"projectsQuality_unavailable": "暂不可用",
|
|
25
|
-
"projectsNoSummary": "项目没有配置摘要,可在工作约定中查看已有来源。",
|
|
26
|
-
"projectsObservationSetupTitle": "建立项目观察",
|
|
27
|
-
"projectsObservationSetupDescription": "项目还没有建立观察约定。让 AI 阅读已有材料,推荐工作项流程和产物范围,并同时准备项目配置、常驻规则与项目追踪 Skill;确认后再统一写入。",
|
|
28
|
-
"projectsObservationSetupAction": "让 AI 帮我建立项目观察",
|
|
29
|
-
"projectsObservationSetupPrompt": "请按内置的项目观察 setup 规范,为当前项目建立可持续生效的工作追踪约定。先读取已有材料,根据项目实际情况直接给出一套可修改的推荐,完整包含:.nextclaw/project.yaml、根 AGENTS.md 的最小常驻规则,以及 .agents/skills/project-work-tracking/SKILL.md 的项目日常追踪方法。Workflow 描述单个工作项如何推进,不是整个项目的宏观阶段。Marker 必须在节点开始前报告,不能在结束时批量补写。不要反复提问;信息足够时直接推荐。未经我确认不要写入,确认后一次写入并复核三份文件。",
|
|
30
|
-
"projectsNoData": "暂无可观测数据",
|
|
24
|
+
"projectsNoData": "当前没有工作项",
|
|
31
25
|
"projectsUnavailable": "暂不可用",
|
|
32
26
|
"projectsWorkList": "列表",
|
|
33
27
|
"projectsWorkBoard": "看板",
|
|
@@ -35,64 +29,19 @@
|
|
|
35
29
|
"projectsWorkViews": "工作项视图",
|
|
36
30
|
"projectsWorkDetails": "工作项详情",
|
|
37
31
|
"projectsCloseDetails": "关闭详情",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"projectsWorkNoSessions": "还没有在这个项目中开始会话。开始实际项目工作后,AI 报告的进展会显示在这里。",
|
|
41
|
-
"projectsWorkNoReports": "项目会话中还没有 AI 明确报告的工作项。继续实际工作后,真实进展会显示在这里。",
|
|
42
|
-
"projectsAiActivity": "AI 运行",
|
|
43
|
-
"projectsAiRun": "项目会话",
|
|
44
|
-
"projectsRunUnreported": "尚未报告工作项与阶段",
|
|
45
|
-
"projectsRunState_running": "运行中",
|
|
46
|
-
"projectsRunState_completed": "已结束",
|
|
47
|
-
"projectsRunState_failed": "运行失败",
|
|
48
|
-
"projectsRunState_cancelled": "已中止",
|
|
49
|
-
"projectsRunState_idle": "空闲",
|
|
50
|
-
"projectsStartProjectWork": "开始项目工作",
|
|
51
|
-
"projectsStartProjectWorkPrompt": "请开始处理这个项目。先读取项目配置和与本次目标相关的材料;我会在发送前补充或修改具体目标。",
|
|
52
|
-
"projectsBoardNeedsWorkflow": "没有可用的 Workflow 阶段;看板不会自动生成阶段。",
|
|
53
|
-
"projectsGanttNeedsSchedule": "没有 schedule Marker;甘特图不会从文件时间推断日期。",
|
|
54
|
-
"projectsUnstaged": "未声明阶段",
|
|
55
|
-
"projectsStage": "阶段",
|
|
56
|
-
"projectsSchedule": "计划",
|
|
57
|
-
"projectsNoArtifacts": "暂无配置匹配或 AI 标记的产物",
|
|
58
|
-
"projectsNoSkills": "项目目录中暂无可用 Skills",
|
|
59
|
-
"projectsNoContext": "项目没有配置愿景或工作约定来源",
|
|
60
|
-
"projectsRequests": "等待你回复",
|
|
61
|
-
"projectsConfirm": "确认",
|
|
62
|
-
"projectsReject": "拒绝",
|
|
63
|
-
"projectsResponseSent": "回复已发送,等待 AI 更新",
|
|
64
|
-
"projectsResponseWaiting": "已回复,等待 AI 更新",
|
|
65
|
-
"projectsResponseFailed": "回复发送失败",
|
|
32
|
+
"projectsNoArtifacts": "还没有关联产物。从工作项关联文件后会显示在这里。",
|
|
33
|
+
"projectsNoSkills": ".agents/skills 中暂无项目 Skills",
|
|
66
34
|
"projectsActivity": "最近动态",
|
|
67
|
-
"projectsNoActivity": "暂无 AI 报告的动态",
|
|
68
|
-
"projectsOpenSession": "打开原会话",
|
|
69
|
-
"projectsAttention": "待关注",
|
|
70
|
-
"projectsNoAttention": "暂无待关注信号",
|
|
71
|
-
"projectsSourceHealth": "来源与诊断",
|
|
72
35
|
"projectsArtifactsCountSuffix": "个产物",
|
|
73
36
|
"projectsArtifactsSearchPlaceholder": "搜索产物",
|
|
74
37
|
"projectsArtifactsShowMore": "显示更多",
|
|
75
38
|
"projectsArtifactsNoMatches": "没有匹配的产物",
|
|
76
|
-
"projectsArtifactsSort": "排序",
|
|
77
|
-
"projectsArtifactsSortUpdatedDesc": "最近更新",
|
|
78
|
-
"projectsArtifactsSortUpdatedAsc": "最早更新",
|
|
79
|
-
"projectsArtifactsSortCreatedDesc": "最近创建",
|
|
80
|
-
"projectsArtifactsSortName": "文件名",
|
|
81
39
|
"projectsTimeJustNow": "刚刚",
|
|
82
40
|
"projectsTimeMinutesAgo": "{count} 分钟前",
|
|
83
41
|
"projectsTimeHoursAgo": "{count} 小时前",
|
|
84
42
|
"projectsTimeYesterday": "昨天",
|
|
85
43
|
"projectsTimeDaysAgo": "{count} 天前",
|
|
86
|
-
"projectsReadable": "可读取",
|
|
87
44
|
"projectsStatus": "状态",
|
|
88
|
-
"projectsUpdated": "更新时间",
|
|
89
|
-
"projectsStatus_active": "进行中",
|
|
90
|
-
"projectsStatus_blocked": "受阻",
|
|
91
|
-
"projectsStatus_completed": "已完成",
|
|
92
|
-
"projectsStatus_cancelled": "已取消",
|
|
93
|
-
"projectsSource_available": "可用",
|
|
94
|
-
"projectsSource_empty": "暂无数据",
|
|
95
|
-
"projectsSource_error": "读取失败",
|
|
96
45
|
"projectsWorkNewItem": "添加工作项",
|
|
97
46
|
"projectsWorkEmpty": "还没有工作项。你可以在这里添加,也可以在项目会话中让 AI 创建。",
|
|
98
47
|
"projectsWorkShowDeleted": "显示已删除的工作项",
|