Repository navigation
Expand file tree
/
Copy pathkonsistent.json
More file actions
109 lines (109 loc) · 2.96 KB
/
Copy pathkonsistent.json
File metadata and controls
109 lines (109 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
{
"$schema": "node_modules/konsistent/konsistent.schema.json",
"version": "v1",
"conventions": [
{
"name": "provider-adapter-export-shape",
"description": "Provider adapter files expose the shared harness adapter class + credential probe shape, and the internal-ai barrel keeps the worker-safe completion surface stable.",
"severity": "warning",
"paths": "src",
"must": [
{
"name": "adapter-class-contract",
"for": {
"files": "providers/{adapterId}-adapter.ts"
},
"must": {
"exportClasses": [
{
"name": "${adapterId.toPascalCase()}Adapter",
"implement": ["ProviderAdapter"]
}
]
}
},
{
"name": "adapter-credential-probe",
"for": {
"files": "providers/{adapterId}-adapter.ts"
},
"must": {
"exportFunctions": ["check${adapterId.toPascalCase()}Credentials"]
}
},
{
"name": "provider-barrel-types",
"for": {
"files": "providers/index.ts"
},
"must": {
"exportTypes": [
"CostData",
"CredCheckOptions",
"CredStatus",
"ProviderAdapter",
"ProviderEvent",
"ProviderResult",
"ProviderSession",
"ProviderSessionConfig",
"ProviderTraits"
],
"exportFunctions": ["createProviderAdapter"]
}
},
{
"name": "internal-ai-public-surface",
"for": {
"files": "utils/internal-ai/index.ts"
},
"must": {
"export": [
"DEFAULT_MODEL",
"completeStructured",
"parseModelStr",
"resolveCredential",
"resolveModelString",
"summarizeSession",
"summaryToolSchema"
],
"exportTypes": [
"CompleteStructuredOptions",
"CredentialKind",
"ResolveCredentialOptions",
"ResolvedCredential",
"SummarizeSessionOptions"
]
}
}
]
},
{
"name": "hook-handler-export-shape",
"description": "Claude hook events share the exported async hook dispatcher signature in src/hooks/hook.ts.",
"severity": "warning",
"paths": "src/hooks",
"must": [
{
"must": {
"haveType": "directory",
"haveFiles": ["hook.ts"]
}
},
{
"name": "dispatcher-signature",
"for": {
"files": "hook.ts"
},
"must": {
"exportFunctions": [
{
"name": "handleHook",
"returnValueOfType": "Promise<void>"
}
]
}
}
]
}
]
}