@fenglimg/fabric-shared 2.1.0-rc.2 → 2.2.0-rc.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.
@@ -955,7 +955,46 @@ var enMessages = {
955
955
  "dashboard.health.boundary.cli-action": "CLI Action Required:",
956
956
  "dashboard.health.boundary.cli-prompt": "You have {count} fixable issues. Run the following command in your terminal to repair metadata automatically.",
957
957
  "dashboard.health.runtime.connected": "MCP Runtime Connected",
958
- "dashboard.health.runtime.disconnected": "MCP Runtime Disconnected"
958
+ "dashboard.health.runtime.disconnected": "MCP Runtime Disconnected",
959
+ // W3-05 (ISS-033): project-scoped command output (whoami / store /
960
+ // scope-explain / sync / metrics) — previously hardcoded English, now
961
+ // resolved via the project's fabric_language.
962
+ "cli.cmd.no-global-config": "no global Fabric config \u2014 run `fabric install --global <url>` first",
963
+ "cli.whoami.uid": "uid: {uid}",
964
+ "cli.whoami.stores-none": "stores: (none mounted)",
965
+ "cli.whoami.stores-label": "stores:",
966
+ "cli.shared.local-only": "(local-only)",
967
+ "cli.store.none-mounted": "(no stores mounted)",
968
+ "cli.store.mounted": "mounted '{alias}' ({count} store(s) total)",
969
+ "cli.store.created": "created store '{alias}' ({uuid}) at {dir}",
970
+ "cli.store.created-local-hint": "(local-only \u2014 add a remote later with `git -C <storeDir> remote add origin <url>`)",
971
+ "cli.store.no-alias": "no store aliased '{alias}'",
972
+ "cli.store.detached": "detached '{alias}' \u2014 on-disk store tree left intact (detach \u2260 delete)",
973
+ "cli.store.bound": "bound required store '{id}' ({count} required)",
974
+ "cli.store.switch-write": "active write store set to '{alias}' for this project",
975
+ "cli.sync.deferred": "{count} store(s) offline \u2014 push deferred; re-run `fabric sync` when online",
976
+ "cli.sync.paused": "sync paused on a conflict \u2014 resolve it, then run `fabric sync --continue` (or `--abort`)",
977
+ "cli.metrics.invalid-since": '--since: invalid duration "{raw}" (expected e.g. 24h, 7d, 30m)',
978
+ "cli.metrics.window": "Fabric metrics \u2014 window: {window}",
979
+ "cli.metrics.window-all-time": "all-time",
980
+ "cli.metrics.rows-range": " rows: {count} ({start} \u2192 {end})",
981
+ "cli.metrics.rows": " rows: {count}",
982
+ "cli.metrics.no-activity": " (no counter activity in window \u2014 server may be idle or just started)",
983
+ // W3-09 (ISS-035): forensic project scan progress (stderr, TTY-only).
984
+ "cli.install.scanning": "scanning project for client/framework signals\u2026",
985
+ "cli.install.scan-complete": " project scan complete",
986
+ // W4-11 (ISS-021): unified project-scan recommendations (cli forensic +
987
+ // http scan share this single i18n-keyed set).
988
+ "scan.rec.install": "Run `fabric install` to scaffold the .fabric/ knowledge layout (decisions, pitfalls, guidelines, models, processes).",
989
+ "scan.rec.readme": "Expand README.md (project goal, run steps, no-touch zones) before promoting facts into Fabric knowledge.",
990
+ "scan.rec.contributing": "Add CONTRIBUTING.md or capture contribution-flow guidance under .fabric/knowledge/processes/.",
991
+ "scan.rec.cocos.lifecycle": "Confirm the Cocos Creator Component lifecycle (onLoad/onEnable/start) ordering with the user.",
992
+ "scan.rec.cocos.human-protect": "Ask whether assets/prefabs and assets/scenes are @HUMAN-protected zones.",
993
+ "scan.rec.cocos.meta-lock": "`.meta` files detected \u2014 consider @HUMAN-locking them so the AI does not modify them.",
994
+ "scan.rec.next": "Confirm app/pages routing boundaries and server-component constraints.",
995
+ "scan.rec.vite": "Confirm the src/main entry, component directories, and build-script maintenance boundaries.",
996
+ "scan.rec.unknown": "No framework marker detected \u2014 confirm the tech stack and main entry with the user first.",
997
+ "scan.rec.generic": "Confirm the AGENTS.md layering boundaries around {kind}'s main entry and generated directories."
959
998
  };
