@lucern/sdk 0.2.0-alpha.5 → 0.2.0-alpha.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 (49) hide show
  1. package/dist/lib/platform/sdk/contextFacade.d.ts +10 -0
  2. package/dist/lib/platform/sdk/contextFacade.js +10 -0
  3. package/dist/lib/platform/sdk/contextPackCompiler.d.ts +1 -1
  4. package/dist/lib/platform/sdk/contextPackCompiler.js +2 -2
  5. package/dist/lib/platform/sdk/eventsCore.d.ts +13 -0
  6. package/dist/lib/platform/sdk/eventsCore.js +13 -0
  7. package/dist/lib/platform/sdk/index.d.ts +3 -0
  8. package/dist/lib/platform/sdk/index.js +3 -0
  9. package/dist/lib/platform/sdk/promptCatalog.d.ts +1 -1
  10. package/dist/lib/platform/sdk/promptCatalog.js +1 -1
  11. package/dist/lucern/contracts/src/auth-context.contract.d.ts +8 -0
  12. package/dist/lucern/contracts/src/auth-context.contract.js +8 -0
  13. package/dist/lucern/contracts/src/auth-session.contract.d.ts +8 -0
  14. package/dist/lucern/contracts/src/auth-session.contract.js +8 -0
  15. package/dist/lucern/contracts/src/auth.contract.d.ts +88 -0
  16. package/dist/lucern/contracts/src/auth.contract.js +57 -0
  17. package/dist/lucern/contracts/src/context-pack.contract.d.ts +494 -0
  18. package/dist/lucern/contracts/src/context-pack.contract.js +169 -0
  19. package/dist/lucern/contracts/src/convex-admin.contract.d.ts +5 -0
  20. package/dist/lucern/contracts/src/convex-admin.contract.js +1 -0
  21. package/dist/lucern/contracts/src/events-types.contract.d.ts +8 -0
  22. package/dist/lucern/contracts/src/events-types.contract.js +8 -0
  23. package/dist/lucern/contracts/src/events.contract.d.ts +176 -0
  24. package/dist/lucern/contracts/src/events.contract.js +159 -0
  25. package/dist/lucern/contracts/src/gateway.contract.d.ts +74 -0
  26. package/dist/lucern/contracts/src/gateway.contract.js +19 -0
  27. package/dist/lucern/contracts/src/ids.contract.d.ts +7 -0
  28. package/dist/lucern/contracts/src/ids.contract.js +24 -0
  29. package/dist/lucern/contracts/src/index.d.ts +29 -0
  30. package/dist/lucern/contracts/src/index.js +29 -0
  31. package/dist/lucern/contracts/src/ontology-matching.contract.d.ts +8 -0
  32. package/dist/lucern/contracts/src/ontology-matching.contract.js +8 -0
  33. package/dist/lucern/contracts/src/prompt.contract.d.ts +24 -0
  34. package/dist/lucern/contracts/src/prompt.contract.js +24 -0
  35. package/dist/lucern/contracts/src/sdk-methods.contract.d.ts +358 -0
  36. package/dist/lucern/contracts/src/sdk-methods.contract.js +19 -0
  37. package/dist/lucern/contracts/src/sdk-tools.contract.d.ts +92 -0
  38. package/dist/lucern/contracts/src/sdk-tools.contract.js +1398 -0
  39. package/dist/lucern/contracts/src/text-matching.contract.d.ts +53 -0
  40. package/dist/lucern/contracts/src/text-matching.contract.js +277 -0
  41. package/dist/lucern/contracts/src/topic-scope.contract.d.ts +8 -0
  42. package/dist/lucern/contracts/src/topic-scope.contract.js +8 -0
  43. package/dist/lucern/contracts/src/workflow-runtime.contract.d.ts +161 -0
  44. package/dist/lucern/contracts/src/workflow-runtime.contract.js +257 -0
  45. package/dist/realtime-refs.d.ts +1 -0
  46. package/dist/realtime-refs.js +1 -0
  47. package/dist/realtime.d.ts +1 -0
  48. package/dist/realtime.js +1 -0
  49. package/package.json +6 -7
