@staticpayload/zai-code 1.0.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 +678 -0
- package/README.md +115 -0
- package/bin/zcode +3 -0
- package/dist/apply.d.ts +44 -0
- package/dist/apply.d.ts.map +1 -0
- package/dist/apply.js +307 -0
- package/dist/apply.js.map +1 -0
- package/dist/auth.d.ts +9 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +170 -0
- package/dist/auth.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +179 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands.d.ts +15 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +560 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +97 -0
- package/dist/config.js.map +1 -0
- package/dist/context/context_builder.d.ts +29 -0
- package/dist/context/context_builder.d.ts.map +1 -0
- package/dist/context/context_builder.js +307 -0
- package/dist/context/context_builder.js.map +1 -0
- package/dist/context/project_memory.d.ts +14 -0
- package/dist/context/project_memory.d.ts.map +1 -0
- package/dist/context/project_memory.js +142 -0
- package/dist/context/project_memory.js.map +1 -0
- package/dist/doctor.d.ts +2 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +3 -0
- package/dist/doctor.js.map +1 -0
- package/dist/git.d.ts +10 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +90 -0
- package/dist/git.js.map +1 -0
- package/dist/history.d.ts +14 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +103 -0
- package/dist/history.js.map +1 -0
- package/dist/interactive.d.ts +6 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/interactive.js +83 -0
- package/dist/interactive.js.map +1 -0
- package/dist/orchestrator.d.ts +11 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +135 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/planner.d.ts +22 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +259 -0
- package/dist/planner.js.map +1 -0
- package/dist/profiles.d.ts +16 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +80 -0
- package/dist/profiles.js.map +1 -0
- package/dist/rollback.d.ts +27 -0
- package/dist/rollback.d.ts.map +1 -0
- package/dist/rollback.js +154 -0
- package/dist/rollback.js.map +1 -0
- package/dist/runtime.d.ts +131 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +374 -0
- package/dist/runtime.js.map +1 -0
- package/dist/session.d.ts +95 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +174 -0
- package/dist/session.js.map +1 -0
- package/dist/settings.d.ts +41 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +225 -0
- package/dist/settings.js.map +1 -0
- package/dist/settings_menu.d.ts +2 -0
- package/dist/settings_menu.d.ts.map +1 -0
- package/dist/settings_menu.js +265 -0
- package/dist/settings_menu.js.map +1 -0
- package/dist/shell.d.ts +18 -0
- package/dist/shell.d.ts.map +1 -0
- package/dist/shell.js +128 -0
- package/dist/shell.js.map +1 -0
- package/dist/task_runner.d.ts +22 -0
- package/dist/task_runner.d.ts.map +1 -0
- package/dist/task_runner.js +230 -0
- package/dist/task_runner.js.map +1 -0
- package/dist/ui.d.ts +15 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +160 -0
- package/dist/ui.js.map +1 -0
- package/dist/workspace.d.ts +17 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +134 -0
- package/dist/workspace.js.map +1 -0
- package/dist/workspace_model.d.ts +45 -0
- package/dist/workspace_model.d.ts.map +1 -0
- package/dist/workspace_model.js +253 -0
- package/dist/workspace_model.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
export interface ResponseSchema {
|
|
2
|
+
status: 'success' | 'error' | 'partial';
|
|
3
|
+
actions?: Array<{
|
|
4
|
+
type: string;
|
|
5
|
+
target?: string;
|
|
6
|
+
content?: string;
|
|
7
|
+
}>;
|
|
8
|
+
diffs?: Array<{
|
|
9
|
+
file: string;
|
|
10
|
+
hunks: Array<{
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
content: string;
|
|
14
|
+
}>;
|
|
15
|
+
}>;
|
|
16
|
+
files?: Array<{
|
|
17
|
+
path: string;
|
|
18
|
+
operation: 'create' | 'modify' | 'delete';
|
|
19
|
+
content?: string;
|
|
20
|
+
}>;
|
|
21
|
+
output?: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const RESPONSE_SCHEMA: {
|
|
25
|
+
type: string;
|
|
26
|
+
properties: {
|
|
27
|
+
status: {
|
|
28
|
+
type: string;
|
|
29
|
+
enum: string[];
|
|
30
|
+
};
|
|
31
|
+
actions: {
|
|
32
|
+
type: string;
|
|
33
|
+
items: {
|
|
34
|
+
type: string;
|
|
35
|
+
properties: {
|
|
36
|
+
type: {
|
|
37
|
+
type: string;
|
|
38
|
+
};
|
|
39
|
+
target: {
|
|
40
|
+
type: string;
|
|
41
|
+
};
|
|
42
|
+
content: {
|
|
43
|
+
type: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
required: string[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
diffs: {
|
|
50
|
+
type: string;
|
|
51
|
+
items: {
|
|
52
|
+
type: string;
|
|
53
|
+
properties: {
|
|
54
|
+
file: {
|
|
55
|
+
type: string;
|
|
56
|
+
};
|
|
57
|
+
hunks: {
|
|
58
|
+
type: string;
|
|
59
|
+
items: {
|
|
60
|
+
type: string;
|
|
61
|
+
properties: {
|
|
62
|
+
start: {
|
|
63
|
+
type: string;
|
|
64
|
+
};
|
|
65
|
+
end: {
|
|
66
|
+
type: string;
|
|
67
|
+
};
|
|
68
|
+
content: {
|
|
69
|
+
type: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
required: string[];
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
required: string[];
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
files: {
|
|
80
|
+
type: string;
|
|
81
|
+
items: {
|
|
82
|
+
type: string;
|
|
83
|
+
properties: {
|
|
84
|
+
path: {
|
|
85
|
+
type: string;
|
|
86
|
+
};
|
|
87
|
+
operation: {
|
|
88
|
+
type: string;
|
|
89
|
+
enum: string[];
|
|
90
|
+
};
|
|
91
|
+
content: {
|
|
92
|
+
type: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
required: string[];
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
output: {
|
|
99
|
+
type: string;
|
|
100
|
+
};
|
|
101
|
+
error: {
|
|
102
|
+
type: string;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
required: string[];
|
|
106
|
+
};
|
|
107
|
+
export interface ExecutionRequest {
|
|
108
|
+
instruction: string;
|
|
109
|
+
schema?: object;
|
|
110
|
+
context?: string;
|
|
111
|
+
model?: string;
|
|
112
|
+
maxTokens?: number;
|
|
113
|
+
enforceSchema?: boolean;
|
|
114
|
+
}
|
|
115
|
+
export interface ExecutionResponse {
|
|
116
|
+
success: boolean;
|
|
117
|
+
output: string | object;
|
|
118
|
+
error?: string;
|
|
119
|
+
usage?: {
|
|
120
|
+
inputTokens: number;
|
|
121
|
+
outputTokens: number;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
interface ValidationResult {
|
|
125
|
+
valid: boolean;
|
|
126
|
+
errors: string[];
|
|
127
|
+
}
|
|
128
|
+
export declare function validateSchema(data: unknown, schema: object): ValidationResult;
|
|
129
|
+
export declare function execute(request: ExecutionRequest, apiKey: string): Promise<ExecutionResponse>;
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,KAAK,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyD3B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAgF9E;AAuJD,wBAAsB,OAAO,CAC3B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAmI5B"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RESPONSE_SCHEMA = void 0;
|
|
37
|
+
exports.validateSchema = validateSchema;
|
|
38
|
+
exports.execute = execute;
|
|
39
|
+
const https = __importStar(require("https"));
|
|
40
|
+
const http = __importStar(require("http"));
|
|
41
|
+
const url_1 = require("url");
|
|
42
|
+
const config_1 = require("./config");
|
|
43
|
+
const project_memory_1 = require("./context/project_memory");
|
|
44
|
+
const settings_1 = require("./settings");
|
|
45
|
+
exports.RESPONSE_SCHEMA = {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
status: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
enum: ['success', 'error', 'partial'],
|
|
51
|
+
},
|
|
52
|
+
actions: {
|
|
53
|
+
type: 'array',
|
|
54
|
+
items: {
|
|
55
|
+
type: 'object',
|
|
56
|
+
properties: {
|
|
57
|
+
type: { type: 'string' },
|
|
58
|
+
target: { type: 'string' },
|
|
59
|
+
content: { type: 'string' },
|
|
60
|
+
},
|
|
61
|
+
required: ['type'],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
diffs: {
|
|
65
|
+
type: 'array',
|
|
66
|
+
items: {
|
|
67
|
+
type: 'object',
|
|
68
|
+
properties: {
|
|
69
|
+
file: { type: 'string' },
|
|
70
|
+
hunks: {
|
|
71
|
+
type: 'array',
|
|
72
|
+
items: {
|
|
73
|
+
type: 'object',
|
|
74
|
+
properties: {
|
|
75
|
+
start: { type: 'number' },
|
|
76
|
+
end: { type: 'number' },
|
|
77
|
+
content: { type: 'string' },
|
|
78
|
+
},
|
|
79
|
+
required: ['start', 'end', 'content'],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
required: ['file', 'hunks'],
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
files: {
|
|
87
|
+
type: 'array',
|
|
88
|
+
items: {
|
|
89
|
+
type: 'object',
|
|
90
|
+
properties: {
|
|
91
|
+
path: { type: 'string' },
|
|
92
|
+
operation: { type: 'string', enum: ['create', 'modify', 'delete'] },
|
|
93
|
+
content: { type: 'string' },
|
|
94
|
+
},
|
|
95
|
+
required: ['path', 'operation'],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
output: { type: 'string' },
|
|
99
|
+
error: { type: 'string' },
|
|
100
|
+
},
|
|
101
|
+
required: ['status'],
|
|
102
|
+
};
|
|
103
|
+
function validateSchema(data, schema) {
|
|
104
|
+
const errors = [];
|
|
105
|
+
const schemaObj = schema;
|
|
106
|
+
if (!data || typeof data !== 'object') {
|
|
107
|
+
return { valid: false, errors: ['Data must be an object'] };
|
|
108
|
+
}
|
|
109
|
+
const obj = data;
|
|
110
|
+
// Check required fields
|
|
111
|
+
if (schemaObj.required) {
|
|
112
|
+
for (const requiredField of schemaObj.required) {
|
|
113
|
+
if (!(requiredField in obj) || obj[requiredField] === undefined) {
|
|
114
|
+
errors.push(`Missing required field: ${requiredField}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Check field types
|
|
119
|
+
if (schemaObj.properties) {
|
|
120
|
+
for (const [fieldName, fieldSchema] of Object.entries(schemaObj.properties)) {
|
|
121
|
+
if (!(fieldName in obj)) {
|
|
122
|
+
continue; // Skip optional fields that aren't present
|
|
123
|
+
}
|
|
124
|
+
const value = obj[fieldName];
|
|
125
|
+
const fieldDef = fieldSchema;
|
|
126
|
+
// Check null/undefined
|
|
127
|
+
if (value === null || value === undefined) {
|
|
128
|
+
continue; // Allow null for optional fields
|
|
129
|
+
}
|
|
130
|
+
// Check type
|
|
131
|
+
if (fieldDef.type) {
|
|
132
|
+
const actualType = Array.isArray(value) ? 'array' : typeof value;
|
|
133
|
+
if (actualType !== fieldDef.type) {
|
|
134
|
+
errors.push(`Field '${fieldName}' must be ${fieldDef.type}, got ${actualType}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Check enum values
|
|
138
|
+
if (fieldDef.enum) {
|
|
139
|
+
if (typeof value === 'string' && !fieldDef.enum.includes(value)) {
|
|
140
|
+
errors.push(`Field '${fieldName}' must be one of: ${fieldDef.enum.join(', ')}, got '${value}'`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Check array items
|
|
144
|
+
if (fieldDef.type === 'array' && fieldDef.items && Array.isArray(value)) {
|
|
145
|
+
const itemsSchema = fieldDef.items;
|
|
146
|
+
if (itemsSchema.properties) {
|
|
147
|
+
for (let i = 0; i < value.length; i++) {
|
|
148
|
+
const item = value[i];
|
|
149
|
+
if (!item || typeof item !== 'object') {
|
|
150
|
+
errors.push(`Array '${fieldName}[${i}]' must be an object`);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const itemObj = item;
|
|
154
|
+
// Check required fields in array items
|
|
155
|
+
if (itemsSchema.required) {
|
|
156
|
+
for (const reqField of itemsSchema.required) {
|
|
157
|
+
if (!(reqField in itemObj)) {
|
|
158
|
+
errors.push(`Array '${fieldName}[${i}]' missing required field: ${reqField}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
valid: errors.length === 0,
|
|
169
|
+
errors,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function httpsPost(urlString, options = {}) {
|
|
173
|
+
return new Promise((resolve, reject) => {
|
|
174
|
+
const parsedUrl = new url_1.URL(urlString);
|
|
175
|
+
const isHttps = parsedUrl.protocol === 'https:';
|
|
176
|
+
const requestFn = isHttps ? https.request : http.request;
|
|
177
|
+
const headers = {
|
|
178
|
+
'Content-Type': 'application/json',
|
|
179
|
+
...options.headers,
|
|
180
|
+
};
|
|
181
|
+
if (options.body) {
|
|
182
|
+
headers['Content-Length'] = Buffer.byteLength(options.body).toString();
|
|
183
|
+
}
|
|
184
|
+
const requestOptions = {
|
|
185
|
+
hostname: parsedUrl.hostname,
|
|
186
|
+
port: parsedUrl.port || (isHttps ? 443 : 80),
|
|
187
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
188
|
+
method: options.method || 'POST',
|
|
189
|
+
headers,
|
|
190
|
+
};
|
|
191
|
+
const req = requestFn(requestOptions, (res) => {
|
|
192
|
+
const chunks = [];
|
|
193
|
+
res.on('data', (chunk) => {
|
|
194
|
+
chunks.push(chunk);
|
|
195
|
+
});
|
|
196
|
+
res.on('end', () => {
|
|
197
|
+
const body = Buffer.concat(chunks).toString('utf-8');
|
|
198
|
+
resolve({
|
|
199
|
+
statusCode: res.statusCode || 0,
|
|
200
|
+
headers: res.headers,
|
|
201
|
+
body,
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
req.on('error', (error) => {
|
|
206
|
+
reject(error);
|
|
207
|
+
});
|
|
208
|
+
if (options.body) {
|
|
209
|
+
req.write(options.body);
|
|
210
|
+
}
|
|
211
|
+
req.end();
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
const DEFAULT_MODEL = 'claude-sonnet-4-20250514';
|
|
215
|
+
const DEFAULT_MAX_TOKENS = 4096;
|
|
216
|
+
async function makeRequest(url, anthropicRequest, apiKey) {
|
|
217
|
+
try {
|
|
218
|
+
const response = await httpsPost(url, {
|
|
219
|
+
method: 'POST',
|
|
220
|
+
headers: {
|
|
221
|
+
'x-api-key': apiKey,
|
|
222
|
+
'anthropic-version': '2023-06-01',
|
|
223
|
+
},
|
|
224
|
+
body: JSON.stringify(anthropicRequest),
|
|
225
|
+
});
|
|
226
|
+
if (response.statusCode !== 200) {
|
|
227
|
+
let errorMessage = `HTTP ${response.statusCode}`;
|
|
228
|
+
try {
|
|
229
|
+
const errorBody = JSON.parse(response.body);
|
|
230
|
+
if (errorBody.error?.message) {
|
|
231
|
+
errorMessage = errorBody.error.message;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
if (response.body) {
|
|
236
|
+
errorMessage = response.body;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return { success: false, error: errorMessage };
|
|
240
|
+
}
|
|
241
|
+
const anthropicResponse = JSON.parse(response.body);
|
|
242
|
+
if (anthropicResponse.error) {
|
|
243
|
+
return { success: false, error: anthropicResponse.error.message };
|
|
244
|
+
}
|
|
245
|
+
return { success: true, data: anthropicResponse };
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
return {
|
|
249
|
+
success: false,
|
|
250
|
+
error: error instanceof Error ? error.message : String(error),
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
function extractOutputText(anthropicResponse) {
|
|
255
|
+
if (anthropicResponse.content && anthropicResponse.content.length > 0) {
|
|
256
|
+
const textBlock = anthropicResponse.content.find((block) => block.type === 'text');
|
|
257
|
+
if (textBlock) {
|
|
258
|
+
return textBlock.text;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return '';
|
|
262
|
+
}
|
|
263
|
+
async function execute(request, apiKey) {
|
|
264
|
+
const config = (0, config_1.loadConfig)();
|
|
265
|
+
const baseUrl = config.api?.baseUrl || 'https://api.z.ai/api/paas/v4/';
|
|
266
|
+
const url = baseUrl.endsWith('/') ? `${baseUrl}messages` : `${baseUrl}/messages`;
|
|
267
|
+
const model = request.model || (0, settings_1.getModel)();
|
|
268
|
+
const maxTokens = request.maxTokens || DEFAULT_MAX_TOKENS;
|
|
269
|
+
const enforceSchema = request.enforceSchema !== false; // Default to true
|
|
270
|
+
// Use provided schema or default to RESPONSE_SCHEMA
|
|
271
|
+
const schemaToUse = request.schema ?? exports.RESPONSE_SCHEMA;
|
|
272
|
+
// Get system prompt with project rules
|
|
273
|
+
const baseSystemPrompt = (0, project_memory_1.getSystemPrompt)();
|
|
274
|
+
// Build final system prompt
|
|
275
|
+
let systemPrompt = baseSystemPrompt;
|
|
276
|
+
if (request.context) {
|
|
277
|
+
systemPrompt += '\n\n' + request.context;
|
|
278
|
+
}
|
|
279
|
+
if (request.schema) {
|
|
280
|
+
const schemaInstruction = `Respond with valid JSON matching this schema: ${JSON.stringify(request.schema)}`;
|
|
281
|
+
systemPrompt += '\n\n' + schemaInstruction;
|
|
282
|
+
}
|
|
283
|
+
async function attemptRequest(instruction, system) {
|
|
284
|
+
const anthropicRequest = {
|
|
285
|
+
model,
|
|
286
|
+
max_tokens: maxTokens,
|
|
287
|
+
messages: [{ role: 'user', content: instruction }],
|
|
288
|
+
system,
|
|
289
|
+
};
|
|
290
|
+
const result = await makeRequest(url, anthropicRequest, apiKey);
|
|
291
|
+
if (!result.success || !result.data) {
|
|
292
|
+
return { error: result.error };
|
|
293
|
+
}
|
|
294
|
+
const outputText = extractOutputText(result.data);
|
|
295
|
+
let parsedData;
|
|
296
|
+
try {
|
|
297
|
+
parsedData = JSON.parse(outputText);
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
return { error: 'Failed to parse response as JSON' };
|
|
301
|
+
}
|
|
302
|
+
return {
|
|
303
|
+
parsedData,
|
|
304
|
+
outputText,
|
|
305
|
+
usage: result.data.usage,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
// Initial request
|
|
309
|
+
const initialResult = await attemptRequest(request.instruction, systemPrompt);
|
|
310
|
+
if (initialResult.error) {
|
|
311
|
+
return {
|
|
312
|
+
success: false,
|
|
313
|
+
output: '',
|
|
314
|
+
error: initialResult.error,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
// If schema enforcement is disabled, return the result
|
|
318
|
+
if (!enforceSchema) {
|
|
319
|
+
return {
|
|
320
|
+
success: true,
|
|
321
|
+
output: (initialResult.parsedData ?? initialResult.outputText ?? ''),
|
|
322
|
+
usage: initialResult.usage
|
|
323
|
+
? {
|
|
324
|
+
inputTokens: initialResult.usage.input_tokens,
|
|
325
|
+
outputTokens: initialResult.usage.output_tokens,
|
|
326
|
+
}
|
|
327
|
+
: undefined,
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
// Validate against schema
|
|
331
|
+
const validation = validateSchema(initialResult.parsedData, schemaToUse);
|
|
332
|
+
if (validation.valid) {
|
|
333
|
+
return {
|
|
334
|
+
success: true,
|
|
335
|
+
output: (initialResult.parsedData ?? initialResult.outputText ?? ''),
|
|
336
|
+
usage: initialResult.usage
|
|
337
|
+
? {
|
|
338
|
+
inputTokens: initialResult.usage.input_tokens,
|
|
339
|
+
outputTokens: initialResult.usage.output_tokens,
|
|
340
|
+
}
|
|
341
|
+
: undefined,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
// Retry with additional instruction
|
|
345
|
+
const retryInstruction = `${request.instruction}\n\nPrevious response violated schema. Required fields: status (success|error|partial). Output valid JSON only.`;
|
|
346
|
+
const retryResult = await attemptRequest(retryInstruction, systemPrompt);
|
|
347
|
+
if (retryResult.error) {
|
|
348
|
+
return {
|
|
349
|
+
success: false,
|
|
350
|
+
output: '',
|
|
351
|
+
error: retryResult.error,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
const retryValidation = validateSchema(retryResult.parsedData, schemaToUse);
|
|
355
|
+
if (retryValidation.valid) {
|
|
356
|
+
return {
|
|
357
|
+
success: true,
|
|
358
|
+
output: (retryResult.parsedData ?? retryResult.outputText ?? ''),
|
|
359
|
+
usage: retryResult.usage
|
|
360
|
+
? {
|
|
361
|
+
inputTokens: retryResult.usage.input_tokens,
|
|
362
|
+
outputTokens: retryResult.usage.output_tokens,
|
|
363
|
+
}
|
|
364
|
+
: undefined,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
// Fail hard after retry
|
|
368
|
+
return {
|
|
369
|
+
success: false,
|
|
370
|
+
output: '',
|
|
371
|
+
error: 'Schema violation after retry',
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { ResponseSchema } from './runtime';
|
|
2
|
+
import { ExecResult } from './shell';
|
|
3
|
+
export type IntentType = 'QUESTION' | 'CODE_EDIT' | 'REFACTOR' | 'DEBUG' | 'REVIEW' | 'COMMAND';
|
|
4
|
+
export declare const PLAN_SCHEMA: {
|
|
5
|
+
readonly type: "object";
|
|
6
|
+
readonly required: readonly ["status", "plan"];
|
|
7
|
+
readonly properties: {
|
|
8
|
+
readonly status: {
|
|
9
|
+
readonly type: "string";
|
|
10
|
+
readonly enum: readonly ["success", "error"];
|
|
11
|
+
};
|
|
12
|
+
readonly plan: {
|
|
13
|
+
readonly type: "array";
|
|
14
|
+
readonly items: {
|
|
15
|
+
readonly type: "object";
|
|
16
|
+
readonly required: readonly ["id", "description"];
|
|
17
|
+
readonly properties: {
|
|
18
|
+
readonly id: {
|
|
19
|
+
readonly type: "string";
|
|
20
|
+
};
|
|
21
|
+
readonly description: {
|
|
22
|
+
readonly type: "string";
|
|
23
|
+
};
|
|
24
|
+
readonly files: {
|
|
25
|
+
readonly type: "array";
|
|
26
|
+
readonly items: {
|
|
27
|
+
readonly type: "string";
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
readonly error: {
|
|
34
|
+
readonly type: "string";
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export type SessionMode = 'edit' | 'explain' | 'review' | 'debug';
|
|
39
|
+
export interface PlanStep {
|
|
40
|
+
id: string;
|
|
41
|
+
description: string;
|
|
42
|
+
status: 'pending' | 'complete' | 'failed';
|
|
43
|
+
}
|
|
44
|
+
export interface TaskStep {
|
|
45
|
+
id: string;
|
|
46
|
+
description: string;
|
|
47
|
+
status: 'pending' | 'planned' | 'generated' | 'applied' | 'skipped';
|
|
48
|
+
plan?: PlanStep[];
|
|
49
|
+
diff?: ResponseSchema;
|
|
50
|
+
}
|
|
51
|
+
export interface SessionState {
|
|
52
|
+
openFiles: string[];
|
|
53
|
+
lastPlan: PlanStep[] | null;
|
|
54
|
+
lastDiff: ResponseSchema | null;
|
|
55
|
+
pendingActions: ResponseSchema | null;
|
|
56
|
+
mode: SessionMode;
|
|
57
|
+
dryRun: boolean;
|
|
58
|
+
workingDirectory: string;
|
|
59
|
+
currentIntent: string | null;
|
|
60
|
+
intentType: IntentType | null;
|
|
61
|
+
lastExecResult: ExecResult | null;
|
|
62
|
+
taskSteps: TaskStep[];
|
|
63
|
+
currentStepIndex: number;
|
|
64
|
+
}
|
|
65
|
+
export declare function createSession(workingDirectory?: string): SessionState;
|
|
66
|
+
export declare function getSession(): SessionState;
|
|
67
|
+
export declare function resetSession(): void;
|
|
68
|
+
export declare function addOpenFile(path: string): void;
|
|
69
|
+
export declare function removeOpenFile(path: string): void;
|
|
70
|
+
export declare function clearOpenFiles(): void;
|
|
71
|
+
export declare function setLastPlan(plan: PlanStep[] | null): void;
|
|
72
|
+
export declare function setLastDiff(diff: ResponseSchema | null): void;
|
|
73
|
+
export declare function setPendingActions(actions: ResponseSchema | null): void;
|
|
74
|
+
export declare function setMode(mode: SessionMode): void;
|
|
75
|
+
export declare function setDryRun(enabled: boolean): void;
|
|
76
|
+
export declare function getMode(): SessionMode;
|
|
77
|
+
export declare function isDryRun(): boolean;
|
|
78
|
+
export declare function setIntent(intent: string): void;
|
|
79
|
+
export declare function getIntent(): string | null;
|
|
80
|
+
export declare function clearIntent(): void;
|
|
81
|
+
export declare function setIntentType(type: IntentType): void;
|
|
82
|
+
export declare function getIntentType(): IntentType | null;
|
|
83
|
+
export declare function setLastExecResult(result: ExecResult): void;
|
|
84
|
+
export declare function getLastExecResult(): ExecResult | null;
|
|
85
|
+
export declare function setTaskSteps(steps: TaskStep[]): void;
|
|
86
|
+
export declare function getTaskSteps(): TaskStep[];
|
|
87
|
+
export declare function getCurrentStep(): TaskStep | null;
|
|
88
|
+
export declare function advanceStep(): TaskStep | null;
|
|
89
|
+
export declare function updateStepStatus(stepId: string, status: TaskStep['status']): void;
|
|
90
|
+
export declare function getStepProgress(): {
|
|
91
|
+
current: number;
|
|
92
|
+
total: number;
|
|
93
|
+
completed: number;
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|