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,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultPersonaText = defaultPersonaText;
|
|
4
|
+
exports.noneText = noneText;
|
|
5
|
+
exports.noneRequiredFieldsText = noneRequiredFieldsText;
|
|
6
|
+
exports.funcToolUsageLabels = funcToolUsageLabels;
|
|
7
|
+
exports.funcToolRulesText = funcToolRulesText;
|
|
8
|
+
exports.taskdocCanonicalCopy = taskdocCanonicalCopy;
|
|
9
|
+
exports.memoryPreambleLabels = memoryPreambleLabels;
|
|
10
|
+
exports.sharedScopeLabel = sharedScopeLabel;
|
|
11
|
+
exports.personalScopeLabel = personalScopeLabel;
|
|
12
|
+
exports.memoriesSummaryTitle = memoriesSummaryTitle;
|
|
13
|
+
exports.memoriesSummarySectionShared = memoriesSummarySectionShared;
|
|
14
|
+
exports.memoriesSummarySectionPersonal = memoriesSummarySectionPersonal;
|
|
15
|
+
exports.memoriesSummaryLineShared = memoriesSummaryLineShared;
|
|
16
|
+
exports.memoriesSummaryLinePersonal = memoriesSummaryLinePersonal;
|
|
17
|
+
exports.sharedMemoriesHeader = sharedMemoriesHeader;
|
|
18
|
+
exports.personalMemoriesHeader = personalMemoriesHeader;
|
|
19
|
+
function defaultPersonaText(language) {
|
|
20
|
+
return language === 'zh' ? '你是一个乐于助人的助手。' : 'You are a helpful assistant.';
|
|
21
|
+
}
|
|
22
|
+
function noneText(language) {
|
|
23
|
+
return language === 'zh' ? '无。' : 'None.';
|
|
24
|
+
}
|
|
25
|
+
function noneRequiredFieldsText(language) {
|
|
26
|
+
return language === 'zh' ? '无' : 'None';
|
|
27
|
+
}
|
|
28
|
+
function funcToolUsageLabels(language) {
|
|
29
|
+
if (language === 'zh') {
|
|
30
|
+
return {
|
|
31
|
+
toolLabel: '函数工具',
|
|
32
|
+
invocationLabel: '调用方式',
|
|
33
|
+
invocationBody: '原生函数工具调用(严格 JSON 参数)',
|
|
34
|
+
requiredLabel: '必填字段',
|
|
35
|
+
parametersLabel: '参数',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
toolLabel: 'Function Tool',
|
|
40
|
+
invocationLabel: 'Invocation',
|
|
41
|
+
invocationBody: 'native function calling with strict JSON arguments',
|
|
42
|
+
requiredLabel: 'Required fields',
|
|
43
|
+
parametersLabel: 'Parameters',
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function funcToolRulesText(language) {
|
|
47
|
+
return language === 'zh'
|
|
48
|
+
? `\n- 对所有函数工具一律使用原生 function-calling;不要尝试用诉请行(例如 \`!?@name\`)调用它们。\n- 参数必须是严格 JSON:与 schema 精确匹配,包含所有 required 字段,不允许额外字段。`
|
|
49
|
+
: `\n- Use native function-calling for all function tools listed; do not attempt tellask lines (e.g., \`!?@name\`) for these.\n- Provide strict JSON arguments that match the tool schema exactly; include all required fields; no extra fields.`;
|
|
50
|
+
}
|
|
51
|
+
function taskdocCanonicalCopy(language) {
|
|
52
|
+
if (language === 'zh') {
|
|
53
|
+
return [
|
|
54
|
+
'**Taskdoc 封装与访问限制**',
|
|
55
|
+
'',
|
|
56
|
+
'- 任何 `.tsk/` 目录及其子路径(`**/*.tsk/**`)都是封装状态:禁止使用任何通用文件工具读取/写入/列目录(例如 `read_file` / `write_file` / `list_dir` 等)。',
|
|
57
|
+
'- 更新 Taskdoc 只能使用函数工具 `change_mind`(按章节整段替换;顶层用 `selector`,额外章节用 `category + selector`)。',
|
|
58
|
+
'- 读取“不会自动注入上下文”的额外章节,只能使用函数工具 `recall_taskdoc({ category, selector })`。',
|
|
59
|
+
'',
|
|
60
|
+
'**Taskdoc 自动注入规则(系统提示)**',
|
|
61
|
+
'',
|
|
62
|
+
'- 系统提示会把“有效 Taskdoc”自动注入到模型上下文中。',
|
|
63
|
+
'- 一定会注入顶层三段:`goals.md`、`constraints.md`、`progress.md`(按此顺序)。',
|
|
64
|
+
'- 可选注入 `bearinmind/`(仅固定白名单,最多 6 个文件):`contracts.md`、`acceptance.md`、`grants.md`、`runbook.md`、`decisions.md`、`risks.md`。',
|
|
65
|
+
'- 若存在 `bearinmind/` 注入块,它会以 `## Bear In Mind` 出现在 `## Constraints` 与 `## Progress` 之间,并按以上固定顺序拼接。',
|
|
66
|
+
'- 除此之外,`.tsk/` 内任何其他目录/文件都不会被自动注入正文(系统只会注入一个“额外章节索引”用于提示;需要时用 `recall_taskdoc` 显式读取)。',
|
|
67
|
+
].join('\n');
|
|
68
|
+
}
|
|
69
|
+
return [
|
|
70
|
+
'**Taskdoc encapsulation & access restrictions**',
|
|
71
|
+
'',
|
|
72
|
+
'- Any `.tsk/` directory and its subpaths (`**/*.tsk/**`) are encapsulated state: general file tools MUST NOT read/write/list them (e.g. `read_file` / `write_file` / `list_dir`).',
|
|
73
|
+
'- Taskdoc updates MUST go through the function tool `change_mind` (whole-section replace; use top-level `selector`, or `category + selector` for extra sections).',
|
|
74
|
+
'- To read extra sections that are NOT auto-injected, use the function tool `recall_taskdoc({ category, selector })`.',
|
|
75
|
+
'',
|
|
76
|
+
'**Taskdoc auto-injection rules (system prompt)**',
|
|
77
|
+
'',
|
|
78
|
+
'- The system prompt auto-injects the “effective Taskdoc” into the model context.',
|
|
79
|
+
'- It always injects the three top-level sections in order: `goals.md`, `constraints.md`, `progress.md`.',
|
|
80
|
+
'- It may also inject `bearinmind/` (fixed whitelist only; max 6 files): `contracts.md`, `acceptance.md`, `grants.md`, `runbook.md`, `decisions.md`, `risks.md`.',
|
|
81
|
+
'- If present, the injected block appears as `## Bear In Mind` between `## Constraints` and `## Progress`, and the files are concatenated in the fixed order above.',
|
|
82
|
+
'- No other directories/files inside `.tsk/` are auto-injected as body content (only an “extra sections index” may be injected for discoverability; use `recall_taskdoc` when needed).',
|
|
83
|
+
].join('\n');
|
|
84
|
+
}
|
|
85
|
+
function memoryPreambleLabels(language) {
|
|
86
|
+
if (language === 'zh') {
|
|
87
|
+
return {
|
|
88
|
+
pathLabel: '路径',
|
|
89
|
+
lastModifiedLabel: '最后修改',
|
|
90
|
+
sizeLabel: '大小',
|
|
91
|
+
wordsLabel: '词数',
|
|
92
|
+
bytesUnit: '字节',
|
|
93
|
+
manageWithLabel: '可用工具',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
pathLabel: 'Path',
|
|
98
|
+
lastModifiedLabel: 'Last modified',
|
|
99
|
+
sizeLabel: 'Size',
|
|
100
|
+
wordsLabel: 'Words',
|
|
101
|
+
bytesUnit: 'bytes',
|
|
102
|
+
manageWithLabel: 'Manage with',
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function sharedScopeLabel(language) {
|
|
106
|
+
return language === 'zh' ? '团队共享记忆' : 'Team Shared Memory';
|
|
107
|
+
}
|
|
108
|
+
function personalScopeLabel(language, agentId) {
|
|
109
|
+
return language === 'zh' ? `个人记忆 (@${agentId})` : `Personal Memory (@${agentId})`;
|
|
110
|
+
}
|
|
111
|
+
function memoriesSummaryTitle(language) {
|
|
112
|
+
return language === 'zh' ? '## 记忆摘要\n' : '## Memories Summary\n';
|
|
113
|
+
}
|
|
114
|
+
function memoriesSummarySectionShared(language) {
|
|
115
|
+
return language === 'zh' ? '### 共享' : '### Shared';
|
|
116
|
+
}
|
|
117
|
+
function memoriesSummarySectionPersonal(language) {
|
|
118
|
+
return language === 'zh' ? '### 个人\n' : '### Personal\n';
|
|
119
|
+
}
|
|
120
|
+
function memoriesSummaryLineShared(language, path) {
|
|
121
|
+
return language === 'zh' ? `- 共享: ${path}` : `- Shared: ${path}`;
|
|
122
|
+
}
|
|
123
|
+
function memoriesSummaryLinePersonal(language, path) {
|
|
124
|
+
return language === 'zh' ? `- 个人: ${path}` : `- Personal: ${path}`;
|
|
125
|
+
}
|
|
126
|
+
function sharedMemoriesHeader(language) {
|
|
127
|
+
return language === 'zh' ? '## 共享记忆' : '## Shared Memories';
|
|
128
|
+
}
|
|
129
|
+
function personalMemoriesHeader(language) {
|
|
130
|
+
return language === 'zh' ? '## 个人记忆\n' : '## Personal Memories\n';
|
|
131
|
+
}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatTeamIntro = formatTeamIntro;
|
|
4
|
+
exports.buildSystemPrompt = buildSystemPrompt;
|
|
5
|
+
function formatTeamIntro(team, selfAgentId, language) {
|
|
6
|
+
const callSignLabel = language === 'zh' ? '呼号' : 'Call Sign';
|
|
7
|
+
const selfSuffix = language === 'zh' ? '(本人)' : ' (self)';
|
|
8
|
+
const focusLabel = language === 'zh' ? '关注' : 'Focus';
|
|
9
|
+
const visibleMembers = Object.values(team.members).filter((m) => m.hidden !== true);
|
|
10
|
+
if (visibleMembers.length === 0) {
|
|
11
|
+
return language === 'zh' ? '-(无可见队友)' : '- (no visible teammates)';
|
|
12
|
+
}
|
|
13
|
+
return visibleMembers
|
|
14
|
+
.map((m) => {
|
|
15
|
+
const isSelf = m.id === selfAgentId ? selfSuffix : '';
|
|
16
|
+
const gofor = (() => {
|
|
17
|
+
if (m.gofor === undefined)
|
|
18
|
+
return '';
|
|
19
|
+
if (typeof m.gofor === 'string')
|
|
20
|
+
return `\n - ${focusLabel}:\n - ${m.gofor}`;
|
|
21
|
+
if (Array.isArray(m.gofor)) {
|
|
22
|
+
if (m.gofor.length === 0)
|
|
23
|
+
return '';
|
|
24
|
+
const list = m.gofor.map((t) => ` - ${t}`).join('\n');
|
|
25
|
+
return `\n - ${focusLabel}:\n${list}`;
|
|
26
|
+
}
|
|
27
|
+
const entries = Object.entries(m.gofor);
|
|
28
|
+
if (entries.length === 0)
|
|
29
|
+
return '';
|
|
30
|
+
const list = entries.map(([k, v]) => ` - ${k}: ${v}`).join('\n');
|
|
31
|
+
return `\n - ${focusLabel}:\n${list}`;
|
|
32
|
+
})();
|
|
33
|
+
return `- ${callSignLabel}: @${m.id}${isSelf} - ${m.name}${gofor}`;
|
|
34
|
+
})
|
|
35
|
+
.join('\n');
|
|
36
|
+
}
|
|
37
|
+
function buildSystemPrompt(input) {
|
|
38
|
+
if (input.language === 'zh') {
|
|
39
|
+
return `
|
|
40
|
+
# Agent 系统提示
|
|
41
|
+
|
|
42
|
+
## 身份
|
|
43
|
+
- 成员 ID: \`${input.agent.id}\`
|
|
44
|
+
- 全名: ${input.agent.name}
|
|
45
|
+
|
|
46
|
+
## 语言模式
|
|
47
|
+
- 你的内部工作语言是简体中文(用于系统提示、工具调用规则、队友/子对话叙事格式等)。
|
|
48
|
+
- 你可能会收到一条短的引导信息,形如“用户可见回复语言:X”。当你对用户作答时,请优先遵循该引导;若未给出引导,则使用工作语言作答。
|
|
49
|
+
|
|
50
|
+
## 角色设定
|
|
51
|
+
${input.persona}
|
|
52
|
+
|
|
53
|
+
## 知识
|
|
54
|
+
${input.knowledge}
|
|
55
|
+
|
|
56
|
+
## 经验
|
|
57
|
+
${input.lessons}
|
|
58
|
+
|
|
59
|
+
## 团队目录
|
|
60
|
+
你与以下队友协作。使用他们的呼号与其交流。
|
|
61
|
+
|
|
62
|
+
${input.teamIntro}
|
|
63
|
+
|
|
64
|
+
## 交互能力
|
|
65
|
+
你与队友的诉请(tellask)交互,使用一种极简的逐行前缀语法(对任意分片的流式输出鲁棒)。
|
|
66
|
+
|
|
67
|
+
### 诉请(tellask)语法(务必精确遵守)
|
|
68
|
+
**TL;DR(最重要的 6 条硬规则)**
|
|
69
|
+
1) 只有“第 0 列以 \`!?\` 开头”的行才会被当作诉请行;其余都是普通 markdown。
|
|
70
|
+
2) 一个诉请块会持续收集 \`!?...\` 行,直到遇到第一行“不以 \`!?\` 开头”的普通行才结束(推荐用空行分隔诉请块)。
|
|
71
|
+
3) 一个诉请块的第一行必须是 \`!?@<name> ...\`(否则是 malformed)。
|
|
72
|
+
4) 同一诉请块内:
|
|
73
|
+
- 第一行是 headline;后续任何以 \`!?@\` 开头的行会继续追加到 headline(不会触发新工具)。
|
|
74
|
+
- 以 \`!?\` 开头但不以 \`!?@\` 开头的行会进入 body。
|
|
75
|
+
5) **同一条消息里发起多个诉请:必须写多个诉请块,并用至少一行普通行分隔。**
|
|
76
|
+
6) **给队友发诉请(@tooling/@server/...)且需要跨轮协作:强烈建议带稳定的 \`!tellaskSession <tellaskSession>\`。**
|
|
77
|
+
|
|
78
|
+
**\`!tellaskSession\`(跨轮协作的默认做法)**
|
|
79
|
+
- 用途:让同一条工作流在多轮对话中可追踪,避免对方“每次像新工单”丢上下文。
|
|
80
|
+
- 只写在 headline:\`!?@tooling !tellaskSession tooling-read-file-options ...\`(每个诉请块最多一次)。
|
|
81
|
+
- 命名建议:\`<owner>-<area>-<short>\`,例如 \`tooling-read-file-options\`、\`server-ws-schema-v2\`。
|
|
82
|
+
- 不要用于 \`!?@super\`(规则:\`@super\` 必须不带 \`!tellaskSession\`)。
|
|
83
|
+
|
|
84
|
+
**关键易错点:当你需要在队友诉请中携带正文(步骤/上下文/验收标准等)时,正文每行也必须以 \`!?\` 开头,否则会被当作普通 markdown 分隔符导致 body 为空。**
|
|
85
|
+
|
|
86
|
+
**常见坑(我们已经踩过)**
|
|
87
|
+
- 连续写两行 \`!?@...\`:第二行不会触发第二个工具,会被并入同一诉请块 headline,导致“多余参数/格式不正确”等误导性错误。
|
|
88
|
+
- 不要把多个工具调用写在同一个诉请块里:请用空行分隔成多个诉请块(空行本身就是普通行分隔符)。
|
|
89
|
+
|
|
90
|
+
反例(会被合并成一个诉请块 headline):
|
|
91
|
+
\`\`\`plain-text
|
|
92
|
+
!?@tool_a arg1
|
|
93
|
+
!?@tool_b arg2
|
|
94
|
+
\`\`\`
|
|
95
|
+
|
|
96
|
+
正例(两个诉请块,用空行分隔):
|
|
97
|
+
\`\`\`plain-text
|
|
98
|
+
!?@tool_a arg1
|
|
99
|
+
|
|
100
|
+
!?@tool_b arg2
|
|
101
|
+
\`\`\`
|
|
102
|
+
|
|
103
|
+
**复制即用模板**
|
|
104
|
+
- 队友诉请(带 topic):
|
|
105
|
+
\`\`\`plain-text
|
|
106
|
+
!?@tooling !tellaskSession tooling-read-file-options
|
|
107
|
+
!?请修复 read_file 的 parseReadFileOptions,并按验收用例回贴输出。
|
|
108
|
+
\`\`\`
|
|
109
|
+
- 队友诉请(带正文):
|
|
110
|
+
\`\`\`plain-text
|
|
111
|
+
!?@pangu !tellaskSession ws-mod-guardrails
|
|
112
|
+
!?请在工作区内定位所有仍在使用 tellask 工具语法(!?@tool)的地方,并迁移到函数工具调用;同时更新文档与测试故事。
|
|
113
|
+
\`\`\`
|
|
114
|
+
### 函数工具
|
|
115
|
+
- 你必须通过原生 function-calling 发起函数工具调用。请提供严格的 JSON 参数对象,并且严格匹配工具 schema(不允许额外字段,必须包含所有 required 字段)。${input.funcToolRulesText}
|
|
116
|
+
|
|
117
|
+
${input.funcToolUsageText || '没有可用的函数工具。'}
|
|
118
|
+
|
|
119
|
+
### 函数工具调用 vs 诉请
|
|
120
|
+
- 原生 function-calling 不能用于队友诉请:队友诉请必须使用 tellask。
|
|
121
|
+
- tellask 文本不能用于函数工具调用:函数工具(包括对话控制/文件/文本编辑等)一律使用原生 function-calling。
|
|
122
|
+
### 语法小抄(反模式)
|
|
123
|
+
- 不要在 \`!?\` 前加项目符号、引用、编号或缩进(例如 \`- !?@tool\`、\`> !?@tool\`、\` !?@tool\`)。
|
|
124
|
+
- 当你只是提到呼号/工具名而不是发起诉请:不要让该行以 \`!?\` 开头;必要时用反引号包裹(例如 \`\`!?@pangu\`\`)。
|
|
125
|
+
- mention ID 允许包含点号用于命名空间(例如 \`@team.lead\`)。末尾的点号视为标点并忽略(例如 \`@team.lead.\` 仍然指向 \`@team.lead\`)。
|
|
126
|
+
|
|
127
|
+
### 特殊队友别名
|
|
128
|
+
- \`!?@self\`:Fresh Boots Reasoning(FBR)自诉请。目标是当前 dialog 的 agentId,并创建一个新的、短暂的 subdialog(默认;最常用)。
|
|
129
|
+
- \`!?@self !tellaskSession <tellaskSession>\`:带 tellaskSession 的 FBR 自诉请(少用)。仅当你明确需要可恢复的长期 workspace 时使用。
|
|
130
|
+
- \`!?@super\`:Supdialog 诉请(Type A)**主语法**。只在 subdialog 内有效;诉请直接父对话(supdialog),暂时挂起该 subdialog,待父对话回复后再恢复。必须**不带** \`!tellaskSession\`。
|
|
131
|
+
- \`!?@super\`:Supdialog 诉请(Type A)**主语法**。只在 subdialog 内有效;诉请直接父对话(supdialog),暂时挂起该 subdialog,待父对话回复后再恢复。必须**不带** \`!tellaskSession\`。
|
|
132
|
+
- \`!?@<supdialogAgentId>\`(不带 \`!tellaskSession\`)可作为语义容错,但优先使用 \`!?@super\`,尤其当 ID 可能相同(例如 FBR self-subdialogs)以避免歧义和意外自诉请混淆。
|
|
133
|
+
|
|
134
|
+
### 工具集提示与队友诉请(tellask)
|
|
135
|
+
|
|
136
|
+
${input.toolUsageText}${input.intrinsicToolInstructions
|
|
137
|
+
? `\n### 对话控制工具\n${input.intrinsicToolInstructions}`
|
|
138
|
+
: '\n'}
|
|
139
|
+
### 示例
|
|
140
|
+
- 队友诉请:让 shell 专员运行命令(推荐写法)
|
|
141
|
+
\`\`\`plain-text
|
|
142
|
+
!?@<shell-specialist> !tellaskSession lint-types
|
|
143
|
+
!?请在 repo root 执行:pnpm -C dominds lint:types
|
|
144
|
+
!?回贴:exit_code + stdout/stderr(可截断,但需包含所有 TS error 行)
|
|
145
|
+
\`\`\`
|
|
146
|
+
|
|
147
|
+
- 队友诉请:带正文(普通行会自动结束该诉请块)
|
|
148
|
+
\`\`\`plain-text
|
|
149
|
+
!?@ux !tellaskSession ux-checklist
|
|
150
|
+
!?请基于本 PR 的改动给出手工验收清单(严重度 + 复现步骤)。
|
|
151
|
+
OK —— 我会等待你的结果,然后继续推进。
|
|
152
|
+
\`\`\`
|
|
153
|
+
|
|
154
|
+
- 反例:只写“我会请 shell 专员运行”,但没有诉请块(不会触发执行)
|
|
155
|
+
\`\`\`plain-text
|
|
156
|
+
我会请 shell 专员运行 pnpm -C dominds lint:types。
|
|
157
|
+
\`\`\`
|
|
158
|
+
|
|
159
|
+
- 反例:声称“已运行/已通过”,但没有看到回执(禁止)
|
|
160
|
+
\`\`\`plain-text
|
|
161
|
+
我已经让 shell 专员跑过了,lint:types 没问题。
|
|
162
|
+
\`\`\`
|
|
163
|
+
|
|
164
|
+
### 并发与编排
|
|
165
|
+
- 同一条回复中的所有诉请会并发执行;在同一轮中,它们无法看到彼此的输出。
|
|
166
|
+
- 让每个诉请都自给自足。
|
|
167
|
+
- 需要前后依赖的步骤,请拆分到多轮,或使用编排器工具强制顺序。
|
|
168
|
+
|
|
169
|
+
### 防止意外触发
|
|
170
|
+
- 只有第 0 列以 \`!?\` 开头的行才会被解释为诉请行。
|
|
171
|
+
- 行内的 \`!?\` 与 \`@\` 没有特殊含义。
|
|
172
|
+
- 不确定时,不要在行首写 \`!?\`;需要展示字面量时用反引号包裹。
|
|
173
|
+
`;
|
|
174
|
+
}
|
|
175
|
+
return `
|
|
176
|
+
# Agent System Prompt
|
|
177
|
+
|
|
178
|
+
## Identity
|
|
179
|
+
- Member ID: \`${input.agent.id}\`
|
|
180
|
+
- Full Name: ${input.agent.name}
|
|
181
|
+
|
|
182
|
+
## Language Mode
|
|
183
|
+
- Your internal working language is English (system prompt, tool rules, teammate/subdialog narrative formatting).
|
|
184
|
+
- You may receive a short guide message like “User-visible response language: X”. When replying to the user, follow that guide; if absent, respond in the working language.
|
|
185
|
+
|
|
186
|
+
## Persona
|
|
187
|
+
${input.persona}
|
|
188
|
+
|
|
189
|
+
## Knowledge
|
|
190
|
+
${input.knowledge}
|
|
191
|
+
|
|
192
|
+
## Lessons
|
|
193
|
+
${input.lessons}
|
|
194
|
+
|
|
195
|
+
## Team Directory
|
|
196
|
+
You collaborate with the following teammates. Use their call signs to address them.
|
|
197
|
+
|
|
198
|
+
${input.teamIntro}
|
|
199
|
+
|
|
200
|
+
## Interaction Abilities
|
|
201
|
+
You interact with teammates and "tellask" tools using a primitive line-prefix grammar designed to be robust under arbitrary streaming chunk boundaries.
|
|
202
|
+
|
|
203
|
+
### Tellask Grammar
|
|
204
|
+
- A tellask block consists of lines; every tellask line MUST begin at column 0 with literal \`!?\`. The \`!?\` prefix is not part of the payload.
|
|
205
|
+
- Any line not starting with \`!?\` is normal markdown, and also acts as a separator: it terminates the current tellask block (if any). Therefore there is no explicit terminator.
|
|
206
|
+
- The first tellask line in a block MUST start with \`!?@<name>\` to be considered valid. Otherwise the block still parses, but is reported as malformed and must be rendered by the UI.
|
|
207
|
+
- Within a tellask block:
|
|
208
|
+
- Headline: starts from the first tellask line (after removing \`!?\`); subsequent lines starting with \`!?@\` extend the headline (multiline headline).
|
|
209
|
+
- Body: all tellask lines that start with \`!?\` but NOT \`!?@\` compose the body in order.
|
|
210
|
+
- By default, a tellask block targets exactly one destination (the \`@name\` in the first line). However, for *teammate tellasks*, multiple teammate call signs appearing inside the headline (including multiline headlines) are treated as collective targets: Dominds will fan this out into one tellask per teammate with the same headLine/callBody payload. If you include \`!tellaskSession <tellaskSession>\`, it must appear at most once in the headline and applies to all targets. For multiple tool calls, you must still write multiple tellask blocks separated by normal lines.
|
|
211
|
+
|
|
212
|
+
### Function Tools
|
|
213
|
+
- You must invoke function tools via native function-calling. Provide a valid JSON object for the tool's arguments that strictly matches the tool schema (no extra fields, include all required fields).${input.funcToolRulesText}
|
|
214
|
+
|
|
215
|
+
${input.funcToolUsageText || 'No function tools available.'}
|
|
216
|
+
|
|
217
|
+
### Function Calling vs Tellask
|
|
218
|
+
- Native function-calling cannot be used to tellask teammates: teammate tellasks must use tellask.
|
|
219
|
+
- Tellask text cannot invoke function tools: all tools (including dialog control) must use native function-calling.
|
|
220
|
+
|
|
221
|
+
### Anti-pattern Cheat Sheet
|
|
222
|
+
- Do NOT prefix tellask lines with bullets, blockquotes, numbering, or indentation (e.g., \`- !?@tool\`, \`> !?@tool\`, \` !?@tool\`).
|
|
223
|
+
- When you are only mentioning a call sign/tool name and not making a tellask call, do not start the line with \`!?\`; wrap it in backticks if needed (e.g., \`\`!?@pangu\`\`).
|
|
224
|
+
- Mention IDs may include dots for namespacing (e.g., \`@team.lead\`). A trailing dot is treated as punctuation and ignored (e.g., \`@team.lead.\` still targets \`@team.lead\`).
|
|
225
|
+
|
|
226
|
+
### Teammate Tellasks
|
|
227
|
+
- Prefer multi-teammate tellasks for parallel expertise. Keep requests specific and role-aware.
|
|
228
|
+
|
|
229
|
+
### Special Teammate Aliases
|
|
230
|
+
- \`!?@self\`: Fresh Boots Reasoning (FBR) self-call. Targets your current dialog agentId and creates a NEW ephemeral subdialog (default; most common).
|
|
231
|
+
- \`!?@self !tellaskSession <tellaskSession>\`: FBR self-call with a registered tellask session (rare). Use only when you explicitly want a resumable long-lived fresh-boots workspace.
|
|
232
|
+
- \`!?@super\`: Supdialog call (Type A) **primary syntax**. Only valid inside a subdialog; calls the direct parent dialog (supdialog), suspending this subdialog temporarily and then resuming with the parent's response. Must be used with NO \`!tellaskSession\`.
|
|
233
|
+
- \`!?@<supdialogAgentId>\` (no \`!tellaskSession\`) is a tolerated semantic fallback, but prefer \`!?@super\` especially when IDs might be identical (e.g., FBR self-subdialogs), to avoid ambiguity and accidental self-call confusion.
|
|
234
|
+
|
|
235
|
+
### Toolset Prompts & Teammate Tellasks (Tellask)
|
|
236
|
+
|
|
237
|
+
${input.toolUsageText}${input.intrinsicToolInstructions
|
|
238
|
+
? `\n### Dialog Control Tools\n${input.intrinsicToolInstructions}`
|
|
239
|
+
: '\n'}
|
|
240
|
+
### Examples
|
|
241
|
+
- Single tellask call (no body)
|
|
242
|
+
\`\`\`plain-text
|
|
243
|
+
!?@tool_a arg1
|
|
244
|
+
\`\`\`
|
|
245
|
+
|
|
246
|
+
- Tellask call with a body (a normal line ends the block automatically)
|
|
247
|
+
\`\`\`plain-text
|
|
248
|
+
!?@pangu !tellaskSession fix-ws-mod
|
|
249
|
+
!?1) Run lint/types
|
|
250
|
+
!?2) Report errors and proposed fixes
|
|
251
|
+
OK — I will wait for your results and then proceed.
|
|
252
|
+
\`\`\`
|
|
253
|
+
|
|
254
|
+
- Multiline headline + body
|
|
255
|
+
\`\`\`plain-text
|
|
256
|
+
!?@pangu Please do the following:
|
|
257
|
+
!?@And keep the output concise
|
|
258
|
+
!?1) Check logs/error.log
|
|
259
|
+
!?2) Propose a fix
|
|
260
|
+
\`\`\`
|
|
261
|
+
|
|
262
|
+
- Multi-call (separate blocks)
|
|
263
|
+
\`\`\`plain-text
|
|
264
|
+
!?@tooling !tellaskSession tooling-read-file-options
|
|
265
|
+
!?Please check why read_file options parsing is failing and propose a fix.
|
|
266
|
+
|
|
267
|
+
!?@server !tellaskSession server-ws-func-tools
|
|
268
|
+
!?Please review whether the WS handler needs updates for func-tool calls and report findings.
|
|
269
|
+
\`\`\`
|
|
270
|
+
|
|
271
|
+
### Concurrency & Orchestration
|
|
272
|
+
- All calls in one response run concurrently; they cannot see each other's outputs in the same turn.
|
|
273
|
+
- Design each call to be self-sufficient.
|
|
274
|
+
- For dependent steps, split across turns or use an orchestrator tool to enforce sequencing.
|
|
275
|
+
|
|
276
|
+
### Safety Against Accidental Mentions
|
|
277
|
+
- Only lines beginning with \`!?\` at column 0 are interpreted as tellask lines.
|
|
278
|
+
- Inline \`!?\` and \`@\` have no special meaning.
|
|
279
|
+
- When in doubt, do not place \`!?\` at column 0; wrap literal examples in backticks.
|
|
280
|
+
`;
|
|
281
|
+
}
|