@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
package/dist/git.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
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.getGitInfo = getGitInfo;
|
|
37
|
+
exports.formatGitStatus = formatGitStatus;
|
|
38
|
+
const child_process_1 = require("child_process");
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
function getGitInfo(cwd) {
|
|
41
|
+
const result = {
|
|
42
|
+
isRepo: false,
|
|
43
|
+
branch: null,
|
|
44
|
+
isDirty: false,
|
|
45
|
+
uncommittedFiles: 0,
|
|
46
|
+
repoName: null,
|
|
47
|
+
};
|
|
48
|
+
try {
|
|
49
|
+
// Check if git repo
|
|
50
|
+
(0, child_process_1.execSync)('git rev-parse --git-dir', { cwd, stdio: 'pipe' });
|
|
51
|
+
result.isRepo = true;
|
|
52
|
+
// Get repo name from remote or folder
|
|
53
|
+
try {
|
|
54
|
+
const remote = (0, child_process_1.execSync)('git remote get-url origin', { cwd, stdio: 'pipe', encoding: 'utf-8' }).trim();
|
|
55
|
+
const match = remote.match(/\/([^\/]+?)(\.git)?$/);
|
|
56
|
+
result.repoName = match ? match[1] : path.basename(cwd);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
result.repoName = path.basename(cwd);
|
|
60
|
+
}
|
|
61
|
+
// Get branch
|
|
62
|
+
try {
|
|
63
|
+
result.branch = (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', { cwd, stdio: 'pipe', encoding: 'utf-8' }).trim();
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
result.branch = 'unknown';
|
|
67
|
+
}
|
|
68
|
+
// Check dirty state
|
|
69
|
+
try {
|
|
70
|
+
const status = (0, child_process_1.execSync)('git status --porcelain', { cwd, stdio: 'pipe', encoding: 'utf-8' });
|
|
71
|
+
const lines = status.trim().split('\n').filter(l => l.length > 0);
|
|
72
|
+
result.uncommittedFiles = lines.length;
|
|
73
|
+
result.isDirty = lines.length > 0;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Ignore
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Not a git repo
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
function formatGitStatus(info) {
|
|
85
|
+
if (!info.isRepo)
|
|
86
|
+
return 'no git';
|
|
87
|
+
const dirty = info.isDirty ? '*' : '';
|
|
88
|
+
return `${info.repoName || 'repo'}:${info.branch}${dirty}`;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,gCA4CC;AAED,0CAIC;AA7DD,iDAAyC;AACzC,2CAA6B;AAU7B,SAAgB,UAAU,CAAC,GAAW;IACpC,MAAM,MAAM,GAAY;QACtB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,gBAAgB,EAAE,CAAC;QACnB,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,CAAC;QACH,oBAAoB;QACpB,IAAA,wBAAQ,EAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QAErB,sCAAsC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,aAAa;QACb,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,GAAG,IAAA,wBAAQ,EAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC;YACvC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,eAAe,CAAC,IAAa;IAC3C,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface HistoryEntry {
|
|
2
|
+
timestamp: string;
|
|
3
|
+
intent: string;
|
|
4
|
+
intentType: string;
|
|
5
|
+
mode: string;
|
|
6
|
+
model: string;
|
|
7
|
+
filesCount: number;
|
|
8
|
+
outcome: 'success' | 'aborted' | 'failed';
|
|
9
|
+
}
|
|
10
|
+
export declare function logTask(entry: HistoryEntry): void;
|
|
11
|
+
export declare function getHistory(limit?: number): HistoryEntry[];
|
|
12
|
+
export declare function getLastEntry(): HistoryEntry | null;
|
|
13
|
+
export declare function clearHistory(): void;
|
|
14
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC3C;AASD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAiBjD;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAgBzD;AAED,wBAAgB,YAAY,IAAI,YAAY,GAAG,IAAI,CAGlD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAQnC"}
|
package/dist/history.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
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.logTask = logTask;
|
|
37
|
+
exports.getHistory = getHistory;
|
|
38
|
+
exports.getLastEntry = getLastEntry;
|
|
39
|
+
exports.clearHistory = clearHistory;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const os = __importStar(require("os"));
|
|
43
|
+
const HISTORY_FILE = path.join(os.homedir(), '.zai', 'history.log');
|
|
44
|
+
const MAX_ENTRIES = 100;
|
|
45
|
+
function ensureHistoryDir() {
|
|
46
|
+
const dir = path.dirname(HISTORY_FILE);
|
|
47
|
+
if (!fs.existsSync(dir)) {
|
|
48
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function logTask(entry) {
|
|
52
|
+
ensureHistoryDir();
|
|
53
|
+
const line = JSON.stringify(entry) + '\n';
|
|
54
|
+
fs.appendFileSync(HISTORY_FILE, line, 'utf-8');
|
|
55
|
+
// Trim if too large
|
|
56
|
+
try {
|
|
57
|
+
const content = fs.readFileSync(HISTORY_FILE, 'utf-8');
|
|
58
|
+
const lines = content.trim().split('\n');
|
|
59
|
+
if (lines.length > MAX_ENTRIES) {
|
|
60
|
+
const trimmed = lines.slice(-MAX_ENTRIES).join('\n') + '\n';
|
|
61
|
+
fs.writeFileSync(HISTORY_FILE, trimmed, 'utf-8');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Ignore
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function getHistory(limit) {
|
|
69
|
+
try {
|
|
70
|
+
if (!fs.existsSync(HISTORY_FILE))
|
|
71
|
+
return [];
|
|
72
|
+
const content = fs.readFileSync(HISTORY_FILE, 'utf-8');
|
|
73
|
+
const lines = content.trim().split('\n').filter(l => l.length > 0);
|
|
74
|
+
const entries = lines.map(l => {
|
|
75
|
+
try {
|
|
76
|
+
return JSON.parse(l);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}).filter(Boolean);
|
|
82
|
+
const reversed = entries.reverse();
|
|
83
|
+
return limit ? reversed.slice(0, limit) : reversed;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function getLastEntry() {
|
|
90
|
+
const entries = getHistory(1);
|
|
91
|
+
return entries[0] || null;
|
|
92
|
+
}
|
|
93
|
+
function clearHistory() {
|
|
94
|
+
try {
|
|
95
|
+
if (fs.existsSync(HISTORY_FILE)) {
|
|
96
|
+
fs.unlinkSync(HISTORY_FILE);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Ignore
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDlF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
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.startInteractive = startInteractive;
|
|
37
|
+
const readline = __importStar(require("readline"));
|
|
38
|
+
const orchestrator_1 = require("./orchestrator");
|
|
39
|
+
const session_1 = require("./session");
|
|
40
|
+
const ui_1 = require("./ui");
|
|
41
|
+
async function startInteractive(options) {
|
|
42
|
+
const rl = readline.createInterface({
|
|
43
|
+
input: process.stdin,
|
|
44
|
+
output: process.stdout,
|
|
45
|
+
});
|
|
46
|
+
const askQuestion = () => {
|
|
47
|
+
const session = (0, session_1.getSession)();
|
|
48
|
+
const currentPrompt = (0, ui_1.getPrompt)(session);
|
|
49
|
+
rl.question(currentPrompt, async (input) => {
|
|
50
|
+
const trimmed = input.trim();
|
|
51
|
+
// Exit commands (handled before orchestrator for immediate response)
|
|
52
|
+
if (trimmed === 'exit' || trimmed === 'quit' || trimmed === ':q') {
|
|
53
|
+
rl.close();
|
|
54
|
+
options?.onExit?.();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// Empty input - just re-prompt
|
|
58
|
+
if (!trimmed) {
|
|
59
|
+
askQuestion();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// Route ALL input through orchestrator
|
|
63
|
+
try {
|
|
64
|
+
await (0, orchestrator_1.orchestrate)(trimmed);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
// Swallow errors, continue loop
|
|
68
|
+
}
|
|
69
|
+
// Continue loop
|
|
70
|
+
askQuestion();
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
// Handle Ctrl+C gracefully
|
|
74
|
+
rl.on('close', () => {
|
|
75
|
+
options?.onExit?.();
|
|
76
|
+
});
|
|
77
|
+
process.on('SIGINT', () => {
|
|
78
|
+
rl.close();
|
|
79
|
+
});
|
|
80
|
+
askQuestion();
|
|
81
|
+
return new Promise(() => { });
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4CAkDC;AA5DD,mDAAqC;AACrC,iDAA6C;AAC7C,uCAAuC;AACvC,6BAAiC;AAO1B,KAAK,UAAU,gBAAgB,CAAC,OAA4B;IACjE,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAA,oBAAU,GAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAA,cAAS,EAAC,OAAO,CAAC,CAAC;QAEzC,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAE7B,qEAAqE;YACrE,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACjE,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,+BAA+B;YAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,WAAW,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,IAAI,CAAC;gBACH,MAAM,IAAA,0BAAW,EAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gCAAgC;YAClC,CAAC;YAED,gBAAgB;YAChB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,2BAA2B;IAC3B,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,WAAW,EAAE,CAAC;IAEd,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IntentType } from './session';
|
|
2
|
+
export type WorkflowType = 'slash_command' | 'capture_intent' | 'append_context' | 'confirm_action' | 'ignore';
|
|
3
|
+
export interface OrchestrationResult {
|
|
4
|
+
inputType: 'slash' | 'free_text';
|
|
5
|
+
intent: IntentType;
|
|
6
|
+
workflow: WorkflowType;
|
|
7
|
+
handled: boolean;
|
|
8
|
+
message?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function orchestrate(input: string): Promise<OrchestrationResult>;
|
|
11
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,UAAU,EAAiB,MAAM,WAAW,CAAC;AAGxF,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,CAAC;AAGb,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8GD,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8C7E"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.orchestrate = orchestrate;
|
|
4
|
+
const commands_1 = require("./commands");
|
|
5
|
+
const session_1 = require("./session");
|
|
6
|
+
// Classify free text intent (rule-based, no model calls)
|
|
7
|
+
function classifyIntent(input) {
|
|
8
|
+
const lower = input.toLowerCase().trim();
|
|
9
|
+
// QUESTION patterns - explain, clarify, what/why/how questions
|
|
10
|
+
const questionPatterns = [
|
|
11
|
+
/^(what|why|how|when|where|who|explain|clarify|describe|tell me)/i,
|
|
12
|
+
/\?$/,
|
|
13
|
+
/^(is|are|can|could|would|should|do|does|did|has|have|will)\s/i,
|
|
14
|
+
/(what is|what are|what does|how does|how do|how to|why does|why is)/i,
|
|
15
|
+
];
|
|
16
|
+
if (questionPatterns.some(p => p.test(lower))) {
|
|
17
|
+
return 'QUESTION';
|
|
18
|
+
}
|
|
19
|
+
// DEBUG patterns - fix, debug, error, bug, issue, broken, failing
|
|
20
|
+
const debugPatterns = [
|
|
21
|
+
/(fix|debug|error|bug|issue|broken|failing|crash|exception|problem|wrong|doesn'?t work|not working)/i,
|
|
22
|
+
/(resolve|troubleshoot|diagnose|investigate)/i,
|
|
23
|
+
];
|
|
24
|
+
if (debugPatterns.some(p => p.test(lower))) {
|
|
25
|
+
return 'DEBUG';
|
|
26
|
+
}
|
|
27
|
+
// REFACTOR patterns - refactor, rename, reorganize, extract, move, restructure
|
|
28
|
+
const refactorPatterns = [
|
|
29
|
+
/(refactor|rename|reorganize|restructure|extract|move|split|merge|consolidate)/i,
|
|
30
|
+
/(clean up|cleanup|simplify|optimize|improve structure)/i,
|
|
31
|
+
];
|
|
32
|
+
if (refactorPatterns.some(p => p.test(lower))) {
|
|
33
|
+
return 'REFACTOR';
|
|
34
|
+
}
|
|
35
|
+
// REVIEW patterns - review, analyze, audit, check, inspect, look at
|
|
36
|
+
const reviewPatterns = [
|
|
37
|
+
/(review|analyze|audit|check|inspect|examine|assess|evaluate)/i,
|
|
38
|
+
/(look at|understand|read|show me)/i,
|
|
39
|
+
];
|
|
40
|
+
if (reviewPatterns.some(p => p.test(lower))) {
|
|
41
|
+
return 'REVIEW';
|
|
42
|
+
}
|
|
43
|
+
// CODE_EDIT patterns - add, create, implement, update, change, modify, write
|
|
44
|
+
const codeEditPatterns = [
|
|
45
|
+
/(add|create|implement|update|change|modify|write|build|make|generate)/i,
|
|
46
|
+
/(new|feature|function|component|class|method|file|module)/i,
|
|
47
|
+
/(edit|insert|append|remove|delete|replace)/i,
|
|
48
|
+
];
|
|
49
|
+
if (codeEditPatterns.some(p => p.test(lower))) {
|
|
50
|
+
return 'CODE_EDIT';
|
|
51
|
+
}
|
|
52
|
+
// Default: COMMAND (unclear, may need clarification)
|
|
53
|
+
return 'COMMAND';
|
|
54
|
+
}
|
|
55
|
+
// Determine workflow based on intent
|
|
56
|
+
function determineWorkflow(intent, hasExistingIntent) {
|
|
57
|
+
// All intent types map to capture_intent for now
|
|
58
|
+
// The intent type is stored separately for later use
|
|
59
|
+
return 'capture_intent';
|
|
60
|
+
}
|
|
61
|
+
// Handle the workflow
|
|
62
|
+
async function handleWorkflow(workflow, input, parsed, intent) {
|
|
63
|
+
switch (workflow) {
|
|
64
|
+
case 'slash_command':
|
|
65
|
+
await (0, commands_1.executeCommand)(parsed);
|
|
66
|
+
return { handled: true };
|
|
67
|
+
case 'capture_intent':
|
|
68
|
+
(0, session_1.setIntent)(input);
|
|
69
|
+
(0, session_1.setIntentType)(intent);
|
|
70
|
+
console.log(`Intent: ${intent}`);
|
|
71
|
+
console.log('Use /plan to proceed.');
|
|
72
|
+
return { handled: true };
|
|
73
|
+
case 'append_context':
|
|
74
|
+
const existing = (0, session_1.getIntent)();
|
|
75
|
+
if (existing) {
|
|
76
|
+
(0, session_1.setIntent)(`${existing}\n\nClarification: ${input}`);
|
|
77
|
+
return { handled: true, message: 'Context appended to intent.' };
|
|
78
|
+
}
|
|
79
|
+
(0, session_1.setIntent)(input);
|
|
80
|
+
return { handled: true, message: 'Intent recorded. Use /plan to proceed.' };
|
|
81
|
+
case 'confirm_action':
|
|
82
|
+
const session = (0, session_1.getSession)();
|
|
83
|
+
if (session.pendingActions) {
|
|
84
|
+
// There are pending actions - user might want to apply
|
|
85
|
+
return { handled: true, message: 'Pending changes exist. Use /apply to execute or /diff to review.' };
|
|
86
|
+
}
|
|
87
|
+
return { handled: true, message: 'Nothing to confirm.' };
|
|
88
|
+
case 'ignore':
|
|
89
|
+
return { handled: true, message: 'Cancelled.' };
|
|
90
|
+
default:
|
|
91
|
+
return { handled: false };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Main orchestration entry point
|
|
95
|
+
async function orchestrate(input) {
|
|
96
|
+
const trimmed = input.trim();
|
|
97
|
+
if (!trimmed) {
|
|
98
|
+
return {
|
|
99
|
+
inputType: 'free_text',
|
|
100
|
+
intent: 'COMMAND',
|
|
101
|
+
workflow: 'ignore',
|
|
102
|
+
handled: true,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Parse input
|
|
106
|
+
const parsed = (0, commands_1.parseInput)(trimmed);
|
|
107
|
+
// Slash commands bypass intent detection
|
|
108
|
+
if (parsed.isSlashCommand) {
|
|
109
|
+
await (0, commands_1.executeCommand)(parsed);
|
|
110
|
+
return {
|
|
111
|
+
inputType: 'slash',
|
|
112
|
+
intent: 'COMMAND', // Not classified for slash commands
|
|
113
|
+
workflow: 'slash_command',
|
|
114
|
+
handled: true,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// Free text goes through intent classification
|
|
118
|
+
const intent = classifyIntent(trimmed);
|
|
119
|
+
const hasExistingIntent = (0, session_1.getIntent)() !== null;
|
|
120
|
+
const workflow = determineWorkflow(intent, hasExistingIntent);
|
|
121
|
+
// Execute workflow
|
|
122
|
+
const result = await handleWorkflow(workflow, trimmed, parsed, intent);
|
|
123
|
+
// Print message if any
|
|
124
|
+
if (result.message) {
|
|
125
|
+
console.log(result.message);
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
inputType: 'free_text',
|
|
129
|
+
intent,
|
|
130
|
+
workflow,
|
|
131
|
+
handled: result.handled,
|
|
132
|
+
message: result.message,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":";;AAgIA,kCA8CC;AA9KD,yCAAuE;AACvE,uCAAwF;AAmBxF,yDAAyD;AACzD,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAEzC,+DAA+D;IAC/D,MAAM,gBAAgB,GAAG;QACvB,kEAAkE;QAClE,KAAK;QACL,+DAA+D;QAC/D,sEAAsE;KACvE,CAAC;IACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,kEAAkE;IAClE,MAAM,aAAa,GAAG;QACpB,qGAAqG;QACrG,8CAA8C;KAC/C,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+EAA+E;IAC/E,MAAM,gBAAgB,GAAG;QACvB,gFAAgF;QAChF,yDAAyD;KAC1D,CAAC;IACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oEAAoE;IACpE,MAAM,cAAc,GAAG;QACrB,+DAA+D;QAC/D,oCAAoC;KACrC,CAAC;IACF,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG;QACvB,wEAAwE;QACxE,4DAA4D;QAC5D,6CAA6C;KAC9C,CAAC;IACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,qDAAqD;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qCAAqC;AACrC,SAAS,iBAAiB,CAAC,MAAkB,EAAE,iBAA0B;IACvE,iDAAiD;IACjD,qDAAqD;IACrD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,sBAAsB;AACtB,KAAK,UAAU,cAAc,CAC3B,QAAsB,EACtB,KAAa,EACb,MAAqB,EACrB,MAAkB;IAElB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe;YAClB,MAAM,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE3B,KAAK,gBAAgB;YACnB,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;YACjB,IAAA,uBAAa,EAAC,MAAM,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE3B,KAAK,gBAAgB;YACnB,MAAM,QAAQ,GAAG,IAAA,mBAAS,GAAE,CAAC;YAC7B,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAA,mBAAS,EAAC,GAAG,QAAQ,sBAAsB,KAAK,EAAE,CAAC,CAAC;gBACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;YACnE,CAAC;YACD,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;YACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;QAE9E,KAAK,gBAAgB;YACnB,MAAM,OAAO,GAAG,IAAA,oBAAU,GAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,uDAAuD;gBACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;YACxG,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QAE3D,KAAK,QAAQ;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAElD;YACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,iCAAiC;AAC1B,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,cAAc;IACd,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,OAAO,CAAC,CAAC;IAEnC,yCAAyC;IACzC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,SAAS,EAAE,oCAAoC;YACvD,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,iBAAiB,GAAG,IAAA,mBAAS,GAAE,KAAK,IAAI,CAAC;IAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE9D,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvE,uBAAuB;IACvB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,SAAS,EAAE,WAAW;QACtB,MAAM;QACN,QAAQ;QACR,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PlanStep } from './session';
|
|
2
|
+
import { ResponseSchema } from './runtime';
|
|
3
|
+
declare const MAX_PLAN_ITERATIONS = 5;
|
|
4
|
+
declare const MAX_REFINE_ITERATIONS = 3;
|
|
5
|
+
export interface PlannerResult {
|
|
6
|
+
success: boolean;
|
|
7
|
+
iterations: number;
|
|
8
|
+
plan: PlanStep[] | null;
|
|
9
|
+
message: string;
|
|
10
|
+
needsConfirmation: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface GenerateResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
iterations: number;
|
|
15
|
+
changes: ResponseSchema | null;
|
|
16
|
+
message: string;
|
|
17
|
+
needsConfirmation: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function runPlannerLoop(): Promise<PlannerResult>;
|
|
20
|
+
export declare function runGenerateLoop(): Promise<GenerateResult>;
|
|
21
|
+
export { MAX_PLAN_ITERATIONS, MAX_REFINE_ITERATIONS };
|
|
22
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqF,QAAQ,EAAE,MAAM,WAAW,CAAC;AACxH,OAAO,EAAW,cAAc,EAAE,MAAM,WAAW,CAAC;AASpD,QAAA,MAAM,mBAAmB,IAAI,CAAC;AAC9B,QAAA,MAAM,qBAAqB,IAAI,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAqBD,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CA+H7D;AAGD,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC,CAoG/D;AAGD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC"}
|