960
999
 
961
1000
  // src/i18n/locales/zh-CN.ts
@@ -1907,7 +1946,44 @@ var zhCNMessages = {
1907
1946
  "dashboard.health.boundary.cli-action": "\u9700\u8981\u6267\u884C CLI \u64CD\u4F5C\uFF1A",
1908
1947
  "dashboard.health.boundary.cli-prompt": "\u68C0\u6D4B\u5230 {count} \u4E2A\u53EF\u4FEE\u590D\u7684\u95EE\u9898\u3002\u8BF7\u5728\u7EC8\u7AEF\u4E2D\u8FD0\u884C\u4EE5\u4E0B\u547D\u4EE4\u4EE5\u81EA\u52A8\u4FEE\u590D\u5143\u6570\u636E\u3002",
1909
1948
  "dashboard.health.runtime.connected": "MCP \u8FD0\u884C\u65F6\u5DF2\u8FDE\u63A5",
1910
- "dashboard.health.runtime.disconnected": "MCP \u8FD0\u884C\u65F6\u5DF2\u65AD\u5F00"
1949
+ "dashboard.health.runtime.disconnected": "MCP \u8FD0\u884C\u65F6\u5DF2\u65AD\u5F00",
1950
+ // W3-05 (ISS-033): 项目作用域命令输出 (whoami / store / scope-explain /
1951
+ // sync / metrics) —— 原硬编码英文, 现按项目 fabric_language 渲染。
1952
+ "cli.cmd.no-global-config": "\u672A\u627E\u5230\u5168\u5C40 Fabric \u914D\u7F6E \u2014\u2014 \u8BF7\u5148\u8FD0\u884C `fabric install --global <url>`",
1953
+ "cli.whoami.uid": "uid: {uid}",
1954
+ "cli.whoami.stores-none": "stores: (\u672A\u6302\u8F7D\u4EFB\u4F55 store)",
1955
+ "cli.whoami.stores-label": "stores:",
1956
+ "cli.shared.local-only": "(\u4EC5\u672C\u5730)",
1957
+ "cli.store.none-mounted": "(\u672A\u6302\u8F7D\u4EFB\u4F55 store)",
1958
+ "cli.store.mounted": "\u5DF2\u6302\u8F7D '{alias}' (\u5171 {count} \u4E2A store)",
1959
+ "cli.store.created": "\u5DF2\u521B\u5EFA store '{alias}' ({uuid}) \u4E8E {dir}",
1960
+ "cli.store.created-local-hint": "(\u4EC5\u672C\u5730 \u2014\u2014 \u7A0D\u540E\u7528 `git -C <storeDir> remote add origin <url>` \u6DFB\u52A0 remote)",
1961
+ "cli.store.no-alias": "\u6CA1\u6709\u522B\u540D\u4E3A '{alias}' \u7684 store",
1962
+ "cli.store.detached": "\u5DF2\u5206\u79BB '{alias}' \u2014\u2014 \u78C1\u76D8\u4E0A\u7684 store \u76EE\u5F55\u4FDD\u7559 (\u5206\u79BB \u2260 \u5220\u9664)",
1963
+ "cli.store.bound": "\u5DF2\u7ED1\u5B9A\u5FC5\u9700 store '{id}' (\u5171 {count} \u4E2A\u5FC5\u9700)",
1964
+ "cli.store.switch-write": "\u5DF2\u5C06\u672C\u9879\u76EE\u7684\u6D3B\u52A8\u5199\u5165 store \u8BBE\u4E3A '{alias}'",
1965
+ "cli.sync.deferred": "{count} \u4E2A store \u79BB\u7EBF \u2014\u2014 push \u5DF2\u5EF6\u540E; \u8054\u7F51\u540E\u91CD\u65B0\u8FD0\u884C `fabric sync`",
1966
+ "cli.sync.paused": "sync \u56E0\u51B2\u7A81\u6682\u505C \u2014\u2014 \u89E3\u51B3\u540E\u8FD0\u884C `fabric sync --continue` (\u6216 `--abort`)",
1967
+ "cli.metrics.invalid-since": '--since: \u65E0\u6548\u7684\u65F6\u957F "{raw}" (\u793A\u4F8B: 24h\u30017d\u300130m)',
1968
+ "cli.metrics.window": "Fabric \u6307\u6807 \u2014\u2014 \u65F6\u95F4\u7A97: {window}",
1969
+ "cli.metrics.window-all-time": "\u5168\u90E8\u65F6\u95F4",
1970
+ "cli.metrics.rows-range": " \u884C\u6570: {count} ({start} \u2192 {end})",
1971
+ "cli.metrics.rows": " \u884C\u6570: {count}",
1972
+ "cli.metrics.no-activity": " (\u65F6\u95F4\u7A97\u5185\u65E0\u8BA1\u6570\u6D3B\u52A8 \u2014\u2014 server \u53EF\u80FD\u7A7A\u95F2\u6216\u521A\u542F\u52A8)",
1973
+ // W3-09 (ISS-035): forensic 项目扫描进度 (stderr, 仅 TTY)。
1974
+ "cli.install.scanning": "\u6B63\u5728\u626B\u63CF\u9879\u76EE\u7684\u5BA2\u6237\u7AEF/\u6846\u67B6\u7279\u5F81\u2026",
1975
+ "cli.install.scan-complete": " \u9879\u76EE\u626B\u63CF\u5B8C\u6210",
1976
+ // W4-11 (ISS-021): 统一项目扫描推荐(cli forensic + http scan 共用此 i18n key 集)。
1977
+ "scan.rec.install": "\u8FD0\u884C `fabric install` \u642D\u5EFA .fabric/ \u77E5\u8BC6\u5C42(decisions/pitfalls/guidelines/models/processes)\u3002",
1978
+ "scan.rec.readme": "README \u4FE1\u606F\u4E0D\u8DB3,\u5EFA\u8BAE\u5728\u521D\u59CB\u5316\u8BBF\u8C08\u4E2D\u8865\u9F50\u9879\u76EE\u76EE\u6807\u3001\u8FD0\u884C\u65B9\u5F0F\u548C\u7981\u6539\u533A\u57DF\u3002",
1979
+ "scan.rec.contributing": "\u8865\u5145 CONTRIBUTING.md,\u6216\u5728 .fabric/knowledge/processes/ \u4E0B\u8BB0\u5F55\u8D21\u732E\u6D41\u7A0B\u3002",
1980
+ "scan.rec.cocos.lifecycle": "\u5EFA\u8BAE\u5411\u7528\u6237\u786E\u8BA4 Cocos Creator Component \u751F\u547D\u5468\u671F(onLoad/onEnable/start)\u987A\u5E8F\u3002",
1981
+ "scan.rec.cocos.human-protect": "\u5EFA\u8BAE\u8BE2\u95EE assets/prefabs \u548C assets/scenes \u662F\u5426\u5C5E\u4E8E @HUMAN \u4FDD\u62A4\u533A\u57DF\u3002",
1982
+ "scan.rec.cocos.meta-lock": "\u68C0\u6D4B\u5230 .meta \u6587\u4EF6,\u5EFA\u8BAE\u5728 @HUMAN \u9501\u5B9A .meta \u4E0D\u88AB AI \u6539\u52A8\u3002",
1983
+ "scan.rec.next": "\u5EFA\u8BAE\u786E\u8BA4 app/pages \u8DEF\u7531\u8FB9\u754C\u548C\u670D\u52A1\u7AEF\u7EC4\u4EF6\u7EA6\u675F\u3002",
1984
+ "scan.rec.vite": "\u5EFA\u8BAE\u786E\u8BA4 src/main \u5165\u53E3\u3001\u7EC4\u4EF6\u76EE\u5F55\u548C\u6784\u5EFA\u811A\u672C\u7684\u7EF4\u62A4\u8FB9\u754C\u3002",
1985
+ "scan.rec.unknown": "\u672A\u68C0\u6D4B\u5230\u660E\u786E\u6846\u67B6,\u5EFA\u8BAE\u5148\u8BA9\u7528\u6237\u786E\u8BA4\u6280\u672F\u6808\u548C\u4E3B\u8981\u5165\u53E3\u3002",
1986
+ "scan.rec.generic": "\u5EFA\u8BAE\u56F4\u7ED5 {kind} \u7684\u4E3B\u8981\u5165\u53E3\u548C\u751F\u6210\u76EE\u5F55\u786E\u8BA4 AGENTS.md \u5206\u5C42\u8FB9\u754C\u3002"
1911
1987
  };
