dominds 0.1.0
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/LICENSE +157 -0
- package/README.md +250 -0
- package/README.zh.md +161 -0
- package/dist/access-control.js +253 -0
- package/dist/cli/create.js +263 -0
- package/dist/cli/read.js +84 -0
- package/dist/cli/tui.js +199 -0
- package/dist/cli/webui.js +169 -0
- package/dist/cli.js +227 -0
- package/dist/dialog-factory.js +53 -0
- package/dist/dialog-global-registry.js +68 -0
- package/dist/dialog-instance-registry.js +78 -0
- package/dist/dialog-run-state.js +198 -0
- package/dist/dialog.js +1024 -0
- package/dist/evt-registry.js +103 -0
- package/dist/index.js +8 -0
- package/dist/llm/client.js +69 -0
- package/dist/llm/defaults.yaml +386 -0
- package/dist/llm/driver.js +3214 -0
- package/dist/llm/gen/anthropic.js +611 -0
- package/dist/llm/gen/codex.js +375 -0
- package/dist/llm/gen/mock.js +326 -0
- package/dist/llm/gen/openai.js +470 -0
- package/dist/llm/gen/registry.js +26 -0
- package/dist/llm/gen.js +2 -0
- package/dist/llm/tools-projection.js +37 -0
- package/dist/log.js +228 -0
- package/dist/mcp/config.js +230 -0
- package/dist/mcp/sdk-client.js +129 -0
- package/dist/mcp/server-runtime.js +57 -0
- package/dist/mcp/stdio-client.js +280 -0
- package/dist/mcp/supervisor.js +979 -0
- package/dist/mcp/tool-names.js +109 -0
- package/dist/minds/builtin/cmdr/persona.md +3 -0
- package/dist/minds/builtin/dijiang/knowledge.md +287 -0
- package/dist/minds/builtin/dijiang/persona.md +7 -0
- package/dist/minds/builtin/fuxi/persona.en.md +59 -0
- package/dist/minds/builtin/fuxi/persona.zh.md +49 -0
- package/dist/minds/builtin/pangu/persona.en.md +78 -0
- package/dist/minds/builtin/pangu/persona.zh.md +71 -0
- package/dist/minds/load.js +617 -0
- package/dist/minds/minds-i18n.js +131 -0
- package/dist/minds/system-prompt.js +281 -0
- package/dist/persistence.js +3128 -0
- package/dist/problems.js +109 -0
- package/dist/server/api-routes.js +1031 -0
- package/dist/server/auth.js +180 -0
- package/dist/server/mime-types.js +32 -0
- package/dist/server/prompts-routes.js +543 -0
- package/dist/server/server-core.js +235 -0
- package/dist/server/setup-routes.js +697 -0
- package/dist/server/static-server.js +132 -0
- package/dist/server/websocket-handler.js +1011 -0
- package/dist/server.js +164 -0
- package/dist/shared/async-fifo-mutex.js +36 -0
- package/dist/shared/diligence.js +20 -0
- package/dist/shared/dotenv.js +144 -0
- package/dist/shared/evt.js +195 -0
- package/dist/shared/i18n/driver-messages.js +267 -0
- package/dist/shared/i18n/text.js +9 -0
- package/dist/shared/i18n/tool-result-messages.js +51 -0
- package/dist/shared/rtws-cli.js +73 -0
- package/dist/shared/runtime-language.js +47 -0
- package/dist/shared/team-mgmt-manual.js +116 -0
- package/dist/shared/types/context-health.js +2 -0
- package/dist/shared/types/dialog.js +11 -0
- package/dist/shared/types/i18n.js +2 -0
- package/dist/shared/types/index.js +26 -0
- package/dist/shared/types/language.js +40 -0
- package/dist/shared/types/problems.js +2 -0
- package/dist/shared/types/prompts.js +2 -0
- package/dist/shared/types/q4h.js +7 -0
- package/dist/shared/types/run-state.js +8 -0
- package/dist/shared/types/setup.js +2 -0
- package/dist/shared/types/storage.js +10 -0
- package/dist/shared/types/tellask.js +8 -0
- package/dist/shared/types/tools-registry.js +2 -0
- package/dist/shared/types/wire.js +12 -0
- package/dist/shared/utils/fmt.js +9 -0
- package/dist/shared/utils/html.js +20 -0
- package/dist/shared/utils/id.js +18 -0
- package/dist/shared/utils/inter-dialog-format.js +101 -0
- package/dist/shared/utils/time.js +13 -0
- package/dist/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/static/assets/_baseUniq-Crfl3d5Y.js +661 -0
- package/dist/static/assets/_baseUniq-Crfl3d5Y.js.map +1 -0
- package/dist/static/assets/arc-CbA_x9GD.js +132 -0
- package/dist/static/assets/arc-CbA_x9GD.js.map +1 -0
- package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js +8685 -0
- package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js.map +1 -0
- package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js +3608 -0
- package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js.map +1 -0
- package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js +2482 -0
- package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js.map +1 -0
- package/dist/static/assets/channel-BVr1Yke-.js +8 -0
- package/dist/static/assets/channel-BVr1Yke-.js.map +1 -0
- package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js +17 -0
- package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js.map +1 -0
- package/dist/static/assets/chunk-55IACEB6-q172NeCV.js +14 -0
- package/dist/static/assets/chunk-55IACEB6-q172NeCV.js.map +1 -0
- package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js +1827 -0
- package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js.map +1 -0
- package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js +1916 -0
- package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js.map +1 -0
- package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js +20 -0
- package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js.map +1 -0
- package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js +25 -0
- package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js.map +1 -0
- package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js +18 -0
- package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js.map +1 -0
- package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js +109 -0
- package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js.map +1 -0
- package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js +23 -0
- package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js.map +1 -0
- package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js +23 -0
- package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js.map +1 -0
- package/dist/static/assets/clone-D2OgLSSn.js +9 -0
- package/dist/static/assets/clone-D2OgLSSn.js.map +1 -0
- package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js +4943 -0
- package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js.map +1 -0
- package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js +30240 -0
- package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -0
- package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js +695 -0
- package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js.map +1 -0
- package/dist/static/assets/defaultLocale-DVr69WTU.js +207 -0
- package/dist/static/assets/defaultLocale-DVr69WTU.js.map +1 -0
- package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js +849 -0
- package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js.map +1 -0
- package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js +303 -0
- package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js.map +1 -0
- package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js +213 -0
- package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js.map +1 -0
- package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js +1159 -0
- package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js.map +1 -0
- package/dist/static/assets/favicon-Cmg5RbCj.svg +8 -0
- package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js +2332 -0
- package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js.map +1 -0
- package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js +3681 -0
- package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js.map +1 -0
- package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js +1206 -0
- package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js.map +1 -0
- package/dist/static/assets/graph-CS0Pmm7c.js +597 -0
- package/dist/static/assets/graph-CS0Pmm7c.js.map +1 -0
- package/dist/static/assets/index-BS6HnGzC.js +112303 -0
- package/dist/static/assets/index-BS6HnGzC.js.map +1 -0
- package/dist/static/assets/index-DaIsSzC_.css +483 -0
- package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js +34 -0
- package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js.map +1 -0
- package/dist/static/assets/init-ZxktEp_H.js +17 -0
- package/dist/static/assets/init-ZxktEp_H.js.map +1 -0
- package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js +1255 -0
- package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js.map +1 -0
- package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js +1048 -0
- package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js.map +1 -0
- package/dist/static/assets/layout-8TGxpm23.js +2218 -0
- package/dist/static/assets/layout-8TGxpm23.js.map +1 -0
- package/dist/static/assets/linear-BATBPQQv.js +341 -0
- package/dist/static/assets/linear-BATBPQQv.js.map +1 -0
- package/dist/static/assets/min-B3oVH3AC.js +42 -0
- package/dist/static/assets/min-B3oVH3AC.js.map +1 -0
- package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js +1127 -0
- package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js.map +1 -0
- package/dist/static/assets/ordinal-CxptdPJm.js +77 -0
- package/dist/static/assets/ordinal-CxptdPJm.js.map +1 -0
- package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js +241 -0
- package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js.map +1 -0
- package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js +1338 -0
- package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js.map +1 -0
- package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js +1162 -0
- package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js.map +1 -0
- package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js +1195 -0
- package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js.map +1 -0
- package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js +3875 -0
- package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js.map +1 -0
- package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js +452 -0
- package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js.map +1 -0
- package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js +22 -0
- package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js.map +1 -0
- package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js +1223 -0
- package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js.map +1 -0
- package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js +18753 -0
- package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js.map +1 -0
- package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js +1888 -0
- package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js.map +1 -0
- package/dist/static/index.html +71 -0
- package/dist/static/testing/dom-observation-utils.js +425 -0
- package/dist/static/testing/e2e-test-helper.js +3119 -0
- package/dist/team.js +1160 -0
- package/dist/tellask.js +431 -0
- package/dist/tool.js +150 -0
- package/dist/tools/apply-patch.js +542 -0
- package/dist/tools/builtins.js +196 -0
- package/dist/tools/context-health.js +177 -0
- package/dist/tools/ctrl.js +478 -0
- package/dist/tools/diag.js +583 -0
- package/dist/tools/env.js +184 -0
- package/dist/tools/fs.js +818 -0
- package/dist/tools/mcp.js +138 -0
- package/dist/tools/mem.js +349 -0
- package/dist/tools/os.js +751 -0
- package/dist/tools/prompts/team_mgmt.en.md +70 -0
- package/dist/tools/prompts/team_mgmt.zh.md +70 -0
- package/dist/tools/prompts/ws_mod.en.md +86 -0
- package/dist/tools/prompts/ws_mod.zh.md +87 -0
- package/dist/tools/registry-snapshot.js +31 -0
- package/dist/tools/registry.js +121 -0
- package/dist/tools/ripgrep.js +678 -0
- package/dist/tools/team-mgmt.js +3300 -0
- package/dist/tools/txt.js +3178 -0
- package/dist/utils/id.js +72 -0
- package/dist/utils/task-doc.js +236 -0
- package/dist/utils/task-package.js +522 -0
- package/dist/utils/taskdoc-search.js +280 -0
- package/dist/utils/taskdoc.js +400 -0
- package/package.json +69 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatUserFacingLanguageGuide = formatUserFacingLanguageGuide;
|
|
4
|
+
exports.formatReminderItemGuide = formatReminderItemGuide;
|
|
5
|
+
exports.formatDomindsNoteTellaskForTeammatesOnly = formatDomindsNoteTellaskForTeammatesOnly;
|
|
6
|
+
exports.formatUserFacingContextHealthV3RemediationGuide = formatUserFacingContextHealthV3RemediationGuide;
|
|
7
|
+
exports.formatDomindsNoteSuperOnlyInSubdialog = formatDomindsNoteSuperOnlyInSubdialog;
|
|
8
|
+
exports.formatDomindsNoteSuperNoTellaskSession = formatDomindsNoteSuperNoTellaskSession;
|
|
9
|
+
exports.formatDomindsNoteDirectSelfCall = formatDomindsNoteDirectSelfCall;
|
|
10
|
+
exports.formatDomindsNoteMalformedTellaskCall = formatDomindsNoteMalformedTellaskCall;
|
|
11
|
+
exports.formatDomindsNoteInvalidMultiTeammateTargets = formatDomindsNoteInvalidMultiTeammateTargets;
|
|
12
|
+
exports.formatDomindsNoteInvalidTellaskSessionDirective = formatDomindsNoteInvalidTellaskSessionDirective;
|
|
13
|
+
exports.formatDomindsNoteMultipleTellaskSessionDirectives = formatDomindsNoteMultipleTellaskSessionDirectives;
|
|
14
|
+
const language_1 = require("../types/language");
|
|
15
|
+
function formatUserFacingLanguageGuide(workingLanguage, uiLanguage) {
|
|
16
|
+
const uiName = (0, language_1.formatLanguageName)(uiLanguage, workingLanguage);
|
|
17
|
+
const workingName = (0, language_1.formatLanguageName)(workingLanguage, workingLanguage);
|
|
18
|
+
if (workingLanguage === 'zh') {
|
|
19
|
+
if (uiLanguage === workingLanguage) {
|
|
20
|
+
return `用户可见回复语言:${uiName}。`;
|
|
21
|
+
}
|
|
22
|
+
return `用户可见回复语言:${uiName}。内部工作语言保持为:${workingName}(用于系统提示、队友诉请与工具调用)。`;
|
|
23
|
+
}
|
|
24
|
+
if (uiLanguage === workingLanguage) {
|
|
25
|
+
return `User-visible response language: ${uiName}.`;
|
|
26
|
+
}
|
|
27
|
+
return `User-visible response language: ${uiName}. Internal work language remains: ${workingName} (system prompt, teammate comms, tool calls).`;
|
|
28
|
+
}
|
|
29
|
+
function formatReminderItemGuide(language, index, content) {
|
|
30
|
+
if (language === 'zh') {
|
|
31
|
+
return `【提醒项 #${index}|高优先级工作集】
|
|
32
|
+
|
|
33
|
+
原则:提醒项应该是“高价值且不过时”的信息;我应优先用 update_reminder 维护它,避免堆很多条。
|
|
34
|
+
- 保留且仍然需要:把内容压缩为要点并 update_reminder(不要无限增大)。
|
|
35
|
+
- 已过时/不再需要:再 delete_reminder。
|
|
36
|
+
|
|
37
|
+
快速操作:
|
|
38
|
+
- 更新:update_reminder({ "reminder_no": ${index}, "content": "..." })
|
|
39
|
+
- 删除:delete_reminder({ "reminder_no": ${index} })
|
|
40
|
+
---
|
|
41
|
+
${content}`;
|
|
42
|
+
}
|
|
43
|
+
return `REMINDER ITEM #${index} (HIGH-PRIORITY WORKING SET)
|
|
44
|
+
|
|
45
|
+
Principle: reminders should be high-value and not stale; prefer update_reminder (curate) over creating many items.
|
|
46
|
+
- Still needed: compress and update_reminder (do not grow without bound).
|
|
47
|
+
- Not needed: delete_reminder.
|
|
48
|
+
|
|
49
|
+
Quick actions:
|
|
50
|
+
- Update: update_reminder({ "reminder_no": ${index}, "content": "..." })
|
|
51
|
+
- Delete: delete_reminder({ "reminder_no": ${index} })
|
|
52
|
+
---
|
|
53
|
+
${content}`;
|
|
54
|
+
}
|
|
55
|
+
function formatDomindsNoteTellaskForTeammatesOnly(language, args) {
|
|
56
|
+
const firstMention = args.firstMention;
|
|
57
|
+
if (language === 'zh') {
|
|
58
|
+
return (`错误:诉请(tellask)仅用于队友诉请(\`!?@<teammate>\`)。\n` +
|
|
59
|
+
`- 当前目标:\`@${firstMention}\` 不是已知队友呼号。\n` +
|
|
60
|
+
`- 若你要调用工具:请使用原生 function-calling(函数工具),不要在文本中输出 \`!?@tool\`。\n` +
|
|
61
|
+
`- 若你要找队友:请确认呼号(如 \`!?@pangu\` / \`!?@super\` / \`!?@self\`)。`);
|
|
62
|
+
}
|
|
63
|
+
return (`Error: tellask is reserved for teammate tellasks (\`!?@<teammate>\`).\n` +
|
|
64
|
+
`- Current target: \`@${firstMention}\` is not a known teammate call sign.\n` +
|
|
65
|
+
`- If you intended to call a tool: use native function-calling; do not emit \`!?@tool\` in text.\n` +
|
|
66
|
+
`- If you intended to call a teammate: double-check the call sign (e.g. \`!?@pangu\` / \`!?@super\` / \`!?@self\`).`);
|
|
67
|
+
}
|
|
68
|
+
function formatUserFacingContextHealthV3RemediationGuide(language, args) {
|
|
69
|
+
const reentryTemplateZh = [
|
|
70
|
+
'## 重入包(差遣牒未提及的工作交接细节)',
|
|
71
|
+
'- 继续工作的第一步(可执行):',
|
|
72
|
+
'- 关键定位(文件/符号/搜索词):',
|
|
73
|
+
'- 运行/验证(命令、端口、环境变量):',
|
|
74
|
+
'- 易丢失的临时细节(路径/ID/URL/样例输入):',
|
|
75
|
+
].join('\n');
|
|
76
|
+
const reentryTemplateEn = [
|
|
77
|
+
'## Re-entry package (handoff details not covered in Taskdoc)',
|
|
78
|
+
'- First actionable step:',
|
|
79
|
+
'- Key pointers (files/symbols/search terms):',
|
|
80
|
+
'- Run/verify (commands, ports, env vars):',
|
|
81
|
+
'- Easy-to-lose ephemeral details (paths/ids/urls/sample inputs):',
|
|
82
|
+
].join('\n');
|
|
83
|
+
if (language === 'zh') {
|
|
84
|
+
if (args.kind === 'caution' && args.mode === 'soft') {
|
|
85
|
+
return [
|
|
86
|
+
'上下文状态:🟡 吃紧',
|
|
87
|
+
'',
|
|
88
|
+
'影响:对话历史中的工具调用/结果信息很多已经过时,成为你的思考负担和判断力干扰因素。',
|
|
89
|
+
'',
|
|
90
|
+
'你只有通过调用 clear_mind 才能丢弃这些垃圾信息,恢复清醒的头脑。',
|
|
91
|
+
'“重入包”是你在下一轮对话中无间断继续工作的关键,所以你需要尽快把它准备好。',
|
|
92
|
+
'',
|
|
93
|
+
'你必须在本轮至少调用一次提醒项维护工具(优先 update_reminder;也可 add_reminder)。',
|
|
94
|
+
'目标:把“重入包草稿”维护进提醒项,让你尽快建立信心和意愿 **自主** clear_mind 进入新一轮/新回合。',
|
|
95
|
+
'',
|
|
96
|
+
'同时建议你在提醒项里明确写出:',
|
|
97
|
+
'“基于以上信息,还差……就可以完成重入包,从而安全 clear_mind 进入新一轮/新回合”。',
|
|
98
|
+
'',
|
|
99
|
+
'可选动作(至少一个,允许多次调用):',
|
|
100
|
+
'- update_reminder({ "reminder_no": 1, "content": "<维护后的提醒项>" }) (推荐)',
|
|
101
|
+
'- add_reminder({ "content": "<新增的提醒项>", "position": 0 })',
|
|
102
|
+
'',
|
|
103
|
+
'提示:在你自主调用 clear_mind 之前,系统会时常再次提醒你。',
|
|
104
|
+
].join('\n');
|
|
105
|
+
}
|
|
106
|
+
return [
|
|
107
|
+
`上下文状态:🔴 告急`,
|
|
108
|
+
'',
|
|
109
|
+
`为保持长程自动运行,系统最多再提醒你 ${args.promptsRemainingAfterThis} 次,然后将自动强制 clear_mind 以开启新一轮/新回合对话。`,
|
|
110
|
+
'',
|
|
111
|
+
'你应在本轮尽快执行(允许多次调用):',
|
|
112
|
+
'1) 用 update_reminder / add_reminder 把“重入包(best effort)”维护进提醒项(压缩为少量、高价值条目)。',
|
|
113
|
+
'2) 然后 clear_mind 开启新一轮/新回合,让后续工作在更小的上下文中继续。',
|
|
114
|
+
'',
|
|
115
|
+
'快速操作:',
|
|
116
|
+
'- update_reminder({ "reminder_no": 1, "content": "<维护后的提醒项>" }) (推荐)',
|
|
117
|
+
'- add_reminder({ "content": "<新增的提醒项>", "position": 0 })',
|
|
118
|
+
'',
|
|
119
|
+
'然后建议你主动执行:',
|
|
120
|
+
'- clear_mind({ "reminder_content": "" }) (可选:为空也可;系统会保留已维护的提醒项)',
|
|
121
|
+
'',
|
|
122
|
+
reentryTemplateZh,
|
|
123
|
+
].join('\n');
|
|
124
|
+
}
|
|
125
|
+
if (args.kind === 'caution' && args.mode === 'soft') {
|
|
126
|
+
return [
|
|
127
|
+
'Context state: 🟡 caution',
|
|
128
|
+
'',
|
|
129
|
+
'Impact: the dialog contains lots of stale tool calls/results, which becomes cognitive noise and can degrade your judgment.',
|
|
130
|
+
'',
|
|
131
|
+
'You can only drop this noise by calling clear_mind.',
|
|
132
|
+
'A “re-entry package” is the key to continuing work without interruption after starting a new round, so you should prepare it as soon as possible.',
|
|
133
|
+
'',
|
|
134
|
+
'In this turn, you must call at least one reminder-curation tool (prefer update_reminder; add_reminder is also OK).',
|
|
135
|
+
'Goal: maintain a re-entry-package draft inside reminders so you can confidently clear_mind autonomously and start a new round.',
|
|
136
|
+
'',
|
|
137
|
+
'Allowed actions (at least one; multiple calls are OK):',
|
|
138
|
+
'- update_reminder({ "reminder_no": 1, "content": "<updated reminder>" }) (preferred)',
|
|
139
|
+
'- add_reminder({ "content": "<new reminder>", "position": 0 })',
|
|
140
|
+
'',
|
|
141
|
+
'Note: until you clear_mind, the system will periodically remind you again.',
|
|
142
|
+
].join('\n');
|
|
143
|
+
}
|
|
144
|
+
return [
|
|
145
|
+
`Context state: 🔴 critical`,
|
|
146
|
+
'',
|
|
147
|
+
`To keep long-running autonomy stable, the system will remind you at most ${args.promptsRemainingAfterThis} more time(s), then it will automatically force clear_mind to start a new round/new turn dialog.`,
|
|
148
|
+
'',
|
|
149
|
+
'In this turn, do this as soon as possible (multiple calls are OK):',
|
|
150
|
+
'',
|
|
151
|
+
'1) Curate reminders via update_reminder / add_reminder to maintain a best-effort re-entry package.',
|
|
152
|
+
'2) Then clear_mind to start a new round so work continues with a smaller context.',
|
|
153
|
+
'',
|
|
154
|
+
'Quick actions:',
|
|
155
|
+
'- update_reminder({ "reminder_no": 1, "content": "<updated reminder>" }) (preferred)',
|
|
156
|
+
'- add_reminder({ "content": "<new reminder>", "position": 0 })',
|
|
157
|
+
'',
|
|
158
|
+
'Then, you should proactively execute:',
|
|
159
|
+
'- clear_mind({ "reminder_content": "" }) (optional: empty is OK; curated reminders are preserved)',
|
|
160
|
+
'',
|
|
161
|
+
reentryTemplateEn,
|
|
162
|
+
].join('\n');
|
|
163
|
+
}
|
|
164
|
+
function formatDomindsNoteSuperOnlyInSubdialog(language) {
|
|
165
|
+
if (language === 'zh') {
|
|
166
|
+
return ('Dominds 提示:`!?@super` 只在子对话(subdialog)中有效,用于诉请直接父对话(supdialog)。' +
|
|
167
|
+
'补充:父对话不一定是主对话/根对话;差遣牒(`*.tsk/`)通常由主对话/根对话维护人统一更新。' +
|
|
168
|
+
'你当前不在子对话中,因此没有父对话可诉请。');
|
|
169
|
+
}
|
|
170
|
+
return ('Dominds note: `!?@super` is only valid inside a subdialog and calls the direct parent (supdialog). ' +
|
|
171
|
+
'You are currently not in a subdialog, so there is no parent to call.');
|
|
172
|
+
}
|
|
173
|
+
function formatDomindsNoteSuperNoTellaskSession(language) {
|
|
174
|
+
if (language === 'zh') {
|
|
175
|
+
return ('Dominds 提示:`!?@super` 是 Type A 的 supdialog 诉请,不接受 `!tellaskSession`。' +
|
|
176
|
+
'请使用不带 `!tellaskSession` 的 `!?@super`;或使用 `!?@self !tellaskSession <tellaskSession>` / `!?@<agentId> !tellaskSession <tellaskSession>` 来触发 Type B。');
|
|
177
|
+
}
|
|
178
|
+
return ('Dominds note: `!?@super` is a Type A supdialog call and does not accept `!tellaskSession`. ' +
|
|
179
|
+
'Use `!?@super` with NO `!tellaskSession`, or use `!?@self !tellaskSession <tellaskSession>` / `!?@<agentId> !tellaskSession <tellaskSession>` for Type B.');
|
|
180
|
+
}
|
|
181
|
+
function formatDomindsNoteDirectSelfCall(language) {
|
|
182
|
+
if (language === 'zh') {
|
|
183
|
+
return ('Dominds 提示:该诉请目标是当前 agent(自诉请/self-call)。' +
|
|
184
|
+
'Fresh Boots Reasoning 通常应使用 `!?@self`(不带 `!tellaskSession`)来创建一次性的 fresh boots 会话;' +
|
|
185
|
+
'仅在你明确需要可恢复的长期子对话时才使用 `!?@self !tellaskSession <tellaskSession>`。该诉请将继续执行。');
|
|
186
|
+
}
|
|
187
|
+
return ('Dominds note: This call targets the current agent (self-call). ' +
|
|
188
|
+
'Fresh Boots Reasoning should usually use `!?@self` (no `!tellaskSession`) for an ephemeral fresh boots session; use ' +
|
|
189
|
+
'`!?@self !tellaskSession <tellaskSession>` only when you explicitly want a resumable long-lived subdialog. This call will proceed.');
|
|
190
|
+
}
|
|
191
|
+
function formatDomindsNoteMalformedTellaskCall(language, reason, options) {
|
|
192
|
+
const firstLine = options?.firstLineAfterPrefix?.trim() ?? '';
|
|
193
|
+
const got = firstLine !== '' ? `\n\nGot: \`!?${firstLine}\`` : '';
|
|
194
|
+
if (language === 'zh') {
|
|
195
|
+
switch (reason) {
|
|
196
|
+
case 'missing_mention_prefix': {
|
|
197
|
+
return ('ERR_MALFORMED_TELLASK\n' +
|
|
198
|
+
'Dominds 提示:这段内容被解析为“诉请块”,但第一行不是有效的诉请头。\n\n' +
|
|
199
|
+
'规则:诉请块第一行必须以 `!?@<mention-id>` 开头,例如:`!?@pangu`。\n' +
|
|
200
|
+
'如果你只是想写普通 markdown,请不要在行首使用 `!?`。' +
|
|
201
|
+
got);
|
|
202
|
+
}
|
|
203
|
+
case 'invalid_mention_id': {
|
|
204
|
+
return ('ERR_MALFORMED_TELLASK\n' +
|
|
205
|
+
'Dominds 提示:这段内容被解析为“诉请块”,但 `!?@` 后的 mention-id 为空或无效。\n\n' +
|
|
206
|
+
'规则:第一行必须是 `!?@<mention-id>`(mention-id 不能为空),例如:`!?@pangu`。' +
|
|
207
|
+
got);
|
|
208
|
+
}
|
|
209
|
+
default: {
|
|
210
|
+
const _exhaustive = reason;
|
|
211
|
+
return _exhaustive;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
switch (reason) {
|
|
216
|
+
case 'missing_mention_prefix': {
|
|
217
|
+
return ('ERR_MALFORMED_TELLASK\n' +
|
|
218
|
+
'Dominds note: This content was parsed as a tellask block, but the first line is not a valid tellask headline.\n\n' +
|
|
219
|
+
'Rule: the first line must start with `!?@<mention-id>`, e.g. `!?@pangu`.\n' +
|
|
220
|
+
'If you want normal markdown, do not start the line with `!?`.' +
|
|
221
|
+
got);
|
|
222
|
+
}
|
|
223
|
+
case 'invalid_mention_id': {
|
|
224
|
+
return ('ERR_MALFORMED_TELLASK\n' +
|
|
225
|
+
'Dominds note: This content was parsed as a tellask block, but the mention-id after `!?@` is empty or invalid.\n\n' +
|
|
226
|
+
'Rule: the first line must be `!?@<mention-id>` (mention-id cannot be empty), e.g. `!?@pangu`.' +
|
|
227
|
+
got);
|
|
228
|
+
}
|
|
229
|
+
default: {
|
|
230
|
+
const _exhaustive = reason;
|
|
231
|
+
return _exhaustive;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
function formatDomindsNoteInvalidMultiTeammateTargets(language, options) {
|
|
236
|
+
const unknown = options.unknown.map((id) => `@${id}`).join(', ');
|
|
237
|
+
if (language === 'zh') {
|
|
238
|
+
return ('ERR_INVALID_MULTI_TEAMMATE_TARGETS\n' +
|
|
239
|
+
`Dominds 提示:这条队友诉请包含未知队友呼号:${unknown}\n\n` +
|
|
240
|
+
'在队友诉请中,headline 里出现的队友呼号会被视为 collective targets 并被 fan-out(共享同一 headLine+callBody)。\n' +
|
|
241
|
+
'请确认这些呼号是否存在于团队目录中;若你只是想写字面量 `@something`,请用反引号包裹(例如 `@something`)。');
|
|
242
|
+
}
|
|
243
|
+
return ('ERR_INVALID_MULTI_TEAMMATE_TARGETS\n' +
|
|
244
|
+
`Dominds note: This teammate tellask includes unknown teammate id(s): ${unknown}\n\n` +
|
|
245
|
+
'In teammate tellasks, teammate mentions inside the headline are treated as collective targets and fanned out (shared headLine+callBody).\n' +
|
|
246
|
+
'Confirm those ids exist in the team roster; if you meant a literal `@something`, wrap it in backticks (e.g., `@something`).');
|
|
247
|
+
}
|
|
248
|
+
function formatDomindsNoteInvalidTellaskSessionDirective(language) {
|
|
249
|
+
if (language === 'zh') {
|
|
250
|
+
return ('ERR_INVALID_TELLASK_SESSION_DIRECTIVE\n' +
|
|
251
|
+
'Dominds 提示:检测到 `!tellaskSession` 指令,但 tellaskSession 无效。\n\n' +
|
|
252
|
+
'规则:`!tellaskSession <tellaskSession>` 的 tellaskSession 必须满足 `^[a-zA-Z][a-zA-Z0-9_-]*(\\.[a-zA-Z0-9_-]+)*$`。');
|
|
253
|
+
}
|
|
254
|
+
return ('ERR_INVALID_TELLASK_SESSION_DIRECTIVE\n' +
|
|
255
|
+
'Dominds note: Detected a `!tellaskSession` directive, but the tellaskSession is invalid.\n\n' +
|
|
256
|
+
'Rule: `!tellaskSession <tellaskSession>` must match `^[a-zA-Z][a-zA-Z0-9_-]*(\\.[a-zA-Z0-9_-]+)*$`.');
|
|
257
|
+
}
|
|
258
|
+
function formatDomindsNoteMultipleTellaskSessionDirectives(language) {
|
|
259
|
+
if (language === 'zh') {
|
|
260
|
+
return ('ERR_MULTIPLE_TELLASK_SESSION_DIRECTIVES\n' +
|
|
261
|
+
'Dominds 提示:同一条诉请的 headline 中出现了多个 `!tellaskSession` 指令。\n\n' +
|
|
262
|
+
'规则:每条诉请最多只能包含一个 `!tellaskSession <tellaskSession>`(对 collective teammate tellask,该 tellaskSession 会对所有目标队友生效)。');
|
|
263
|
+
}
|
|
264
|
+
return ('ERR_MULTIPLE_TELLASK_SESSION_DIRECTIVES\n' +
|
|
265
|
+
'Dominds note: Multiple `!tellaskSession` directives were found in the headline.\n\n' +
|
|
266
|
+
'Rule: a tellask may include at most one `!tellaskSession <tellaskSession>` (for collective teammate tellasks, the same tellaskSession applies to all targets).');
|
|
267
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTextForLanguage = getTextForLanguage;
|
|
4
|
+
function getTextForLanguage(value, language) {
|
|
5
|
+
const i18n = value.i18n;
|
|
6
|
+
if (i18n)
|
|
7
|
+
return i18n[language];
|
|
8
|
+
return value.fallback ?? '';
|
|
9
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatToolOk = formatToolOk;
|
|
4
|
+
exports.formatToolError = formatToolError;
|
|
5
|
+
exports.formatToolActionResult = formatToolActionResult;
|
|
6
|
+
function formatToolOk(language) {
|
|
7
|
+
return language === 'zh' ? '完成' : 'OK';
|
|
8
|
+
}
|
|
9
|
+
function formatToolError(language) {
|
|
10
|
+
return language === 'zh' ? '错误' : 'Error';
|
|
11
|
+
}
|
|
12
|
+
function formatToolActionResult(language, action) {
|
|
13
|
+
if (language === 'zh') {
|
|
14
|
+
switch (action) {
|
|
15
|
+
case 'added':
|
|
16
|
+
return '已添加';
|
|
17
|
+
case 'deleted':
|
|
18
|
+
return '已删除';
|
|
19
|
+
case 'updated':
|
|
20
|
+
return '已更新';
|
|
21
|
+
case 'cleared':
|
|
22
|
+
return '已清空';
|
|
23
|
+
case 'mindCleared':
|
|
24
|
+
return '已清理思路';
|
|
25
|
+
case 'mindChanged':
|
|
26
|
+
return '已更新思路';
|
|
27
|
+
default: {
|
|
28
|
+
const _exhaustive = action;
|
|
29
|
+
return _exhaustive;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
switch (action) {
|
|
34
|
+
case 'added':
|
|
35
|
+
return 'Added';
|
|
36
|
+
case 'deleted':
|
|
37
|
+
return 'Deleted';
|
|
38
|
+
case 'updated':
|
|
39
|
+
return 'Updated';
|
|
40
|
+
case 'cleared':
|
|
41
|
+
return 'Cleared';
|
|
42
|
+
case 'mindCleared':
|
|
43
|
+
return 'Mind cleared';
|
|
44
|
+
case 'mindChanged':
|
|
45
|
+
return 'Mind changed';
|
|
46
|
+
default: {
|
|
47
|
+
const _exhaustive = action;
|
|
48
|
+
return _exhaustive;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.extractGlobalRtwsChdir = extractGlobalRtwsChdir;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
function extractGlobalRtwsChdir(params) {
|
|
39
|
+
let chdir;
|
|
40
|
+
const out = [];
|
|
41
|
+
for (let i = 0; i < params.argv.length; i++) {
|
|
42
|
+
const arg = params.argv[i];
|
|
43
|
+
if (arg === '--') {
|
|
44
|
+
out.push(...params.argv.slice(i));
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
if (arg === '-C' || arg === '--cwd' || arg === '--chdir') {
|
|
48
|
+
const next = params.argv[i + 1];
|
|
49
|
+
if (typeof next !== 'string' || next.length === 0 || next === '--') {
|
|
50
|
+
throw new Error(`${arg} requires a directory argument`);
|
|
51
|
+
}
|
|
52
|
+
chdir = path.isAbsolute(next) ? next : path.resolve(params.baseCwd, next);
|
|
53
|
+
i++;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (arg.startsWith('--cwd=')) {
|
|
57
|
+
const value = arg.slice('--cwd='.length);
|
|
58
|
+
if (value.length === 0)
|
|
59
|
+
throw new Error(`--cwd requires a directory argument`);
|
|
60
|
+
chdir = path.isAbsolute(value) ? value : path.resolve(params.baseCwd, value);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (arg.startsWith('--chdir=')) {
|
|
64
|
+
const value = arg.slice('--chdir='.length);
|
|
65
|
+
if (value.length === 0)
|
|
66
|
+
throw new Error(`--chdir requires a directory argument`);
|
|
67
|
+
chdir = path.isAbsolute(value) ? value : path.resolve(params.baseCwd, value);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
out.push(arg);
|
|
71
|
+
}
|
|
72
|
+
return { chdir, argv: out };
|
|
73
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getWorkLanguage = getWorkLanguage;
|
|
4
|
+
exports.setWorkLanguage = setWorkLanguage;
|
|
5
|
+
exports.detectOsDefaultWorkLanguage = detectOsDefaultWorkLanguage;
|
|
6
|
+
exports.resolveWorkLanguage = resolveWorkLanguage;
|
|
7
|
+
const language_1 = require("./types/language");
|
|
8
|
+
let workingLanguage = 'en';
|
|
9
|
+
function getWorkLanguage() {
|
|
10
|
+
return workingLanguage;
|
|
11
|
+
}
|
|
12
|
+
function setWorkLanguage(language) {
|
|
13
|
+
workingLanguage = language;
|
|
14
|
+
}
|
|
15
|
+
function normalizeLocaleLike(value) {
|
|
16
|
+
// Examples: "en_US.UTF-8" -> "en-US", "zh_CN" -> "zh-CN"
|
|
17
|
+
const stripped = value.split('.')[0] ?? value;
|
|
18
|
+
return stripped.replace(/_/g, '-');
|
|
19
|
+
}
|
|
20
|
+
function detectOsDefaultWorkLanguage(env) {
|
|
21
|
+
const candidates = [];
|
|
22
|
+
const lang = env.LANG;
|
|
23
|
+
if (typeof lang === 'string' && lang.trim() !== '')
|
|
24
|
+
candidates.push(lang);
|
|
25
|
+
for (const raw of candidates) {
|
|
26
|
+
const normalized = normalizeLocaleLike(raw);
|
|
27
|
+
const parsed = (0, language_1.normalizeLanguageCode)(normalized);
|
|
28
|
+
if (parsed)
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const locale = Intl.DateTimeFormat().resolvedOptions().locale;
|
|
33
|
+
const parsed = (0, language_1.normalizeLanguageCode)(locale);
|
|
34
|
+
if (parsed)
|
|
35
|
+
return parsed;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// ignore
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
function resolveWorkLanguage(options) {
|
|
43
|
+
const detected = detectOsDefaultWorkLanguage(options.env);
|
|
44
|
+
if (detected)
|
|
45
|
+
return { language: detected, source: 'os' };
|
|
46
|
+
return { language: 'en', source: 'default' };
|
|
47
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared team-mgmt manual topic definitions.
|
|
4
|
+
*
|
|
5
|
+
* This module is intentionally dependency-free so it can be imported by both:
|
|
6
|
+
* - backend (`dominds/main/**`)
|
|
7
|
+
* - frontend (`dominds/webapp/src/**`)
|
|
8
|
+
*
|
|
9
|
+
* It serves as the single source of truth for:
|
|
10
|
+
* - valid `team_mgmt_manual({ topics: [...] })` topic tokens
|
|
11
|
+
* - WebUI topic-button ordering + tool-arg mapping
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.TEAM_MGMT_MANUAL_PANEL_TOPIC_META = exports.TEAM_MGMT_MANUAL_PANEL_TOOL_TOPICS_BY_KEY = exports.TEAM_MGMT_MANUAL_PANEL_TOPIC_ORDER = exports.TEAM_MGMT_MANUAL_UI_TOOL_TOPICS_BY_KEY = exports.TEAM_MGMT_MANUAL_UI_TOPIC_ORDER = exports.TEAM_MGMT_MANUAL_TOPIC_META = exports.TEAM_MGMT_MANUAL_TOPIC_KEYS = void 0;
|
|
15
|
+
exports.isTeamMgmtManualTopicKey = isTeamMgmtManualTopicKey;
|
|
16
|
+
exports.getTeamMgmtManualTopicTitle = getTeamMgmtManualTopicTitle;
|
|
17
|
+
exports.isTeamMgmtManualPanelTopicKey = isTeamMgmtManualPanelTopicKey;
|
|
18
|
+
exports.getTeamMgmtManualPanelTopicTitle = getTeamMgmtManualPanelTopicTitle;
|
|
19
|
+
exports.TEAM_MGMT_MANUAL_TOPIC_KEYS = [
|
|
20
|
+
'topics',
|
|
21
|
+
'llm',
|
|
22
|
+
'model-params',
|
|
23
|
+
'builtin-defaults',
|
|
24
|
+
'mcp',
|
|
25
|
+
'team',
|
|
26
|
+
'member-properties',
|
|
27
|
+
'minds',
|
|
28
|
+
'permissions',
|
|
29
|
+
'toolsets',
|
|
30
|
+
'troubleshooting',
|
|
31
|
+
];
|
|
32
|
+
exports.TEAM_MGMT_MANUAL_TOPIC_META = {
|
|
33
|
+
topics: { titleI18n: { zh: '索引', en: 'Index' } },
|
|
34
|
+
team: { titleI18n: { zh: 'Team(team.yaml)', en: 'Team (team.yaml)' } },
|
|
35
|
+
'member-properties': {
|
|
36
|
+
titleI18n: { zh: '成员字段(members.<id>)', en: 'Member Properties (members.<id>)' },
|
|
37
|
+
},
|
|
38
|
+
permissions: { titleI18n: { zh: '权限(permissions)', en: 'Permissions' } },
|
|
39
|
+
toolsets: { titleI18n: { zh: '工具集(toolsets)', en: 'Toolsets' } },
|
|
40
|
+
llm: { titleI18n: { zh: 'LLM(llm.yaml)', en: 'LLM (llm.yaml)' } },
|
|
41
|
+
'builtin-defaults': { titleI18n: { zh: '内置 Defaults(LLM)', en: 'Built-in Defaults (LLM)' } },
|
|
42
|
+
'model-params': {
|
|
43
|
+
titleI18n: { zh: '模型参数(model_params)', en: 'Model Params (model_params)' },
|
|
44
|
+
},
|
|
45
|
+
mcp: { titleI18n: { zh: 'MCP(mcp.yaml)', en: 'MCP (mcp.yaml)' } },
|
|
46
|
+
minds: {
|
|
47
|
+
titleI18n: { zh: '角色资产(.minds/team/<id>/*)', en: 'Minds Assets (.minds/team/<id>/*)' },
|
|
48
|
+
},
|
|
49
|
+
troubleshooting: { titleI18n: { zh: '排障(troubleshooting)', en: 'Troubleshooting' } },
|
|
50
|
+
};
|
|
51
|
+
const TEAM_MGMT_MANUAL_TOPIC_KEY_SET = new Set(exports.TEAM_MGMT_MANUAL_TOPIC_KEYS);
|
|
52
|
+
function isTeamMgmtManualTopicKey(value) {
|
|
53
|
+
return TEAM_MGMT_MANUAL_TOPIC_KEY_SET.has(value);
|
|
54
|
+
}
|
|
55
|
+
function getTeamMgmtManualTopicTitle(lang, key) {
|
|
56
|
+
const meta = exports.TEAM_MGMT_MANUAL_TOPIC_META[key];
|
|
57
|
+
return lang === 'zh' ? meta.titleI18n.zh : meta.titleI18n.en;
|
|
58
|
+
}
|
|
59
|
+
// --- WebUI default topic ordering + tool-arg mapping ---
|
|
60
|
+
exports.TEAM_MGMT_MANUAL_UI_TOPIC_ORDER = [
|
|
61
|
+
'topics',
|
|
62
|
+
'team',
|
|
63
|
+
'member-properties',
|
|
64
|
+
'permissions',
|
|
65
|
+
'toolsets',
|
|
66
|
+
'llm',
|
|
67
|
+
'model-params',
|
|
68
|
+
'builtin-defaults',
|
|
69
|
+
'mcp',
|
|
70
|
+
'minds',
|
|
71
|
+
'troubleshooting',
|
|
72
|
+
];
|
|
73
|
+
exports.TEAM_MGMT_MANUAL_UI_TOOL_TOPICS_BY_KEY = {
|
|
74
|
+
// Index
|
|
75
|
+
topics: ['topics'],
|
|
76
|
+
// Team-related
|
|
77
|
+
team: ['team'],
|
|
78
|
+
'member-properties': ['team', 'member-properties'],
|
|
79
|
+
// Permissions / toolsets
|
|
80
|
+
permissions: ['permissions'],
|
|
81
|
+
toolsets: ['toolsets'],
|
|
82
|
+
// LLM-related
|
|
83
|
+
llm: ['llm'],
|
|
84
|
+
'model-params': ['llm', 'model-params'],
|
|
85
|
+
'builtin-defaults': ['llm', 'builtin-defaults'],
|
|
86
|
+
// Other
|
|
87
|
+
mcp: ['mcp'],
|
|
88
|
+
minds: ['minds'],
|
|
89
|
+
troubleshooting: ['troubleshooting'],
|
|
90
|
+
};
|
|
91
|
+
exports.TEAM_MGMT_MANUAL_PANEL_TOPIC_ORDER = [
|
|
92
|
+
'index',
|
|
93
|
+
'permissions',
|
|
94
|
+
'team',
|
|
95
|
+
'toolsets',
|
|
96
|
+
];
|
|
97
|
+
const EMPTY_TOOL_TOPICS = [];
|
|
98
|
+
exports.TEAM_MGMT_MANUAL_PANEL_TOOL_TOPICS_BY_KEY = {
|
|
99
|
+
index: EMPTY_TOOL_TOPICS,
|
|
100
|
+
permissions: ['permissions'],
|
|
101
|
+
team: ['team'],
|
|
102
|
+
toolsets: ['toolsets'],
|
|
103
|
+
};
|
|
104
|
+
function isTeamMgmtManualPanelTopicKey(value) {
|
|
105
|
+
return Object.prototype.hasOwnProperty.call(exports.TEAM_MGMT_MANUAL_PANEL_TOOL_TOPICS_BY_KEY, value);
|
|
106
|
+
}
|
|
107
|
+
exports.TEAM_MGMT_MANUAL_PANEL_TOPIC_META = {
|
|
108
|
+
index: { titleI18n: { zh: '索引', en: 'Index' } },
|
|
109
|
+
permissions: exports.TEAM_MGMT_MANUAL_TOPIC_META.permissions,
|
|
110
|
+
team: exports.TEAM_MGMT_MANUAL_TOPIC_META.team,
|
|
111
|
+
toolsets: exports.TEAM_MGMT_MANUAL_TOPIC_META.toolsets,
|
|
112
|
+
};
|
|
113
|
+
function getTeamMgmtManualPanelTopicTitle(lang, key) {
|
|
114
|
+
const meta = exports.TEAM_MGMT_MANUAL_PANEL_TOPIC_META[key];
|
|
115
|
+
return lang === 'zh' ? meta.titleI18n.zh : meta.titleI18n.en;
|
|
116
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Module: shared/types/dialog
|
|
4
|
+
*
|
|
5
|
+
* Strongly typed discriminated unions for dialog events.
|
|
6
|
+
* These types are shared between backend and frontend for real-time dialog communication.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
// Modern TypeScript patterns encourage direct discriminated union usage
|
|
10
|
+
// Instead of type guards and helpers, use pattern matching in switch statements
|
|
11
|
+
// This encourages better type safety and cleaner code at usage sites
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Shared types for frontend and backend
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
__exportStar(require("./language"), exports);
|
|
19
|
+
__exportStar(require("./problems"), exports);
|
|
20
|
+
__exportStar(require("./prompts"), exports);
|
|
21
|
+
__exportStar(require("./setup"), exports);
|
|
22
|
+
__exportStar(require("./tools-registry"), exports);
|
|
23
|
+
__exportStar(require("./wire"), exports);
|
|
24
|
+
__exportStar(require("./context-health"), exports);
|
|
25
|
+
__exportStar(require("./dialog"), exports);
|
|
26
|
+
__exportStar(require("./run-state"), exports);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared language codes (frontend + backend twin).
|
|
4
|
+
*
|
|
5
|
+
* Keep in sync with `dominds/main/shared/types/language.ts`.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.supportedLanguageCodes = void 0;
|
|
9
|
+
exports.isLanguageCode = isLanguageCode;
|
|
10
|
+
exports.normalizeLanguageCode = normalizeLanguageCode;
|
|
11
|
+
exports.formatLanguageName = formatLanguageName;
|
|
12
|
+
exports.supportedLanguageCodes = ['en', 'zh'];
|
|
13
|
+
function isLanguageCode(value) {
|
|
14
|
+
return exports.supportedLanguageCodes.includes(value);
|
|
15
|
+
}
|
|
16
|
+
function normalizeLanguageCode(input) {
|
|
17
|
+
const raw = input.trim();
|
|
18
|
+
if (raw === '')
|
|
19
|
+
return null;
|
|
20
|
+
const lowered = raw.replace(/_/g, '-').toLowerCase();
|
|
21
|
+
if (lowered === 'en' || lowered.startsWith('en-'))
|
|
22
|
+
return 'en';
|
|
23
|
+
if (lowered === 'zh' || lowered.startsWith('zh-'))
|
|
24
|
+
return 'zh';
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
function formatLanguageName(lang, inLanguage) {
|
|
28
|
+
switch (inLanguage) {
|
|
29
|
+
case 'en': {
|
|
30
|
+
return lang === 'en' ? 'English' : 'Simplified Chinese';
|
|
31
|
+
}
|
|
32
|
+
case 'zh': {
|
|
33
|
+
return lang === 'en' ? '英语' : '简体中文';
|
|
34
|
+
}
|
|
35
|
+
default: {
|
|
36
|
+
const _exhaustive = inLanguage;
|
|
37
|
+
throw new Error(`Unsupported inLanguage: ${_exhaustive}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|