dominds 1.20.4 → 1.20.6

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.
Files changed (129) hide show
  1. package/dist/dialog-factory.d.ts +3 -0
  2. package/dist/dialog-factory.js +2 -6
  3. package/dist/dialog-fork.js +4 -2
  4. package/dist/dialog.d.ts +11 -0
  5. package/dist/dialog.js +6 -0
  6. package/dist/docs/dialog-system.md +15 -0
  7. package/dist/docs/dialog-system.zh.md +11 -0
  8. package/dist/docs/diligence-push.md +1 -1
  9. package/dist/docs/diligence-push.zh.md +2 -2
  10. package/dist/docs/q4h.md +14 -10
  11. package/dist/docs/q4h.zh.md +13 -11
  12. package/dist/docs/team_mgmt-toolset.md +2 -1
  13. package/dist/docs/team_mgmt-toolset.zh.md +2 -1
  14. package/dist/docs/tellask-revive-context-refactor.zh.md +1 -0
  15. package/dist/llm/client.d.ts +0 -1
  16. package/dist/llm/defaults.yaml +40 -109
  17. package/dist/llm/gen/anthropic.js +2 -4
  18. package/dist/llm/gen/openai-compatible.js +0 -10
  19. package/dist/llm/gen/openai.js +0 -10
  20. package/dist/llm/kernel-driver/drive.js +32 -1
  21. package/dist/llm/kernel-driver/flow.js +2 -2
  22. package/dist/llm/kernel-driver/guardrails.js +0 -1
  23. package/dist/llm/kernel-driver/sideDialog.d.ts +9 -0
  24. package/dist/llm/kernel-driver/sideDialog.js +14 -12
  25. package/dist/llm/kernel-driver/tellask-special.js +163 -16
  26. package/dist/llm/kernel-driver/types.d.ts +3 -0
  27. package/dist/persistence.d.ts +3 -1
  28. package/dist/persistence.js +47 -34
  29. package/dist/priming.js +68 -9
  30. package/dist/server/setup-routes.js +1 -5
  31. package/dist/team.d.ts +3 -7
  32. package/dist/team.js +35 -37
  33. package/dist/tools/team_mgmt.js +23 -39
  34. package/package.json +3 -3
  35. package/webapp/dist/assets/{_basePickBy-BrC49DPW.js → _basePickBy-CCqhBZYD.js} +3 -3
  36. package/webapp/dist/assets/{_basePickBy-BrC49DPW.js.map → _basePickBy-CCqhBZYD.js.map} +1 -1
  37. package/webapp/dist/assets/{_baseUniq-C_Wcx-_S.js → _baseUniq-CGIbBnpr.js} +2 -2
  38. package/webapp/dist/assets/{_baseUniq-C_Wcx-_S.js.map → _baseUniq-CGIbBnpr.js.map} +1 -1
  39. package/webapp/dist/assets/{arc-X5iIdpx0.js → arc-lGW9r3fU.js} +2 -2
  40. package/webapp/dist/assets/{arc-X5iIdpx0.js.map → arc-lGW9r3fU.js.map} +1 -1
  41. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-DFfhMGkT.js → architectureDiagram-2XIMDMQ5-BQjkiQRN.js} +7 -7
  42. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-DFfhMGkT.js.map → architectureDiagram-2XIMDMQ5-BQjkiQRN.js.map} +1 -1
  43. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-BAt4BaxZ.js → blockDiagram-WCTKOSBZ-yCoQKKPD.js} +7 -7
  44. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-BAt4BaxZ.js.map → blockDiagram-WCTKOSBZ-yCoQKKPD.js.map} +1 -1
  45. package/webapp/dist/assets/{c4Diagram-IC4MRINW-BYxKH5AA.js → c4Diagram-IC4MRINW-BvR-EAr2.js} +3 -3
  46. package/webapp/dist/assets/{c4Diagram-IC4MRINW-BYxKH5AA.js.map → c4Diagram-IC4MRINW-BvR-EAr2.js.map} +1 -1
  47. package/webapp/dist/assets/{channel-CuYhL59H.js → channel-DLKhD5S_.js} +2 -2
  48. package/webapp/dist/assets/{channel-CuYhL59H.js.map → channel-DLKhD5S_.js.map} +1 -1
  49. package/webapp/dist/assets/{chunk-4BX2VUAB-Ch1PfLiD.js → chunk-4BX2VUAB-DwX981uk.js} +2 -2
  50. package/webapp/dist/assets/{chunk-4BX2VUAB-Ch1PfLiD.js.map → chunk-4BX2VUAB-DwX981uk.js.map} +1 -1
  51. package/webapp/dist/assets/{chunk-55IACEB6-B3rzakPd.js → chunk-55IACEB6-OQ_p-C1f.js} +2 -2
  52. package/webapp/dist/assets/{chunk-55IACEB6-B3rzakPd.js.map → chunk-55IACEB6-OQ_p-C1f.js.map} +1 -1
  53. package/webapp/dist/assets/{chunk-FMBD7UC4-CCZWJRJ5.js → chunk-FMBD7UC4-CW5uzfUP.js} +2 -2
  54. package/webapp/dist/assets/{chunk-FMBD7UC4-CCZWJRJ5.js.map → chunk-FMBD7UC4-CW5uzfUP.js.map} +1 -1
  55. package/webapp/dist/assets/{chunk-JSJVCQXG-Dqd_MOPD.js → chunk-JSJVCQXG-CnhLavxC.js} +2 -2
  56. package/webapp/dist/assets/{chunk-JSJVCQXG-Dqd_MOPD.js.map → chunk-JSJVCQXG-CnhLavxC.js.map} +1 -1
  57. package/webapp/dist/assets/{chunk-KX2RTZJC-DOpPZD_q.js → chunk-KX2RTZJC-DtyfjU3Z.js} +2 -2
  58. package/webapp/dist/assets/{chunk-KX2RTZJC-DOpPZD_q.js.map → chunk-KX2RTZJC-DtyfjU3Z.js.map} +1 -1
  59. package/webapp/dist/assets/{chunk-NQ4KR5QH-CUj2LNV0.js → chunk-NQ4KR5QH-6z82wIeO.js} +4 -4
  60. package/webapp/dist/assets/{chunk-NQ4KR5QH-CUj2LNV0.js.map → chunk-NQ4KR5QH-6z82wIeO.js.map} +1 -1
  61. package/webapp/dist/assets/{chunk-QZHKN3VN-DXeWDyzh.js → chunk-QZHKN3VN-BWMikvLc.js} +2 -2
  62. package/webapp/dist/assets/{chunk-QZHKN3VN-DXeWDyzh.js.map → chunk-QZHKN3VN-BWMikvLc.js.map} +1 -1
  63. package/webapp/dist/assets/{chunk-WL4C6EOR-CqTowzs6.js → chunk-WL4C6EOR-Bq_UYUUe.js} +6 -6
  64. package/webapp/dist/assets/{chunk-WL4C6EOR-CqTowzs6.js.map → chunk-WL4C6EOR-Bq_UYUUe.js.map} +1 -1
  65. package/webapp/dist/assets/{classDiagram-VBA2DB6C-CvsxEN3D.js → classDiagram-VBA2DB6C-D4mVjh6u.js} +7 -7
  66. package/webapp/dist/assets/{classDiagram-VBA2DB6C-CvsxEN3D.js.map → classDiagram-VBA2DB6C-D4mVjh6u.js.map} +1 -1
  67. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-CvsxEN3D.js → classDiagram-v2-RAHNMMFH-D4mVjh6u.js} +7 -7
  68. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-CvsxEN3D.js.map → classDiagram-v2-RAHNMMFH-D4mVjh6u.js.map} +1 -1
  69. package/webapp/dist/assets/{clone-PGWIYNYc.js → clone-D03eXoXz.js} +2 -2
  70. package/webapp/dist/assets/{clone-PGWIYNYc.js.map → clone-D03eXoXz.js.map} +1 -1
  71. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-Cf8RR_8j.js → cose-bilkent-S5V4N54A-by8TqKPs.js} +2 -2
  72. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-Cf8RR_8j.js.map → cose-bilkent-S5V4N54A-by8TqKPs.js.map} +1 -1
  73. package/webapp/dist/assets/{dagre-KLK3FWXG-C1yQDg-6.js → dagre-KLK3FWXG-CGGhHSaA.js} +7 -7
  74. package/webapp/dist/assets/{dagre-KLK3FWXG-C1yQDg-6.js.map → dagre-KLK3FWXG-CGGhHSaA.js.map} +1 -1
  75. package/webapp/dist/assets/{diagram-E7M64L7V-CrT4qBJh.js → diagram-E7M64L7V-CQNrVkM8.js} +8 -8
  76. package/webapp/dist/assets/{diagram-E7M64L7V-CrT4qBJh.js.map → diagram-E7M64L7V-CQNrVkM8.js.map} +1 -1
  77. package/webapp/dist/assets/{diagram-IFDJBPK2-B8WaCOcr.js → diagram-IFDJBPK2-Dj4jbiH_.js} +7 -7
  78. package/webapp/dist/assets/{diagram-IFDJBPK2-B8WaCOcr.js.map → diagram-IFDJBPK2-Dj4jbiH_.js.map} +1 -1
  79. package/webapp/dist/assets/{diagram-P4PSJMXO-BCZeNfu_.js → diagram-P4PSJMXO-clZaP5j5.js} +7 -7
  80. package/webapp/dist/assets/{diagram-P4PSJMXO-BCZeNfu_.js.map → diagram-P4PSJMXO-clZaP5j5.js.map} +1 -1
  81. package/webapp/dist/assets/{erDiagram-INFDFZHY-BrYt0-mW.js → erDiagram-INFDFZHY-BlwaMFO-.js} +5 -5
  82. package/webapp/dist/assets/{erDiagram-INFDFZHY-BrYt0-mW.js.map → erDiagram-INFDFZHY-BlwaMFO-.js.map} +1 -1
  83. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-8lZ5d5y-.js → flowDiagram-PKNHOUZH-C1yJlJ-L.js} +7 -7
  84. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-8lZ5d5y-.js.map → flowDiagram-PKNHOUZH-C1yJlJ-L.js.map} +1 -1
  85. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-CQ8pOLf-.js → ganttDiagram-A5KZAMGK-BHcgwxiC.js} +3 -3
  86. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-CQ8pOLf-.js.map → ganttDiagram-A5KZAMGK-BHcgwxiC.js.map} +1 -1
  87. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-aOTOe0HP.js → gitGraphDiagram-K3NZZRJ6-BpV_b0Sk.js} +8 -8
  88. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-aOTOe0HP.js.map → gitGraphDiagram-K3NZZRJ6-BpV_b0Sk.js.map} +1 -1
  89. package/webapp/dist/assets/{graph-CyMR1egR.js → graph-LYTIRrV0.js} +3 -3
  90. package/webapp/dist/assets/{graph-CyMR1egR.js.map → graph-LYTIRrV0.js.map} +1 -1
  91. package/webapp/dist/assets/{index-B9TTmMv-.js → index-Dr1QIzlU.js} +546 -677
  92. package/webapp/dist/assets/{index-B9TTmMv-.js.map → index-Dr1QIzlU.js.map} +1 -1
  93. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-CXR9XjRe.js → infoDiagram-LFFYTUFH-D16vRd6t.js} +6 -6
  94. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-CXR9XjRe.js.map → infoDiagram-LFFYTUFH-D16vRd6t.js.map} +1 -1
  95. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-zwe-cqRW.js → ishikawaDiagram-PHBUUO56-ad0w6KbY.js} +2 -2
  96. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-zwe-cqRW.js.map → ishikawaDiagram-PHBUUO56-ad0w6KbY.js.map} +1 -1
  97. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-BV-8X5hz.js → journeyDiagram-4ABVD52K-BEUKxQwA.js} +5 -5
  98. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-BV-8X5hz.js.map → journeyDiagram-4ABVD52K-BEUKxQwA.js.map} +1 -1
  99. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-E3W-szUv.js → kanban-definition-K7BYSVSG-Cc_1wmYt.js} +3 -3
  100. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-E3W-szUv.js.map → kanban-definition-K7BYSVSG-Cc_1wmYt.js.map} +1 -1
  101. package/webapp/dist/assets/{layout-DvIjuV8I.js → layout-DfelhMRI.js} +5 -5
  102. package/webapp/dist/assets/{layout-DvIjuV8I.js.map → layout-DfelhMRI.js.map} +1 -1
  103. package/webapp/dist/assets/{linear-C-SIS0ki.js → linear-B2vKHBUy.js} +2 -2
  104. package/webapp/dist/assets/{linear-C-SIS0ki.js.map → linear-B2vKHBUy.js.map} +1 -1
  105. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-wigkPJ2B.js → mindmap-definition-YRQLILUH-7OyH8l_A.js} +4 -4
  106. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-wigkPJ2B.js.map → mindmap-definition-YRQLILUH-7OyH8l_A.js.map} +1 -1
  107. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-BKrYJ0LE.js → pieDiagram-SKSYHLDU-Bp_Um3GN.js} +8 -8
  108. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-BKrYJ0LE.js.map → pieDiagram-SKSYHLDU-Bp_Um3GN.js.map} +1 -1
  109. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-fjwd0gVY.js → quadrantDiagram-337W2JSQ-CIF0UAGJ.js} +3 -3
  110. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-fjwd0gVY.js.map → quadrantDiagram-337W2JSQ-CIF0UAGJ.js.map} +1 -1
  111. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-vgTMObSA.js → requirementDiagram-Z7DCOOCP-0_QWHfTc.js} +4 -4
  112. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-vgTMObSA.js.map → requirementDiagram-Z7DCOOCP-0_QWHfTc.js.map} +1 -1
  113. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-B-ZV3LF7.js → sankeyDiagram-WA2Y5GQK-IOp7vxQp.js} +2 -2
  114. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-B-ZV3LF7.js.map → sankeyDiagram-WA2Y5GQK-IOp7vxQp.js.map} +1 -1
  115. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-DPhZYHhW.js → sequenceDiagram-2WXFIKYE-BTImCEL7.js} +4 -4
  116. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-DPhZYHhW.js.map → sequenceDiagram-2WXFIKYE-BTImCEL7.js.map} +1 -1
  117. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DLsw3SC8.js → stateDiagram-RAJIS63D-BhZQ-pCu.js} +9 -9
  118. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DLsw3SC8.js.map → stateDiagram-RAJIS63D-BhZQ-pCu.js.map} +1 -1
  119. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-DqXB3dNs.js → stateDiagram-v2-FVOUBMTO-9WcDoEut.js} +5 -5
  120. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-DqXB3dNs.js.map → stateDiagram-v2-FVOUBMTO-9WcDoEut.js.map} +1 -1
  121. package/webapp/dist/assets/{timeline-definition-YZTLITO2-BFSqlDfo.js → timeline-definition-YZTLITO2-B4M7bruY.js} +3 -3
  122. package/webapp/dist/assets/{timeline-definition-YZTLITO2-BFSqlDfo.js.map → timeline-definition-YZTLITO2-B4M7bruY.js.map} +1 -1
  123. package/webapp/dist/assets/{treemap-KZPCXAKY-sdfq6mHG.js → treemap-KZPCXAKY-DpbBOd_r.js} +5 -5
  124. package/webapp/dist/assets/{treemap-KZPCXAKY-sdfq6mHG.js.map → treemap-KZPCXAKY-DpbBOd_r.js.map} +1 -1
  125. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-D7Cioksz.js → vennDiagram-LZ73GAT5-BBkDL813.js} +2 -2
  126. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-D7Cioksz.js.map → vennDiagram-LZ73GAT5-BBkDL813.js.map} +1 -1
  127. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-No65aXqH.js → xychartDiagram-JWTSCODW-CHuszw7E.js} +3 -3
  128. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-No65aXqH.js.map → xychartDiagram-JWTSCODW-CHuszw7E.js.map} +1 -1
  129. package/webapp/dist/index.html +1 -1