1912
1988
 
1913
1989
  // src/i18n/create-translator.ts
@@ -45,7 +45,12 @@ var _ruleDescriptionSchema = z2.object({
45
45
  // entries without frontmatter still parse.
46
46
  tags: z2.array(z2.string()).optional(),
47
47
  relevance_scope: z2.enum(["narrow", "broad"]).optional(),
48
- relevance_paths: z2.array(z2.string()).optional()
48
+ relevance_paths: z2.array(z2.string()).optional(),
49
+ // v2.2 H2-related (W1-T7) — W1-REVIEW codex HIGH-2: the MCP-facing description
50
+ // schema must also carry `related`, else zod strips the graph edges on output
51
+ // validation and they never reach the client (MC1 include_related / fabric-
52
+ // connect would see nothing). Mirrors the agents-meta ruleDescriptionSchema.
53
+ related: z2.array(z2.string()).optional()
49
54
  });
50
55
  var _descriptionIndexItemSchema = z2.object({
51
56
  stable_id: z2.string(),
@@ -107,6 +112,12 @@ var planContextOutputSchema = z2.object({
107
112
  })
108
113
  ),
109
114
  candidates: z2.array(_descriptionIndexItemSchema),
115
+ // v2.2 A-INFRA-3 (W1-T3-TOPK) / MC4-payload-budget (W1-T4): number of
116
+ // lower-ranked candidates dropped by the unified truncation chain (top_k cap
117
+ // + payload-budget trim). Present and > 0 ONLY when truncation fired, so the
118
+ // steady-state wire shape is unchanged. Lets the LLM know the returned set is
119
+ // not exhaustive ("N more exist; narrow your intent").
120
+ omitted_candidate_count: z2.number().int().nonnegative().optional(),
110
121
  preflight_diagnostics: z2.array(_preflightDiagnosticSchema),
111
122
  warnings: z2.array(structuredWarningSchema).optional(),
112
123
  // v2.0.0-rc.22 Scope D T-D2: optional auto-heal banner fields. Surfaced
@@ -233,6 +244,10 @@ var recallInputSchema = z2.object({
233
244
  ),
234
245
  ids: z2.array(z2.string()).optional().describe(
235
246
  "Optional explicit stable_ids to fetch. When omitted, fab_recall returns ALL entries plan-context surfaces (the common case after rc.37 selectable-filter removal). When provided, filters fetched bodies to this set."
247
+ ),
248
+ // v2.2 MC1-recall-pack (W2-T4): graph expansion.
249
+ include_related: z2.boolean().optional().describe(
250
+ "When true, also fetch the one-hop `related` graph neighbours (of the selected entries) that are present in the candidate set. Useful with a scoped `ids` to pull connected knowledge in one call."
236
251
  )
237
252
  });