@@ -0,0 +1,358 @@
1
+ /**
2
+ * SDK Method Contract Definitions
3
+ *
4
+ * Canonical method signatures for the Lucern TypeScript SDK.
5
+ * DERIVED from API contracts — not independently authored.
6
+ *
7
+ * These types define the public API of `@lucern/sdk`, covering:
8
+ * - client initialization (formerly @lucern/sdk-core)
9
+ * - belief, evidence, edge, contradiction operations (formerly @lucern/sdk-graph)
10
+ * - branch, worktree, merge, push, pull request lifecycle (formerly @lucern/sdk-workflows)
11
+ *
12
+ * Historical note: T7.3.2 (2026-04-18) deleted the three sdk-alpha shim
13
+ * packages; all surfaces now ship in the single `@lucern/sdk` package.
14
+ *
15
+ * CONTRACT SURFACE: Method signatures are semver-bound.
16
+ * Adding optional parameters is non-breaking.
17
+ * Changing required parameters or return types is BREAKING.
18
+ */
19
+ import type { BeliefStatus, BranchStatus, ConfidenceTrigger, ContradictionSeverity, DefeatType, EpistemicLayer, ForkReason, JudgmentType, MergeOutcome, PullRequestStatus, ReasoningMethod } from "./api-enums.contract";
20
+ import type { ContextRankingProfile, PublicCompiledContext } from "./context-pack.contract";
21
+ export type LucernClientConfig = {
22
+ apiKey: string;
23
+ environment: "sandbox" | "production";
24
+ /** Optional base URL override for self-hosted deployments */
25
+ baseUrl?: string;
26
+ };
27
+ export type LucernClient = {
28
+ /** The authenticated client instance */
29
+ readonly config: LucernClientConfig;
30
+ };
31
+ /** Input to createBelief() */
32
+ export type CreateBeliefInput = {
33
+ canonicalText: string;
34
+ topicId: string;
35
+ /** @deprecated Use topicId. */
36
+ projectId?: string;
37
+ layer?: EpistemicLayer;
38
+ domain?: string;
39
+ nodeType?: string;
40
+ };
41
+ /** Result of createBelief() */
42
+ export type BeliefResult = {
43
+ nodeId: string;
44
+ globalId: string;
45
+ canonicalText: string;
46
+ status: BeliefStatus;
47
+ createdAt: number;
48
+ };
49
+ /** Input to refineBelief() */
50
+ export type RefineBeliefInput = {
51
+ canonicalText: string;
52
+ rationale?: string;
53
+ };
54
+ /** Input to modulateConfidence() */
55
+ export type ModulateConfidenceInput = {
56
+ confidence: number;
57
+ trigger: ConfidenceTrigger;
58
+ rationale: string;
59
+ };
60
+ /** Result of modulateConfidence() */
61
+ export type ConfidenceResult = {
62
+ nodeId: string;
63
+ newConfidence: number;
64
+ previousConfidence: number | null;
65
+ trigger: ConfidenceTrigger;
66
+ };
67
+ /** Input to forkBelief() */
68
+ export type ForkBeliefInput = {
69
+ newFormulation: string;
70
+ forkReason: ForkReason;
71
+ };
72
+ /** Result of forkBelief() */
73
+ export type ForkResult = {
74
+ nodeId: string;
75
+ parentNodeId: string;
76
+ forkReason: ForkReason;
77
+ canonicalText: string;
78
+ };
79
+ /** Input to addEvidence() */
80
+ export type AddEvidenceInput = {
81
+ canonicalText: string;
82
+ topicId: string;
83
+ /** @deprecated Use topicId. */
84
+ projectId?: string;
85
+ sourceUrl?: string;
86
+ supports?: {
87
+ nodeId: string;
88
+ weight: number;
89
+ reasoning?: string;
90
+ };
91
+ };
92
+ /** Result of addEvidence() */
93
+ export type EvidenceResult = {
94
+ nodeId: string;
95
+ globalId: string;
96
+ edgeId?: string;
97
+ };
98
+ /** Input to flagContradiction() */
99
+ export type FlagContradictionInput = {
100
+ beliefA: string;
101
+ beliefB: string;
102
+ description: string;
103
+ severity: ContradictionSeverity;
104
+ topicId: string;
105
+ /** @deprecated Use topicId. */
106
+ projectId?: string;
107
+ defeatType?: DefeatType;
108
+ };
109
+ /** Result of flagContradiction() */
110
+ export type ContradictionResult = {
111
+ contradictionId: string;
112
+ status: "unresolved";
113
+ beliefA: string;
114
+ beliefB: string;
115
+ defeatType?: DefeatType;
116
+ };
117
+ /** Input to createEdge() */
118
+ export type CreateEdgeInput = {
119
+ sourceId: string;
120
+ targetId: string;
121
+ edgeType: string;
122
+ weight?: number;
123
+ reasoning?: string;
124
+ reasoningMethod?: ReasoningMethod;
125
+ };
126
+ /** Result of createEdge() */
127
+ export type EdgeResult = {
128
+ globalId: string;
129
+ edgeType: string;
130
+ fromLayer: EpistemicLayer;
131
+ toLayer: EpistemicLayer;
132
+ };
133
+ /** Input to queryLineage() */
134
+ export type QueryLineageInput = {
135
+ depth?: number;
136
+ };
137
+ /** Result of queryLineage() */
138
+ export type LineageResult = {
139
+ chain: Array<{
140
+ nodeId: string;
141
+ canonicalText: string;
142
+ confidence: number | null;
143
+ forkedFrom: string | null;
144
+ scoredAt: number | null;
145
+ }>;
146
+ forkTree: Record<string, string[]>;
147
+ depth: number;
148
+ };
149
+ /** Input to searchBeliefs() */
150
+ export type SearchBeliefsInput = {
151
+ query: string;
152
+ status?: BeliefStatus;
153
+ minConfidence?: number;
154
+ topicId?: string;
155
+ /** @deprecated Use topicId. */
156
+ projectId?: string;
157
+ limit?: number;
158
+ };
159
+ /** Input to context.compile() */
160
+ export type CompileContextInput = {
161
+ query?: string;
162
+ budget?: number;
163
+ ranking?: ContextRankingProfile;
164
+ limit?: number;
165
+ maxDepth?: number;
166
+ includeEntities?: boolean;
167
+ };
168
+ /** Result of context.compile() */
169
+ export type CompiledContextResult = PublicCompiledContext;
170
+ /** Input to addWorktree() — like git worktree add <branch> */
171
+ export type AddWorktreeInput = {
172
+ title: string;
173
+ topicId: string;
174
+ /** @deprecated Use topicId. */
175
+ projectId?: string;
176
+ branchId?: string;
177
+ objective?: string;
178
+ hypothesis?: string;
179
+ beliefIds?: string[];
180
+ autoShape?: boolean;
181
+ domainPackId?: string;
182
+ executionOrder?: number;
183
+ dependsOn?: string[];
184
+ blocks?: string[];
185
+ gate?: string;
186
+ };
187
+ /** Result of addWorktree() */
188
+ export type WorktreeResult = {
189
+ worktreeId: string;
190
+ title: string;
191
+ status: string;
192
+ hypothesis?: string;
193
+ questionCount?: number;
194
+ taskCount?: number;
195
+ autoShapeApplied?: boolean;
196
+ };
197
+ /** Input to merge() */
198
+ export type MergeInput = {
199
+ outcomes: Array<{
200
+ beliefId: string;
201
+ confidence: number;
202
+ rationale: string;
203
+ }>;
204
+ summary?: string;
205
+ };
206
+ /** Result of merge() */
207
+ export type MergeResult = {
208
+ worktreeId: string;
209
+ status: "merged";
210
+ outcome: MergeOutcome;
211
+ beliefsScored: number;
212
+ };
213
+ /** Input to recordJudgment() */
214
+ export type RecordJudgmentInput = {
215
+ title: string;
216
+ rationale: string;
217
+ topicId: string;
218
+ /** @deprecated Use topicId. */
219
+ projectId?: string;
220
+ beliefIds?: string[];
221
+ confidence?: number;
222
+ judgmentType?: JudgmentType;
223
+ };
224
+ /** Result of recordJudgment() */
225
+ export type JudgmentResult = {
226
+ judgmentId: string;
227
+ title: string;
228
+ status: "issued";
229
+ };
230
+ /** Input to createBranch() */
231
+ export type CreateBranchInput = {
232
+ name: string;
233
+ topicId: string;
234
+ /** @deprecated Use topicId. */
235
+ projectId?: string;
236
+ description?: string;
237
+ };
238
+ /** Result of createBranch() */
239
+ export type BranchResult = {
240
+ branchId: string;
241
+ name: string;
242
+ status: BranchStatus;
243
+ createdAt: number;
244
+ };
245
+ /** Input to push() */
246
+ export type PushInput = {
247
+ targetContext: string;
248
+ beliefIds?: string[];
249
+ };
250
+ /** Result of push() */
251
+ export type PushResult = {
252
+ pushedCount: number;
253
+ targetContext: string;
254
+ pushedAt: number;
255
+ };
256
+ /** Input to openPullRequest() */
257
+ export type OpenPullRequestInput = {
258
+ reviewers?: string[];
259
+ summary: string;
260
+ };
261
+ /** Result of openPullRequest() */
262
+ export type PullRequestResult = {
263
+ pullRequestId: string;
264
+ worktreeId: string;
265
+ status: PullRequestStatus;
266
+ };
267
+ /** Input to bisectConfidence() */
268
+ export type BisectConfidenceInput = {
269
+ expectedDirection: "overconfident" | "underconfident";
270
+ timeRange?: {
271
+ start: number;
272
+ end: number;
273
+ };
274
+ };
275
+ /** Result of bisectConfidence() */
276
+ export type BisectResult = {
277
+ inflectionEntry: {
278
+ confidence: number;
279
+ trigger: ConfidenceTrigger;
280
+ rationale: string;
281
+ timestamp: number;
282
+ };
283
+ triggerEvent: string;
284
+ confidenceBefore: number;
285
+ confidenceAfter: number;
286
+ };
287
+ /**
288
+ * @lucern/sdk (graph) method signatures.
289
+ *
290
+ * These define the public API. Implementation must match these signatures.
291
+ * Parameters are the source of truth — generated from API contracts.
292
+ */
293
+ export type LucernGraphMethods = {
294
+ createBelief(client: LucernClient, input: CreateBeliefInput): Promise<BeliefResult>;
295
+ refineBelief(client: LucernClient, nodeId: string, input: RefineBeliefInput): Promise<BeliefResult>;
296
+ modulateConfidence(client: LucernClient, nodeId: string, input: ModulateConfidenceInput): Promise<ConfidenceResult>;
297
+ forkBelief(client: LucernClient, nodeId: string, input: ForkBeliefInput): Promise<ForkResult>;
298
+ archiveBelief(client: LucernClient, nodeId: string, rationale?: string): Promise<{
299
+ nodeId: string;
300
+ status: "archived";
301
+ }>;
302
+ addEvidence(client: LucernClient, input: AddEvidenceInput): Promise<EvidenceResult>;
303
+ flagContradiction(client: LucernClient, input: FlagContradictionInput): Promise<ContradictionResult>;
304
+ createEdge(client: LucernClient, input: CreateEdgeInput): Promise<EdgeResult>;
305
+ queryLineage(client: LucernClient, nodeId: string, input?: QueryLineageInput): Promise<LineageResult>;
306
+ getConfidenceHistory(client: LucernClient, nodeId: string): Promise<{
307
+ entries: Array<{
308
+ confidence: number;
309
+ trigger: ConfidenceTrigger;
310
+ rationale: string;
311
+ timestamp: number;
312
+ userId: string;
313
+ }>;
314
+ }>;
315
+ getAuditTrail(client: LucernClient, nodeId: string, limit?: number): Promise<{
316
+ entries: Array<{
317
+ action: string;
318
+ actor: string;
319
+ timestamp: number;
320
+ rationale?: string;
321
+ }>;
322
+ }>;
323
+ searchBeliefs(client: LucernClient, input: SearchBeliefsInput): Promise<{
324
+ results: BeliefResult[];
325
+ }>;
326
+ findContradictions(client: LucernClient, input: {
327
+ topicId?: string;
328
+ projectId?: string;
329
+ nodeId?: string;
330
+ status?: string;
331
+ }): Promise<{
332
+ contradictions: ContradictionResult[];
333
+ }>;
334
+ traverseGraph(client: LucernClient, input: {
335
+ startNode: string;
336
+ direction?: "up" | "down" | "both";
337
+ maxDepth?: number;
338
+ }): Promise<{
339
+ nodes: unknown[];
340
+ edges: unknown[];
341
+ depth: number;
342
+ }>;
343
+ bisectConfidence(client: LucernClient, nodeId: string, input: BisectConfidenceInput): Promise<BisectResult>;
344
+ recordJudgment(client: LucernClient, input: RecordJudgmentInput): Promise<JudgmentResult>;
345
+ };
346
+ /**
347
+ * @lucern/sdk (workflows) method signatures.
348
+ *
349
+ * Lifecycle: createBranch (git branch) → addWorktree (git worktree add) →
350
+ * openPullRequest (git pull request) → merge (git merge) → push (git push)
351
+ */
352
+ export type LucernWorkflowMethods = {
353
+ createBranch(client: LucernClient, input: CreateBranchInput): Promise<BranchResult>;
354
+ addWorktree(client: LucernClient, input: AddWorktreeInput): Promise<WorktreeResult>;
355
+ merge(client: LucernClient, worktreeId: string, input: MergeInput): Promise<MergeResult>;
356
+ openPullRequest(client: LucernClient, worktreeId: string, input: OpenPullRequestInput): Promise<PullRequestResult>;
357
+ push(client: LucernClient, worktreeId: string, input: PushInput): Promise<PushResult>;
358
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * SDK Method Contract Definitions
3
+ *
4
+ * Canonical method signatures for the Lucern TypeScript SDK.
5
+ * DERIVED from API contracts — not independently authored.
6
+ *
7
+ * These types define the public API of `@lucern/sdk`, covering:
8
+ * - client initialization (formerly @lucern/sdk-core)
9
+ * - belief, evidence, edge, contradiction operations (formerly @lucern/sdk-graph)
10
+ * - branch, worktree, merge, push, pull request lifecycle (formerly @lucern/sdk-workflows)
11
+ *
12
+ * Historical note: T7.3.2 (2026-04-18) deleted the three sdk-alpha shim
13
+ * packages; all surfaces now ship in the single `@lucern/sdk` package.
14
+ *
15
+ * CONTRACT SURFACE: Method signatures are semver-bound.
16
+ * Adding optional parameters is non-breaking.
17
+ * Changing required parameters or return types is BREAKING.
18
+ */
19
+ export {};
@@ -0,0 +1,92 @@
1
+ /**
2
+ * SDK-Only Tool Contract Definitions
3
+ *
4
+ * Tools available in @lucern/sdk but NOT in the MCP gateway.
5
+ * The SDK unfolds deeper capabilities after the MCP gateway shows developers what's possible.
6
+ *
7
+ * Total SDK surface = MCP tools (44) + SDK-only tools (44) = 88 tools
8
+ *
9
+ * These tools are organized into capability tiers:
10
+ * - Advanced workflow & phase management (12 tools)
11
+ * - Deeper graph navigation (6 tools)
12
+ * - Conviction & analytics (7 tools)
13
+ * - Extended question & evidence analytics (1 tool; core lifecycle promoted to MCP)
14
+ * - Task lifecycle (5 tools)
15
+ * - Domain analytics (8 tools)
16
+ * - Bias detection suite (5 tools)
17
+ *
18
+ * CONTRACT SURFACE: These definitions are the external API for SDK consumers.
19
+ * Renaming a tool or changing its description is a BREAKING CHANGE.
20
+ *
21
+ * Git-native naming rules (same as MCP, enforced by lint):
22
+ * 1. Workflow tools use git verbs directly
23
+ * 2. Knowledge tools use epistemic verbs
24
+ * 3. First sentence of description includes the git analog verb
25
+ * 4. Description includes "Like `git X`" parenthetical
26
+ * 5. Parameter names use domain terms (canonicalText, nodeId, confidence)
27
+ */
28
+ import type { McpToolContract } from "./mcp-tools.contract";
29
+ /** SDK-only tool contract — same shape as MCP but with sdk-only tier marker */
30
+ export interface SdkToolContract extends Omit<McpToolContract, "tier"> {
31
+ tier: "sdk-only";
32
+ }
33
+ export declare const START_WORKTREE: SdkToolContract;
34
+ export declare const UPDATE_WORKTREE_PHASE: SdkToolContract;
35
+ export declare const ADVANCE_WORKTREE_PHASE: SdkToolContract;
36
+ export declare const ADD_NOTE_TO_WORKTREE: SdkToolContract;
37
+ export declare const LINK_DOCUMENT_TO_WORKTREE: SdkToolContract;
38
+ export declare const LINK_EVIDENCE_TO_WORKTREE: SdkToolContract;
39
+ export declare const LINK_QUESTION_TO_WORKTREE: SdkToolContract;
40
+ export declare const LINK_BELIEF_TO_WORKTREE: SdkToolContract;
41
+ export declare const CREATE_SYNTHESIZED_BELIEF: SdkToolContract;
42
+ export declare const COMPLETE_HYPOTHESIS_FORMATION: SdkToolContract;
43
+ export declare const COMPLETE_EVIDENCE_REVIEW: SdkToolContract;
44
+ export declare const REFINE_WORKTREE_BELIEF: SdkToolContract;
45
+ export declare const TRACE_PROVENANCE: SdkToolContract;
46
+ export declare const GET_BELIEF_RELATIONSHIPS: SdkToolContract;
47
+ export declare const GET_BELIEF_SUPPORT_CHAIN: SdkToolContract;
48
+ export declare const EXPLORE_CONNECTIONS: SdkToolContract;
49
+ export declare const GET_DEEP_LINEAGE: SdkToolContract;
50
+ export declare const GRAPH_AWARE_SEARCH: SdkToolContract;
51
+ export declare const GET_COLLECTION_CONVICTION: SdkToolContract;
52
+ export declare const GET_CONVICTION_TREND: SdkToolContract;
53
+ export declare const ANALYZE_BELIEF_CRITICALITY: SdkToolContract;
54
+ export declare const ANALYZE_BELIEF_CLUSTER_CANDIDATES: SdkToolContract;
55
+ export declare const CREATE_BELIEF_CONDITIONAL: SdkToolContract;
56
+ export declare const GET_NECESSARY_EVIDENCE: SdkToolContract;
57
+ export declare const ANALYZE_REASONING_DEPTH: SdkToolContract;
58
+ export declare const GET_EVIDENCE_BY_METHODOLOGY: SdkToolContract;
59
+ export declare const CREATE_EVIDENCE_TASK: SdkToolContract;
60
+ export declare const LIST_TASKS: SdkToolContract;
61
+ export declare const UPDATE_TASK: SdkToolContract;
62
+ export declare const GET_TASK_COUNTS: SdkToolContract;
63
+ export declare const ADD_RESEARCH_ACTION: SdkToolContract;
64
+ export declare const GET_PREDICTIONS: SdkToolContract;
65
+ export declare const GET_SURPRISE_DETECTION: SdkToolContract;
66
+ export declare const GET_CHALLENGED_BELIEFS: SdkToolContract;
67
+ export declare const GET_CAUSAL_CHAINS: SdkToolContract;
68
+ export declare const GET_NON_CONSENSUS_BELIEFS: SdkToolContract;
69
+ export declare const GET_BELIEFS_BY_EPISTEMIC_STATUS: SdkToolContract;
70
+ export declare const GET_PRIVILEGED_EVIDENCE: SdkToolContract;
71
+ export declare const GET_PRIVILEGED_SIGNALS: SdkToolContract;
72
+ export declare const DETECT_ANCHORING_BIAS: SdkToolContract;
73
+ export declare const DETECT_SOURCE_CONCENTRATION: SdkToolContract;
74
+ export declare const FIND_SOFT_CONTRADICTIONS: SdkToolContract;
75
+ export declare const FIND_SEMANTIC_BRIDGES: SdkToolContract;
76
+ export declare const FIND_SEMANTIC_ORPHANS: SdkToolContract;
77
+ /** All SDK-only tool contracts, indexed by name */
78
+ export declare const SDK_ONLY_TOOL_CONTRACTS: Record<string, SdkToolContract>;
79
+ /** Complete SDK surface: MCP gateway tools + SDK-only advanced tools */
80
+ export declare const ALL_SDK_TOOL_CONTRACTS: Record<string, McpToolContract | SdkToolContract>;
81
+ /** All SDK-only tool names */
82
+ export declare const SDK_ONLY_TOOL_NAMES: string[];
83
+ /** All tool names across the complete SDK surface */
84
+ export declare const ALL_SDK_TOOL_NAMES: string[];
85
+ /**
86
+ * Lint validation: every SDK tool description must contain "Like `git" reference.
87
+ * Reuses the same git-semantic validation rule as MCP tools.
88
+ */
89
+ export declare function validateSdkGitSemantics(tool: SdkToolContract): {
90
+ valid: boolean;
91
+ reason?: string;
92
+ };