@@ -4,6 +4,7 @@
4
4
  * Factory for creating Dialog instances with proper type hierarchy.
5
5
  * Provides a single point of dialog creation to ensure consistent initialization.
6
6
  */
7
+ import type { CallSiteCourseNo, CallSiteGenseqNo } from '@longrun-ai/kernel/types/storage';
7
8
  import { Dialog, DialogID, DialogInitParams, DialogStore, MainDialog, SideDialog } from './dialog';
8
9
  /**
9
10
  * Factory for creating Dialog instances.
@@ -22,6 +23,8 @@ export declare class DialogFactory {
22
23
  originMemberId: string;
23
24
  askerDialogId: string;
24
25
  callId: string;
26
+ callSiteCourse: CallSiteCourseNo;
27
+ callSiteGenseq: CallSiteGenseqNo;
25
28
  sessionSlug?: string;
26
29
  collectiveTargets?: string[];
27
30
  effectiveFbrEffort?: number;
@@ -1,12 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DialogFactory = void 0;
4
- /**
5
- * Module: dialog-factory
6
- *
7
- * Factory for creating Dialog instances with proper type hierarchy.
8
- * Provides a single point of dialog creation to ensure consistent initialization.
9
- */
10
4
  const dialog_1 = require("./dialog");
11
5
  const dialog_global_registry_1 = require("./dialog-global-registry");