238
253
  var recallOutputSchema = z2.object({
@@ -252,6 +267,11 @@ var recallOutputSchema = z2.object({
252
267
  })
253
268
  ),
254
269
  candidates: z2.array(_descriptionIndexItemSchema),
270
+ // v2.2 W1-REVIEW codex MED-5: fab_recall spreads `...planResult`, so it carries
271
+ // the truncation signal too. Declare it here or zod strips it on output
272
+ // validation — the RECOMMENDED one-step entry would silently lose the "more
273
+ // candidates exist" signal that plan_context surfaces.
274
+ omitted_candidate_count: z2.number().int().nonnegative().optional(),
255
275
  preflight_diagnostics: z2.array(_preflightDiagnosticSchema),
256
276
  // Same shape as knowledgeSectionsOutputSchema.rules — full body keyed by stable_id.
257
277
  rules: z2.array(
@@ -278,7 +298,16 @@ var recallOutputSchema = z2.object({
278
298
  // that field for semantics. fab_recall transparently rewrites any old ids
279
299
  // passed via `ids` before fetching bodies; the surfaced map still exposes
280
300
  // the substitution to callers that want to refresh their cached state.
281
- redirects: z2.record(z2.string()).optional()
301
+ redirects: z2.record(z2.string()).optional(),
302
+ // v2.2 MC1-recall-pack (W2-T4): packaging increments — a standing behavioral
303
+ // directive (cite-before-edit), dynamic next-step hints, and a truncation
304
+ // summary, so the one-call recall is self-describing.
305
+ directive: z2.string(),
306
+ next_steps: z2.array(z2.string()).optional(),
307
+ truncation: z2.object({
308
+ omitted_candidate_count: z2.number().int().nonnegative(),
309
+ returned_candidate_count: z2.number().int().nonnegative()
310
+ }).optional()
282
311
  });
283
312
  var recallAnnotations = {
284
313
  readOnlyHint: true,
@@ -88,6 +88,7 @@ var BOOTSTRAP_CANONICAL = `# Fabric Bootstrap
88
88
  - **\`KB: none\` sentinel**: \u679A\u4E3E\u4E24\u79CD\u5408\u89C4\u7406\u7531\u2014\u2014\`[no-relevant]\` \u5DF2\u8C03 \`fab_recall\` / \`fab_plan_context\`(\u6216 hook \u8F93\u51FA\u53EF\u89C1)\u4F46\u65E0\u53EF\u7528\u6761\u76EE;\`[not-applicable]\` \u5F53\u524D\u52A8\u4F5C\u4E0D\u5728 cite \u8303\u56F4(\u7EAF\u63A2\u7D22 / Bash \u53EA\u8BFB / \u7528\u6237\u95EE\u7B54)\u3002\u88F8 \`KB: none\`(\u65E0\u540E\u7F00)\u4ECD\u7136 valid,\u5F52\u7C7B\u4E3A \`[unspecified]\`(legacy \u517C\u5BB9,\u9F13\u52B1\u540E\u7EED\u8865\u6CE8)\u3002
89
89
  - **\u7A3D\u6838**: \`fabric doctor --cite-coverage [--since=7d] [--client=cc|codex|all]\` \u8F93\u51FA cite \u8986\u76D6\u7387,\u542B \`KB: none\` sentinel \u62C6\u5206\u3002\u672C\u89C4\u5219\u4E0D\u963B\u65AD\u4F60\u5DE5\u4F5C,\u53EA\u8BB0\u5F55\u3002
90
90
  - **Backward compat**: \u89E3\u6790\u5668\u540C\u65F6\u63A5\u53D7\u8001 4-state tags (\`planned\` / \`recalled\` / \`chained-from <id>\`) \u2014 \u90FD\u6620\u5C04\u5230 \`[applied]\` \u8BED\u4E49,gradually \u8FC1\u5230\u65B0\u7B80\u5316\u5F62\u6001\u5373\u53EF,\u65E7 session \u7559\u4E0B\u7684 cite \u4ECD\u7136\u8BA1\u5165 cite-coverage\u3002
91
+ - **\u5B8C\u6574\u53C2\u8003\u4E0B\u6C89** (v2.2 SK5): contract operator / skip\xB7dismissed \u8BCD\u5178 / \u7C7B\u578B\u8DEF\u7531 / \u7A3D\u6838\u53E3\u5F84 / **\u88C1\u51B3\u9636\u68AF** (AI\u81EA\u51B3 \u2192 \u591A-LLM \u542B\u96F6\u4E0A\u4E0B\u6587\u51B7\u8BC4 \u2192 \u975E\u963B\u585E\u961F\u5217) \u7684\u6743\u5A01\u8BE6\u53C2\u5728 \`fabric-review\` skill \u7684 \`ref/cite-contract.md\` \u2014\u2014 bootstrap \u53EA\u7559\u53EF\u6267\u884C core,\u6CBB\u7406\u7EC6\u8282\u5F52 ref \u4E0D\u518D\u6491\u5927 bootstrap\u3002
91
92
  `;
92
93
 
93
94
  export {
@@ -7,7 +7,7 @@ import {
7
7
  normalizeLocale,
8
8
  resolveFabricLocale,
9
9
  zhCNMessages
10
- } from "../chunk-R2J7DAED.js";
10
+ } from "../chunk-7TZ2PMVH.js";
11
11
  export {
12
12
  PROTECTED_TOKENS,
13
13
  createTranslator,
@@ -20,6 +20,7 @@ interface RuleDescription {
20
20
  tags?: string[];
21
21
  relevance_scope?: "narrow" | "broad";
22
22
  relevance_paths?: string[];
23
+ related?: string[];
23
24
  }
24
25
  interface RuleDescriptionIndexItem {
25
26
  stable_id: string;
@@ -116,6 +117,7 @@ declare const mcpPayloadLimitsSchema: z.ZodOptional<z.ZodObject<{
116
117
  hardBytes?: number | undefined;
117
118
  }>>;
118
119
  declare const selectionTokenTtlMsSchema: z.ZodNumber;
120
+ declare const planContextTopKSchema: z.ZodNumber;
119
121
  declare const fabricLanguageSchema: z.ZodEnum<["match-existing", "zh-CN", "en", "zh-CN-hybrid"]>;
120
122
  declare const defaultLayerFilterSchema: z.ZodEnum<["team", "personal", "both"]>;
121
123
  declare const fabricConfigSchema: z.ZodObject<{
@@ -185,7 +187,10 @@ declare const fabricConfigSchema: z.ZodObject<{
185
187
  fabric_event_retention_days: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>>;
186
188
  onboard_slots_opted_out: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
187
189
  hint_broad_top_k: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
190
+ hint_broad_budget_chars: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
188
191
  hint_dismiss_signals: z.ZodOptional<z.ZodArray<z.ZodEnum<["archive", "review", "import", "maintenance"]>, "many">>;
192
+ cite_policy_enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
193
+ self_archive_policy_enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
189
194
  hint_narrow_top_k: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
190
195
  hint_narrow_dedup_window_turns: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
191
196
  hint_broad_cooldown_hours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -196,6 +201,10 @@ declare const fabricConfigSchema: z.ZodObject<{
196
201
  hint_summary_max_len: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
197
202
  hint_reminder_to_context: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
198
203
  selection_token_ttl_ms: z.ZodOptional<z.ZodNumber>;
204
+ plan_context_top_k: z.ZodOptional<z.ZodNumber>;
205
+ retrieval_budget_profile: z.ZodOptional<z.ZodEnum<["conservative", "balanced", "generous"]>>;
206
+ embed_enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
207
+ embed_weight: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
199
208
  }, "strip", z.ZodTypeAny, {
200
209
  fabric_language: "match-existing" | "zh-CN" | "en" | "zh-CN-hybrid";
201
210
  default_layer_filter: "personal" | "team" | "both";
@@ -222,12 +231,17 @@ declare const fabricConfigSchema: z.ZodObject<{
222
231
  cite_evict_interval: number;
223
232
  onboard_slots_opted_out: string[];
224
233
  hint_broad_top_k: number;
234
+ hint_broad_budget_chars: number;
235
+ cite_policy_enabled: boolean;
236
+ self_archive_policy_enabled: boolean;
225
237
  hint_narrow_top_k: number;
226
238
  hint_narrow_dedup_window_turns: number;
227
239
  hint_broad_cooldown_hours: number;
228
240
  hint_narrow_cooldown_hours: number;
229
241
  hint_summary_max_len: number;
230
242
  hint_reminder_to_context: boolean;
243
+ embed_enabled: boolean;
244
+ embed_weight: number;
231
245
  clientPaths?: {
232
246
  claudeCodeCLI?: string | undefined;
233
247
  claudeCodeDesktop?: string | undefined;
@@ -252,6 +266,8 @@ declare const fabricConfigSchema: z.ZodObject<{
252
266
  orphan_demote_endorsed_days?: number | undefined;
253
267
  orphan_demote_draft_days?: number | undefined;
254
268
  selection_token_ttl_ms?: number | undefined;
269
+ plan_context_top_k?: number | undefined;
270
+ retrieval_budget_profile?: "conservative" | "balanced" | "generous" | undefined;
255
271
  }, {
256
272
  clientPaths?: {
257
273
  claudeCodeCLI?: string | undefined;
@@ -297,7 +313,10 @@ declare const fabricConfigSchema: z.ZodObject<{
297
313
  fabric_event_retention_days?: 7 | 30 | 90 | undefined;
298
314
  onboard_slots_opted_out?: string[] | undefined;
299
315
  hint_broad_top_k?: number | undefined;
316
+ hint_broad_budget_chars?: number | undefined;
300
317
  hint_dismiss_signals?: ("archive" | "review" | "import" | "maintenance")[] | undefined;
318
+ cite_policy_enabled?: boolean | undefined;
319
+ self_archive_policy_enabled?: boolean | undefined;
301
320
  hint_narrow_top_k?: number | undefined;
302
321
  hint_narrow_dedup_window_turns?: number | undefined;
303
322
  hint_broad_cooldown_hours?: number | undefined;
@@ -308,6 +327,10 @@ declare const fabricConfigSchema: z.ZodObject<{
308
327
  hint_summary_max_len?: number | undefined;
309
328
  hint_reminder_to_context?: boolean | undefined;
310
329
  selection_token_ttl_ms?: number | undefined;
330
+ plan_context_top_k?: number | undefined;
331
+ retrieval_budget_profile?: "conservative" | "balanced" | "generous" | undefined;
332
+ embed_enabled?: boolean | undefined;
333
+ embed_weight?: number | undefined;
311
334
  }>;
312
335
 
313
336
  interface ClientPaths {
@@ -325,4 +348,4 @@ type FabricLanguage = "match-existing" | "zh-CN" | "en" | "zh-CN-hybrid";
325
348
  type DefaultLayerFilter = "team" | "personal" | "both";
326
349
  type FabricConfig = z.input<typeof fabricConfigSchema>;
327
350
 
328
- export { type AgentsMetaNode as A, type ClientPaths as C, type DefaultLayerFilter as D, type FabricConfig as F, type HumanLockEntry as H, type LedgerEntry as L, type McpPayloadLimits as M, type RuleDescription as R, type AgentsIdentitySource as a, type AgentsLayer as b, type AgentsTopologyType as c, type AgentsMeta as d, type AgentsActivationTier as e, fabricConfigSchema as f, type AgentsMetaCountersEnvelope as g, type AgentsMetaKnowledgeTypeCounters as h, type AgentsMetaNodeActivation as i, type AiLedgerEntry as j, type AuditMode as k, type FabricLanguage as l, type HumanLedgerEntry as m, type RuleDescriptionIndexItem as n, auditModeSchema as o, clientPathsSchema as p, defaultLayerFilterSchema as q, fabricLanguageSchema as r, mcpPayloadLimitsSchema as s, selectionTokenTtlMsSchema as t };
351
+ export { type AgentsMetaNode as A, type ClientPaths as C, type DefaultLayerFilter as D, type FabricConfig as F, type HumanLockEntry as H, type LedgerEntry as L, type McpPayloadLimits as M, type RuleDescription as R, type AgentsIdentitySource as a, type AgentsLayer as b, type AgentsTopologyType as c, type AgentsMeta as d, type AgentsActivationTier as e, fabricConfigSchema as f, type AgentsMetaCountersEnvelope as g, type AgentsMetaKnowledgeTypeCounters as h, type AgentsMetaNodeActivation as i, type AiLedgerEntry as j, type AuditMode as k, type FabricLanguage as l, type HumanLedgerEntry as m, type RuleDescriptionIndexItem as n, auditModeSchema as o, clientPathsSchema as p, defaultLayerFilterSchema as q, fabricLanguageSchema as r, mcpPayloadLimitsSchema as s, planContextTopKSchema as t, selectionTokenTtlMsSchema as u };