dominds 1.4.2 → 1.5.1
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/README.md +24 -0
- package/README.zh.md +24 -0
- package/dist/apps/app-json.js +38 -3
- package/dist/apps/dialog-run-controls.js +4 -0
- package/dist/apps/enabled-apps.js +8 -1
- package/dist/apps/installed-file.js +207 -0
- package/dist/apps/run-app-json.js +6 -6
- package/dist/apps/runtime-port.js +91 -0
- package/dist/apps/runtime.js +316 -68
- package/dist/apps-host/client.js +153 -3
- package/dist/apps-host/host.js +339 -2
- package/dist/apps-host/ipc-types.js +215 -30
- package/dist/cli/install.js +21 -1
- package/dist/dialog-fork.js +608 -0
- package/dist/dialog.js +2 -2
- package/dist/docs/app-constitution.md +153 -2
- package/dist/docs/app-constitution.zh.md +153 -2
- package/dist/docs/dialog-persistence.md +31 -0
- package/dist/docs/dialog-persistence.zh.md +31 -0
- package/dist/docs/dialog-system.md +29 -0
- package/dist/docs/dialog-system.zh.md +29 -0
- package/dist/docs/kernel-app-architecture.md +286 -0
- package/dist/docs/kernel-app-architecture.zh.md +285 -0
- package/dist/llm/defaults.yaml +16 -0
- package/dist/llm/driver-entry.js +28 -0
- package/dist/llm/driver-v2/context-health.js +121 -0
- package/dist/llm/driver-v2/context.js +56 -0
- package/dist/llm/driver-v2/core.js +1545 -0
- package/dist/llm/driver-v2/index.js +26 -0
- package/dist/llm/driver-v2/orchestrator.js +158 -0
- package/dist/llm/driver-v2/policy.js +129 -0
- package/dist/llm/driver-v2/restore-dialog-hierarchy.js +73 -0
- package/dist/llm/driver-v2/round.js +366 -0
- package/dist/llm/driver-v2/runtime-utils.js +365 -0
- package/dist/llm/driver-v2/saying-events.js +20 -0
- package/dist/llm/driver-v2/subdialog-txn.js +42 -0
- package/dist/llm/driver-v2/supdialog-response.js +400 -0
- package/dist/llm/driver-v2/tellask-bridge.js +1148 -0
- package/dist/llm/driver-v2/types.js +10 -0
- package/dist/llm/driver-v2-ref-only/context-health.js +121 -0
- package/dist/llm/driver-v2-ref-only/context.js +17 -0
- package/dist/llm/driver-v2-ref-only/core.js +1710 -0
- package/dist/llm/driver-v2-ref-only/index.js +26 -0
- package/dist/llm/driver-v2-ref-only/orchestrator.js +158 -0
- package/dist/llm/driver-v2-ref-only/policy.js +129 -0
- package/dist/llm/driver-v2-ref-only/restore-dialog-hierarchy.js +73 -0
- package/dist/llm/driver-v2-ref-only/round.js +366 -0
- package/dist/llm/driver-v2-ref-only/runtime-utils.js +473 -0
- package/dist/llm/driver-v2-ref-only/saying-events.js +18 -0
- package/dist/llm/driver-v2-ref-only/subdialog-txn.js +42 -0
- package/dist/llm/driver-v2-ref-only/supdialog-response.js +453 -0
- package/dist/llm/driver-v2-ref-only/tellask-bridge.js +1178 -0
- package/dist/llm/driver-v2-ref-only/types.js +10 -0
- package/dist/llm/gen/anthropic.js +68 -15
- package/dist/llm/gen/codex.js +59 -10
- package/dist/llm/gen/openai-compatible.js +38 -9
- package/dist/llm/gen/openai.js +58 -11
- package/dist/llm/gen/tool-output-limit.js +50 -0
- package/dist/llm/kernel-driver/subdialog.js +8 -1
- package/dist/llm/kernel-driver/tellask-special.js +18 -3
- package/dist/minds/load.js +7 -0
- package/dist/persistence.js +190 -28
- package/dist/priming.js +20 -1
- package/dist/server/api-routes.js +82 -0
- package/dist/server/setup-routes.js +15 -0
- package/dist/static/assets/{_basePickBy-B2o4z1Hf.js → _basePickBy-C-nynT9f.js} +3 -3
- package/dist/static/assets/{_basePickBy-B2o4z1Hf.js.map → _basePickBy-C-nynT9f.js.map} +1 -1
- package/dist/static/assets/{_baseUniq-CLmcxjdl.js → _baseUniq-CiHd-eVT.js} +2 -2
- package/dist/static/assets/{_baseUniq-CLmcxjdl.js.map → _baseUniq-CiHd-eVT.js.map} +1 -1
- package/dist/static/assets/{arc-CymD_KN7.js → arc-_OJzDWy1.js} +2 -2
- package/dist/static/assets/{arc-CymD_KN7.js.map → arc-_OJzDWy1.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-DJQfSJUH.js → architectureDiagram-VXUJARFQ-CDEG85ub.js} +7 -7
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-DJQfSJUH.js.map → architectureDiagram-VXUJARFQ-CDEG85ub.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-pHVz60D0.js → blockDiagram-VD42YOAC-1LzKVc5t.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-pHVz60D0.js.map → blockDiagram-VD42YOAC-1LzKVc5t.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-B0WnCfAT.js → c4Diagram-YG6GDRKO-BzYnVyvY.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-B0WnCfAT.js.map → c4Diagram-YG6GDRKO-BzYnVyvY.js.map} +1 -1
- package/dist/static/assets/{channel-CX9BlKil.js → channel-VAEDAk9T.js} +2 -2
- package/dist/static/assets/{channel-CX9BlKil.js.map → channel-VAEDAk9T.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-lXArRj3o.js → chunk-4BX2VUAB-D0r2u3mX.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-lXArRj3o.js.map → chunk-4BX2VUAB-D0r2u3mX.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-CdqwynH9.js → chunk-55IACEB6-Dkl8Xw7i.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-CdqwynH9.js.map → chunk-55IACEB6-Dkl8Xw7i.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-Y-uXcJst.js → chunk-B4BG7PRW-9sxsI8ns.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-Y-uXcJst.js.map → chunk-B4BG7PRW-9sxsI8ns.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-C5xSbRST.js → chunk-DI55MBZ5-AHaqkaLl.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-C5xSbRST.js.map → chunk-DI55MBZ5-AHaqkaLl.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-5uefwCjI.js → chunk-FMBD7UC4-NWDLDixD.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-5uefwCjI.js.map → chunk-FMBD7UC4-NWDLDixD.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-DzWVcvpI.js → chunk-QN33PNHL-C2KeUqle.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-DzWVcvpI.js.map → chunk-QN33PNHL-C2KeUqle.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-BrrvAZdP.js → chunk-QZHKN3VN-B6Eoxo5L.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-BrrvAZdP.js.map → chunk-QZHKN3VN-B6Eoxo5L.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-DyKOlPTY.js → chunk-TZMSLE5B-Bc-VyQon.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-DyKOlPTY.js.map → chunk-TZMSLE5B-Bc-VyQon.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-FCrnlCWC.js → classDiagram-2ON5EDUG-DmPfsN1H.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-FCrnlCWC.js.map → classDiagram-2ON5EDUG-DmPfsN1H.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-FCrnlCWC.js → classDiagram-v2-WZHVMYZB-DmPfsN1H.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-FCrnlCWC.js.map → classDiagram-v2-WZHVMYZB-DmPfsN1H.js.map} +1 -1
- package/dist/static/assets/{clone-BlI81KqZ.js → clone-B1R4pLTW.js} +2 -2
- package/dist/static/assets/{clone-BlI81KqZ.js.map → clone-B1R4pLTW.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-yM7S2atz.js → cose-bilkent-S5V4N54A-CxY__sKv.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-yM7S2atz.js.map → cose-bilkent-S5V4N54A-CxY__sKv.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-BcweuZHt.js → dagre-6UL2VRFP-CPkB5tQ0.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-BcweuZHt.js.map → dagre-6UL2VRFP-CPkB5tQ0.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-D4-QwLW1.js → diagram-PSM6KHXK-C6kCVpCz.js} +8 -8
- package/dist/static/assets/{diagram-PSM6KHXK-D4-QwLW1.js.map → diagram-PSM6KHXK-C6kCVpCz.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-BVbuejJn.js → diagram-QEK2KX5R-BWF6htf1.js} +7 -7
- package/dist/static/assets/{diagram-QEK2KX5R-BVbuejJn.js.map → diagram-QEK2KX5R-BWF6htf1.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-pB6N6Tq_.js → diagram-S2PKOQOG-lKGJH6O9.js} +7 -7
- package/dist/static/assets/{diagram-S2PKOQOG-pB6N6Tq_.js.map → diagram-S2PKOQOG-lKGJH6O9.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-DLKmthuw.js → erDiagram-Q2GNP2WA-DJ3YaFob.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-DLKmthuw.js.map → erDiagram-Q2GNP2WA-DJ3YaFob.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-BsBhWukh.js → flowDiagram-NV44I4VS-h3eQwA3O.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-BsBhWukh.js.map → flowDiagram-NV44I4VS-h3eQwA3O.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-Debz-J-C.js → ganttDiagram-JELNMOA3-BCbsDOF_.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-Debz-J-C.js.map → ganttDiagram-JELNMOA3-BCbsDOF_.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-BnAPFBGR.js → gitGraphDiagram-V2S2FVAM-D0kX6h-T.js} +8 -8
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-BnAPFBGR.js.map → gitGraphDiagram-V2S2FVAM-D0kX6h-T.js.map} +1 -1
- package/dist/static/assets/{graph-DbzWiBNK.js → graph-CZIEXp3A.js} +3 -3
- package/dist/static/assets/{graph-DbzWiBNK.js.map → graph-CZIEXp3A.js.map} +1 -1
- package/dist/static/assets/{index-B-8J28g7.js → index-vIzCTZQE.js} +156 -35
- package/dist/static/assets/index-vIzCTZQE.js.map +1 -0
- package/dist/static/assets/{infoDiagram-HS3SLOUP-CZ5hWoxV.js → infoDiagram-HS3SLOUP-DUNbcXxv.js} +6 -6
- package/dist/static/assets/{infoDiagram-HS3SLOUP-CZ5hWoxV.js.map → infoDiagram-HS3SLOUP-DUNbcXxv.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-CKN3oSxk.js → journeyDiagram-XKPGCS4Q-Cg_VhiqB.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-CKN3oSxk.js.map → journeyDiagram-XKPGCS4Q-Cg_VhiqB.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BQCMklfJ.js → kanban-definition-3W4ZIXB7-DMVCZVFE.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BQCMklfJ.js.map → kanban-definition-3W4ZIXB7-DMVCZVFE.js.map} +1 -1
- package/dist/static/assets/{layout-C5B58szc.js → layout-DoKTmwlM.js} +5 -5
- package/dist/static/assets/{layout-C5B58szc.js.map → layout-DoKTmwlM.js.map} +1 -1
- package/dist/static/assets/{linear-_32fut6G.js → linear-DFVlPfX6.js} +2 -2
- package/dist/static/assets/{linear-_32fut6G.js.map → linear-DFVlPfX6.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-C_goMzjx.js → mindmap-definition-VGOIOE7T-l5K7agVV.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-C_goMzjx.js.map → mindmap-definition-VGOIOE7T-l5K7agVV.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-BQ2n0cOB.js → pieDiagram-ADFJNKIX-BfQzSE-A.js} +8 -8
- package/dist/static/assets/{pieDiagram-ADFJNKIX-BQ2n0cOB.js.map → pieDiagram-ADFJNKIX-BfQzSE-A.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-BLg7_neg.js → quadrantDiagram-AYHSOK5B-CJWvA5jc.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-BLg7_neg.js.map → quadrantDiagram-AYHSOK5B-CJWvA5jc.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DwkJt0zi.js → requirementDiagram-UZGBJVZJ-CeBbmqBK.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DwkJt0zi.js.map → requirementDiagram-UZGBJVZJ-CeBbmqBK.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DmxmatUB.js → sankeyDiagram-TZEHDZUN-JeUBTDxx.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DmxmatUB.js.map → sankeyDiagram-TZEHDZUN-JeUBTDxx.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-KHU_eApU.js → sequenceDiagram-WL72ISMW-Bd_7Pgc5.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-KHU_eApU.js.map → sequenceDiagram-WL72ISMW-Bd_7Pgc5.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-B3DBCxAL.js → stateDiagram-FKZM4ZOC-D_WyM3K1.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-B3DBCxAL.js.map → stateDiagram-FKZM4ZOC-D_WyM3K1.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-C-uIk7gh.js → stateDiagram-v2-4FDKWEC3-Q_yh26yx.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-C-uIk7gh.js.map → stateDiagram-v2-4FDKWEC3-Q_yh26yx.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-SysEcQCC.js → timeline-definition-IT6M3QCI-Ca8mCFDg.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-SysEcQCC.js.map → timeline-definition-IT6M3QCI-Ca8mCFDg.js.map} +1 -1
- package/dist/static/assets/{treemap-GDKQZRPO-d0AbKEc4.js → treemap-GDKQZRPO-CyBvKC8o.js} +5 -5
- package/dist/static/assets/{treemap-GDKQZRPO-d0AbKEc4.js.map → treemap-GDKQZRPO-CyBvKC8o.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-CmSQMxUh.js → xychartDiagram-PRI3JC2R-DY0BLEdj.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-CmSQMxUh.js.map → xychartDiagram-PRI3JC2R-DY0BLEdj.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/team.js +33 -4
- package/dist/tools/app-reminders.js +280 -0
- package/dist/tools/prompts/memory/en/errors.md +155 -0
- package/dist/tools/prompts/memory/en/index.md +47 -0
- package/dist/tools/prompts/memory/en/principles.md +79 -0
- package/dist/tools/prompts/memory/en/scenarios.md +174 -0
- package/dist/tools/prompts/memory/en/tools.md +154 -0
- package/dist/tools/prompts/memory/zh/errors.md +155 -0
- package/dist/tools/prompts/memory/zh/index.md +47 -0
- package/dist/tools/prompts/memory/zh/principles.md +79 -0
- package/dist/tools/prompts/memory/zh/scenarios.md +174 -0
- package/dist/tools/prompts/memory/zh/tools.md +154 -0
- package/dist/tools/ripgrep.js +197 -63
- package/package.json +2 -2
- package/dist/static/assets/index-B-8J28g7.js.map +0 -1
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# memory Usage Scenarios
|
|
2
|
+
|
|
3
|
+
## Template (Scenarios)
|
|
4
|
+
|
|
5
|
+
### Scenario Format
|
|
6
|
+
|
|
7
|
+
- Goal
|
|
8
|
+
- Preconditions
|
|
9
|
+
- Steps
|
|
10
|
+
- Expected Signal
|
|
11
|
+
- Failure Branch
|
|
12
|
+
- Completion Criteria
|
|
13
|
+
|
|
14
|
+
## Scenario 1: Task Progress Tracking
|
|
15
|
+
|
|
16
|
+
### Scenario Description
|
|
17
|
+
|
|
18
|
+
In long-running tasks, you need to persist task progress to continue after restart.
|
|
19
|
+
|
|
20
|
+
### Example
|
|
21
|
+
|
|
22
|
+
**Add Task List**
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
add_memory({
|
|
26
|
+
path: 'project/i18n-tasks',
|
|
27
|
+
content:
|
|
28
|
+
'## TODO\n\n- [ ] Create ws_mod manual\n- [ ] Create team_mgmt manual\n- [ ] Create memory manual\n- [ ] Create control manual\n\n## In Progress\n- [ ] Create ws_mod manual [100%]',
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Update Task Progress**
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
replace_memory({
|
|
36
|
+
path: 'project/i18n-tasks',
|
|
37
|
+
content:
|
|
38
|
+
'## TODO\n\n- [ ] Create team_mgmt manual\n- [ ] Create memory manual\n- [ ] Create control manual\n\n## Completed\n- [x] Create ws_mod manual\n\n## In Progress\n- [ ] Create team_mgmt manual [50%]',
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Scenario 2: User Preferences Storage
|
|
43
|
+
|
|
44
|
+
### Scenario Description
|
|
45
|
+
|
|
46
|
+
Save user preferences, such as programming language, theme, etc.
|
|
47
|
+
|
|
48
|
+
### Example
|
|
49
|
+
|
|
50
|
+
**Save User Preferences**
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
add_memory({
|
|
54
|
+
path: 'user/preferences',
|
|
55
|
+
content:
|
|
56
|
+
'## User Preferences\n\n- Programming Language: TypeScript\n- Code Style: strict\n- Theme: dark\n- Auto Save: true',
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Update Preferences**
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
replace_memory({
|
|
64
|
+
path: 'user/preferences',
|
|
65
|
+
content:
|
|
66
|
+
'## User Preferences\n\n- Programming Language: TypeScript\n- Code Style: strict\n- Theme: light\n- Auto Save: true',
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Scenario 3: Context Information Preservation
|
|
71
|
+
|
|
72
|
+
### Scenario Description
|
|
73
|
+
|
|
74
|
+
In complex tasks, save important context information to avoid repeated queries.
|
|
75
|
+
|
|
76
|
+
### Example
|
|
77
|
+
|
|
78
|
+
**Save API Information**
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
add_memory({
|
|
82
|
+
path: 'context/api-endpoints',
|
|
83
|
+
content:
|
|
84
|
+
'## API Endpoints\n\n- User Login: POST /api/auth/login\n- Get User Info: GET /api/user/info\n- Update User Settings: PUT /api/user/settings\n\n## Authentication\n- Use Bearer Token\n- Validity: 24 hours',
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Save Tech Stack**
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
add_memory({
|
|
92
|
+
path: 'context/tech-stack',
|
|
93
|
+
content:
|
|
94
|
+
'## Tech Stack\n\n- Frontend: React + TypeScript\n- Backend: Node.js + Express\n- Database: PostgreSQL\n- Cache: Redis',
|
|
95
|
+
});
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Scenario 4: Meeting Notes
|
|
99
|
+
|
|
100
|
+
### Scenario Description
|
|
101
|
+
|
|
102
|
+
Save meeting highlights and decisions.
|
|
103
|
+
|
|
104
|
+
### Example
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
add_memory({
|
|
108
|
+
path: 'meeting/2024-01-15',
|
|
109
|
+
content:
|
|
110
|
+
'## Meeting Notes: 2024-01-15\n\n### Participants\n- @fullstack\n- @i18n\n- @ux\n\n### Agenda\n1. i18n manual creation plan\n2. man function UX improvements\n\n### Decisions\n- Prioritize creating ws_mod and team_mgmt manuals\n- man function supports fuzzy matching\n\n### TODO\n- @i18n: Create memory manual\n- @fullstack: Optimize man function',
|
|
111
|
+
});
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Scenario 5: Knowledge Base
|
|
115
|
+
|
|
116
|
+
### Scenario Description
|
|
117
|
+
|
|
118
|
+
Build a personal knowledge base and save learning notes.
|
|
119
|
+
|
|
120
|
+
### Example
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
add_memory({
|
|
124
|
+
path: 'knowledge/typescript-tips',
|
|
125
|
+
content:
|
|
126
|
+
'## TypeScript Tips\n\n### 1. Type Inference\nconst x = 1; // Type inferred as number\n\n### 2. Interface vs Type\n- Interface: Extensible, suitable for object types\n- Type: Supports union types, intersection types\n\n### 3. Strict Mode\nEnabling strict mode provides better type safety',
|
|
127
|
+
});
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Scenario 6: Temporary Notes
|
|
131
|
+
|
|
132
|
+
### Scenario Description
|
|
133
|
+
|
|
134
|
+
Temporarily save information to process later.
|
|
135
|
+
|
|
136
|
+
### Example
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
add_memory({
|
|
140
|
+
path: 'scratchpad/temp-notes',
|
|
141
|
+
content:
|
|
142
|
+
'## Temporary Notes\n\n- TODO: Check team.yaml configuration\n- TODO: Verify man function types\n- TODO: Update taskdoc progress',
|
|
143
|
+
});
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Delete after processing**
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
drop_memory({
|
|
150
|
+
path: 'scratchpad/temp-notes',
|
|
151
|
+
});
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Scenario 7: Cleaning Up Outdated Memory
|
|
155
|
+
|
|
156
|
+
### Scenario Description
|
|
157
|
+
|
|
158
|
+
Regularly clean up memories that are no longer needed.
|
|
159
|
+
|
|
160
|
+
### Example
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
// View all current memories (agent can read)
|
|
164
|
+
// Delete unnecessary memories one by one
|
|
165
|
+
drop_memory({
|
|
166
|
+
path: 'project/old-feature',
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Or use `clear_memory` to clear all memories (use with caution):
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
clear_memory({});
|
|
174
|
+
```
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# memory Tool Reference
|
|
2
|
+
|
|
3
|
+
## Template (Tools)
|
|
4
|
+
|
|
5
|
+
### How to Read
|
|
6
|
+
|
|
7
|
+
- The schema-generated "Tool Contract (Schema)" section is canonical for parameters/returns.
|
|
8
|
+
|
|
9
|
+
### Per-Tool Fields (order)
|
|
10
|
+
|
|
11
|
+
1. Purpose
|
|
12
|
+
2. Call Signature
|
|
13
|
+
3. Parameters (refer to schema)
|
|
14
|
+
4. Preconditions
|
|
15
|
+
5. Success Signal
|
|
16
|
+
6. Failure/Errors
|
|
17
|
+
7. Copy-Ready Example
|
|
18
|
+
8. Common Misuse
|
|
19
|
+
|
|
20
|
+
## Tool List
|
|
21
|
+
|
|
22
|
+
### 1. add_memory
|
|
23
|
+
|
|
24
|
+
Create new memory (when path does not exist).
|
|
25
|
+
|
|
26
|
+
**Parameters:**
|
|
27
|
+
|
|
28
|
+
- `path` (required): Unique identifier for the memory
|
|
29
|
+
- `content` (required): Memory content
|
|
30
|
+
|
|
31
|
+
**Returns:**
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
status: ok|error
|
|
35
|
+
path: <memory path>
|
|
36
|
+
content_size: <content size in bytes>
|
|
37
|
+
created_at: <creation timestamp>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Errors:**
|
|
41
|
+
|
|
42
|
+
- `MEMORY_ALREADY_EXISTS`: Path already exists, use `replace_memory` to update
|
|
43
|
+
|
|
44
|
+
### 2. replace_memory
|
|
45
|
+
|
|
46
|
+
Update existing memory (when path exists).
|
|
47
|
+
|
|
48
|
+
**Parameters:**
|
|
49
|
+
|
|
50
|
+
- `path` (required): Unique identifier for the memory
|
|
51
|
+
- `content` (required): New memory content
|
|
52
|
+
|
|
53
|
+
**Returns:**
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
status: ok|error
|
|
57
|
+
path: <memory path>
|
|
58
|
+
content_size: <content size in bytes>
|
|
59
|
+
updated_at: <update timestamp>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Errors:**
|
|
63
|
+
|
|
64
|
+
- `MEMORY_NOT_FOUND`: Path does not exist, use `add_memory` to create
|
|
65
|
+
|
|
66
|
+
### 3. drop_memory
|
|
67
|
+
|
|
68
|
+
Delete specified memory.
|
|
69
|
+
|
|
70
|
+
**Parameters:**
|
|
71
|
+
|
|
72
|
+
- `path` (required): Memory path to delete
|
|
73
|
+
|
|
74
|
+
**Returns:**
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
status: ok|error
|
|
78
|
+
path: <memory path>
|
|
79
|
+
deleted_at: <deletion timestamp>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Errors:**
|
|
83
|
+
|
|
84
|
+
- `MEMORY_NOT_FOUND`: Path does not exist
|
|
85
|
+
|
|
86
|
+
### 4. clear_memory
|
|
87
|
+
|
|
88
|
+
Clear all personal memory.
|
|
89
|
+
|
|
90
|
+
**Warning:** This operation is irreversible!
|
|
91
|
+
|
|
92
|
+
**Parameters:** None
|
|
93
|
+
|
|
94
|
+
**Returns:**
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
status: ok|error
|
|
98
|
+
cleared_count: <number of memories deleted>
|
|
99
|
+
cleared_at: <deletion timestamp>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Errors:**
|
|
103
|
+
|
|
104
|
+
- None (returns success even if no memories exist)
|
|
105
|
+
|
|
106
|
+
## Usage Examples
|
|
107
|
+
|
|
108
|
+
### Add New Memory
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
add_memory({
|
|
112
|
+
path: 'project/todo',
|
|
113
|
+
content: '- Complete i18n docs\n- Write test cases\n- Update README',
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Update Existing Memory
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
replace_memory({
|
|
121
|
+
path: 'project/todo',
|
|
122
|
+
content: '- Complete i18n docs [DONE]\n- Write test cases [IN PROGRESS]\n- Update README',
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Delete Memory
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
drop_memory({
|
|
130
|
+
path: 'project/todo',
|
|
131
|
+
});
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Clear All Memory
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
clear_memory({});
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## YAML Output Contract
|
|
141
|
+
|
|
142
|
+
All tool outputs use YAML format for programmatic processing:
|
|
143
|
+
|
|
144
|
+
- `status`: Operation status, `ok` for success, `error` for failure
|
|
145
|
+
- `path`: Memory path
|
|
146
|
+
- Other fields: Additional information for specific operations
|
|
147
|
+
|
|
148
|
+
On error, returns:
|
|
149
|
+
|
|
150
|
+
```yaml
|
|
151
|
+
status: error
|
|
152
|
+
error_code: <error code>
|
|
153
|
+
message: <error message>
|
|
154
|
+
```
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# memory 错误处理
|
|
2
|
+
|
|
3
|
+
## 模板(错误)
|
|
4
|
+
|
|
5
|
+
### 错误行动链(必填)
|
|
6
|
+
|
|
7
|
+
1. 触发条件
|
|
8
|
+
2. 检测信号
|
|
9
|
+
3. 恢复步骤
|
|
10
|
+
4. 成功判据
|
|
11
|
+
5. 升级路径(可选)
|
|
12
|
+
|
|
13
|
+
## 错误代码
|
|
14
|
+
|
|
15
|
+
### MEMORY_ALREADY_EXISTS
|
|
16
|
+
|
|
17
|
+
**描述:** 路径已存在,无法使用 `add_memory` 创建新记忆。
|
|
18
|
+
|
|
19
|
+
**原因:**
|
|
20
|
+
|
|
21
|
+
- 尝试添加的路径已经被其他记忆占用
|
|
22
|
+
|
|
23
|
+
**解决方案:**
|
|
24
|
+
|
|
25
|
+
- 使用 `replace_memory` 更新已有记忆
|
|
26
|
+
- 或者使用不同的路径创建新记忆
|
|
27
|
+
|
|
28
|
+
**示例:**
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
错误:
|
|
32
|
+
status: error
|
|
33
|
+
error_code: MEMORY_ALREADY_EXISTS
|
|
34
|
+
message: 路径 "project/todo" 已存在,请使用 replace_memory 更新
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### MEMORY_NOT_FOUND
|
|
38
|
+
|
|
39
|
+
**描述:** 路径不存在,无法执行操作。
|
|
40
|
+
|
|
41
|
+
**原因:**
|
|
42
|
+
|
|
43
|
+
- 尝试访问的记忆路径不存在
|
|
44
|
+
- 路径被删除或从未创建
|
|
45
|
+
|
|
46
|
+
**解决方案:**
|
|
47
|
+
|
|
48
|
+
- 如果是更新/删除操作,先使用 `add_memory` 创建
|
|
49
|
+
- 检查路径是否正确
|
|
50
|
+
|
|
51
|
+
**示例:**
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
错误:
|
|
55
|
+
status: error
|
|
56
|
+
error_code: MEMORY_NOT_FOUND
|
|
57
|
+
message: 路径 "project/todo" 不存在,请先使用 add_memory 创建
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### MEMORY_PATH_INVALID
|
|
61
|
+
|
|
62
|
+
**描述:** 路径格式无效。
|
|
63
|
+
|
|
64
|
+
**原因:**
|
|
65
|
+
|
|
66
|
+
- 路径包含非法字符
|
|
67
|
+
- 路径长度超过限制
|
|
68
|
+
|
|
69
|
+
**解决方案:**
|
|
70
|
+
|
|
71
|
+
- 确保路径只包含字母、数字、下划线、斜杠
|
|
72
|
+
- 路径长度不超过 255 个字符
|
|
73
|
+
|
|
74
|
+
**示例:**
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
错误:
|
|
78
|
+
status: error
|
|
79
|
+
error_code: MEMORY_PATH_INVALID
|
|
80
|
+
message: 路径 "project/*invalid*" 包含非法字符
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### MEMORY_CONTENT_TOO_LARGE
|
|
84
|
+
|
|
85
|
+
**描述:** 记忆内容过大。
|
|
86
|
+
|
|
87
|
+
**原因:**
|
|
88
|
+
|
|
89
|
+
- 单条记忆内容超过 1MB 限制
|
|
90
|
+
|
|
91
|
+
**解决方案:**
|
|
92
|
+
|
|
93
|
+
- 压缩内容
|
|
94
|
+
- 拆分为多条记忆
|
|
95
|
+
- 使用外部存储(如文件)
|
|
96
|
+
|
|
97
|
+
**示例:**
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
错误:
|
|
101
|
+
status: error
|
|
102
|
+
error_code: MEMORY_CONTENT_TOO_LARGE
|
|
103
|
+
message: 内容大小 1.2MB 超过 1MB 限制
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### MEMORY_STORAGE_ERROR
|
|
107
|
+
|
|
108
|
+
**描述:** 存储错误。
|
|
109
|
+
|
|
110
|
+
**原因:**
|
|
111
|
+
|
|
112
|
+
- 磁盘空间不足
|
|
113
|
+
- 权限问题
|
|
114
|
+
- 文件系统错误
|
|
115
|
+
|
|
116
|
+
**解决方案:**
|
|
117
|
+
|
|
118
|
+
- 检查磁盘空间
|
|
119
|
+
- 检查文件权限
|
|
120
|
+
- 重试操作
|
|
121
|
+
|
|
122
|
+
**示例:**
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
错误:
|
|
126
|
+
status: error
|
|
127
|
+
error_code: MEMORY_STORAGE_ERROR
|
|
128
|
+
message: 无法写入存储,磁盘空间不足
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## 常见问题
|
|
132
|
+
|
|
133
|
+
### Q: 记忆会自动保存吗?
|
|
134
|
+
|
|
135
|
+
A: 是的,所有记忆操作都会立即持久化到磁盘。不需要手动保存。
|
|
136
|
+
|
|
137
|
+
### Q: 记忆有数量限制吗?
|
|
138
|
+
|
|
139
|
+
A: 没有严格的数量限制,但建议保持记忆数量在合理范围内(建议少于 100 条)。
|
|
140
|
+
|
|
141
|
+
### Q: 记忆可以被其他成员看到吗?
|
|
142
|
+
|
|
143
|
+
A: 不可以,memory 是个人记忆工具,只有当前智能体可以访问。如果需要共享给团队成员,请使用 team_memory。
|
|
144
|
+
|
|
145
|
+
### Q: clear_memory 会删除所有记忆吗?
|
|
146
|
+
|
|
147
|
+
A: 是的,`clear_memory` 会删除所有个人记忆,此操作不可恢复。请谨慎使用。
|
|
148
|
+
|
|
149
|
+
### Q: 记忆会过期吗?
|
|
150
|
+
|
|
151
|
+
A: 不会,记忆会永久保存,直到被显式删除。
|
|
152
|
+
|
|
153
|
+
### Q: 如何查看当前所有记忆?
|
|
154
|
+
|
|
155
|
+
A: 智能体在生成回复时可以访问所有个人记忆。你可以直接询问智能体当前有哪些记忆。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# memory 个人记忆工具手册
|
|
2
|
+
|
|
3
|
+
## 模板(概述)
|
|
4
|
+
|
|
5
|
+
### 一句话定位
|
|
6
|
+
|
|
7
|
+
- <该工具集用途,一句话描述>
|
|
8
|
+
|
|
9
|
+
### 工具清单
|
|
10
|
+
|
|
11
|
+
- <列出核心工具,或指向 Tools/Schema 章节>
|
|
12
|
+
|
|
13
|
+
### 30 秒上手
|
|
14
|
+
|
|
15
|
+
1. <调用 ...>
|
|
16
|
+
2. <观察 ...>
|
|
17
|
+
3. <下一步 ...>
|
|
18
|
+
|
|
19
|
+
### 导航
|
|
20
|
+
|
|
21
|
+
- principles / tools / scenarios / errors
|
|
22
|
+
|
|
23
|
+
### 与其他工具集的边界
|
|
24
|
+
|
|
25
|
+
- <何时用本工具集、何时用相邻工具集>
|
|
26
|
+
|
|
27
|
+
memory 是 Dominds 的**个人记忆工具集**,用于管理智能体的私有记忆:
|
|
28
|
+
|
|
29
|
+
- **私有性**:记忆仅对当前智能体可见,不会共享给其他成员
|
|
30
|
+
- **持久化**:记忆会持久化到磁盘,在对话重启后仍然保留
|
|
31
|
+
- **结构化**:支持按路径组织记忆,便于分类和检索
|
|
32
|
+
|
|
33
|
+
## 快速导航
|
|
34
|
+
|
|
35
|
+
| 主题 | 描述 |
|
|
36
|
+
| ----------------------------- | -------------------------------- |
|
|
37
|
+
| [principles](./principles.md) | 核心概念、记忆生命周期、最佳实践 |
|
|
38
|
+
| [tools](./tools.md) | 完整工具列表与接口契约 |
|
|
39
|
+
| [scenarios](./scenarios.md) | 常见使用场景与示例(复制即用) |
|
|
40
|
+
| [errors](./errors.md) | 错误代码与解决方案 |
|
|
41
|
+
|
|
42
|
+
## 状态
|
|
43
|
+
|
|
44
|
+
- 状态:已实现
|
|
45
|
+
- 主要实现文件:
|
|
46
|
+
- 工具实现:`dominds/main/tools/mem.ts`
|
|
47
|
+
- toolset 元信息:`dominds/main/tools/builtins.ts`、`dominds/main/tools/registry.ts`
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# memory 原则与核心概念
|
|
2
|
+
|
|
3
|
+
## 模板(原则)
|
|
4
|
+
|
|
5
|
+
### 设计目标
|
|
6
|
+
|
|
7
|
+
- <目标 1>
|
|
8
|
+
- <目标 2>
|
|
9
|
+
|
|
10
|
+
### 契约原则
|
|
11
|
+
|
|
12
|
+
- <输入/输出契约规则>
|
|
13
|
+
|
|
14
|
+
### 安全与边界
|
|
15
|
+
|
|
16
|
+
- <访问约束/护栏>
|
|
17
|
+
|
|
18
|
+
### 失败与恢复
|
|
19
|
+
|
|
20
|
+
- <调用失败时的行动>
|
|
21
|
+
|
|
22
|
+
### 术语表
|
|
23
|
+
|
|
24
|
+
- <该工具集特有术语>
|
|
25
|
+
|
|
26
|
+
## 记忆模型
|
|
27
|
+
|
|
28
|
+
memory 工具集采用**路径键值存储**模型:
|
|
29
|
+
|
|
30
|
+
- **路径(path)**:记忆的唯一标识符,类似于文件系统路径,例如 `project/todo` 或 `user/preferences/theme`
|
|
31
|
+
- **内容(content)**:记忆的实际内容,可以是任意文本
|
|
32
|
+
|
|
33
|
+
## 工具概览
|
|
34
|
+
|
|
35
|
+
| 工具 | 功能 |
|
|
36
|
+
| -------------- | ---------------------------- |
|
|
37
|
+
| add_memory | 创建新记忆(路径不存在时) |
|
|
38
|
+
| replace_memory | 更新已有记忆(路径存在时) |
|
|
39
|
+
| drop_memory | 删除记忆 |
|
|
40
|
+
| clear_memory | 清空所有个人记忆(不可恢复) |
|
|
41
|
+
|
|
42
|
+
## 记忆生命周期
|
|
43
|
+
|
|
44
|
+
1. **创建(add)**:使用 `add_memory` 创建新记忆
|
|
45
|
+
2. **读取(read)**:智能体在生成回复时可读取已有记忆
|
|
46
|
+
3. **更新(replace)**:使用 `replace_memory` 更新记忆内容
|
|
47
|
+
4. **删除(drop)**:使用 `drop_memory` 删除特定记忆
|
|
48
|
+
|
|
49
|
+
## 最佳实践
|
|
50
|
+
|
|
51
|
+
### 1. 路径命名规范
|
|
52
|
+
|
|
53
|
+
- 使用描述性路径:`project/architecture`、`user/preferences/language`
|
|
54
|
+
- 避免使用特殊字符:路径中不要包含 `/`、`\`、`*` 等
|
|
55
|
+
- 使用层级结构:按主题组织记忆,例如 `project/todo`、`project/done`
|
|
56
|
+
|
|
57
|
+
### 2. 内容格式
|
|
58
|
+
|
|
59
|
+
- 保持内容简洁:每条记忆只包含一个主题
|
|
60
|
+
- 使用结构化格式:可以使用 Markdown 格式组织内容
|
|
61
|
+
- 定期清理:定期检查并删除过时的记忆
|
|
62
|
+
|
|
63
|
+
### 3. 使用场景
|
|
64
|
+
|
|
65
|
+
- **任务持久化**:保存长期任务进度
|
|
66
|
+
- **上下文记忆**:保存对话上下文中的重要信息
|
|
67
|
+
- **偏好设置**:保存用户偏好和配置信息
|
|
68
|
+
|
|
69
|
+
## 与其他工具的关系
|
|
70
|
+
|
|
71
|
+
- **team_memory**:团队共享记忆,所有成员可见
|
|
72
|
+
- **reminder**:临时提醒,会话级别
|
|
73
|
+
- **change_mind**:更新差遣牒(goals/constraints/progress)
|
|
74
|
+
|
|
75
|
+
## 限制与注意事项
|
|
76
|
+
|
|
77
|
+
1. 记忆内容有大小限制(单条记忆最大 1MB)
|
|
78
|
+
2. 记忆路径不能超过 255 个字符
|
|
79
|
+
3. `clear_memory` 会删除所有记忆,**不可恢复**
|