12
6
  const id_1 = require("./utils/id");
@@ -45,6 +39,8 @@ class DialogFactory {
45
39
  originMemberId: options.originMemberId,
46
40
  askerDialogId: options.askerDialogId,
47
41
  callId: options.callId,
42
+ callSiteCourse: options.callSiteCourse,
43
+ callSiteGenseq: options.callSiteGenseq,
48
44
  collectiveTargets: options.collectiveTargets,
49
45
  effectiveFbrEffort: options.effectiveFbrEffort,
50
46
  },
@@ -140,7 +140,8 @@ function isPersistedMessageRecord(record) {
140
140
  case 'user_image_ingest_record':
141
141
  case 'sideDialog_request_record':
142
142
  case 'tellask_reply_resolution_record':
143
- case 'tellask_call_anchor_record':
143
+ case 'tellask_anchor_record':
144
+ case 'tellask_callee_record':
144
145
  case 'gen_start_record':
145
146
  case 'gen_finish_record':
146
147
  case 'sideDialog_created_record':
@@ -212,7 +213,8 @@ function rewriteRecordForFork(record, newRootId) {
212
213
  case 'native_tool_call_record':
213
214
  case 'sideDialog_request_record':
214
215
  case 'tellask_reply_resolution_record':
215
- case 'tellask_call_anchor_record':
216
+ case 'tellask_anchor_record':
217
+ case 'tellask_callee_record':
216
218
  case 'gen_start_record':
217
219
  case 'gen_finish_record':
218
220
  return record;
package/dist/dialog.d.ts CHANGED
@@ -122,6 +122,8 @@ export interface AssignmentFromAsker {
122
122
  originMemberId: string;
123
123
  askerDialogId: string;
124
124
  callId: string;
125
+ callSiteCourse: CallSiteCourseNo;
126
+ callSiteGenseq: CallSiteGenseqNo;
125
127
  collectiveTargets?: string[];
126
128
  effectiveFbrEffort?: number;
127
129
  }
@@ -253,8 +255,11 @@ export declare abstract class Dialog {
253
255
  originMemberId: string;
254
256
  askerDialogId: string;
255
257
  callId: string;
258
+ callSiteCourse: CallSiteCourseNo;
259
+ callSiteGenseq: CallSiteGenseqNo;
256
260
  sessionSlug?: string;
257
261
  collectiveTargets?: string[];
262
+ effectiveFbrEffort?: number;
258
263
  }): Promise<SideDialog>;
259
264
  /**
260
265
  * Post a dialog event using the standard event registry.
@@ -468,6 +473,8 @@ export declare class SideDialog extends Dialog {
468
473
  originMemberId: string;
469
474
  askerDialogId: string;
470
475
  callId: string;
476
+ callSiteCourse: CallSiteCourseNo;
477
+ callSiteGenseq: CallSiteGenseqNo;
471
478
  sessionSlug?: string;
472
479
  collectiveTargets?: string[];
473
480
  effectiveFbrEffort?: number;
@@ -528,6 +535,8 @@ export declare class MainDialog extends Dialog {
528
535
  originMemberId: string;
529
536
  askerDialogId: string;
530
537
  callId: string;
538
+ callSiteCourse: CallSiteCourseNo;
539
+ callSiteGenseq: CallSiteGenseqNo;
531
540
  sessionSlug?: string;
532
541
  collectiveTargets?: string[];
533
542
  effectiveFbrEffort?: number;
@@ -561,6 +570,8 @@ export declare abstract class DialogStore {
561
570
  originMemberId: string;
562
571
  askerDialogId: string;
563
572
  callId: string;
573
+ callSiteCourse: CallSiteCourseNo;
574
+ callSiteGenseq: CallSiteGenseqNo;
564
575
  sessionSlug?: string;
565
576
  collectiveTargets?: string[];
566
577
  effectiveFbrEffort?: number;
package/dist/dialog.js CHANGED
@@ -126,6 +126,8 @@ function buildSideDialogAssignmentPromptMeta(sideDialog) {
126
126
  ownerDialogId: assignment.askerDialogId,
127
127
  callType: 'B',
128
128
  callId: assignment.callId,
129
+ callSiteCourse: assignment.callSiteCourse,
130
+ callSiteGenseq: assignment.callSiteGenseq,
129
131
  },
130
132
  };
131
133
  case 'tellaskSessionless':
@@ -141,6 +143,8 @@ function buildSideDialogAssignmentPromptMeta(sideDialog) {
141
143
  ownerDialogId: assignment.askerDialogId,
142
144
  callType: 'C',
143
145
  callId: assignment.callId,
146
+ callSiteCourse: assignment.callSiteCourse,
147
+ callSiteGenseq: assignment.callSiteGenseq,
144
148
  },
145
149
  };
146
150
  }
@@ -1791,6 +1795,8 @@ class DialogStore {
1791
1795
  originMemberId: options.originMemberId,
1792
1796
  askerDialogId: options.askerDialogId,
1793
1797
  callId: options.callId,
1798
+ callSiteCourse: options.callSiteCourse,
1799
+ callSiteGenseq: options.callSiteGenseq,
1794
1800
  collectiveTargets: options.collectiveTargets,
1795
1801
  effectiveFbrEffort: options.effectiveFbrEffort,
1796
1802
  };
@@ -1305,6 +1305,21 @@ sequenceDiagram
1305
1305
  end
1306
1306
  ```
1307
1307
 
1308
+ Call-site correspondence invariant: every `tellask` call-site `callId` must later have a
1309
+ same-`callId` historical correspondence point in the tellasker's dialog. A normal sideDialog reply,
1310
+ cross-course carryover, or registered-session replacement notice can close the call; silently removing
1311
+ or overwriting a pending round cannot.
1312
+
1313
+ WebUI external-link invariant: every `/dl/*` URL must be generated at the business call site with the
1314
+ target semantics written out there; avoid generic deep-link helpers. `/dl/callsite` only means the
1315
+ originating bubble in the tellasker's dialog: `selfId/course` are tellasker-dialog coordinates, and
1316
+ `callId` is that dialog's function-call id. SideDialog assignment/update targets are not call sites;
1317
+ they use `/dl/dialog` for the sideDialog, or `/dl/genseq` once the delivered assignment `genseq` is
1318
+ known.
1319
+ When an existing registered sideDialog is reused, the WebUI first links the new call-site bubble to
1320
+ the sideDialog via `tellask_call_callee_evt`; the later `tellask_call_anchor_evt` upgrades that target
1321
+ to the delivered sideDialog `genseq`.
1322
+
1308
1323
  #### TYPE C: Transient SideDialog Tellask (`Fresh Tellask`) (`tellaskSessionless({ targetAgentId: "agentId", tellaskContent: "..." })`; `freshBootsReasoning({ tellaskContent: "..." })` is FBR tool-less)
1309
1324
 
1310
1325
  ```mermaid
@@ -1287,6 +1287,17 @@ sequenceDiagram
1287
1287
  end
1288
1288
  ```
1289
1289
 
1290
+ call-site 呼应不变量:每个 `tellask` 发起点的 `callId`,后续都必须在诉请者对话历史里留下同
1291
+ `callId` 的呼应点。正常支线回复、跨程 carryover、已注册会话被更新后的替代通知都可以结束这次
1292
+ call;不能静默删除或覆盖 pending 轮次。
1293
+
1294
+ WebUI 外链不变量:生成 `/dl/*` URL 时必须在业务现场显式写出目标语义,避免复用泛化 deep-link
1295
+ helper。`/dl/callsite` 只表示诉请者对话里的发起气泡:`selfId/course` 是诉请者对话坐标,`callId`
1296
+ 是该对话内的 function-call id。支线投递/更新目标不是 call-site,应使用 `/dl/dialog` 指向支线对话,
1297
+ 或在投递 `genseq` 已知后使用 `/dl/genseq` 指向支线对话内的投递生成。
1298
+ 复用已有注册支线时,WebUI 先用 `tellask_call_callee_evt` 把新发起气泡连到支线对话;后续
1299
+ `tellask_call_anchor_evt` 到达后再升级为支线投递 `genseq`。
1300
+
1290
1301
  #### TYPE C:瞬态支线对话诉请(一次性诉请)(`tellaskSessionless({ targetAgentId: "agentId", tellaskContent: "..." })`,或 `freshBootsReasoning({ tellaskContent: "..." })`)
1291
1302
 
1292
1303
  ```mermaid
@@ -126,7 +126,7 @@ members:
126
126
 
127
127
  Rules:
128
128
 
129
- - If missing, `diligence-push-max` defaults to **3** for that member.
129
+ - If missing, `diligence-push-max` defaults to **99** for that member.
130
130
  - If `diligence-push-max < 1`, diligence-push is disabled for that member (no injection), even if the diligence file exists.
131
131
  - Built-in shadow members `fuxi` and `pangu` default to `diligence-push-max: 0` unless explicitly overridden in team.yaml.
132
132
 
@@ -66,7 +66,7 @@ Dominds 主线对话旨在长期运行。主线对话"停止"(变为空闲)
66
66
 
67
67
  为避免无限循环,diligence-push 有一个按对话的预算(每个成员的 `diligence-push-max`),控制对于给定对话在当前预算内还能注入多少个自动继续的鞭策语;预算耗尽后,运行时会停止继续自动鞭策。
68
68
 
69
- - 默认值:**3**
69
+ - 默认值:**99**
70
70
  - 如果 `< 1`,则该成员的 diligence-push 有效禁用
71
71
  - 可通过 `.minds/team.yaml` 中的 `diligence-push-max` 按成员配置
72
72
 
@@ -114,7 +114,7 @@ members:
114
114
 
115
115
  规则:
116
116
 
117
- - 如果缺失,`diligence-push-max` 对于该成员默认为 **3**。
117
+ - 如果缺失,`diligence-push-max` 对于该成员默认为 **99**。
118
118
  - 如果 `diligence-push-max < 1`,则该成员的 diligence-push 被禁用(不注入),即使鞭策语文件存在。
119
119
  - 内置影子成员 `fuxi` 和 `pangu` 默认为 `diligence-push-max: 0`,除非在 team.yaml 中显式覆盖。
120
120
 
package/dist/docs/q4h.md CHANGED
@@ -68,13 +68,15 @@ When a message bubble has a meaningful call site reference (e.g. “response ↔
68
68
 
69
69
  ### Query parameter schema
70
70
 
71
- The WebUI recognizes `window.location.search` deep link parameters.
71
+ The WebUI recognizes deep links by `/dl/<kind>` paths plus `window.location.search` parameters.
72
72
 
73
- Common parameters:
73
+ Implementation rule: external-link generation must write the `/dl/*` URL and every field's business
74
+ meaning directly at the generating call site; avoid generic deep-link helpers. For `/dl/callsite`,
75
+ `selfId/course/callId` only identify the originating bubble in the tellasker's dialog. SideDialog
76
+ assignment/update targets must use `/dl/dialog`, or `/dl/genseq` once the delivered assignment
77
+ `genseq` is known.
74
78
 
75
- - `dl`: deep link kind (`q4h` | `callsite`)
76
-
77
- #### `dl=q4h` (Q4H question deep link)
79
+ #### `/dl/q4h` (Q4H question deep link)
78
80
 
79
81
  Required:
80
82
 
@@ -95,7 +97,7 @@ Behavior:
95
97
  - If the Q4H is not pending (already answered/cleared), the WebUI still scrolls to the call site but does **not**
96
98
  enter answer mode (no selection); it may show a toast indicating the question is no longer pending.
97
99
 
98
- #### `dl=callsite` (generic tellask call site deep link)
100
+ #### `/dl/callsite` (generic tellask call site deep link)
99
101
 
100
102
  Required:
101
103
 
@@ -109,7 +111,7 @@ Behavior:
109
111
  - The WebUI navigates to the dialog + course and scrolls to the calling section with `data-call-id=callId`.
110
112
  - The input is focused (normal message mode).
111
113
 
112
- #### `dl=genseq` (generation bubble deep link)
114
+ #### `/dl/genseq` (generation bubble deep link)
113
115
 
114
116
  Required:
115
117
 
@@ -126,9 +128,11 @@ Behavior:
126
128
  ### URL examples
127
129
 
128
130
  ```text
129
- /?dl=q4h&qid=q4h-abc123&rootId=R1&selfId=S2&course=3&callId=call-xyz&msg=12
131
+ /dl/q4h?qid=q4h-abc123&rootId=R1&selfId=S2&course=3&callId=call-xyz&msg=12
132
+
133
+ /dl/callsite?rootId=R1&selfId=R1&course=1&callId=call-xyz
130
134
 
131
- /?dl=callsite&rootId=R1&selfId=R1&course=1&callId=call-xyz
135
+ /dl/genseq?rootId=R1&selfId=S2&course=3&genseq=42
132
136
  ```
133
137
 
134
138
  Notes:
@@ -159,7 +163,7 @@ Back-compat:
159
163
 
160
164
  - `dominds-q4h-panel`:
161
165
  - Keeps internal navigation (same tab).
162
- - Adds an external icon action that opens a deep link (`dl=q4h`) in a new tab/window.
166
+ - Adds an external icon action that opens a deep link (`/dl/q4h`) in a new tab/window.
163
167
  - `dominds-app`:
164
168
  - Parses deep link parameters once at startup and stores a pending deep link intent.
165
169
  - Applies the intent after dialogs and (when needed) Q4H state are available.
@@ -69,15 +69,15 @@ Q4H 是 Dominds 的运行时机制:在任何对话中通过向 `askHuman({ tel
69
69
 
70
70
  ## Deep Link 契约(WebUI)
71
71
 
72
- ### Query 参数约定
72
+ ### URL 约定
73
73
 
74
- WebUI 通过 `window.location.search` 识别 deep link 参数。
74
+ WebUI 通过 `/dl/<kind>` 路径和 `window.location.search` 参数识别 deep link
75
75
 
76
- 通用参数:
76
+ 实现规则:生成外链的代码必须在生成现场直接写出 `/dl/*` URL 和每个字段的业务含义,避免泛化
77
+ deep-link helper。`/dl/callsite` 的 `selfId/course/callId` 只表示诉请者对话里的发起气泡;支线投递
78
+ 或更新目标应使用 `/dl/dialog` 或已知投递 `genseq` 后的 `/dl/genseq`。
77
79
 
78
- - `dl`:deep link 类型(`q4h` | `callsite`)
79
-
80
- #### `dl=q4h`(Q4H 提问点 deep link)
80
+ #### `/dl/q4h`(Q4H 提问点 deep link
81
81
 
82
82
  必需:
83
83
 
@@ -97,7 +97,7 @@ WebUI 通过 `window.location.search` 识别 deep link 参数。
97
97
  - 若该 Q4H 仍待处理:输入框选中 `qid`(回答模式)并聚焦。
98
98
  - 若该 Q4H 已不再待处理(已回答/已清理):仍定位/高亮提问点,但**不进入回答模式**(不选中问题);可提示“已不再待处理”。
99
99
 
100
- #### `dl=callsite`(通用 tellask call site deep link)
100
+ #### `/dl/callsite`(通用 tellask call site deep link)
101
101
 
102
102
  必需:
103
103
 
@@ -111,7 +111,7 @@ WebUI 通过 `window.location.search` 识别 deep link 参数。
111
111
  - WebUI 切换到目标对话 + course,并滚动到 `data-call-id=callId` 对应的 calling section。
112
112
  - 输入框聚焦(普通消息模式)。
113
113
 
114
- #### `dl=genseq`(生成气泡 deep link)
114
+ #### `/dl/genseq`(生成气泡 deep link)
115
115
 
116
116
  必需:
117
117
 
@@ -128,9 +128,11 @@ WebUI 通过 `window.location.search` 识别 deep link 参数。
128
128
  ### URL 示例
129
129
 
130
130
  ```text
131
- /?dl=q4h&qid=q4h-abc123&rootId=R1&selfId=S2&course=3&callId=call-xyz&msg=12
131
+ /dl/q4h?qid=q4h-abc123&rootId=R1&selfId=S2&course=3&callId=call-xyz&msg=12
132
+
133
+ /dl/callsite?rootId=R1&selfId=R1&course=1&callId=call-xyz
132
134
 
133
- /?dl=callsite&rootId=R1&selfId=R1&course=1&callId=call-xyz
135
+ /dl/genseq?rootId=R1&selfId=S2&course=3&genseq=42
134
136
  ```
135
137
 
136
138
  说明:
@@ -161,7 +163,7 @@ WebUI 通过 `window.location.search` 识别 deep link 参数。
161
163
 
162
164
  - `dominds-q4h-panel`:
163
165
  - 保留内链“去提问点”。
164
- - 增加外链图标按钮:打开 `dl=q4h` deep link(新 tab/窗口)。
166
+ - 增加外链图标按钮:打开 `/dl/q4h` deep link(新 tab/窗口)。
165
167
  - `dominds-app`:
166
168
  - 启动时解析 deep link,并保存“待执行导航意图”。
167
169
  - 在 dialogs / Q4H state 到齐后尝试执行意图。
@@ -325,7 +325,8 @@ used in `.minds/team.yaml` member configurations.
325
325
  `apiType` notes (common values):
326
326
 
327
327
  - `openai`: uses the OpenAI **Responses API** (best for OpenAI official endpoints; requires a `/v1`-style `responses` endpoint)
328
- - `openai-compatible`: uses the OpenAI **Chat Completions API** (best for most “OpenAI-compatible third-party/proxy endpoints; e.g. Volcano Engine Ark `.../api/v3`)
328
+ - `anthropic`: uses the Anthropic **Messages API** (also used by Anthropic-compatible coding-plan endpoints; e.g. Volcano Engine Coding Plan `.../api/coding`)
329
+ - `openai-compatible`: uses the OpenAI **Chat Completions API** (best for most “OpenAI-compatible” third-party/proxy endpoints; e.g. a manually configured Ark `.../api/v3` endpoint)
329
330
  - **Vision support**: if the provider/model supports multimodal Chat Completions, Dominds will pass tool-output images (`func_result_msg.contentItems[].type=input_image`, e.g. from MCP tools) to the model as `image_url` inputs after reading the persisted artifact; unsupported mime types are downgraded to text.
330
331
 
331
332
  ```yaml
@@ -266,7 +266,8 @@
266
266
  `apiType` 说明(常见值):
267
267
 
268
268
  - `openai`:使用 OpenAI **Responses API**(适用于 OpenAI 官方;需要 `/v1` 语义的 `responses` 端点)
269
- - `openai-compatible`:使用 OpenAI **Chat Completions API**(适用于多数“OpenAI 兼容”第三方/代理;例如 Volcano Engine Ark `.../api/v3`)
269
+ - `anthropic`:使用 Anthropic **Messages API**(也用于 Anthropic 兼容的 Coding Plan 端点;例如 Volcano Engine Coding Plan `.../api/coding`)
270
+ - `openai-compatible`:使用 OpenAI **Chat Completions API**(适用于多数“OpenAI 兼容”第三方/代理;例如手动配置的 Ark `.../api/v3` 端点)
270
271
  - **识图支持**:如果该 provider/model 支持 Chat Completions 的多模态输入,Dominds 会把工具输出里的图片(`func_result_msg.contentItems[].type=input_image`,来自 MCP 等工具)读取 artifact 后作为 `image_url` 形式喂给模型;不支持的 mimeType 会降级成文本提示。
271
272
 
272
273
  ```yaml
@@ -406,6 +406,7 @@ auto-revive 能因为某个 wait-group 齐活而继续 drive,并不等于 owne
406
406
  replace pending 不是 silent overwrite,也不是 failed-result fallback。它是显式栈操作:
407
407
 
408
408
  - 定位旧 frame 的匹配键必须稳定,倾向使用 `askerDialogId + targetCallId` / `ownerDialogId + callId`,具体以 pending record 与 reply directive 对齐后的字段为准;
409
+ - 每个 `tellask` call-site 的 `callId` 最终都必须在诉请者对话历史里有同 `callId` 的呼应点;被替换时,这个呼应点就是替代通知 / carryover result,而不是等支线对话后续回复时才补;
409
410
  - 如果 replace 找不到旧 frame,必须 loud fail,不允许降级成普通 push;
410
411
  - 因为持久文件采用 append/truncate-only JSONL,replace 的落盘算法是:
411
412
  1. 读取 stack frames 与每行 byte offset;
@@ -43,7 +43,6 @@ export type ModelParamOption = (ModelParamOptionBase & {
43
43
  default?: string;
44
44
  });
45
45
  export type ProviderModelParamOptions = {
46
- general?: Record<string, ModelParamOption>;
47
46
  codex?: Record<string, ModelParamOption>;
48
47
  openai?: Record<string, ModelParamOption>;
49
48
  anthropic?: Record<string, ModelParamOption>;
@@ -28,12 +28,6 @@ providers:
28
28
  #
29
29
  # These are documentation hints for humans/agents; they are not auto-applied.
30
30
  model_param_options:
31
- general:
32
- max_tokens:
33
- # Provider-agnostic cap on generated tokens.
34
- type: integer
35
- min: 1
36
- description: Maximum tokens to generate (provider-agnostic override).
37
31
  codex:
38
32
  # Isolation principle:
39
33
  # - These hints describe the Codex wrapper only.
@@ -95,10 +89,6 @@ providers:
95
89
  json_response:
96
90
  type: boolean
97
91
  description: Force JSON object output mode.
98
- max_tokens:
99
- type: integer
100
- min: 1
101
- description: Provider-specific max tokens override.
102
92
  models:
103
93
  gpt-5.5:
104
94
  name: GPT-5.5
@@ -185,11 +175,6 @@ providers:
185
175
  tech_spec_url: https://platform.minimaxi.com/docs/api-reference/text-anthropic-api
186
176
  api_mgmt_url: https://platform.minimaxi.com/
187
177
  model_param_options:
188
- general:
189
- max_tokens:
190
- type: integer
191
- min: 1
192
- description: Fully supported. Maximum number of tokens to generate.
193
178
  anthropic:
194
179
  temperature:
195
180
  type: number
@@ -242,11 +227,6 @@ providers:
242
227
  tech_spec_url: https://platform.minimaxi.com/docs/api-reference/text-anthropic-api
243
228
  api_mgmt_url: https://platform.minimaxi.com/
244
229
  model_param_options:
245
- general:
246
- max_tokens:
247
- type: integer
248
- min: 1
249
- description: Fully supported. Maximum number of tokens to generate.
250
230
  anthropic:
251
231
  temperature:
252
232
  type: number
@@ -299,11 +279,6 @@ providers:
299
279
  tech_spec_url: https://platform.minimax.io/docs/api-reference/text-anthropic-api
300
280
  api_mgmt_url: https://platform.minimax.io/
301
281
  model_param_options:
302
- general:
303
- max_tokens:
304
- type: integer
305
- min: 1
306
- description: Fully supported. Maximum number of tokens to generate.
307
282
  anthropic:
308
283
  temperature:
309
284
  type: number
@@ -356,11 +331,6 @@ providers:
356
331
  tech_spec_url: https://platform.minimax.io/docs/api-reference/text-anthropic-api
357
332
  api_mgmt_url: https://platform.minimax.io/
358
333
  model_param_options:
359
- general:
360
- max_tokens:
361
- type: integer
362
- min: 1
363
- description: Fully supported. Maximum number of tokens to generate.
364
334
  anthropic:
365
335
  temperature:
366
336
  type: number
@@ -481,95 +451,81 @@ providers:
481
451
  name: Volcano Engine Coding Plan
482
452
  apiType: anthropic
483
453
  baseUrl: https://ark.cn-beijing.volces.com/api/coding
484
- apiKeyEnvVar: ARK_CP_API_KEY
454
+ apiKeyEnvVar: ARK_API_KEY
485
455
  tech_spec_url: https://www.volcengine.com/docs/82379/1928261
486
456
  api_mgmt_url: https://console.volcengine.com/ark
487
457
  models:
488
- doubao-seed-code:
489
- name: Doubao Seed Code Preview
458
+ doubao-seed-2.0-code:
459
+ name: Doubao-Seed-2.0-Code
490
460
  supports_image_input: true
491
461
  context_length: 256000
492
462
  input_length: 256000
493
463
  output_length: 8192
494
464
  context_window: '256K'
495
- optimization: 专为Agentic Coding任务优化
496
- deepseek-v3.2:
497
- name: DeepSeek-V3.2
498
- supports_image_input: false
499
- context_length: 128000
500
- input_length: 96000
501
- output_length: 32000
502
- context_window: '128K'
503
- glm-4.7:
504
- name: GLM 4.7
505
- supports_image_input: false
465
+ doubao-seed-2.0-pro:
466
+ name: Doubao-Seed-2.0-pro
467
+ supports_image_input: true
506
468
  context_length: 256000
507
469
  input_length: 256000
508
470
  output_length: 8192
509
471
  context_window: '256K'
510
- kimi-k2.5:
511
- name: Kimi K2.5
512
- context_length: 200000
513
- input_length: 200000
514
- output_length: 8192
515
- context_window: '200K (约20万汉字)'
516
- volcano-engine:
517
- name: Volcano Engine
518
- apiType: openai-compatible
519
- baseUrl: https://ark.cn-beijing.volces.com/api/v3
520
- apiKeyEnvVar: ARK_API_KEY
521
- tech_spec_url: https://api.volcengine.com/api-docs/view?serviceCode=ark&version=2024-01-01
522
- api_mgmt_url: https://console.volcengine.com/ark
523
- models:
524
- deepseek-v3-2-251201:
525
- name: DeepSeek-V3.2
472
+ doubao-seed-2.0-lite:
473
+ name: Doubao-Seed-2.0-lite
526
474
  supports_image_input: false
527
- context_length: 128000
528
- input_length: 96000
529
- output_length: 32000
530
- context_window: '128K'
531
- doubao-seed-code-preview-251028:
532
- name: Doubao Seed Code Preview 251028
475
+ context_length: 256000
476
+ input_length: 256000
477
+ output_length: 8192
478
+ context_window: '256K'
479
+ doubao-seed-code:
480
+ name: Doubao-Seed-Code
533
481
  supports_image_input: true
534
482
  context_length: 256000
535
483
  input_length: 256000
536
484
  output_length: 8192
537
485
  context_window: '256K'
538
- doubao-seed-1-6-251015:
539
- name: Doubao Seed 1.6
486
+ minimax-m2.7:
487
+ name: MiniMax-M2.7
488
+ upstream_model: minimax-m2.7
489
+ supports_image_input: false
490
+ context_length: 204800
491
+ input_length: 204800
492
+ output_length: 8192
493
+ context_window: '204K'
494
+ glm-5.1:
495
+ name: GLM-5.1
540
496
  supports_image_input: false
541
497
  context_length: 256000
542
498
  input_length: 256000
543
499
  output_length: 8192
544
500
  context_window: '256K'
545
- doubao-seed-1-6-thinking-250715:
546
- name: Doubao Seed 1.6 Thinking
501
+ glm-4.7:
502
+ name: GLM-4.7
547
503
  supports_image_input: false
548
504
  context_length: 256000
549
505
  input_length: 256000
550
506
  output_length: 8192
551
507
  context_window: '256K'
552
- doubao-seed-1-6-lite-251015:
553
- name: Doubao Seed 1.6 Lite
508
+ deepseek-v3.2:
509
+ name: DeepSeek-V3.2
554
510
  supports_image_input: false
555
- context_length: 32000
556
- input_length: 32000
557
- output_length: 8192
558
- context_window: '32K'
559
- kimi-k2-250905:
560
- name: Kimi K2
511
+ context_length: 128000
512
+ input_length: 96000
513
+ output_length: 32000
514
+ context_window: '128K'
515
+ kimi-k2.6:
516
+ name: Kimi-K2.6
561
517
  supports_image_input: false
562
518
  context_length: 200000
563
519
  input_length: 200000
564
520
  output_length: 8192
565
- context_window: '200K (约20万汉字)'
566
- deepseek-v3-1-terminus:
567
- name: DeepSeek V3.1 Terminus
521
+ context_window: '200K'
522
+ kimi-k2.5:
523
+ name: Kimi-K2.5
568
524
  supports_image_input: false
569
- context_length: 131072
570
- input_length: 131072
525
+ context_length: 200000
526
+ input_length: 200000
571
527
  output_length: 8192
572
- context_window: '128K'
528
+ context_window: '200K'
573
529
  anthropic:
574
530
  name: Anthropic
575
531
  apiType: anthropic
@@ -578,11 +534,6 @@ providers:
578
534
  tech_spec_url: https://docs.anthropic.com/en/docs
579
535
  api_mgmt_url: https://console.anthropic.com/
580
536
  model_param_options:
581
- general:
582
- max_tokens:
583
- type: integer
584
- min: 1
585
- description: Maximum tokens to generate (provider-agnostic override).
586
537
  anthropic:
587
538
  temperature:
588
539
  type: number
@@ -639,11 +590,6 @@ providers:
639
590
  tech_spec_url: https://api-docs.deepseek.com/zh-cn/guides/anthropic_api
640
591
  api_mgmt_url: https://platform.deepseek.com/api_keys
641
592
  model_param_options:
642
- general:
643
- max_tokens:
644
- type: integer
645
- min: 1
646
- description: Fully supported. Maximum number of tokens to generate.
647
593
  anthropic:
648
594
  temperature:
649
595
  type: number
@@ -698,11 +644,6 @@ providers:
698
644
  tech_spec_url: https://help.aliyun.com/zh/model-studio/other-tools-coding-plan
699
645
  api_mgmt_url: https://bailian.console.aliyun.com/cn-beijing/?tab=model#/efm/coding_plan
700
646
  model_param_options:
701
- general:
702
- max_tokens:
703
- type: integer
704
- min: 1
705
- description: Maximum tokens to generate (provider-agnostic override).
706
647
  anthropic:
707
648
  temperature:
708
649
  type: number
@@ -780,12 +721,6 @@ providers:
780
721
  api_mgmt_url: https://platform.openai.com/api-keys
781
722
  # These are documentation hints for humans/agents; they are not auto-applied.
782
723
  model_param_options:
783
- general:
784
- max_tokens:
785
- # Provider-agnostic cap on generated tokens.
786
- type: integer
787
- min: 1
788
- description: Maximum tokens to generate (provider-agnostic override).
789
724
  openai:
790
725
  # Isolation principle:
791
726
  # - These hints describe the OpenAI Responses wrapper only.
@@ -864,10 +799,6 @@ providers:
864
799
  web_search_include_sources:
865
800
  type: boolean
866
801
  description: Include `web_search_call.action.sources` in the response payload.
867
- max_tokens:
868
- type: integer
869
- min: 1
870
- description: Provider-specific max tokens override.
871
802
  models:
872
803
  gpt-5.5:
873
804
  name: GPT-5.5