@fenglimg/fabric-shared 2.0.0-rc.21 → 2.0.0-rc.22
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/dist/{chunk-QZNUUIL3.js → chunk-BEABJYVL.js} +1 -1
- package/dist/{chunk-NNDFOOBO.js → chunk-WK4WINAZ.js} +8 -1
- package/dist/index.d.ts +159 -2
- package/dist/index.js +57 -14
- package/dist/node/atomic-write.d.ts +16 -0
- package/dist/node/atomic-write.js +19 -10
- package/dist/schemas/api-contracts.d.ts +6 -0
- package/dist/schemas/api-contracts.js +1 -1
- package/dist/templates/bootstrap-canonical.d.ts +1 -1
- package/dist/templates/bootstrap-canonical.js +1 -1
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ var BOOTSTRAP_CANONICAL = `# Fabric Bootstrap
|
|
|
11
11
|
|
|
12
12
|
## \u884C\u4E3A\u89C4\u5219
|
|
13
13
|
- **\u4FEE\u6539\u4EFB\u4F55\u6587\u4EF6\u524D**:\u5FC5\u987B\u5148\u8C03 \`fab_plan_context(paths=[<\u88AB\u6539\u6587\u4EF6>])\`,\u518D\u8C03 \`fab_get_knowledge_sections\` \u53D6\u76F8\u5173\u89C4\u5219\u6BB5\u843D\u3002
|
|
14
|
-
- **\`.fabric/agents.meta.json\` \u4E25\u7981\u624B\u52A8\u7F16\u8F91
|
|
14
|
+
- **\`.fabric/agents.meta.json\` \u4E25\u7981\u624B\u52A8\u7F16\u8F91**;engine \u4F1A\u81EA\u52A8\u540C\u6B65\u6D3E\u751F\u72B6\u6001,\u663E\u5F0F reconcile \u8DD1 \`fab doctor --fix\`\u3002
|
|
15
15
|
|
|
16
16
|
## \u77E5\u8BC6\u5E93(KB)
|
|
17
17
|
- **Discovery**:SessionStart hook \u5217 broad-scoped \u6761\u76EE;edit \u6587\u4EF6\u65F6 PreToolUse hook \u53EF\u80FD\u89E6\u53D1 narrow hint\u3002
|
|
@@ -111,7 +111,14 @@ var planContextOutputSchema = z.object({
|
|
|
111
111
|
})
|
|
112
112
|
)
|
|
113
113
|
}),
|
|
114
|
-
warnings: z.array(structuredWarningSchema).optional()
|
|
114
|
+
warnings: z.array(structuredWarningSchema).optional(),
|
|
115
|
+
// v2.0.0-rc.22 Scope D T-D2: optional auto-heal banner fields. Surfaced
|
|
116
|
+
// ONLY when the loadActiveMetaOrStale call detected drift and rebuilt the
|
|
117
|
+
// meta in-place. Downstream CLI / hint renderers use this pair to render a
|
|
118
|
+
// "knowledge meta auto-healed (was <prev>, now <curr>)" notice without
|
|
119
|
+
// having to query the event ledger.
|
|
120
|
+
auto_healed: z.boolean().optional(),
|
|
121
|
+
previous_revision_hash: z.string().optional()
|
|
115
122
|
});
|
|
116
123
|
var planContextAnnotations = {
|
|
117
124
|
readOnlyHint: true,
|
package/dist/index.d.ts
CHANGED
|
@@ -1387,6 +1387,7 @@ declare const fabricConfigSchema: z.ZodObject<{
|
|
|
1387
1387
|
archive_digest_max_sessions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
1388
1388
|
review_topic_result_cap: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
1389
1389
|
review_stale_pending_days: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
1390
|
+
fabric_event_retention_days: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>>;
|
|
1390
1391
|
}, "strip", z.ZodTypeAny, {
|
|
1391
1392
|
fabric_language: "match-existing" | "zh-CN" | "en" | "zh-CN-hybrid";
|
|
1392
1393
|
default_layer_filter: "personal" | "team" | "both";
|
|
@@ -1420,6 +1421,7 @@ declare const fabricConfigSchema: z.ZodObject<{
|
|
|
1420
1421
|
warnBytes?: number | undefined;
|
|
1421
1422
|
hardBytes?: number | undefined;
|
|
1422
1423
|
} | undefined;
|
|
1424
|
+
fabric_event_retention_days?: 7 | 30 | 90 | undefined;
|
|
1423
1425
|
}, {
|
|
1424
1426
|
clientPaths?: {
|
|
1425
1427
|
claudeCodeCLI?: string | undefined;
|
|
@@ -1453,6 +1455,7 @@ declare const fabricConfigSchema: z.ZodObject<{
|
|
|
1453
1455
|
archive_digest_max_sessions?: number | undefined;
|
|
1454
1456
|
review_topic_result_cap?: number | undefined;
|
|
1455
1457
|
review_stale_pending_days?: number | undefined;
|
|
1458
|
+
fabric_event_retention_days?: 7 | 30 | 90 | undefined;
|
|
1456
1459
|
}>;
|
|
1457
1460
|
|
|
1458
1461
|
type FabricConfigSchemaShape = z.infer<typeof fabricConfigSchema>;
|
|
@@ -5471,6 +5474,7 @@ declare const metaReconciledEventSchema: z.ZodObject<{
|
|
|
5471
5474
|
duration_ms: z.ZodNumber;
|
|
5472
5475
|
trigger: z.ZodEnum<["doctor", "manual"]>;
|
|
5473
5476
|
source: z.ZodLiteral<"reconcileKnowledge">;
|
|
5477
|
+
force_write_reason: z.ZodOptional<z.ZodEnum<["revision_drift"]>>;
|
|
5474
5478
|
kind: z.ZodLiteral<"fabric-event">;
|
|
5475
5479
|
id: z.ZodString;
|
|
5476
5480
|
ts: z.ZodNumber;
|
|
@@ -5489,6 +5493,7 @@ declare const metaReconciledEventSchema: z.ZodObject<{
|
|
|
5489
5493
|
trigger: "manual" | "doctor";
|
|
5490
5494
|
correlation_id?: string | undefined;
|
|
5491
5495
|
session_id?: string | undefined;
|
|
5496
|
+
force_write_reason?: "revision_drift" | undefined;
|
|
5492
5497
|
}, {
|
|
5493
5498
|
id: string;
|
|
5494
5499
|
source: "reconcileKnowledge";
|
|
@@ -5501,6 +5506,7 @@ declare const metaReconciledEventSchema: z.ZodObject<{
|
|
|
5501
5506
|
trigger: "manual" | "doctor";
|
|
5502
5507
|
correlation_id?: string | undefined;
|
|
5503
5508
|
session_id?: string | undefined;
|
|
5509
|
+
force_write_reason?: "revision_drift" | undefined;
|
|
5504
5510
|
}>;
|
|
5505
5511
|
declare const claudeSkillPathMigratedEventSchema: z.ZodObject<{
|
|
5506
5512
|
event_type: z.ZodLiteral<"claude_skill_path_migrated">;
|
|
@@ -6305,6 +6311,80 @@ declare const citePolicyActivatedEventSchema: z.ZodObject<{
|
|
|
6305
6311
|
correlation_id?: string | undefined;
|
|
6306
6312
|
session_id?: string | undefined;
|
|
6307
6313
|
}>;
|
|
6314
|
+
declare const eventsRotatedEventSchema: z.ZodObject<{
|
|
6315
|
+
event_type: z.ZodLiteral<"events_rotated">;
|
|
6316
|
+
cutoff_ts: z.ZodString;
|
|
6317
|
+
archived_count: z.ZodNumber;
|
|
6318
|
+
kept_count: z.ZodNumber;
|
|
6319
|
+
archive_path: z.ZodString;
|
|
6320
|
+
kind: z.ZodLiteral<"fabric-event">;
|
|
6321
|
+
id: z.ZodString;
|
|
6322
|
+
ts: z.ZodNumber;
|
|
6323
|
+
schema_version: z.ZodLiteral<1>;
|
|
6324
|
+
correlation_id: z.ZodOptional<z.ZodString>;
|
|
6325
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
6326
|
+
}, "strip", z.ZodTypeAny, {
|
|
6327
|
+
id: string;
|
|
6328
|
+
ts: number;
|
|
6329
|
+
schema_version: 1;
|
|
6330
|
+
kind: "fabric-event";
|
|
6331
|
+
event_type: "events_rotated";
|
|
6332
|
+
cutoff_ts: string;
|
|
6333
|
+
archived_count: number;
|
|
6334
|
+
kept_count: number;
|
|
6335
|
+
archive_path: string;
|
|
6336
|
+
correlation_id?: string | undefined;
|
|
6337
|
+
session_id?: string | undefined;
|
|
6338
|
+
}, {
|
|
6339
|
+
id: string;
|
|
6340
|
+
ts: number;
|
|
6341
|
+
schema_version: 1;
|
|
6342
|
+
kind: "fabric-event";
|
|
6343
|
+
event_type: "events_rotated";
|
|
6344
|
+
cutoff_ts: string;
|
|
6345
|
+
archived_count: number;
|
|
6346
|
+
kept_count: number;
|
|
6347
|
+
archive_path: string;
|
|
6348
|
+
correlation_id?: string | undefined;
|
|
6349
|
+
session_id?: string | undefined;
|
|
6350
|
+
}>;
|
|
6351
|
+
declare const knowledgeMetaAutoHealedEventSchema: z.ZodObject<{
|
|
6352
|
+
event_type: z.ZodLiteral<"knowledge_meta_auto_healed">;
|
|
6353
|
+
previous_revision_hash: z.ZodString;
|
|
6354
|
+
revision_hash: z.ZodString;
|
|
6355
|
+
trigger: z.ZodLiteral<"read">;
|
|
6356
|
+
caller: z.ZodOptional<z.ZodEnum<["planContext", "getKnowledgeSections", "getKnowledge", "extractKnowledge"]>>;
|
|
6357
|
+
kind: z.ZodLiteral<"fabric-event">;
|
|
6358
|
+
id: z.ZodString;
|
|
6359
|
+
ts: z.ZodNumber;
|
|
6360
|
+
schema_version: z.ZodLiteral<1>;
|
|
6361
|
+
correlation_id: z.ZodOptional<z.ZodString>;
|
|
6362
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
6363
|
+
}, "strip", z.ZodTypeAny, {
|
|
6364
|
+
id: string;
|
|
6365
|
+
revision_hash: string;
|
|
6366
|
+
previous_revision_hash: string;
|
|
6367
|
+
ts: number;
|
|
6368
|
+
schema_version: 1;
|
|
6369
|
+
kind: "fabric-event";
|
|
6370
|
+
event_type: "knowledge_meta_auto_healed";
|
|
6371
|
+
trigger: "read";
|
|
6372
|
+
correlation_id?: string | undefined;
|
|
6373
|
+
session_id?: string | undefined;
|
|
6374
|
+
caller?: "planContext" | "getKnowledgeSections" | "getKnowledge" | "extractKnowledge" | undefined;
|
|
6375
|
+
}, {
|
|
6376
|
+
id: string;
|
|
6377
|
+
revision_hash: string;
|
|
6378
|
+
previous_revision_hash: string;
|
|
6379
|
+
ts: number;
|
|
6380
|
+
schema_version: 1;
|
|
6381
|
+
kind: "fabric-event";
|
|
6382
|
+
event_type: "knowledge_meta_auto_healed";
|
|
6383
|
+
trigger: "read";
|
|
6384
|
+
correlation_id?: string | undefined;
|
|
6385
|
+
session_id?: string | undefined;
|
|
6386
|
+
caller?: "planContext" | "getKnowledgeSections" | "getKnowledge" | "extractKnowledge" | undefined;
|
|
6387
|
+
}>;
|
|
6308
6388
|
declare const eventLedgerEventSchema: z.ZodDiscriminatedUnion<"event_type", [z.ZodObject<{
|
|
6309
6389
|
event_type: z.ZodLiteral<"knowledge_context_planned">;
|
|
6310
6390
|
target_paths: z.ZodArray<z.ZodString, "many">;
|
|
@@ -6780,6 +6860,7 @@ declare const eventLedgerEventSchema: z.ZodDiscriminatedUnion<"event_type", [z.Z
|
|
|
6780
6860
|
duration_ms: z.ZodNumber;
|
|
6781
6861
|
trigger: z.ZodEnum<["doctor", "manual"]>;
|
|
6782
6862
|
source: z.ZodLiteral<"reconcileKnowledge">;
|
|
6863
|
+
force_write_reason: z.ZodOptional<z.ZodEnum<["revision_drift"]>>;
|
|
6783
6864
|
kind: z.ZodLiteral<"fabric-event">;
|
|
6784
6865
|
id: z.ZodString;
|
|
6785
6866
|
ts: z.ZodNumber;
|
|
@@ -6798,6 +6879,7 @@ declare const eventLedgerEventSchema: z.ZodDiscriminatedUnion<"event_type", [z.Z
|
|
|
6798
6879
|
trigger: "manual" | "doctor";
|
|
6799
6880
|
correlation_id?: string | undefined;
|
|
6800
6881
|
session_id?: string | undefined;
|
|
6882
|
+
force_write_reason?: "revision_drift" | undefined;
|
|
6801
6883
|
}, {
|
|
6802
6884
|
id: string;
|
|
6803
6885
|
source: "reconcileKnowledge";
|
|
@@ -6810,6 +6892,7 @@ declare const eventLedgerEventSchema: z.ZodDiscriminatedUnion<"event_type", [z.Z
|
|
|
6810
6892
|
trigger: "manual" | "doctor";
|
|
6811
6893
|
correlation_id?: string | undefined;
|
|
6812
6894
|
session_id?: string | undefined;
|
|
6895
|
+
force_write_reason?: "revision_drift" | undefined;
|
|
6813
6896
|
}>, z.ZodObject<{
|
|
6814
6897
|
event_type: z.ZodLiteral<"claude_skill_path_migrated">;
|
|
6815
6898
|
from: z.ZodString;
|
|
@@ -7590,6 +7673,78 @@ declare const eventLedgerEventSchema: z.ZodDiscriminatedUnion<"event_type", [z.Z
|
|
|
7590
7673
|
policy_version: string;
|
|
7591
7674
|
correlation_id?: string | undefined;
|
|
7592
7675
|
session_id?: string | undefined;
|
|
7676
|
+
}>, z.ZodObject<{
|
|
7677
|
+
event_type: z.ZodLiteral<"knowledge_meta_auto_healed">;
|
|
7678
|
+
previous_revision_hash: z.ZodString;
|
|
7679
|
+
revision_hash: z.ZodString;
|
|
7680
|
+
trigger: z.ZodLiteral<"read">;
|
|
7681
|
+
caller: z.ZodOptional<z.ZodEnum<["planContext", "getKnowledgeSections", "getKnowledge", "extractKnowledge"]>>;
|
|
7682
|
+
kind: z.ZodLiteral<"fabric-event">;
|
|
7683
|
+
id: z.ZodString;
|
|
7684
|
+
ts: z.ZodNumber;
|
|
7685
|
+
schema_version: z.ZodLiteral<1>;
|
|
7686
|
+
correlation_id: z.ZodOptional<z.ZodString>;
|
|
7687
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
7688
|
+
}, "strip", z.ZodTypeAny, {
|
|
7689
|
+
id: string;
|
|
7690
|
+
revision_hash: string;
|
|
7691
|
+
previous_revision_hash: string;
|
|
7692
|
+
ts: number;
|
|
7693
|
+
schema_version: 1;
|
|
7694
|
+
kind: "fabric-event";
|
|
7695
|
+
event_type: "knowledge_meta_auto_healed";
|
|
7696
|
+
trigger: "read";
|
|
7697
|
+
correlation_id?: string | undefined;
|
|
7698
|
+
session_id?: string | undefined;
|
|
7699
|
+
caller?: "planContext" | "getKnowledgeSections" | "getKnowledge" | "extractKnowledge" | undefined;
|
|
7700
|
+
}, {
|
|
7701
|
+
id: string;
|
|
7702
|
+
revision_hash: string;
|
|
7703
|
+
previous_revision_hash: string;
|
|
7704
|
+
ts: number;
|
|
7705
|
+
schema_version: 1;
|
|
7706
|
+
kind: "fabric-event";
|
|
7707
|
+
event_type: "knowledge_meta_auto_healed";
|
|
7708
|
+
trigger: "read";
|
|
7709
|
+
correlation_id?: string | undefined;
|
|
7710
|
+
session_id?: string | undefined;
|
|
7711
|
+
caller?: "planContext" | "getKnowledgeSections" | "getKnowledge" | "extractKnowledge" | undefined;
|
|
7712
|
+
}>, z.ZodObject<{
|
|
7713
|
+
event_type: z.ZodLiteral<"events_rotated">;
|
|
7714
|
+
cutoff_ts: z.ZodString;
|
|
7715
|
+
archived_count: z.ZodNumber;
|
|
7716
|
+
kept_count: z.ZodNumber;
|
|
7717
|
+
archive_path: z.ZodString;
|
|
7718
|
+
kind: z.ZodLiteral<"fabric-event">;
|
|
7719
|
+
id: z.ZodString;
|
|
7720
|
+
ts: z.ZodNumber;
|
|
7721
|
+
schema_version: z.ZodLiteral<1>;
|
|
7722
|
+
correlation_id: z.ZodOptional<z.ZodString>;
|
|
7723
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
7724
|
+
}, "strip", z.ZodTypeAny, {
|
|
7725
|
+
id: string;
|
|
7726
|
+
ts: number;
|
|
7727
|
+
schema_version: 1;
|
|
7728
|
+
kind: "fabric-event";
|
|
7729
|
+
event_type: "events_rotated";
|
|
7730
|
+
cutoff_ts: string;
|
|
7731
|
+
archived_count: number;
|
|
7732
|
+
kept_count: number;
|
|
7733
|
+
archive_path: string;
|
|
7734
|
+
correlation_id?: string | undefined;
|
|
7735
|
+
session_id?: string | undefined;
|
|
7736
|
+
}, {
|
|
7737
|
+
id: string;
|
|
7738
|
+
ts: number;
|
|
7739
|
+
schema_version: 1;
|
|
7740
|
+
kind: "fabric-event";
|
|
7741
|
+
event_type: "events_rotated";
|
|
7742
|
+
cutoff_ts: string;
|
|
7743
|
+
archived_count: number;
|
|
7744
|
+
kept_count: number;
|
|
7745
|
+
archive_path: string;
|
|
7746
|
+
correlation_id?: string | undefined;
|
|
7747
|
+
session_id?: string | undefined;
|
|
7593
7748
|
}>]>;
|
|
7594
7749
|
type KnowledgeContextPlannedEvent = z.infer<typeof knowledgeContextPlannedEventSchema>;
|
|
7595
7750
|
type KnowledgeSelectionEvent = z.infer<typeof knowledgeSelectionEventSchema>;
|
|
@@ -7626,9 +7781,11 @@ type DoctorRunEvent = z.infer<typeof doctorRunEventSchema>;
|
|
|
7626
7781
|
type RelevanceMigrationRunEvent = z.infer<typeof relevanceMigrationRunEventSchema>;
|
|
7627
7782
|
type AssistantTurnObservedEvent = z.infer<typeof assistantTurnObservedEventSchema>;
|
|
7628
7783
|
type CitePolicyActivatedEvent = z.infer<typeof citePolicyActivatedEventSchema>;
|
|
7629
|
-
type
|
|
7784
|
+
type KnowledgeMetaAutoHealedEvent = z.infer<typeof knowledgeMetaAutoHealedEventSchema>;
|
|
7785
|
+
type EventsRotatedEvent = z.infer<typeof eventsRotatedEventSchema>;
|
|
7786
|
+
type EventLedgerEvent = KnowledgeContextPlannedEvent | KnowledgeSelectionEvent | KnowledgeSectionsFetchedEvent | EditIntentCheckedEvent | KnowledgeDriftDetectedEvent | McpEventLedgerEvent | ReapplyCompletedEvent | EventLedgerTruncatedEvent | McpConfigMigratedEvent | BootstrapMarkerMigratedEvent | MetaReconciledOnStartupEvent | MetaReconciledEvent | ClaudeSkillPathMigratedEvent | ClaudeHookPathMigratedEvent | CodexSkillPathMigratedEvent | InitScanCompletedEvent | KnowledgeProposedEvent | KnowledgePromoteStartedEvent | KnowledgePromotedEvent | KnowledgePromoteFailedEvent | KnowledgeLayerChangedEvent | KnowledgeSlugRenamedEvent | KnowledgeDemotedEvent | KnowledgeArchivedEvent | KnowledgeArchiveAttemptedEvent | KnowledgeDeferredEvent | KnowledgeRejectedEvent | KnowledgeConsumedEvent | KnowledgeScopeDegradedEvent | PendingAutoArchivedEvent | KnowledgePathDangledEvent | DoctorRunEvent | RelevanceMigrationRunEvent | AssistantTurnObservedEvent | CitePolicyActivatedEvent | KnowledgeMetaAutoHealedEvent | EventsRotatedEvent;
|
|
7630
7787
|
type EventLedgerEventType = EventLedgerEvent["event_type"];
|
|
7631
7788
|
type EventLedgerEventInputFor<T extends EventLedgerEvent> = T extends EventLedgerEvent ? Omit<T, "kind" | "id" | "ts" | "schema_version" | "correlation_id" | "session_id"> & Partial<Pick<T, "id" | "ts" | "correlation_id" | "session_id">> : never;
|
|
7632
7789
|
type EventLedgerEventInput = EventLedgerEventInputFor<EventLedgerEvent>;
|
|
7633
7790
|
|
|
7634
|
-
export { AGENTS_META_IDENTITY_SOURCES, AGENTS_META_LAYERS, AGENTS_META_TOPOLOGY_TYPES, AgentsIdentitySource, AgentsLayer, AgentsMeta, type AgentsMetaCounters, AgentsMetaCountersSchema, AgentsMetaNode, AgentsTopologyType, type AssistantTurnObservedEvent, type BootstrapMarkerMigratedEvent, type CandidateFileEntry, type CandidateFileFamily, type CitePolicyActivatedEvent, type ClaudeHookPathMigratedEvent, type ClaudeSkillPathMigratedEvent, type CodexSkillPathMigratedEvent, type DoctorRunEvent, type DriftDetectedEvent, type EditIntentCheckedEvent, type EventLedgerEvent, type EventLedgerEventInput, type EventLedgerEventType, type EventLedgerTruncatedEvent, type FabricConfigSchemaShape, type FabricEvent, type ForensicAssertion, type ForensicAssertionConfidence, type ForensicAssertionCoverage, type ForensicAssertionType, type ForensicCodeSample, type ForensicEntryPoint, type ForensicEvidenceAnchor, type ForensicFramework, type ForensicReadme, type ForensicReport, type ForensicSamplingBudget, type ForensicTopology, HumanLockEntry, type HumanLockFile, type InitContext, type InitContextDomainGroup, type InitContextFramework, type InitContextInterviewTrailEntry, type InitContextInvariant, type InitContextInvariantConfidenceSnapshot, type InitContextSourceEvidence, type InitScanCompletedEvent, KNOWLEDGE_TEST_INDEX_SCHEMA_VERSION, type KnowledgeArchiveAttemptedEvent, type KnowledgeArchivedEvent, type KnowledgeConsumedEvent, type KnowledgeContextPlannedEvent, type KnowledgeDeferredEvent, type KnowledgeDemotedEvent, type KnowledgeDriftDetectedEvent, type KnowledgeLayerChangedEvent, type KnowledgePathDangledEvent, type KnowledgePromoteFailedEvent, type KnowledgePromoteStartedEvent, type KnowledgePromotedEvent, type KnowledgeProposedEvent, type KnowledgeRejectedEvent, type KnowledgeScopeDegradedEvent, type KnowledgeSectionsFetchedEvent, type KnowledgeSelectionEvent, type KnowledgeSlugRenamedEvent, type KnowledgeTestIndex, type KnowledgeTestLink, type KnowledgeTestOrphanAnnotation, KnowledgeType, Layer, type LedgerAppendedEvent, LedgerEntry, type LockApprovedEvent, type LockDriftEvent, type McpConfigMigratedEvent, type McpEventLedgerEvent, type MetaReconciledEvent, type MetaReconciledOnStartupEvent, type MetaUpdatedEvent, type PanelFieldGroup, type PanelFieldMeta, type PendingAutoArchivedEvent, type ReapplyCompletedEvent, type RelevanceMigrationRunEvent, StableId, type ValidateResult, agentsIdentitySourceSchema, agentsLayerSchema, agentsMetaNodeSchema, agentsMetaSchema, agentsTopologyTypeSchema, aiLedgerEntrySchema, allocateKnowledgeId, assistantTurnObservedEventSchema, auditModeSchema, bootstrapMarkerMigratedEventSchema, candidateFileEntrySchema, citePolicyActivatedEventSchema, claudeHookPathMigratedEventSchema, claudeSkillPathMigratedEventSchema, clientPathsSchema, codexSkillPathMigratedEventSchema, defaultAgentsMetaCounters, defaultLayerFilterSchema, deriveAgentsMetaIdentitySource, deriveAgentsMetaLayer, deriveAgentsMetaStableId, deriveAgentsMetaTopologyType, doctorRunEventSchema, driftDetectedEventSchema, editIntentCheckedEventSchema, eventLedgerEventSchema, eventLedgerTruncatedEventSchema, fabricConfigSchema, fabricEventSchema, fabricLanguageSchema, forensicAssertionCoverageSchema, forensicAssertionSchema, forensicCodeSampleSchema, forensicEntryPointSchema, forensicEvidenceAnchorSchema, forensicFrameworkSchema, forensicReadmeSchema, forensicReportSchema, forensicSamplingBudgetSchema, forensicTopologySchema, getPanelFieldByKey, getPanelFields, humanLedgerEntrySchema, humanLockEntrySchema, humanLockFileSchema, initContextDomainGroupSchema, initContextFrameworkSchema, initContextInterviewTrailEntrySchema, initContextInvariantConfidenceSnapshotSchema, initContextInvariantSchema, initContextSchema, initContextSourceEvidenceSchema, initScanCompletedEventSchema, isKnowledgeStableId, knowledgeArchiveAttemptedEventSchema, knowledgeArchivedEventSchema, knowledgeConsumedEventSchema, knowledgeContextPlannedEventSchema, knowledgeDeferredEventSchema, knowledgeDemotedEventSchema, knowledgeDriftDetectedEventSchema, knowledgeLayerChangedEventSchema, knowledgePathDangledEventSchema, knowledgePromoteFailedEventSchema, knowledgePromoteStartedEventSchema, knowledgePromotedEventSchema, knowledgeProposedEventSchema, knowledgeRejectedEventSchema, knowledgeScopeDegradedEventSchema, knowledgeSectionsFetchedEventSchema, knowledgeSelectionEventSchema, knowledgeSlugRenamedEventSchema, knowledgeTestIndexSchema, knowledgeTestLinkSchema, knowledgeTestOrphanAnnotationSchema, ledgerAppendedEventSchema, ledgerEntrySchema, lockApprovedEventSchema, lockDriftEventSchema, mcpConfigMigratedEventSchema, mcpEventLedgerEventSchema, mcpPayloadLimitsSchema, metaReconciledEventSchema, metaReconciledOnStartupEventSchema, metaUpdatedEventSchema, pendingAutoArchivedEventSchema, reapplyCompletedEventSchema, relevanceMigrationRunEventSchema, ruleDescriptionIndexItemSchema, ruleDescriptionSchema, withDerivedAgentsMetaNodeDefaults };
|
|
7791
|
+
export { AGENTS_META_IDENTITY_SOURCES, AGENTS_META_LAYERS, AGENTS_META_TOPOLOGY_TYPES, AgentsIdentitySource, AgentsLayer, AgentsMeta, type AgentsMetaCounters, AgentsMetaCountersSchema, AgentsMetaNode, AgentsTopologyType, type AssistantTurnObservedEvent, type BootstrapMarkerMigratedEvent, type CandidateFileEntry, type CandidateFileFamily, type CitePolicyActivatedEvent, type ClaudeHookPathMigratedEvent, type ClaudeSkillPathMigratedEvent, type CodexSkillPathMigratedEvent, type DoctorRunEvent, type DriftDetectedEvent, type EditIntentCheckedEvent, type EventLedgerEvent, type EventLedgerEventInput, type EventLedgerEventType, type EventLedgerTruncatedEvent, type EventsRotatedEvent, type FabricConfigSchemaShape, type FabricEvent, type ForensicAssertion, type ForensicAssertionConfidence, type ForensicAssertionCoverage, type ForensicAssertionType, type ForensicCodeSample, type ForensicEntryPoint, type ForensicEvidenceAnchor, type ForensicFramework, type ForensicReadme, type ForensicReport, type ForensicSamplingBudget, type ForensicTopology, HumanLockEntry, type HumanLockFile, type InitContext, type InitContextDomainGroup, type InitContextFramework, type InitContextInterviewTrailEntry, type InitContextInvariant, type InitContextInvariantConfidenceSnapshot, type InitContextSourceEvidence, type InitScanCompletedEvent, KNOWLEDGE_TEST_INDEX_SCHEMA_VERSION, type KnowledgeArchiveAttemptedEvent, type KnowledgeArchivedEvent, type KnowledgeConsumedEvent, type KnowledgeContextPlannedEvent, type KnowledgeDeferredEvent, type KnowledgeDemotedEvent, type KnowledgeDriftDetectedEvent, type KnowledgeLayerChangedEvent, type KnowledgeMetaAutoHealedEvent, type KnowledgePathDangledEvent, type KnowledgePromoteFailedEvent, type KnowledgePromoteStartedEvent, type KnowledgePromotedEvent, type KnowledgeProposedEvent, type KnowledgeRejectedEvent, type KnowledgeScopeDegradedEvent, type KnowledgeSectionsFetchedEvent, type KnowledgeSelectionEvent, type KnowledgeSlugRenamedEvent, type KnowledgeTestIndex, type KnowledgeTestLink, type KnowledgeTestOrphanAnnotation, KnowledgeType, Layer, type LedgerAppendedEvent, LedgerEntry, type LockApprovedEvent, type LockDriftEvent, type McpConfigMigratedEvent, type McpEventLedgerEvent, type MetaReconciledEvent, type MetaReconciledOnStartupEvent, type MetaUpdatedEvent, type PanelFieldGroup, type PanelFieldMeta, type PendingAutoArchivedEvent, type ReapplyCompletedEvent, type RelevanceMigrationRunEvent, StableId, type ValidateResult, agentsIdentitySourceSchema, agentsLayerSchema, agentsMetaNodeSchema, agentsMetaSchema, agentsTopologyTypeSchema, aiLedgerEntrySchema, allocateKnowledgeId, assistantTurnObservedEventSchema, auditModeSchema, bootstrapMarkerMigratedEventSchema, candidateFileEntrySchema, citePolicyActivatedEventSchema, claudeHookPathMigratedEventSchema, claudeSkillPathMigratedEventSchema, clientPathsSchema, codexSkillPathMigratedEventSchema, defaultAgentsMetaCounters, defaultLayerFilterSchema, deriveAgentsMetaIdentitySource, deriveAgentsMetaLayer, deriveAgentsMetaStableId, deriveAgentsMetaTopologyType, doctorRunEventSchema, driftDetectedEventSchema, editIntentCheckedEventSchema, eventLedgerEventSchema, eventLedgerTruncatedEventSchema, eventsRotatedEventSchema, fabricConfigSchema, fabricEventSchema, fabricLanguageSchema, forensicAssertionCoverageSchema, forensicAssertionSchema, forensicCodeSampleSchema, forensicEntryPointSchema, forensicEvidenceAnchorSchema, forensicFrameworkSchema, forensicReadmeSchema, forensicReportSchema, forensicSamplingBudgetSchema, forensicTopologySchema, getPanelFieldByKey, getPanelFields, humanLedgerEntrySchema, humanLockEntrySchema, humanLockFileSchema, initContextDomainGroupSchema, initContextFrameworkSchema, initContextInterviewTrailEntrySchema, initContextInvariantConfidenceSnapshotSchema, initContextInvariantSchema, initContextSchema, initContextSourceEvidenceSchema, initScanCompletedEventSchema, isKnowledgeStableId, knowledgeArchiveAttemptedEventSchema, knowledgeArchivedEventSchema, knowledgeConsumedEventSchema, knowledgeContextPlannedEventSchema, knowledgeDeferredEventSchema, knowledgeDemotedEventSchema, knowledgeDriftDetectedEventSchema, knowledgeLayerChangedEventSchema, knowledgeMetaAutoHealedEventSchema, knowledgePathDangledEventSchema, knowledgePromoteFailedEventSchema, knowledgePromoteStartedEventSchema, knowledgePromotedEventSchema, knowledgeProposedEventSchema, knowledgeRejectedEventSchema, knowledgeScopeDegradedEventSchema, knowledgeSectionsFetchedEventSchema, knowledgeSelectionEventSchema, knowledgeSlugRenamedEventSchema, knowledgeTestIndexSchema, knowledgeTestLinkSchema, knowledgeTestOrphanAnnotationSchema, ledgerAppendedEventSchema, ledgerEntrySchema, lockApprovedEventSchema, lockDriftEventSchema, mcpConfigMigratedEventSchema, mcpEventLedgerEventSchema, mcpPayloadLimitsSchema, metaReconciledEventSchema, metaReconciledOnStartupEventSchema, metaUpdatedEventSchema, pendingAutoArchivedEventSchema, reapplyCompletedEventSchema, relevanceMigrationRunEventSchema, ruleDescriptionIndexItemSchema, ruleDescriptionSchema, withDerivedAgentsMetaNodeDefaults };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {
|
|
2
|
+
BOOTSTRAP_CANONICAL,
|
|
3
|
+
BOOTSTRAP_MARKER_BEGIN,
|
|
4
|
+
BOOTSTRAP_MARKER_END,
|
|
5
|
+
BOOTSTRAP_REGEX,
|
|
6
|
+
LEGACY_KB_MARKER_BEGIN,
|
|
7
|
+
LEGACY_KB_MARKER_END,
|
|
8
|
+
LEGACY_KB_REGEX
|
|
9
|
+
} from "./chunk-BEABJYVL.js";
|
|
2
10
|
import {
|
|
3
11
|
PROTECTED_TOKENS,
|
|
4
12
|
createTranslator,
|
|
@@ -46,16 +54,8 @@ import {
|
|
|
46
54
|
planContextInputSchema,
|
|
47
55
|
planContextOutputSchema,
|
|
48
56
|
structuredWarningSchema
|
|
49
|
-
} from "./chunk-
|
|
50
|
-
import
|
|
51
|
-
BOOTSTRAP_CANONICAL,
|
|
52
|
-
BOOTSTRAP_MARKER_BEGIN,
|
|
53
|
-
BOOTSTRAP_MARKER_END,
|
|
54
|
-
BOOTSTRAP_REGEX,
|
|
55
|
-
LEGACY_KB_MARKER_BEGIN,
|
|
56
|
-
LEGACY_KB_MARKER_END,
|
|
57
|
-
LEGACY_KB_REGEX
|
|
58
|
-
} from "./chunk-QZNUUIL3.js";
|
|
57
|
+
} from "./chunk-WK4WINAZ.js";
|
|
58
|
+
import "./chunk-LXNCAKJZ.js";
|
|
59
59
|
|
|
60
60
|
// src/schemas/agents-meta.ts
|
|
61
61
|
import { z } from "zod";
|
|
@@ -450,7 +450,20 @@ var fabricConfigSchema = z5.object({
|
|
|
450
450
|
// for explicit resolve-or-drop decision. Default 14; tighter than the
|
|
451
451
|
// 7d Signal-B trigger because review specifically targets the long
|
|
452
452
|
// tail. Large repos with slower cadence can raise to 30.
|
|
453
|
-
review_stale_pending_days: z5.number().int().positive().optional().default(14)
|
|
453
|
+
review_stale_pending_days: z5.number().int().positive().optional().default(14),
|
|
454
|
+
// v2.0.0-rc.22 Scope A T3: sliding-window retention (in days) for the
|
|
455
|
+
// event ledger rotation primitive (`rotateEventLedgerIfNeeded`). Lines
|
|
456
|
+
// whose `ts` is older than `now - fabric_event_retention_days * 86_400_000`
|
|
457
|
+
// are partitioned into `.fabric/events.archive/events-rotated-YYYY-MM-DD.jsonl`.
|
|
458
|
+
// Locked to 7/30/90 — three operator-friendly preset windows. Default 30
|
|
459
|
+
// is applied at the consumer site (rotateEventLedgerIfNeeded), so this
|
|
460
|
+
// field stays `.optional()` without a `.default()` to keep the schema
|
|
461
|
+
// surface honest: absence means "use the library default", not "schema
|
|
462
|
+
// default of 30 was injected." 7 = ~tight, 30 = balanced, 90 = forensic.
|
|
463
|
+
// Mirrors cite-policy precedent of locking enum-style numeric tunables
|
|
464
|
+
// to a small literal set (vs free `.positive()`) to prevent fat-finger
|
|
465
|
+
// misconfig.
|
|
466
|
+
fabric_event_retention_days: z5.union([z5.literal(7), z5.literal(30), z5.literal(90)]).optional()
|
|
454
467
|
});
|
|
455
468
|
|
|
456
469
|
// src/schemas/fabric-config-introspect.ts
|
|
@@ -876,7 +889,12 @@ var metaReconciledEventSchema = z10.object({
|
|
|
876
889
|
reconciled_files: z10.array(z10.string()),
|
|
877
890
|
duration_ms: z10.number().int().nonnegative(),
|
|
878
891
|
trigger: z10.enum(["doctor", "manual"]),
|
|
879
|
-
source: z10.literal("reconcileKnowledge")
|
|
892
|
+
source: z10.literal("reconcileKnowledge"),
|
|
893
|
+
// v2.0.0-rc.22 TASK-014 (Scope E): set when reconcileKnowledge forced a
|
|
894
|
+
// writeKnowledgeMeta on revision drift alone (no per-file content drift).
|
|
895
|
+
// Distinguishes top-level schema/revision repair from the standard per-file
|
|
896
|
+
// drift path. Optional so existing emitters stay unchanged.
|
|
897
|
+
force_write_reason: z10.enum(["revision_drift"]).optional()
|
|
880
898
|
});
|
|
881
899
|
var claudeSkillPathMigratedEventSchema = z10.object({
|
|
882
900
|
...eventLedgerEnvelopeSchema,
|
|
@@ -1046,6 +1064,22 @@ var citePolicyActivatedEventSchema = z10.object({
|
|
|
1046
1064
|
policy_version: z10.string(),
|
|
1047
1065
|
timestamp: z10.string().datetime()
|
|
1048
1066
|
});
|
|
1067
|
+
var eventsRotatedEventSchema = z10.object({
|
|
1068
|
+
...eventLedgerEnvelopeSchema,
|
|
1069
|
+
event_type: z10.literal("events_rotated"),
|
|
1070
|
+
cutoff_ts: z10.string().datetime(),
|
|
1071
|
+
archived_count: z10.number().int().nonnegative(),
|
|
1072
|
+
kept_count: z10.number().int().nonnegative(),
|
|
1073
|
+
archive_path: z10.string()
|
|
1074
|
+
});
|
|
1075
|
+
var knowledgeMetaAutoHealedEventSchema = z10.object({
|
|
1076
|
+
...eventLedgerEnvelopeSchema,
|
|
1077
|
+
event_type: z10.literal("knowledge_meta_auto_healed"),
|
|
1078
|
+
previous_revision_hash: z10.string(),
|
|
1079
|
+
revision_hash: z10.string(),
|
|
1080
|
+
trigger: z10.literal("read"),
|
|
1081
|
+
caller: z10.enum(["planContext", "getKnowledgeSections", "getKnowledge", "extractKnowledge"]).optional()
|
|
1082
|
+
});
|
|
1049
1083
|
var eventLedgerEventSchema = z10.discriminatedUnion("event_type", [
|
|
1050
1084
|
knowledgeContextPlannedEventSchema,
|
|
1051
1085
|
knowledgeSelectionEventSchema,
|
|
@@ -1097,7 +1131,14 @@ var eventLedgerEventSchema = z10.discriminatedUnion("event_type", [
|
|
|
1097
1131
|
assistantTurnObservedEventSchema,
|
|
1098
1132
|
// v2.0.0-rc.20 TASK-02: cite_policy_activated — session/policy-bump
|
|
1099
1133
|
// marker recording when a given policy_version became active.
|
|
1100
|
-
citePolicyActivatedEventSchema
|
|
1134
|
+
citePolicyActivatedEventSchema,
|
|
1135
|
+
// v2.0.0-rc.22 Scope D T-D1: knowledge_meta_auto_healed — emitted by
|
|
1136
|
+
// loadActiveMeta when read-path drift triggers an in-place meta rebuild.
|
|
1137
|
+
knowledgeMetaAutoHealedEventSchema,
|
|
1138
|
+
// v2.0.0-rc.22 Scope A T3: events_rotated — emitted as the first line of
|
|
1139
|
+
// the post-rotation events.jsonl when sliding-window-by-age rotation moves
|
|
1140
|
+
// stale entries to events.archive/events-rotated-YYYY-MM-DD.jsonl.
|
|
1141
|
+
eventsRotatedEventSchema
|
|
1101
1142
|
]);
|
|
1102
1143
|
export {
|
|
1103
1144
|
AGENTS_META_IDENTITY_SOURCES,
|
|
@@ -1160,6 +1201,7 @@ export {
|
|
|
1160
1201
|
enMessages,
|
|
1161
1202
|
eventLedgerEventSchema,
|
|
1162
1203
|
eventLedgerTruncatedEventSchema,
|
|
1204
|
+
eventsRotatedEventSchema,
|
|
1163
1205
|
fabExtractKnowledgeAnnotations,
|
|
1164
1206
|
fabReviewAnnotations,
|
|
1165
1207
|
fabricConfigSchema,
|
|
@@ -1204,6 +1246,7 @@ export {
|
|
|
1204
1246
|
knowledgeDemotedEventSchema,
|
|
1205
1247
|
knowledgeDriftDetectedEventSchema,
|
|
1206
1248
|
knowledgeLayerChangedEventSchema,
|
|
1249
|
+
knowledgeMetaAutoHealedEventSchema,
|
|
1207
1250
|
knowledgePathDangledEventSchema,
|
|
1208
1251
|
knowledgePromoteFailedEventSchema,
|
|
1209
1252
|
knowledgePromoteStartedEventSchema,
|
|
@@ -8,6 +8,22 @@ declare function atomicWriteText(path: string, content: string, opts?: AtomicWri
|
|
|
8
8
|
declare function atomicWriteJson(path: string, value: unknown, opts?: AtomicWriteJsonOptions): Promise<void>;
|
|
9
9
|
interface LedgerWriteQueue {
|
|
10
10
|
append(path: string, line: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Run `fn` with exclusive access to `path` against all other queue operations
|
|
13
|
+
* (other `runExclusive` calls and `append` calls) on the same path within
|
|
14
|
+
* this LedgerWriteQueue instance.
|
|
15
|
+
*
|
|
16
|
+
* Scope: per-path, in-process (same Node process, same queue instance).
|
|
17
|
+
* Does NOT provide cross-process locking — separate concern.
|
|
18
|
+
*
|
|
19
|
+
* Error semantics: a rejection from `fn` is propagated to the returned
|
|
20
|
+
* Promise but does NOT poison the chain — subsequent `runExclusive` /
|
|
21
|
+
* `append` calls on the same path will still acquire and run.
|
|
22
|
+
*
|
|
23
|
+
* Ordering: submission-order FIFO. Calls on different paths run independently
|
|
24
|
+
* (in parallel where possible).
|
|
25
|
+
*/
|
|
26
|
+
runExclusive<T>(path: string, fn: () => Promise<T>): Promise<T>;
|
|
11
27
|
}
|
|
12
28
|
declare function createLedgerWriteQueue(): LedgerWriteQueue;
|
|
13
29
|
|
|
@@ -38,18 +38,27 @@ function createLedgerWriteQueue() {
|
|
|
38
38
|
const normalized = line.endsWith("\n") ? line : line + "\n";
|
|
39
39
|
await appendFile(path, normalized, "utf8");
|
|
40
40
|
}
|
|
41
|
+
function enqueue(path, work) {
|
|
42
|
+
const prev = chains.get(path) ?? Promise.resolve();
|
|
43
|
+
const result = prev.catch(() => void 0).then(() => work());
|
|
44
|
+
const chainSlot = result.then(
|
|
45
|
+
() => void 0,
|
|
46
|
+
() => void 0
|
|
47
|
+
);
|
|
48
|
+
chains.set(path, chainSlot);
|
|
49
|
+
chainSlot.finally(() => {
|
|
50
|
+
if (chains.get(path) === chainSlot) {
|
|
51
|
+
chains.delete(path);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
41
56
|
return {
|
|
42
57
|
append(path, line) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
guarded.finally(() => {
|
|
48
|
-
if (chains.get(path) === next) {
|
|
49
|
-
chains.delete(path);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
return next;
|
|
58
|
+
return enqueue(path, () => doAppend(path, line));
|
|
59
|
+
},
|
|
60
|
+
runExclusive(path, fn) {
|
|
61
|
+
return enqueue(path, fn);
|
|
53
62
|
}
|
|
54
63
|
};
|
|
55
64
|
}
|
|
@@ -467,6 +467,8 @@ declare const planContextOutputSchema: z.ZodObject<{
|
|
|
467
467
|
action_hint: string;
|
|
468
468
|
line?: number | undefined;
|
|
469
469
|
}>, "many">>;
|
|
470
|
+
auto_healed: z.ZodOptional<z.ZodBoolean>;
|
|
471
|
+
previous_revision_hash: z.ZodOptional<z.ZodString>;
|
|
470
472
|
}, "strip", z.ZodTypeAny, {
|
|
471
473
|
stale: boolean;
|
|
472
474
|
entries: {
|
|
@@ -551,6 +553,8 @@ declare const planContextOutputSchema: z.ZodObject<{
|
|
|
551
553
|
action_hint: string;
|
|
552
554
|
line?: number | undefined;
|
|
553
555
|
}[] | undefined;
|
|
556
|
+
auto_healed?: boolean | undefined;
|
|
557
|
+
previous_revision_hash?: string | undefined;
|
|
554
558
|
}, {
|
|
555
559
|
stale: boolean;
|
|
556
560
|
entries: {
|
|
@@ -635,6 +639,8 @@ declare const planContextOutputSchema: z.ZodObject<{
|
|
|
635
639
|
action_hint: string;
|
|
636
640
|
line?: number | undefined;
|
|
637
641
|
}[] | undefined;
|
|
642
|
+
auto_healed?: boolean | undefined;
|
|
643
|
+
previous_revision_hash?: string | undefined;
|
|
638
644
|
}>;
|
|
639
645
|
declare const planContextAnnotations: {
|
|
640
646
|
readonly readOnlyHint: true;
|
|
@@ -51,6 +51,6 @@ declare const LEGACY_KB_REGEX: RegExp;
|
|
|
51
51
|
*
|
|
52
52
|
* Length guarantee: ≥ 400 bytes.
|
|
53
53
|
*/
|
|
54
|
-
declare const BOOTSTRAP_CANONICAL = "# Fabric Bootstrap\n\n\u672C\u9879\u76EE\u4F7F\u7528 Fabric \u7BA1\u7406\u8DE8\u5BA2\u6237\u7AEF AI \u77E5\u8BC6\u4E0E\u884C\u4E3A\u89C4\u5219\u3002\u672C\u6587\u4EF6\u7531 `fab install` \u540C\u6B65\u5230\u4E09\u7AEF managed block,**\u4E0D\u8981\u624B\u52A8\u7F16\u8F91\u4E09\u7AEF\u7684 block**,\u53EA\u6539\u8FD9\u91CC + \u91CD\u8DD1 `fab install`\u3002\n\n## \u884C\u4E3A\u89C4\u5219\n- **\u4FEE\u6539\u4EFB\u4F55\u6587\u4EF6\u524D**:\u5FC5\u987B\u5148\u8C03 `fab_plan_context(paths=[<\u88AB\u6539\u6587\u4EF6>])`,\u518D\u8C03 `fab_get_knowledge_sections` \u53D6\u76F8\u5173\u89C4\u5219\u6BB5\u843D\u3002\n- **`.fabric/agents.meta.json` \u4E25\u7981\u624B\u52A8\u7F16\u8F91
|
|
54
|
+
declare const BOOTSTRAP_CANONICAL = "# Fabric Bootstrap\n\n\u672C\u9879\u76EE\u4F7F\u7528 Fabric \u7BA1\u7406\u8DE8\u5BA2\u6237\u7AEF AI \u77E5\u8BC6\u4E0E\u884C\u4E3A\u89C4\u5219\u3002\u672C\u6587\u4EF6\u7531 `fab install` \u540C\u6B65\u5230\u4E09\u7AEF managed block,**\u4E0D\u8981\u624B\u52A8\u7F16\u8F91\u4E09\u7AEF\u7684 block**,\u53EA\u6539\u8FD9\u91CC + \u91CD\u8DD1 `fab install`\u3002\n\n## \u884C\u4E3A\u89C4\u5219\n- **\u4FEE\u6539\u4EFB\u4F55\u6587\u4EF6\u524D**:\u5FC5\u987B\u5148\u8C03 `fab_plan_context(paths=[<\u88AB\u6539\u6587\u4EF6>])`,\u518D\u8C03 `fab_get_knowledge_sections` \u53D6\u76F8\u5173\u89C4\u5219\u6BB5\u843D\u3002\n- **`.fabric/agents.meta.json` \u4E25\u7981\u624B\u52A8\u7F16\u8F91**;engine \u4F1A\u81EA\u52A8\u540C\u6B65\u6D3E\u751F\u72B6\u6001,\u663E\u5F0F reconcile \u8DD1 `fab doctor --fix`\u3002\n\n## \u77E5\u8BC6\u5E93(KB)\n- **Discovery**:SessionStart hook \u5217 broad-scoped \u6761\u76EE;edit \u6587\u4EF6\u65F6 PreToolUse hook \u53EF\u80FD\u89E6\u53D1 narrow hint\u3002\n- **Usage**:\u7528 `fab_get_knowledge_sections(id=...)` \u6309 id \u53D6\u6761\u76EE\u5168\u6587\u3002\n- **Write flows**:`fabric-archive` / `fabric-review` / `fabric-import` \u4E09\u4E2A Skills\u3002\n- **Language**:\u6E32\u67D3\u6309 `.fabric/fabric-config.json` \u7684 `fabric_language` \u5B57\u6BB5\u3002\n\n## Cite policy\n\n- **\u89E6\u53D1**: \u505A edit / decide / propose plan \u4E4B\u524D,**\u56DE\u590D\u9996\u884C**\u5FC5\u987B\u5199 `KB: <id> (<\u22648\u5B57 \u7528\u6CD5>) [planned|recalled|chained-from <id>|dismissed:<reason>]` \u6216 `KB: none`\u3002\n- **`[recalled]` \u9A8C\u8BC1**: \u5FC5\u987B\u7D27\u8DDF\u4E00\u6B21 `fab_get_knowledge_sections(id=...)`,\u9632\u6B62\u7F16\u9020 id\u3002\n- **\u7528\u6237\u53E3\u5934\u63D0\u89C4\u5219\u6CA1\u7ED9 id**: \u5148\u8C03 `fab_extract_knowledge` \u6216 `search_context` \u53CD\u67E5\u3002\n- **dismissed reason**: \u679A\u4E3E `scope-mismatch | outdated | not-applicable | other:<text>`\u3002\n- **\u7A3D\u6838**: `fab doctor --cite-coverage [--since=7d] [--client=cc|codex|all]` \u8F93\u51FA cite \u8986\u76D6\u7387\u3002\u672C\u89C4\u5219\u4E0D\u963B\u65AD\u4F60\u5DE5\u4F5C,\u53EA\u8BB0\u5F55\u3002\n";
|
|
55
55
|
|
|
56
56
|
export { BOOTSTRAP_CANONICAL, BOOTSTRAP_MARKER_BEGIN, BOOTSTRAP_MARKER_END, BOOTSTRAP_REGEX, LEGACY_KB_MARKER_BEGIN, LEGACY_KB_MARKER_END, LEGACY_KB_REGEX };
|