localptp 0.1.0
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/LICENSE +23 -0
- package/README.md +159 -0
- package/dist/cli.d.ts +24 -0
- package/dist/cli.js +344 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/config.d.ts +14 -0
- package/dist/commands/config.js +65 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/context.d.ts +12 -0
- package/dist/commands/context.js +176 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/doctor.d.ts +16 -0
- package/dist/commands/doctor.js +54 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/index.d.ts +13 -0
- package/dist/commands/index.js +70 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +15 -0
- package/dist/commands/init.js +46 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/plan.d.ts +17 -0
- package/dist/commands/plan.js +170 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/resume.d.ts +17 -0
- package/dist/commands/resume.js +75 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/review.d.ts +17 -0
- package/dist/commands/review.js +67 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/run.d.ts +24 -0
- package/dist/commands/run.js +65 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/step.d.ts +44 -0
- package/dist/commands/step.js +50 -0
- package/dist/commands/step.js.map +1 -0
- package/dist/commands/summarize.d.ts +17 -0
- package/dist/commands/summarize.js +276 -0
- package/dist/commands/summarize.js.map +1 -0
- package/dist/commands/task.d.ts +13 -0
- package/dist/commands/task.js +53 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/core/activePointer.d.ts +28 -0
- package/dist/core/activePointer.js +84 -0
- package/dist/core/activePointer.js.map +1 -0
- package/dist/core/approval.d.ts +12 -0
- package/dist/core/approval.js +34 -0
- package/dist/core/approval.js.map +1 -0
- package/dist/core/configManager.d.ts +32 -0
- package/dist/core/configManager.js +177 -0
- package/dist/core/configManager.js.map +1 -0
- package/dist/core/contextBuilder.d.ts +40 -0
- package/dist/core/contextBuilder.js +406 -0
- package/dist/core/contextBuilder.js.map +1 -0
- package/dist/core/memoryLoader.d.ts +4 -0
- package/dist/core/memoryLoader.js +35 -0
- package/dist/core/memoryLoader.js.map +1 -0
- package/dist/core/memoryManager.d.ts +41 -0
- package/dist/core/memoryManager.js +181 -0
- package/dist/core/memoryManager.js.map +1 -0
- package/dist/core/memoryPolicy.d.ts +23 -0
- package/dist/core/memoryPolicy.js +73 -0
- package/dist/core/memoryPolicy.js.map +1 -0
- package/dist/core/modelClient.d.ts +37 -0
- package/dist/core/modelClient.js +160 -0
- package/dist/core/modelClient.js.map +1 -0
- package/dist/core/patchManager.d.ts +89 -0
- package/dist/core/patchManager.js +801 -0
- package/dist/core/patchManager.js.map +1 -0
- package/dist/core/plannerJson.d.ts +23 -0
- package/dist/core/plannerJson.js +118 -0
- package/dist/core/plannerJson.js.map +1 -0
- package/dist/core/promptManager.d.ts +16 -0
- package/dist/core/promptManager.js +35 -0
- package/dist/core/promptManager.js.map +1 -0
- package/dist/core/prompts.d.ts +8 -0
- package/dist/core/prompts.js +18 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/repoIndexer.d.ts +21 -0
- package/dist/core/repoIndexer.js +557 -0
- package/dist/core/repoIndexer.js.map +1 -0
- package/dist/core/reviewEngine.d.ts +53 -0
- package/dist/core/reviewEngine.js +229 -0
- package/dist/core/reviewEngine.js.map +1 -0
- package/dist/core/runLoop.d.ts +26 -0
- package/dist/core/runLoop.js +103 -0
- package/dist/core/runLoop.js.map +1 -0
- package/dist/core/runStep.d.ts +42 -0
- package/dist/core/runStep.js +586 -0
- package/dist/core/runStep.js.map +1 -0
- package/dist/core/safetyManager.d.ts +7 -0
- package/dist/core/safetyManager.js +202 -0
- package/dist/core/safetyManager.js.map +1 -0
- package/dist/core/sessionManager.d.ts +35 -0
- package/dist/core/sessionManager.js +265 -0
- package/dist/core/sessionManager.js.map +1 -0
- package/dist/core/stopConditions.d.ts +24 -0
- package/dist/core/stopConditions.js +18 -0
- package/dist/core/stopConditions.js.map +1 -0
- package/dist/core/taskManager.d.ts +26 -0
- package/dist/core/taskManager.js +312 -0
- package/dist/core/taskManager.js.map +1 -0
- package/dist/core/testRunner.d.ts +27 -0
- package/dist/core/testRunner.js +71 -0
- package/dist/core/testRunner.js.map +1 -0
- package/dist/prompts/coder.d.ts +3 -0
- package/dist/prompts/coder.js +46 -0
- package/dist/prompts/coder.js.map +1 -0
- package/dist/prompts/planner.d.ts +3 -0
- package/dist/prompts/planner.js +44 -0
- package/dist/prompts/planner.js.map +1 -0
- package/dist/prompts/reviewer.d.ts +3 -0
- package/dist/prompts/reviewer.js +41 -0
- package/dist/prompts/reviewer.js.map +1 -0
- package/dist/prompts/summarizer.d.ts +3 -0
- package/dist/prompts/summarizer.js +65 -0
- package/dist/prompts/summarizer.js.map +1 -0
- package/dist/prompts/testFixer.d.ts +3 -0
- package/dist/prompts/testFixer.js +33 -0
- package/dist/prompts/testFixer.js.map +1 -0
- package/dist/repl/approver.d.ts +15 -0
- package/dist/repl/approver.js +21 -0
- package/dist/repl/approver.js.map +1 -0
- package/dist/repl/dispatch.d.ts +48 -0
- package/dist/repl/dispatch.js +164 -0
- package/dist/repl/dispatch.js.map +1 -0
- package/dist/repl/loop.d.ts +14 -0
- package/dist/repl/loop.js +124 -0
- package/dist/repl/loop.js.map +1 -0
- package/dist/repl/tokenize.d.ts +13 -0
- package/dist/repl/tokenize.js +56 -0
- package/dist/repl/tokenize.js.map +1 -0
- package/dist/templates/memory.d.ts +13 -0
- package/dist/templates/memory.js +32 -0
- package/dist/templates/memory.js.map +1 -0
- package/dist/types/config.d.ts +235 -0
- package/dist/types/config.js +66 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/context.d.ts +78 -0
- package/dist/types/context.js +141 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/model.d.ts +35 -0
- package/dist/types/model.js +16 -0
- package/dist/types/model.js.map +1 -0
- package/dist/types/patch.d.ts +38 -0
- package/dist/types/patch.js +11 -0
- package/dist/types/patch.js.map +1 -0
- package/dist/types/plan.d.ts +86 -0
- package/dist/types/plan.js +27 -0
- package/dist/types/plan.js.map +1 -0
- package/dist/types/review.d.ts +33 -0
- package/dist/types/review.js +24 -0
- package/dist/types/review.js.map +1 -0
- package/dist/types/run.d.ts +34 -0
- package/dist/types/run.js +2 -0
- package/dist/types/run.js.map +1 -0
- package/dist/types/session.d.ts +21 -0
- package/dist/types/session.js +2 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/summary.d.ts +65 -0
- package/dist/types/summary.js +26 -0
- package/dist/types/summary.js.map +1 -0
- package/dist/types/task.d.ts +31 -0
- package/dist/types/task.js +10 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/test.d.ts +16 -0
- package/dist/types/test.js +2 -0
- package/dist/types/test.js.map +1 -0
- package/dist/utils/fs.d.ts +13 -0
- package/dist/utils/fs.js +65 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/gitRoot.d.ts +5 -0
- package/dist/utils/gitRoot.js +21 -0
- package/dist/utils/gitRoot.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.js +60 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/paths.d.ts +13 -0
- package/dist/utils/paths.js +24 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/tokenEstimate.d.ts +5 -0
- package/dist/utils/tokenEstimate.js +8 -0
- package/dist/utils/tokenEstimate.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/templates/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;IACpD,OAAO;QACL,IAAI;QACJ,MAAM,CAAC,SAAiB;YACtB,OAAO,KAAK,KAAK,qBAAqB,SAAS,OAAO,IAAI,IAAI,CAAC;QACjE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,GAAG,CACD,kBAAkB,EAClB,eAAe,EACf,gHAAgH,CACjH;IACD,GAAG,CACD,aAAa,EACb,UAAU,EACV,oIAAoI,CACrI;IACD,GAAG,CACD,iBAAiB,EACjB,cAAc,EACd,yDAAyD,CAC1D;IACD,GAAG,CACD,eAAe,EACf,YAAY,EACZ,mGAAmG,CACpG;IACD,GAAG,CACD,eAAe,EACf,YAAY,EACZ,iDAAiD,CAClD;IACD,GAAG,CACD,YAAY,EACZ,SAAS,EACT,0EAA0E,CAC3E;IACD,GAAG,CACD,0BAA0B,EAC1B,uBAAuB,EACvB,yEAAyE,CAC1E;IACD,GAAG,CACD,iBAAiB,EACjB,cAAc,EACd,qJAAqJ,CACtJ;IACD,GAAG,CACD,cAAc,EACd,WAAW,EACX,4EAA4E,CAC7E;IACD,GAAG,CACD,iBAAiB,EACjB,cAAc,EACd,8CAA8C,CAC/C;IACD,GAAG,CACD,cAAc,EACd,WAAW,EACX,+FAA+F,CAChG;IACD,GAAG,CACD,yBAAyB,EACzB,sBAAsB,EACtB,8HAA8H,CAC/H;IACD,GAAG,CACD,kBAAkB,EAClB,eAAe,EACf,iKAAiK,CAClK;IACD,GAAG,CACD,kBAAkB,EAClB,eAAe,EACf,yJAAyJ,CAC1J;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config schema — single source of truth for shape AND defaults (HLD-SRD §3.2, §9).
|
|
3
|
+
*
|
|
4
|
+
* Every field carries a `.default(...)` so an absent/empty config still parses
|
|
5
|
+
* to the full HLD-SRD §3.2 object. `AppConfig` is inferred from the schema.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export declare const modelConfigSchema: z.ZodObject<{
|
|
9
|
+
provider: z.ZodDefault<z.ZodLiteral<"lmstudio">>;
|
|
10
|
+
baseUrl: z.ZodDefault<z.ZodString>;
|
|
11
|
+
model: z.ZodDefault<z.ZodString>;
|
|
12
|
+
apiKey: z.ZodDefault<z.ZodString>;
|
|
13
|
+
temperature: z.ZodDefault<z.ZodNumber>;
|
|
14
|
+
maxContextTokens: z.ZodDefault<z.ZodNumber>;
|
|
15
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
provider: "lmstudio";
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
model: string;
|
|
20
|
+
apiKey: string;
|
|
21
|
+
temperature: number;
|
|
22
|
+
maxContextTokens: number;
|
|
23
|
+
timeoutMs: number;
|
|
24
|
+
}, {
|
|
25
|
+
provider?: "lmstudio" | undefined;
|
|
26
|
+
baseUrl?: string | undefined;
|
|
27
|
+
model?: string | undefined;
|
|
28
|
+
apiKey?: string | undefined;
|
|
29
|
+
temperature?: number | undefined;
|
|
30
|
+
maxContextTokens?: number | undefined;
|
|
31
|
+
timeoutMs?: number | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
export declare const contextConfigSchema: z.ZodObject<{
|
|
34
|
+
maxContextChars: z.ZodDefault<z.ZodNumber>;
|
|
35
|
+
maxFilesPerStep: z.ZodDefault<z.ZodNumber>;
|
|
36
|
+
maxEditFilesPerStep: z.ZodDefault<z.ZodNumber>;
|
|
37
|
+
maxFileChars: z.ZodDefault<z.ZodNumber>;
|
|
38
|
+
includeTests: z.ZodDefault<z.ZodBoolean>;
|
|
39
|
+
includeImportNeighbors: z.ZodDefault<z.ZodBoolean>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
maxContextChars: number;
|
|
42
|
+
maxFilesPerStep: number;
|
|
43
|
+
maxEditFilesPerStep: number;
|
|
44
|
+
maxFileChars: number;
|
|
45
|
+
includeTests: boolean;
|
|
46
|
+
includeImportNeighbors: boolean;
|
|
47
|
+
}, {
|
|
48
|
+
maxContextChars?: number | undefined;
|
|
49
|
+
maxFilesPerStep?: number | undefined;
|
|
50
|
+
maxEditFilesPerStep?: number | undefined;
|
|
51
|
+
maxFileChars?: number | undefined;
|
|
52
|
+
includeTests?: boolean | undefined;
|
|
53
|
+
includeImportNeighbors?: boolean | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
export declare const safetyConfigSchema: z.ZodObject<{
|
|
56
|
+
requireApproval: z.ZodDefault<z.ZodBoolean>;
|
|
57
|
+
maxFailedFixAttempts: z.ZodDefault<z.ZodNumber>;
|
|
58
|
+
maxChangedFilesPerStep: z.ZodDefault<z.ZodNumber>;
|
|
59
|
+
riskyPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
60
|
+
}, "strip", z.ZodTypeAny, {
|
|
61
|
+
requireApproval: boolean;
|
|
62
|
+
maxFailedFixAttempts: number;
|
|
63
|
+
maxChangedFilesPerStep: number;
|
|
64
|
+
riskyPaths: string[];
|
|
65
|
+
}, {
|
|
66
|
+
requireApproval?: boolean | undefined;
|
|
67
|
+
maxFailedFixAttempts?: number | undefined;
|
|
68
|
+
maxChangedFilesPerStep?: number | undefined;
|
|
69
|
+
riskyPaths?: string[] | undefined;
|
|
70
|
+
}>;
|
|
71
|
+
export declare const commandConfigSchema: z.ZodObject<{
|
|
72
|
+
typecheck: z.ZodDefault<z.ZodString>;
|
|
73
|
+
lint: z.ZodDefault<z.ZodString>;
|
|
74
|
+
test: z.ZodDefault<z.ZodString>;
|
|
75
|
+
build: z.ZodDefault<z.ZodString>;
|
|
76
|
+
}, "strip", z.ZodTypeAny, {
|
|
77
|
+
typecheck: string;
|
|
78
|
+
lint: string;
|
|
79
|
+
test: string;
|
|
80
|
+
build: string;
|
|
81
|
+
}, {
|
|
82
|
+
typecheck?: string | undefined;
|
|
83
|
+
lint?: string | undefined;
|
|
84
|
+
test?: string | undefined;
|
|
85
|
+
build?: string | undefined;
|
|
86
|
+
}>;
|
|
87
|
+
export declare const appConfigSchema: z.ZodObject<{
|
|
88
|
+
model: z.ZodDefault<z.ZodObject<{
|
|
89
|
+
provider: z.ZodDefault<z.ZodLiteral<"lmstudio">>;
|
|
90
|
+
baseUrl: z.ZodDefault<z.ZodString>;
|
|
91
|
+
model: z.ZodDefault<z.ZodString>;
|
|
92
|
+
apiKey: z.ZodDefault<z.ZodString>;
|
|
93
|
+
temperature: z.ZodDefault<z.ZodNumber>;
|
|
94
|
+
maxContextTokens: z.ZodDefault<z.ZodNumber>;
|
|
95
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
96
|
+
}, "strip", z.ZodTypeAny, {
|
|
97
|
+
provider: "lmstudio";
|
|
98
|
+
baseUrl: string;
|
|
99
|
+
model: string;
|
|
100
|
+
apiKey: string;
|
|
101
|
+
temperature: number;
|
|
102
|
+
maxContextTokens: number;
|
|
103
|
+
timeoutMs: number;
|
|
104
|
+
}, {
|
|
105
|
+
provider?: "lmstudio" | undefined;
|
|
106
|
+
baseUrl?: string | undefined;
|
|
107
|
+
model?: string | undefined;
|
|
108
|
+
apiKey?: string | undefined;
|
|
109
|
+
temperature?: number | undefined;
|
|
110
|
+
maxContextTokens?: number | undefined;
|
|
111
|
+
timeoutMs?: number | undefined;
|
|
112
|
+
}>>;
|
|
113
|
+
context: z.ZodDefault<z.ZodObject<{
|
|
114
|
+
maxContextChars: z.ZodDefault<z.ZodNumber>;
|
|
115
|
+
maxFilesPerStep: z.ZodDefault<z.ZodNumber>;
|
|
116
|
+
maxEditFilesPerStep: z.ZodDefault<z.ZodNumber>;
|
|
117
|
+
maxFileChars: z.ZodDefault<z.ZodNumber>;
|
|
118
|
+
includeTests: z.ZodDefault<z.ZodBoolean>;
|
|
119
|
+
includeImportNeighbors: z.ZodDefault<z.ZodBoolean>;
|
|
120
|
+
}, "strip", z.ZodTypeAny, {
|
|
121
|
+
maxContextChars: number;
|
|
122
|
+
maxFilesPerStep: number;
|
|
123
|
+
maxEditFilesPerStep: number;
|
|
124
|
+
maxFileChars: number;
|
|
125
|
+
includeTests: boolean;
|
|
126
|
+
includeImportNeighbors: boolean;
|
|
127
|
+
}, {
|
|
128
|
+
maxContextChars?: number | undefined;
|
|
129
|
+
maxFilesPerStep?: number | undefined;
|
|
130
|
+
maxEditFilesPerStep?: number | undefined;
|
|
131
|
+
maxFileChars?: number | undefined;
|
|
132
|
+
includeTests?: boolean | undefined;
|
|
133
|
+
includeImportNeighbors?: boolean | undefined;
|
|
134
|
+
}>>;
|
|
135
|
+
safety: z.ZodDefault<z.ZodObject<{
|
|
136
|
+
requireApproval: z.ZodDefault<z.ZodBoolean>;
|
|
137
|
+
maxFailedFixAttempts: z.ZodDefault<z.ZodNumber>;
|
|
138
|
+
maxChangedFilesPerStep: z.ZodDefault<z.ZodNumber>;
|
|
139
|
+
riskyPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
140
|
+
}, "strip", z.ZodTypeAny, {
|
|
141
|
+
requireApproval: boolean;
|
|
142
|
+
maxFailedFixAttempts: number;
|
|
143
|
+
maxChangedFilesPerStep: number;
|
|
144
|
+
riskyPaths: string[];
|
|
145
|
+
}, {
|
|
146
|
+
requireApproval?: boolean | undefined;
|
|
147
|
+
maxFailedFixAttempts?: number | undefined;
|
|
148
|
+
maxChangedFilesPerStep?: number | undefined;
|
|
149
|
+
riskyPaths?: string[] | undefined;
|
|
150
|
+
}>>;
|
|
151
|
+
commands: z.ZodDefault<z.ZodObject<{
|
|
152
|
+
typecheck: z.ZodDefault<z.ZodString>;
|
|
153
|
+
lint: z.ZodDefault<z.ZodString>;
|
|
154
|
+
test: z.ZodDefault<z.ZodString>;
|
|
155
|
+
build: z.ZodDefault<z.ZodString>;
|
|
156
|
+
}, "strip", z.ZodTypeAny, {
|
|
157
|
+
typecheck: string;
|
|
158
|
+
lint: string;
|
|
159
|
+
test: string;
|
|
160
|
+
build: string;
|
|
161
|
+
}, {
|
|
162
|
+
typecheck?: string | undefined;
|
|
163
|
+
lint?: string | undefined;
|
|
164
|
+
test?: string | undefined;
|
|
165
|
+
build?: string | undefined;
|
|
166
|
+
}>>;
|
|
167
|
+
ignore: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
168
|
+
}, "strip", z.ZodTypeAny, {
|
|
169
|
+
model: {
|
|
170
|
+
provider: "lmstudio";
|
|
171
|
+
baseUrl: string;
|
|
172
|
+
model: string;
|
|
173
|
+
apiKey: string;
|
|
174
|
+
temperature: number;
|
|
175
|
+
maxContextTokens: number;
|
|
176
|
+
timeoutMs: number;
|
|
177
|
+
};
|
|
178
|
+
context: {
|
|
179
|
+
maxContextChars: number;
|
|
180
|
+
maxFilesPerStep: number;
|
|
181
|
+
maxEditFilesPerStep: number;
|
|
182
|
+
maxFileChars: number;
|
|
183
|
+
includeTests: boolean;
|
|
184
|
+
includeImportNeighbors: boolean;
|
|
185
|
+
};
|
|
186
|
+
safety: {
|
|
187
|
+
requireApproval: boolean;
|
|
188
|
+
maxFailedFixAttempts: number;
|
|
189
|
+
maxChangedFilesPerStep: number;
|
|
190
|
+
riskyPaths: string[];
|
|
191
|
+
};
|
|
192
|
+
commands: {
|
|
193
|
+
typecheck: string;
|
|
194
|
+
lint: string;
|
|
195
|
+
test: string;
|
|
196
|
+
build: string;
|
|
197
|
+
};
|
|
198
|
+
ignore: string[];
|
|
199
|
+
}, {
|
|
200
|
+
model?: {
|
|
201
|
+
provider?: "lmstudio" | undefined;
|
|
202
|
+
baseUrl?: string | undefined;
|
|
203
|
+
model?: string | undefined;
|
|
204
|
+
apiKey?: string | undefined;
|
|
205
|
+
temperature?: number | undefined;
|
|
206
|
+
maxContextTokens?: number | undefined;
|
|
207
|
+
timeoutMs?: number | undefined;
|
|
208
|
+
} | undefined;
|
|
209
|
+
context?: {
|
|
210
|
+
maxContextChars?: number | undefined;
|
|
211
|
+
maxFilesPerStep?: number | undefined;
|
|
212
|
+
maxEditFilesPerStep?: number | undefined;
|
|
213
|
+
maxFileChars?: number | undefined;
|
|
214
|
+
includeTests?: boolean | undefined;
|
|
215
|
+
includeImportNeighbors?: boolean | undefined;
|
|
216
|
+
} | undefined;
|
|
217
|
+
safety?: {
|
|
218
|
+
requireApproval?: boolean | undefined;
|
|
219
|
+
maxFailedFixAttempts?: number | undefined;
|
|
220
|
+
maxChangedFilesPerStep?: number | undefined;
|
|
221
|
+
riskyPaths?: string[] | undefined;
|
|
222
|
+
} | undefined;
|
|
223
|
+
commands?: {
|
|
224
|
+
typecheck?: string | undefined;
|
|
225
|
+
lint?: string | undefined;
|
|
226
|
+
test?: string | undefined;
|
|
227
|
+
build?: string | undefined;
|
|
228
|
+
} | undefined;
|
|
229
|
+
ignore?: string[] | undefined;
|
|
230
|
+
}>;
|
|
231
|
+
export type AppConfig = z.infer<typeof appConfigSchema>;
|
|
232
|
+
export type ModelConfig = z.infer<typeof modelConfigSchema>;
|
|
233
|
+
export type ContextConfig = z.infer<typeof contextConfigSchema>;
|
|
234
|
+
export type SafetyConfig = z.infer<typeof safetyConfigSchema>;
|
|
235
|
+
export type CommandConfig = z.infer<typeof commandConfigSchema>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config schema — single source of truth for shape AND defaults (HLD-SRD §3.2, §9).
|
|
3
|
+
*
|
|
4
|
+
* Every field carries a `.default(...)` so an absent/empty config still parses
|
|
5
|
+
* to the full HLD-SRD §3.2 object. `AppConfig` is inferred from the schema.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export const modelConfigSchema = z.object({
|
|
9
|
+
provider: z.literal("lmstudio").default("lmstudio"),
|
|
10
|
+
baseUrl: z.string().default("http://localhost:1234/v1"),
|
|
11
|
+
model: z.string().default("qwen/qwen3.6-27b"),
|
|
12
|
+
apiKey: z.string().default("lm-studio"),
|
|
13
|
+
temperature: z.number().default(0.2),
|
|
14
|
+
maxContextTokens: z.number().int().default(32768),
|
|
15
|
+
// Request timeout (ms) used by the ModelClient. Not in §3.2 but needed by the
|
|
16
|
+
// client/doctor; defaults conservatively.
|
|
17
|
+
timeoutMs: z.number().int().default(60000),
|
|
18
|
+
});
|
|
19
|
+
export const contextConfigSchema = z.object({
|
|
20
|
+
maxContextChars: z.number().int().default(120000),
|
|
21
|
+
maxFilesPerStep: z.number().int().default(12),
|
|
22
|
+
maxEditFilesPerStep: z.number().int().default(5),
|
|
23
|
+
maxFileChars: z.number().int().default(50000),
|
|
24
|
+
includeTests: z.boolean().default(true),
|
|
25
|
+
includeImportNeighbors: z.boolean().default(true),
|
|
26
|
+
});
|
|
27
|
+
export const safetyConfigSchema = z.object({
|
|
28
|
+
requireApproval: z.boolean().default(true),
|
|
29
|
+
maxFailedFixAttempts: z.number().int().default(2),
|
|
30
|
+
maxChangedFilesPerStep: z.number().int().default(5),
|
|
31
|
+
riskyPaths: z
|
|
32
|
+
.array(z.string())
|
|
33
|
+
.default([
|
|
34
|
+
"**/auth/**",
|
|
35
|
+
"**/billing/**",
|
|
36
|
+
"**/payments/**",
|
|
37
|
+
"**/migrations/**",
|
|
38
|
+
".env*",
|
|
39
|
+
]),
|
|
40
|
+
});
|
|
41
|
+
export const commandConfigSchema = z.object({
|
|
42
|
+
typecheck: z.string().default("npm run typecheck"),
|
|
43
|
+
lint: z.string().default("npm run lint"),
|
|
44
|
+
test: z.string().default("npm test"),
|
|
45
|
+
build: z.string().default("npm run build"),
|
|
46
|
+
});
|
|
47
|
+
export const appConfigSchema = z.object({
|
|
48
|
+
model: modelConfigSchema.default({}),
|
|
49
|
+
context: contextConfigSchema.default({}),
|
|
50
|
+
safety: safetyConfigSchema.default({}),
|
|
51
|
+
commands: commandConfigSchema.default({}),
|
|
52
|
+
ignore: z
|
|
53
|
+
.array(z.string())
|
|
54
|
+
.default([
|
|
55
|
+
"node_modules",
|
|
56
|
+
".git",
|
|
57
|
+
".next",
|
|
58
|
+
"dist",
|
|
59
|
+
"build",
|
|
60
|
+
"coverage",
|
|
61
|
+
"package-lock.json",
|
|
62
|
+
"pnpm-lock.yaml",
|
|
63
|
+
"yarn.lock",
|
|
64
|
+
]),
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjD,8EAA8E;IAC9E,0CAA0C;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,CAAC;QACP,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,kBAAkB;QAClB,OAAO;KACR,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,CAAC;QACP,cAAc;QACd,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,UAAU;QACV,mBAAmB;QACnB,gBAAgB;QAChB,WAAW;KACZ,CAAC;CACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context package + tolerant task/session types (HLD-SRD §9, §3.7).
|
|
3
|
+
*
|
|
4
|
+
* `ContextPackage` is the role-specific output of the Context Builder. The
|
|
5
|
+
* `ActiveTask` / `ActiveSession` shapes are intentionally tolerant and
|
|
6
|
+
* forward-compatible with the 0001_04 Task/Session Manager: every field is
|
|
7
|
+
* optional, parsing never throws, and unknown structure degrades gracefully.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import type { AgentRole } from "./model.js";
|
|
11
|
+
export declare const contextPackageSchema: z.ZodObject<{
|
|
12
|
+
role: z.ZodEnum<["planner", "retriever", "coder", "reviewer", "test-fixer", "summarizer"]>;
|
|
13
|
+
systemPrompt: z.ZodString;
|
|
14
|
+
userPrompt: z.ZodString;
|
|
15
|
+
includedMemoryFiles: z.ZodArray<z.ZodString, "many">;
|
|
16
|
+
includedSourceFiles: z.ZodArray<z.ZodString, "many">;
|
|
17
|
+
includedTestFiles: z.ZodArray<z.ZodString, "many">;
|
|
18
|
+
estimatedTokens: z.ZodNumber;
|
|
19
|
+
warnings: z.ZodArray<z.ZodString, "many">;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
warnings: string[];
|
|
22
|
+
role: "planner" | "retriever" | "coder" | "reviewer" | "test-fixer" | "summarizer";
|
|
23
|
+
systemPrompt: string;
|
|
24
|
+
userPrompt: string;
|
|
25
|
+
includedMemoryFiles: string[];
|
|
26
|
+
includedSourceFiles: string[];
|
|
27
|
+
includedTestFiles: string[];
|
|
28
|
+
estimatedTokens: number;
|
|
29
|
+
}, {
|
|
30
|
+
warnings: string[];
|
|
31
|
+
role: "planner" | "retriever" | "coder" | "reviewer" | "test-fixer" | "summarizer";
|
|
32
|
+
systemPrompt: string;
|
|
33
|
+
userPrompt: string;
|
|
34
|
+
includedMemoryFiles: string[];
|
|
35
|
+
includedSourceFiles: string[];
|
|
36
|
+
includedTestFiles: string[];
|
|
37
|
+
estimatedTokens: number;
|
|
38
|
+
}>;
|
|
39
|
+
export interface ContextPackage {
|
|
40
|
+
role: AgentRole;
|
|
41
|
+
systemPrompt: string;
|
|
42
|
+
userPrompt: string;
|
|
43
|
+
includedMemoryFiles: string[];
|
|
44
|
+
includedSourceFiles: string[];
|
|
45
|
+
includedTestFiles: string[];
|
|
46
|
+
estimatedTokens: number;
|
|
47
|
+
warnings: string[];
|
|
48
|
+
}
|
|
49
|
+
export interface ActiveSubtask {
|
|
50
|
+
/** The subtask description line (without the checkbox prefix). */
|
|
51
|
+
text: string;
|
|
52
|
+
/** True when the markdown checkbox is checked (`- [x]`). */
|
|
53
|
+
done: boolean;
|
|
54
|
+
/** Files the subtask is likely to touch (from a `likelyFiles:` line). */
|
|
55
|
+
likelyFiles?: string[];
|
|
56
|
+
}
|
|
57
|
+
export interface ActiveTask {
|
|
58
|
+
goal?: string;
|
|
59
|
+
subtasks?: ActiveSubtask[];
|
|
60
|
+
/** The session/task `Next Step`, if present. */
|
|
61
|
+
nextStep?: string;
|
|
62
|
+
/** The original markdown, retained verbatim. */
|
|
63
|
+
raw: string;
|
|
64
|
+
}
|
|
65
|
+
export interface ActiveSession {
|
|
66
|
+
currentState?: string;
|
|
67
|
+
nextStep?: string;
|
|
68
|
+
raw: string;
|
|
69
|
+
}
|
|
70
|
+
/** Parse a 0001_04-shaped task markdown string. Never throws. */
|
|
71
|
+
export declare function parseActiveTask(md: string): ActiveTask;
|
|
72
|
+
/** Parse a session markdown string tolerantly. Never throws. */
|
|
73
|
+
export declare function parseActiveSession(md: string): ActiveSession;
|
|
74
|
+
/**
|
|
75
|
+
* Resolve the "current" subtask: the first unchecked subtask in document order,
|
|
76
|
+
* else the first subtask, else undefined when there are no subtasks.
|
|
77
|
+
*/
|
|
78
|
+
export declare function firstIncompleteSubtask(task: ActiveTask): ActiveSubtask | undefined;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context package + tolerant task/session types (HLD-SRD §9, §3.7).
|
|
3
|
+
*
|
|
4
|
+
* `ContextPackage` is the role-specific output of the Context Builder. The
|
|
5
|
+
* `ActiveTask` / `ActiveSession` shapes are intentionally tolerant and
|
|
6
|
+
* forward-compatible with the 0001_04 Task/Session Manager: every field is
|
|
7
|
+
* optional, parsing never throws, and unknown structure degrades gracefully.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// ContextPackage (HLD-SRD §9)
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
const agentRoleSchema = z.enum([
|
|
14
|
+
"planner",
|
|
15
|
+
"retriever",
|
|
16
|
+
"coder",
|
|
17
|
+
"reviewer",
|
|
18
|
+
"test-fixer",
|
|
19
|
+
"summarizer",
|
|
20
|
+
]);
|
|
21
|
+
export const contextPackageSchema = z.object({
|
|
22
|
+
role: agentRoleSchema,
|
|
23
|
+
systemPrompt: z.string(),
|
|
24
|
+
userPrompt: z.string(),
|
|
25
|
+
includedMemoryFiles: z.array(z.string()),
|
|
26
|
+
includedSourceFiles: z.array(z.string()),
|
|
27
|
+
includedTestFiles: z.array(z.string()),
|
|
28
|
+
estimatedTokens: z.number().int(),
|
|
29
|
+
warnings: z.array(z.string()),
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Extract the body of a markdown section by heading title (case-insensitive),
|
|
33
|
+
* stopping at the next heading of the same-or-higher level. Returns the trimmed
|
|
34
|
+
* body, or undefined when the heading is absent or its body is empty.
|
|
35
|
+
*/
|
|
36
|
+
function sectionBody(md, title) {
|
|
37
|
+
const lines = md.split(/\r?\n/);
|
|
38
|
+
const titleLc = title.toLowerCase();
|
|
39
|
+
let start = -1;
|
|
40
|
+
let level = 0;
|
|
41
|
+
for (let i = 0; i < lines.length; i++) {
|
|
42
|
+
const m = /^(#{1,6})\s+(.*?)\s*$/.exec(lines[i]);
|
|
43
|
+
if (m && m[2].toLowerCase() === titleLc) {
|
|
44
|
+
start = i + 1;
|
|
45
|
+
level = m[1].length;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (start === -1)
|
|
50
|
+
return undefined;
|
|
51
|
+
const collected = [];
|
|
52
|
+
for (let i = start; i < lines.length; i++) {
|
|
53
|
+
const m = /^(#{1,6})\s+/.exec(lines[i]);
|
|
54
|
+
if (m && m[1].length <= level)
|
|
55
|
+
break;
|
|
56
|
+
collected.push(lines[i]);
|
|
57
|
+
}
|
|
58
|
+
const body = collected.join("\n").trim();
|
|
59
|
+
return body.length > 0 ? body : undefined;
|
|
60
|
+
}
|
|
61
|
+
function parseLikelyFiles(raw) {
|
|
62
|
+
return raw
|
|
63
|
+
.split(",")
|
|
64
|
+
.map((s) => s.trim())
|
|
65
|
+
.filter((s) => s.length > 0);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parse the `## Subtasks` section into checkbox list items. Each `- [ ]` /
|
|
69
|
+
* `- [x]` line starts a subtask; a following indented `likelyFiles:` line (or a
|
|
70
|
+
* `likelyFiles:` token on the same line) attaches its files. Tolerant: no
|
|
71
|
+
* checkboxes → no subtasks.
|
|
72
|
+
*/
|
|
73
|
+
function parseSubtasks(md) {
|
|
74
|
+
const body = sectionBody(md, "Subtasks");
|
|
75
|
+
if (body === undefined)
|
|
76
|
+
return undefined;
|
|
77
|
+
const lines = body.split(/\r?\n/);
|
|
78
|
+
const subtasks = [];
|
|
79
|
+
let current;
|
|
80
|
+
const checkboxRe = /^\s*[-*]\s+\[( |x|X)\]\s*(.*)$/;
|
|
81
|
+
const likelyRe = /likelyFiles\s*:\s*(.*)$/i;
|
|
82
|
+
for (const line of lines) {
|
|
83
|
+
const cb = checkboxRe.exec(line);
|
|
84
|
+
if (cb) {
|
|
85
|
+
const done = cb[1].toLowerCase() === "x";
|
|
86
|
+
let text = cb[2].trim();
|
|
87
|
+
const inlineLikely = likelyRe.exec(text);
|
|
88
|
+
const subtask = { text, done };
|
|
89
|
+
if (inlineLikely) {
|
|
90
|
+
// `- [ ] foo likelyFiles: a.ts` — strip the trailing token from text.
|
|
91
|
+
text = text.slice(0, inlineLikely.index).trim();
|
|
92
|
+
subtask.text = text;
|
|
93
|
+
subtask.likelyFiles = parseLikelyFiles(inlineLikely[1]);
|
|
94
|
+
}
|
|
95
|
+
subtasks.push(subtask);
|
|
96
|
+
current = subtask;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const likely = likelyRe.exec(line);
|
|
100
|
+
if (likely && current && current.likelyFiles === undefined) {
|
|
101
|
+
current.likelyFiles = parseLikelyFiles(likely[1]);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return subtasks.length > 0 ? subtasks : undefined;
|
|
105
|
+
}
|
|
106
|
+
/** Parse a 0001_04-shaped task markdown string. Never throws. */
|
|
107
|
+
export function parseActiveTask(md) {
|
|
108
|
+
const task = { raw: md };
|
|
109
|
+
const goal = sectionBody(md, "Goal");
|
|
110
|
+
if (goal !== undefined)
|
|
111
|
+
task.goal = goal;
|
|
112
|
+
const subtasks = parseSubtasks(md);
|
|
113
|
+
if (subtasks !== undefined)
|
|
114
|
+
task.subtasks = subtasks;
|
|
115
|
+
const nextStep = sectionBody(md, "Next Step");
|
|
116
|
+
if (nextStep !== undefined)
|
|
117
|
+
task.nextStep = nextStep;
|
|
118
|
+
return task;
|
|
119
|
+
}
|
|
120
|
+
/** Parse a session markdown string tolerantly. Never throws. */
|
|
121
|
+
export function parseActiveSession(md) {
|
|
122
|
+
const session = { raw: md };
|
|
123
|
+
const currentState = sectionBody(md, "Current State");
|
|
124
|
+
if (currentState !== undefined)
|
|
125
|
+
session.currentState = currentState;
|
|
126
|
+
const nextStep = sectionBody(md, "Next Step");
|
|
127
|
+
if (nextStep !== undefined)
|
|
128
|
+
session.nextStep = nextStep;
|
|
129
|
+
return session;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Resolve the "current" subtask: the first unchecked subtask in document order,
|
|
133
|
+
* else the first subtask, else undefined when there are no subtasks.
|
|
134
|
+
*/
|
|
135
|
+
export function firstIncompleteSubtask(task) {
|
|
136
|
+
const subs = task.subtasks;
|
|
137
|
+
if (!subs || subs.length === 0)
|
|
138
|
+
return undefined;
|
|
139
|
+
return subs.find((s) => !s.done) ?? subs[0];
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repository index types and schema (HLD-SRD §3.3, §9).
|
|
3
|
+
*
|
|
4
|
+
* RepoFile — per-file metadata entry.
|
|
5
|
+
* RepoIndex — the full index document written to .ai-orchestrator/index.json.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export interface RepoFile {
|
|
9
|
+
path: string;
|
|
10
|
+
extension: string;
|
|
11
|
+
size: number;
|
|
12
|
+
language: string;
|
|
13
|
+
summary?: string;
|
|
14
|
+
imports: string[];
|
|
15
|
+
exports: string[];
|
|
16
|
+
isTest: boolean;
|
|
17
|
+
isConfig: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface RepoIndex {
|
|
20
|
+
generatedAt: string;
|
|
21
|
+
root: string;
|
|
22
|
+
files: RepoFile[];
|
|
23
|
+
}
|
|
24
|
+
export declare const repoFileSchema: z.ZodObject<{
|
|
25
|
+
path: z.ZodString;
|
|
26
|
+
extension: z.ZodString;
|
|
27
|
+
size: z.ZodNumber;
|
|
28
|
+
language: z.ZodString;
|
|
29
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
30
|
+
imports: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
31
|
+
exports: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
32
|
+
isTest: z.ZodBoolean;
|
|
33
|
+
isConfig: z.ZodBoolean;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
path: string;
|
|
36
|
+
extension: string;
|
|
37
|
+
size: number;
|
|
38
|
+
language: string;
|
|
39
|
+
imports: string[];
|
|
40
|
+
exports: string[];
|
|
41
|
+
isTest: boolean;
|
|
42
|
+
isConfig: boolean;
|
|
43
|
+
summary?: string | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
path: string;
|
|
46
|
+
extension: string;
|
|
47
|
+
size: number;
|
|
48
|
+
language: string;
|
|
49
|
+
isTest: boolean;
|
|
50
|
+
isConfig: boolean;
|
|
51
|
+
summary?: string | undefined;
|
|
52
|
+
imports?: string[] | undefined;
|
|
53
|
+
exports?: string[] | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
export declare const repoIndexSchema: z.ZodObject<{
|
|
56
|
+
generatedAt: z.ZodString;
|
|
57
|
+
root: z.ZodString;
|
|
58
|
+
files: z.ZodArray<z.ZodObject<{
|
|
59
|
+
path: z.ZodString;
|
|
60
|
+
extension: z.ZodString;
|
|
61
|
+
size: z.ZodNumber;
|
|
62
|
+
language: z.ZodString;
|
|
63
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
64
|
+
imports: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
65
|
+
exports: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
66
|
+
isTest: z.ZodBoolean;
|
|
67
|
+
isConfig: z.ZodBoolean;
|
|
68
|
+
}, "strip", z.ZodTypeAny, {
|
|
69
|
+
path: string;
|
|
70
|
+
extension: string;
|
|
71
|
+
size: number;
|
|
72
|
+
language: string;
|
|
73
|
+
imports: string[];
|
|
74
|
+
exports: string[];
|
|
75
|
+
isTest: boolean;
|
|
76
|
+
isConfig: boolean;
|
|
77
|
+
summary?: string | undefined;
|
|
78
|
+
}, {
|
|
79
|
+
path: string;
|
|
80
|
+
extension: string;
|
|
81
|
+
size: number;
|
|
82
|
+
language: string;
|
|
83
|
+
isTest: boolean;
|
|
84
|
+
isConfig: boolean;
|
|
85
|
+
summary?: string | undefined;
|
|
86
|
+
imports?: string[] | undefined;
|
|
87
|
+
exports?: string[] | undefined;
|
|
88
|
+
}>, "many">;
|
|
89
|
+
}, "strip", z.ZodTypeAny, {
|
|
90
|
+
root: string;
|
|
91
|
+
generatedAt: string;
|
|
92
|
+
files: {
|
|
93
|
+
path: string;
|
|
94
|
+
extension: string;
|
|
95
|
+
size: number;
|
|
96
|
+
language: string;
|
|
97
|
+
imports: string[];
|
|
98
|
+
exports: string[];
|
|
99
|
+
isTest: boolean;
|
|
100
|
+
isConfig: boolean;
|
|
101
|
+
summary?: string | undefined;
|
|
102
|
+
}[];
|
|
103
|
+
}, {
|
|
104
|
+
root: string;
|
|
105
|
+
generatedAt: string;
|
|
106
|
+
files: {
|
|
107
|
+
path: string;
|
|
108
|
+
extension: string;
|
|
109
|
+
size: number;
|
|
110
|
+
language: string;
|
|
111
|
+
isTest: boolean;
|
|
112
|
+
isConfig: boolean;
|
|
113
|
+
summary?: string | undefined;
|
|
114
|
+
imports?: string[] | undefined;
|
|
115
|
+
exports?: string[] | undefined;
|
|
116
|
+
}[];
|
|
117
|
+
}>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repository index types and schema (HLD-SRD §3.3, §9).
|
|
3
|
+
*
|
|
4
|
+
* RepoFile — per-file metadata entry.
|
|
5
|
+
* RepoIndex — the full index document written to .ai-orchestrator/index.json.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
export const repoFileSchema = z.object({
|
|
9
|
+
path: z.string(),
|
|
10
|
+
extension: z.string(),
|
|
11
|
+
size: z.number(),
|
|
12
|
+
language: z.string(),
|
|
13
|
+
summary: z.string().optional(),
|
|
14
|
+
imports: z.array(z.string()).default([]),
|
|
15
|
+
exports: z.array(z.string()).default([]),
|
|
16
|
+
isTest: z.boolean(),
|
|
17
|
+
isConfig: z.boolean(),
|
|
18
|
+
});
|
|
19
|
+
export const repoIndexSchema = z.object({
|
|
20
|
+
generatedAt: z.string(),
|
|
21
|
+
root: z.string(),
|
|
22
|
+
files: z.array(repoFileSchema),
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=index.js.map
|