xibecode 1.0.2 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/chat.d.ts +0 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +10 -7
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +5 -3
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/diagnostics.js +1 -1
- package/dist/commands/diagnostics.js.map +1 -1
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/resume.js +1 -1
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run-pr.d.ts.map +1 -1
- package/dist/commands/run-pr.js +13 -10
- package/dist/commands/run-pr.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +17 -14
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +3 -2
- package/dist/commands/skills.js.map +1 -1
- package/dist/components/AssistantMarkdown.js +1 -1
- package/dist/components/AssistantMarkdown.js.map +1 -1
- package/dist/index.js +2 -39
- package/dist/index.js.map +1 -1
- package/dist/ui/claude-style-chat.d.ts.map +1 -1
- package/dist/ui/claude-style-chat.js +15 -11
- package/dist/ui/claude-style-chat.js.map +1 -1
- package/dist/utils/built-in-skills-dir.d.ts +7 -0
- package/dist/utils/built-in-skills-dir.d.ts.map +1 -0
- package/dist/utils/built-in-skills-dir.js +11 -0
- package/dist/utils/built-in-skills-dir.js.map +1 -0
- package/dist/utils/config.d.ts +2 -119
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +3 -88
- package/dist/utils/config.js.map +1 -1
- package/package.json +11 -26
- package/dist/commands/punycode.d.ts +0 -5
- package/dist/commands/punycode.d.ts.map +0 -1
- package/dist/commands/punycode.js +0 -48
- package/dist/commands/punycode.js.map +0 -1
- package/dist/commands/tui.d.ts +0 -9
- package/dist/commands/tui.d.ts.map +0 -1
- package/dist/commands/tui.js +0 -83
- package/dist/commands/tui.js.map +0 -1
- package/dist/core/agent-tool-policies.d.ts +0 -5
- package/dist/core/agent-tool-policies.d.ts.map +0 -1
- package/dist/core/agent-tool-policies.js +0 -18
- package/dist/core/agent-tool-policies.js.map +0 -1
- package/dist/core/agent.d.ts +0 -181
- package/dist/core/agent.d.ts.map +0 -1
- package/dist/core/agent.js +0 -1777
- package/dist/core/agent.js.map +0 -1
- package/dist/core/background-agent.d.ts +0 -23
- package/dist/core/background-agent.d.ts.map +0 -1
- package/dist/core/background-agent.js +0 -175
- package/dist/core/background-agent.js.map +0 -1
- package/dist/core/code-graph.d.ts +0 -18
- package/dist/core/code-graph.d.ts.map +0 -1
- package/dist/core/code-graph.js +0 -105
- package/dist/core/code-graph.js.map +0 -1
- package/dist/core/conflict-solver.d.ts +0 -26
- package/dist/core/conflict-solver.d.ts.map +0 -1
- package/dist/core/conflict-solver.js +0 -108
- package/dist/core/conflict-solver.js.map +0 -1
- package/dist/core/context-compactor.d.ts +0 -10
- package/dist/core/context-compactor.d.ts.map +0 -1
- package/dist/core/context-compactor.js +0 -158
- package/dist/core/context-compactor.js.map +0 -1
- package/dist/core/context-pruner.d.ts +0 -19
- package/dist/core/context-pruner.d.ts.map +0 -1
- package/dist/core/context-pruner.js +0 -103
- package/dist/core/context-pruner.js.map +0 -1
- package/dist/core/context.d.ts +0 -82
- package/dist/core/context.d.ts.map +0 -1
- package/dist/core/context.js +0 -273
- package/dist/core/context.js.map +0 -1
- package/dist/core/conversation-recovery.d.ts +0 -9
- package/dist/core/conversation-recovery.d.ts.map +0 -1
- package/dist/core/conversation-recovery.js +0 -15
- package/dist/core/conversation-recovery.js.map +0 -1
- package/dist/core/debug-workflow.d.ts +0 -9
- package/dist/core/debug-workflow.d.ts.map +0 -1
- package/dist/core/debug-workflow.js +0 -19
- package/dist/core/debug-workflow.js.map +0 -1
- package/dist/core/docs-scraper.d.ts +0 -40
- package/dist/core/docs-scraper.d.ts.map +0 -1
- package/dist/core/docs-scraper.js +0 -386
- package/dist/core/docs-scraper.js.map +0 -1
- package/dist/core/editor.d.ts +0 -87
- package/dist/core/editor.d.ts.map +0 -1
- package/dist/core/editor.js +0 -377
- package/dist/core/editor.js.map +0 -1
- package/dist/core/export.d.ts +0 -11
- package/dist/core/export.d.ts.map +0 -1
- package/dist/core/export.js +0 -54
- package/dist/core/export.js.map +0 -1
- package/dist/core/history-manager.d.ts +0 -75
- package/dist/core/history-manager.d.ts.map +0 -1
- package/dist/core/history-manager.js +0 -146
- package/dist/core/history-manager.js.map +0 -1
- package/dist/core/marketplace-client.d.ts +0 -52
- package/dist/core/marketplace-client.d.ts.map +0 -1
- package/dist/core/marketplace-client.js +0 -71
- package/dist/core/marketplace-client.js.map +0 -1
- package/dist/core/mcp/mcp-config.d.ts +0 -10
- package/dist/core/mcp/mcp-config.d.ts.map +0 -1
- package/dist/core/mcp/mcp-config.js +0 -70
- package/dist/core/mcp/mcp-config.js.map +0 -1
- package/dist/core/mcp/mcp-policy.d.ts +0 -17
- package/dist/core/mcp/mcp-policy.d.ts.map +0 -1
- package/dist/core/mcp/mcp-policy.js +0 -56
- package/dist/core/mcp/mcp-policy.js.map +0 -1
- package/dist/core/mcp/oauth-flow.d.ts +0 -30
- package/dist/core/mcp/oauth-flow.d.ts.map +0 -1
- package/dist/core/mcp/oauth-flow.js +0 -230
- package/dist/core/mcp/oauth-flow.js.map +0 -1
- package/dist/core/mcp/oauth-store.d.ts +0 -13
- package/dist/core/mcp/oauth-store.d.ts.map +0 -1
- package/dist/core/mcp/oauth-store.js +0 -68
- package/dist/core/mcp/oauth-store.js.map +0 -1
- package/dist/core/mcp/resolve-mcp-servers.d.ts +0 -16
- package/dist/core/mcp/resolve-mcp-servers.d.ts.map +0 -1
- package/dist/core/mcp/resolve-mcp-servers.js +0 -83
- package/dist/core/mcp/resolve-mcp-servers.js.map +0 -1
- package/dist/core/mcp-client.d.ts +0 -99
- package/dist/core/mcp-client.d.ts.map +0 -1
- package/dist/core/mcp-client.js +0 -315
- package/dist/core/mcp-client.js.map +0 -1
- package/dist/core/memory-promotions.d.ts +0 -15
- package/dist/core/memory-promotions.d.ts.map +0 -1
- package/dist/core/memory-promotions.js +0 -38
- package/dist/core/memory-promotions.js.map +0 -1
- package/dist/core/memory.d.ts +0 -32
- package/dist/core/memory.d.ts.map +0 -1
- package/dist/core/memory.js +0 -121
- package/dist/core/memory.js.map +0 -1
- package/dist/core/modes.d.ts +0 -432
- package/dist/core/modes.d.ts.map +0 -1
- package/dist/core/modes.js +0 -1088
- package/dist/core/modes.js.map +0 -1
- package/dist/core/pattern-miner.d.ts +0 -43
- package/dist/core/pattern-miner.d.ts.map +0 -1
- package/dist/core/pattern-miner.js +0 -123
- package/dist/core/pattern-miner.js.map +0 -1
- package/dist/core/permission-store.d.ts +0 -15
- package/dist/core/permission-store.d.ts.map +0 -1
- package/dist/core/permission-store.js +0 -30
- package/dist/core/permission-store.js.map +0 -1
- package/dist/core/permissions.d.ts +0 -33
- package/dist/core/permissions.d.ts.map +0 -1
- package/dist/core/permissions.js +0 -141
- package/dist/core/permissions.js.map +0 -1
- package/dist/core/plan-artifacts.d.ts +0 -10
- package/dist/core/plan-artifacts.d.ts.map +0 -1
- package/dist/core/plan-artifacts.js +0 -60
- package/dist/core/plan-artifacts.js.map +0 -1
- package/dist/core/plan-session.d.ts +0 -25
- package/dist/core/plan-session.d.ts.map +0 -1
- package/dist/core/plan-session.js +0 -99
- package/dist/core/plan-session.js.map +0 -1
- package/dist/core/planMode.d.ts +0 -51
- package/dist/core/planMode.d.ts.map +0 -1
- package/dist/core/planMode.js +0 -245
- package/dist/core/planMode.js.map +0 -1
- package/dist/core/plugins.d.ts +0 -96
- package/dist/core/plugins.d.ts.map +0 -1
- package/dist/core/plugins.js +0 -202
- package/dist/core/plugins.js.map +0 -1
- package/dist/core/session-bridge.d.ts +0 -128
- package/dist/core/session-bridge.d.ts.map +0 -1
- package/dist/core/session-bridge.js +0 -328
- package/dist/core/session-bridge.js.map +0 -1
- package/dist/core/session-manager.d.ts +0 -80
- package/dist/core/session-manager.d.ts.map +0 -1
- package/dist/core/session-manager.js +0 -166
- package/dist/core/session-manager.js.map +0 -1
- package/dist/core/session-memory.d.ts +0 -45
- package/dist/core/session-memory.d.ts.map +0 -1
- package/dist/core/session-memory.js +0 -103
- package/dist/core/session-memory.js.map +0 -1
- package/dist/core/skill-selection.d.ts +0 -36
- package/dist/core/skill-selection.d.ts.map +0 -1
- package/dist/core/skill-selection.js +0 -172
- package/dist/core/skill-selection.js.map +0 -1
- package/dist/core/skills-sh-client.d.ts +0 -19
- package/dist/core/skills-sh-client.d.ts.map +0 -1
- package/dist/core/skills-sh-client.js +0 -75
- package/dist/core/skills-sh-client.js.map +0 -1
- package/dist/core/skills.d.ts +0 -97
- package/dist/core/skills.d.ts.map +0 -1
- package/dist/core/skills.js +0 -339
- package/dist/core/skills.js.map +0 -1
- package/dist/core/swarm.d.ts +0 -34
- package/dist/core/swarm.d.ts.map +0 -1
- package/dist/core/swarm.js +0 -111
- package/dist/core/swarm.js.map +0 -1
- package/dist/core/task-status.d.ts +0 -13
- package/dist/core/task-status.d.ts.map +0 -1
- package/dist/core/task-status.js +0 -17
- package/dist/core/task-status.js.map +0 -1
- package/dist/core/tool-orchestrator.d.ts +0 -30
- package/dist/core/tool-orchestrator.d.ts.map +0 -1
- package/dist/core/tool-orchestrator.js +0 -89
- package/dist/core/tool-orchestrator.js.map +0 -1
- package/dist/core/tools.d.ts +0 -462
- package/dist/core/tools.d.ts.map +0 -1
- package/dist/core/tools.js +0 -2916
- package/dist/core/tools.js.map +0 -1
- package/dist/core/transcript-cleanup.d.ts +0 -8
- package/dist/core/transcript-cleanup.d.ts.map +0 -1
- package/dist/core/transcript-cleanup.js +0 -52
- package/dist/core/transcript-cleanup.js.map +0 -1
- package/dist/core/visual-feedback.d.ts +0 -20
- package/dist/core/visual-feedback.d.ts.map +0 -1
- package/dist/core/visual-feedback.js +0 -117
- package/dist/core/visual-feedback.js.map +0 -1
- package/dist/tools/browser.d.ts +0 -120
- package/dist/tools/browser.d.ts.map +0 -1
- package/dist/tools/browser.js +0 -439
- package/dist/tools/browser.js.map +0 -1
- package/dist/tools/test-generator.d.ts +0 -157
- package/dist/tools/test-generator.d.ts.map +0 -1
- package/dist/tools/test-generator.js +0 -893
- package/dist/tools/test-generator.js.map +0 -1
- package/dist/tui/InkApp.d.ts +0 -21
- package/dist/tui/InkApp.d.ts.map +0 -1
- package/dist/tui/InkApp.js +0 -146
- package/dist/tui/InkApp.js.map +0 -1
- package/dist/tui/MarkdownMessage.d.ts +0 -16
- package/dist/tui/MarkdownMessage.d.ts.map +0 -1
- package/dist/tui/MarkdownMessage.js +0 -63
- package/dist/tui/MarkdownMessage.js.map +0 -1
- package/dist/tui/blessed-chat.d.ts +0 -9
- package/dist/tui/blessed-chat.d.ts.map +0 -1
- package/dist/tui/blessed-chat.js +0 -887
- package/dist/tui/blessed-chat.js.map +0 -1
- package/dist/tui/markdown-to-blessed.d.ts +0 -6
- package/dist/tui/markdown-to-blessed.d.ts.map +0 -1
- package/dist/tui/markdown-to-blessed.js +0 -26
- package/dist/tui/markdown-to-blessed.js.map +0 -1
- package/dist/ui/ink/App.d.ts +0 -25
- package/dist/ui/ink/App.d.ts.map +0 -1
- package/dist/ui/ink/App.js +0 -372
- package/dist/ui/ink/App.js.map +0 -1
- package/dist/utils/at-references.d.ts +0 -14
- package/dist/utils/at-references.d.ts.map +0 -1
- package/dist/utils/at-references.js +0 -47
- package/dist/utils/at-references.js.map +0 -1
- package/dist/utils/auto-memory.d.ts +0 -24
- package/dist/utils/auto-memory.d.ts.map +0 -1
- package/dist/utils/auto-memory.js +0 -153
- package/dist/utils/auto-memory.js.map +0 -1
- package/dist/utils/git.d.ts +0 -89
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -444
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/mcp-servers-file.d.ts +0 -46
- package/dist/utils/mcp-servers-file.d.ts.map +0 -1
- package/dist/utils/mcp-servers-file.js +0 -212
- package/dist/utils/mcp-servers-file.js.map +0 -1
- package/dist/utils/safety.d.ts +0 -60
- package/dist/utils/safety.d.ts.map +0 -1
- package/dist/utils/safety.js +0 -254
- package/dist/utils/safety.js.map +0 -1
- package/dist/utils/smithery.d.ts +0 -25
- package/dist/utils/smithery.d.ts.map +0 -1
- package/dist/utils/smithery.js +0 -50
- package/dist/utils/smithery.js.map +0 -1
- package/dist/utils/testRunner.d.ts +0 -44
- package/dist/utils/testRunner.d.ts.map +0 -1
- package/dist/utils/testRunner.js +0 -270
- package/dist/utils/testRunner.js.map +0 -1
- package/dist/webui/server.d.ts +0 -99
- package/dist/webui/server.d.ts.map +0 -1
- package/dist/webui/server.js +0 -2619
- package/dist/webui/server.js.map +0 -1
- package/webui-dist/assets/index-CSla6Lzy.css +0 -32
- package/webui-dist/assets/index-G_Z4gzPy.js +0 -457
- package/webui-dist/assets/index-G_Z4gzPy.js.map +0 -1
- package/webui-dist/assets/xterm-Da5jL1MD.js +0 -10
- package/webui-dist/assets/xterm-Da5jL1MD.js.map +0 -1
- package/webui-dist/assets/xterm-addon-fit-CMeqLIvm.js +0 -2
- package/webui-dist/assets/xterm-addon-fit-CMeqLIvm.js.map +0 -1
- package/webui-dist/assets/xterm-addon-web-links-D6m8jNVE.js +0 -2
- package/webui-dist/assets/xterm-addon-web-links-D6m8jNVE.js.map +0 -1
- package/webui-dist/index.html +0 -15
package/dist/core/modes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/core/modes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export interface CodeChunk {
|
|
2
|
-
id: string;
|
|
3
|
-
filePath: string;
|
|
4
|
-
startLine: number;
|
|
5
|
-
endLine: number;
|
|
6
|
-
type: 'function' | 'class' | 'interface' | 'variable';
|
|
7
|
-
name: string;
|
|
8
|
-
content: string;
|
|
9
|
-
signature: string;
|
|
10
|
-
}
|
|
11
|
-
export interface PatternCluster {
|
|
12
|
-
id: string;
|
|
13
|
-
description: string;
|
|
14
|
-
chunks: CodeChunk[];
|
|
15
|
-
frequency: number;
|
|
16
|
-
}
|
|
17
|
-
export declare class PatternMiner {
|
|
18
|
-
private projectRoot;
|
|
19
|
-
constructor(projectRoot?: string);
|
|
20
|
-
/**
|
|
21
|
-
* Main entry point: Scans the project and returns pattern clusters
|
|
22
|
-
*/
|
|
23
|
-
mine(excludePatterns?: string[]): Promise<PatternCluster[]>;
|
|
24
|
-
/**
|
|
25
|
-
* Find all relevant TypeScript files
|
|
26
|
-
*/
|
|
27
|
-
private scanFiles;
|
|
28
|
-
/**
|
|
29
|
-
* Parse file and extract interesting AST nodes
|
|
30
|
-
*/
|
|
31
|
-
private extractChunks;
|
|
32
|
-
private createChunk;
|
|
33
|
-
/**
|
|
34
|
-
* Generates a "structural fingerprint" used to find patterns.
|
|
35
|
-
* It strips names, literals, and comments, keeping only keywords and structure.
|
|
36
|
-
*/
|
|
37
|
-
private generateStructuralSignature;
|
|
38
|
-
/**
|
|
39
|
-
* Groups chunks by similarity
|
|
40
|
-
*/
|
|
41
|
-
private clusterChunks;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=pattern-miner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-miner.d.ts","sourceRoot":"","sources":["../../src/core/pattern-miner.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAsB;IAI/C;;OAEG;IACG,IAAI,CAAC,eAAe,GAAE,MAAM,EAAyE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAevI;;OAEG;YACW,SAAS;IAQvB;;OAEG;YACW,aAAa;IAgC3B,OAAO,CAAC,WAAW;IAiBnB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAcnC;;OAEG;IACH,OAAO,CAAC,aAAa;CA+BxB"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import * as ts from 'typescript';
|
|
2
|
-
import * as fs from 'fs/promises';
|
|
3
|
-
import glob from 'fast-glob';
|
|
4
|
-
import { createHash } from 'crypto';
|
|
5
|
-
export class PatternMiner {
|
|
6
|
-
projectRoot;
|
|
7
|
-
constructor(projectRoot = process.cwd()) {
|
|
8
|
-
this.projectRoot = projectRoot;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Main entry point: Scans the project and returns pattern clusters
|
|
12
|
-
*/
|
|
13
|
-
async mine(excludePatterns = ['**/node_modules/**', '**/dist/**', '**/*.test.ts', '**/*.spec.ts']) {
|
|
14
|
-
const files = await this.scanFiles(excludePatterns);
|
|
15
|
-
const chunks = [];
|
|
16
|
-
console.log(`Scanning ${files.length} files for patterns...`);
|
|
17
|
-
for (const file of files) {
|
|
18
|
-
const fileChunks = await this.extractChunks(file);
|
|
19
|
-
chunks.push(...fileChunks);
|
|
20
|
-
}
|
|
21
|
-
console.log(`Extracted ${chunks.length} code chunks. Analyzing similarities...`);
|
|
22
|
-
return this.clusterChunks(chunks);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Find all relevant TypeScript files
|
|
26
|
-
*/
|
|
27
|
-
async scanFiles(excludes) {
|
|
28
|
-
return glob(['src/**/*.ts', 'src/**/*.tsx'], {
|
|
29
|
-
cwd: this.projectRoot,
|
|
30
|
-
ignore: excludes,
|
|
31
|
-
absolute: true
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Parse file and extract interesting AST nodes
|
|
36
|
-
*/
|
|
37
|
-
async extractChunks(filePath) {
|
|
38
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
39
|
-
const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
|
|
40
|
-
const chunks = [];
|
|
41
|
-
const visit = (node) => {
|
|
42
|
-
// Function Declarations
|
|
43
|
-
if (ts.isFunctionDeclaration(node) && node.name) {
|
|
44
|
-
chunks.push(this.createChunk(node, sourceFile, filePath, 'function', node.name.text));
|
|
45
|
-
}
|
|
46
|
-
// Class Declarations
|
|
47
|
-
else if (ts.isClassDeclaration(node) && node.name) {
|
|
48
|
-
chunks.push(this.createChunk(node, sourceFile, filePath, 'class', node.name.text));
|
|
49
|
-
}
|
|
50
|
-
// Interface Declarations
|
|
51
|
-
else if (ts.isInterfaceDeclaration(node) && node.name) {
|
|
52
|
-
chunks.push(this.createChunk(node, sourceFile, filePath, 'interface', node.name.text));
|
|
53
|
-
}
|
|
54
|
-
ts.forEachChild(node, visit);
|
|
55
|
-
};
|
|
56
|
-
visit(sourceFile);
|
|
57
|
-
return chunks;
|
|
58
|
-
}
|
|
59
|
-
createChunk(node, sourceFile, filePath, type, name) {
|
|
60
|
-
const start = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
61
|
-
const end = sourceFile.getLineAndCharacterOfPosition(node.getEnd());
|
|
62
|
-
const content = node.getText(sourceFile);
|
|
63
|
-
return {
|
|
64
|
-
id: createHash('md5').update(`${filePath}:${start.line}:${name}`).digest('hex'),
|
|
65
|
-
filePath,
|
|
66
|
-
startLine: start.line + 1,
|
|
67
|
-
endLine: end.line + 1,
|
|
68
|
-
type,
|
|
69
|
-
name,
|
|
70
|
-
content,
|
|
71
|
-
signature: this.generateStructuralSignature(node) // The magic sauce for similarity
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Generates a "structural fingerprint" used to find patterns.
|
|
76
|
-
* It strips names, literals, and comments, keeping only keywords and structure.
|
|
77
|
-
*/
|
|
78
|
-
generateStructuralSignature(node) {
|
|
79
|
-
// Simple structural hashing: walk the tree and record syntax kinds
|
|
80
|
-
const tokens = [];
|
|
81
|
-
const visit = (n) => {
|
|
82
|
-
tokens.push(n.kind);
|
|
83
|
-
ts.forEachChild(n, visit);
|
|
84
|
-
};
|
|
85
|
-
visit(node);
|
|
86
|
-
// Turn the array of SyntaxKinds into a string hash/string
|
|
87
|
-
// This is a naive implementation;
|
|
88
|
-
// A better one would normalize identifiers to 'ID' but keep structure.
|
|
89
|
-
return tokens.join(',');
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Groups chunks by similarity
|
|
93
|
-
*/
|
|
94
|
-
clusterChunks(chunks) {
|
|
95
|
-
const clusters = new Map();
|
|
96
|
-
// Exact Structural Match Clustering
|
|
97
|
-
// TODO: Implement fuzzy matching (Jaccard) for V2
|
|
98
|
-
for (const chunk of chunks) {
|
|
99
|
-
// We ignore very small chunks to avoid noise
|
|
100
|
-
if (chunk.content.length < 50)
|
|
101
|
-
continue;
|
|
102
|
-
const key = `${chunk.type}:${chunk.signature}`;
|
|
103
|
-
if (!clusters.has(key)) {
|
|
104
|
-
clusters.set(key, []);
|
|
105
|
-
}
|
|
106
|
-
clusters.get(key).push(chunk);
|
|
107
|
-
}
|
|
108
|
-
// Filter for meaningful clusters (e.g., duplicates > 1)
|
|
109
|
-
const results = [];
|
|
110
|
-
clusters.forEach((clusterChunks, key) => {
|
|
111
|
-
if (clusterChunks.length >= 2) {
|
|
112
|
-
results.push({
|
|
113
|
-
id: createHash('md5').update(key).digest('hex'),
|
|
114
|
-
description: `Repeated ${clusterChunks[0].type} pattern found in ${clusterChunks.length} locations`,
|
|
115
|
-
chunks: clusterChunks,
|
|
116
|
-
frequency: clusterChunks.length
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
return results.sort((a, b) => b.frequency - a.frequency);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=pattern-miner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-miner.js","sourceRoot":"","sources":["../../src/core/pattern-miner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PermissionMode } from './permissions.js';
|
|
2
|
-
export interface PersistedPermissionState {
|
|
3
|
-
permissionMode: PermissionMode;
|
|
4
|
-
sessionApprovals: string[];
|
|
5
|
-
directoryApprovals: string[];
|
|
6
|
-
updatedAt: string;
|
|
7
|
-
}
|
|
8
|
-
export declare class PermissionStore {
|
|
9
|
-
private readonly workingDir;
|
|
10
|
-
private readonly storePath;
|
|
11
|
-
constructor(workingDir?: string);
|
|
12
|
-
load(): Promise<PersistedPermissionState | null>;
|
|
13
|
-
save(state: PersistedPermissionState): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=permission-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission-store.d.ts","sourceRoot":"","sources":["../../src/core/permission-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEN,UAAU,GAAE,MAAsB;IAIzD,IAAI,IAAI,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAchD,IAAI,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs/promises';
|
|
2
|
-
import { existsSync } from 'fs';
|
|
3
|
-
import * as path from 'path';
|
|
4
|
-
export class PermissionStore {
|
|
5
|
-
workingDir;
|
|
6
|
-
storePath;
|
|
7
|
-
constructor(workingDir = process.cwd()) {
|
|
8
|
-
this.workingDir = workingDir;
|
|
9
|
-
this.storePath = path.join(workingDir, '.xibecode', 'permission-state.json');
|
|
10
|
-
}
|
|
11
|
-
async load() {
|
|
12
|
-
if (!existsSync(this.storePath)) {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
try {
|
|
16
|
-
const raw = await fs.readFile(this.storePath, 'utf8');
|
|
17
|
-
const parsed = JSON.parse(raw);
|
|
18
|
-
return parsed;
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
async save(state) {
|
|
25
|
-
const dir = path.dirname(this.storePath);
|
|
26
|
-
await fs.mkdir(dir, { recursive: true });
|
|
27
|
-
await fs.writeFile(this.storePath, JSON.stringify(state, null, 2), 'utf8');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=permission-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission-store.js","sourceRoot":"","sources":["../../src/core/permission-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAU7B,MAAM,OAAO,eAAe;IAGG;IAFZ,SAAS,CAAS;IAEnC,YAA6B,aAAqB,OAAO,CAAC,GAAG,EAAE;QAAlC,eAAU,GAAV,UAAU,CAAwB;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC;YAC3D,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAA+B;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;CACF"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { AgentMode } from './modes.js';
|
|
2
|
-
export type PermissionMode = 'default' | 'plan' | 'acceptEdits' | 'dontAsk';
|
|
3
|
-
export type ApprovalScope = 'single' | 'session' | 'directory';
|
|
4
|
-
export interface ToolPermissionContext {
|
|
5
|
-
permissionMode: PermissionMode;
|
|
6
|
-
mode: AgentMode;
|
|
7
|
-
sessionApprovals: Set<string>;
|
|
8
|
-
directoryApprovals: Set<string>;
|
|
9
|
-
}
|
|
10
|
-
export interface ToolPermissionDecision {
|
|
11
|
-
allowed: boolean;
|
|
12
|
-
requiresApproval: boolean;
|
|
13
|
-
reason?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ModeTransitionDecision {
|
|
16
|
-
approved: boolean;
|
|
17
|
-
requiresConfirmation: boolean;
|
|
18
|
-
reason?: string;
|
|
19
|
-
}
|
|
20
|
-
export declare class PermissionManager {
|
|
21
|
-
private context;
|
|
22
|
-
constructor(initialMode: AgentMode);
|
|
23
|
-
getContext(): ToolPermissionContext;
|
|
24
|
-
setMode(mode: AgentMode): void;
|
|
25
|
-
setPermissionMode(permissionMode: PermissionMode): void;
|
|
26
|
-
clearSessionApprovals(): void;
|
|
27
|
-
evaluateModeTransition(fromMode: AgentMode, toMode: AgentMode): ModeTransitionDecision;
|
|
28
|
-
evaluateToolExecution(input: Record<string, any>, toolName: string, category?: string): ToolPermissionDecision;
|
|
29
|
-
grantToolApproval(toolName: string, category: string, scope: ApprovalScope, inputPath?: string): void;
|
|
30
|
-
private hasDirectoryApprovalFor;
|
|
31
|
-
private getDefaultPermissionMode;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/core/permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAQD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAwB;gBAE3B,WAAW,EAAE,SAAS;IASlC,UAAU,IAAI,qBAAqB;IAInC,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAQ9B,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAOvD,qBAAqB,IAAI,IAAI;IAK7B,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,sBAAsB;IA+BtF,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,sBAAsB;IA0D9G,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAarG,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,wBAAwB;CAOjC"}
|
package/dist/core/permissions.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import * as path from 'path';
|
|
2
|
-
import { MODE_CONFIG } from './modes.js';
|
|
3
|
-
const HIGH_RISK_CATEGORIES = new Set(['write_fs', 'git_mutation', 'shell_command']);
|
|
4
|
-
function normalizeDirectory(dirPath) {
|
|
5
|
-
return path.resolve(dirPath);
|
|
6
|
-
}
|
|
7
|
-
export class PermissionManager {
|
|
8
|
-
context;
|
|
9
|
-
constructor(initialMode) {
|
|
10
|
-
this.context = {
|
|
11
|
-
permissionMode: this.getDefaultPermissionMode(initialMode),
|
|
12
|
-
mode: initialMode,
|
|
13
|
-
sessionApprovals: new Set(),
|
|
14
|
-
directoryApprovals: new Set(),
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
getContext() {
|
|
18
|
-
return this.context;
|
|
19
|
-
}
|
|
20
|
-
setMode(mode) {
|
|
21
|
-
this.context = {
|
|
22
|
-
...this.context,
|
|
23
|
-
mode,
|
|
24
|
-
permissionMode: this.getDefaultPermissionMode(mode),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
setPermissionMode(permissionMode) {
|
|
28
|
-
this.context = {
|
|
29
|
-
...this.context,
|
|
30
|
-
permissionMode,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
clearSessionApprovals() {
|
|
34
|
-
this.context.sessionApprovals.clear();
|
|
35
|
-
this.context.directoryApprovals.clear();
|
|
36
|
-
}
|
|
37
|
-
evaluateModeTransition(fromMode, toMode) {
|
|
38
|
-
const fromConfig = MODE_CONFIG[fromMode];
|
|
39
|
-
const toConfig = MODE_CONFIG[toMode];
|
|
40
|
-
if (this.context.permissionMode === 'dontAsk') {
|
|
41
|
-
return { approved: true, requiresConfirmation: false };
|
|
42
|
-
}
|
|
43
|
-
if (this.context.permissionMode === 'acceptEdits') {
|
|
44
|
-
return { approved: true, requiresConfirmation: false };
|
|
45
|
-
}
|
|
46
|
-
if (toConfig.requiresConfirmation) {
|
|
47
|
-
return {
|
|
48
|
-
approved: false,
|
|
49
|
-
requiresConfirmation: true,
|
|
50
|
-
reason: `${toMode} mode requires confirmation`,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
if (!fromConfig.canModify && toConfig.canModify) {
|
|
54
|
-
return {
|
|
55
|
-
approved: false,
|
|
56
|
-
requiresConfirmation: true,
|
|
57
|
-
reason: 'Escalating to write-capable mode requires confirmation',
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
return { approved: true, requiresConfirmation: false };
|
|
61
|
-
}
|
|
62
|
-
evaluateToolExecution(input, toolName, category) {
|
|
63
|
-
if (!category) {
|
|
64
|
-
if (this.context.permissionMode === 'dontAsk') {
|
|
65
|
-
return { allowed: true, requiresApproval: false };
|
|
66
|
-
}
|
|
67
|
-
if (input.confirm === true || input.approved === true) {
|
|
68
|
-
return { allowed: true, requiresApproval: false };
|
|
69
|
-
}
|
|
70
|
-
return {
|
|
71
|
-
allowed: false,
|
|
72
|
-
requiresApproval: true,
|
|
73
|
-
reason: `Tool '${toolName}' has an unknown risk category and requires explicit approval. ` +
|
|
74
|
-
`Re-run with { "confirm": true } to approve once.`,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
if (this.context.permissionMode === 'dontAsk') {
|
|
78
|
-
return { allowed: true, requiresApproval: false };
|
|
79
|
-
}
|
|
80
|
-
if (this.context.permissionMode === 'plan' && HIGH_RISK_CATEGORIES.has(category)) {
|
|
81
|
-
return {
|
|
82
|
-
allowed: false,
|
|
83
|
-
requiresApproval: false,
|
|
84
|
-
reason: `Permission mode '${this.context.permissionMode}' blocks ${category} operations`,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
if (!HIGH_RISK_CATEGORIES.has(category)) {
|
|
88
|
-
return { allowed: true, requiresApproval: false };
|
|
89
|
-
}
|
|
90
|
-
if (this.context.permissionMode === 'acceptEdits') {
|
|
91
|
-
return { allowed: true, requiresApproval: false };
|
|
92
|
-
}
|
|
93
|
-
if (input.confirm === true || input.approved === true) {
|
|
94
|
-
return { allowed: true, requiresApproval: false };
|
|
95
|
-
}
|
|
96
|
-
const sessionKey = `${toolName}:${category}`;
|
|
97
|
-
if (this.context.sessionApprovals.has(sessionKey)) {
|
|
98
|
-
return { allowed: true, requiresApproval: false };
|
|
99
|
-
}
|
|
100
|
-
const inputPath = typeof input.path === 'string' ? normalizeDirectory(input.path) : null;
|
|
101
|
-
if (inputPath && this.hasDirectoryApprovalFor(inputPath)) {
|
|
102
|
-
return { allowed: true, requiresApproval: false };
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
allowed: false,
|
|
106
|
-
requiresApproval: true,
|
|
107
|
-
reason: `Tool '${toolName}' (${category}) requires explicit approval. Re-run with { \"confirm\": true } to approve once, or include { \"approval_scope\": \"session\" | \"directory\" }.`,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
grantToolApproval(toolName, category, scope, inputPath) {
|
|
111
|
-
if (scope === 'single')
|
|
112
|
-
return;
|
|
113
|
-
if (scope === 'session') {
|
|
114
|
-
this.context.sessionApprovals.add(`${toolName}:${category}`);
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
if (scope === 'directory' && inputPath) {
|
|
118
|
-
this.context.directoryApprovals.add(normalizeDirectory(inputPath));
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
hasDirectoryApprovalFor(inputPath) {
|
|
122
|
-
for (const approvedDir of this.context.directoryApprovals) {
|
|
123
|
-
if (inputPath.startsWith(approvedDir)) {
|
|
124
|
-
return true;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
getDefaultPermissionMode(mode) {
|
|
130
|
-
if (mode === 'plan')
|
|
131
|
-
return 'plan';
|
|
132
|
-
if (mode === 'agent')
|
|
133
|
-
return 'acceptEdits';
|
|
134
|
-
if (mode === 'engineer')
|
|
135
|
-
return 'default';
|
|
136
|
-
if (!MODE_CONFIG[mode].canModify)
|
|
137
|
-
return 'plan';
|
|
138
|
-
return 'default';
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/core/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface PersistedPlanArtifact {
|
|
2
|
-
artifactPath: string;
|
|
3
|
-
compatibilityPath: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function persistPlanArtifact(workingDir: string, sessionId: string, request: string, planContent: string): Promise<PersistedPlanArtifact>;
|
|
6
|
-
export declare function loadLatestPlanArtifact(workingDir: string): Promise<{
|
|
7
|
-
path: string;
|
|
8
|
-
content: string;
|
|
9
|
-
} | null>;
|
|
10
|
-
//# sourceMappingURL=plan-artifacts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-artifacts.d.ts","sourceRoot":"","sources":["../../src/core/plan-artifacts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC,CAYhC;AAED,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAiClH"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs/promises';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
export async function persistPlanArtifact(workingDir, sessionId, request, planContent) {
|
|
4
|
-
const plansDir = path.join(workingDir, '.xibecode', 'plans');
|
|
5
|
-
await fs.mkdir(plansDir, { recursive: true });
|
|
6
|
-
const artifactPath = path.join(plansDir, `${sessionId}.md`);
|
|
7
|
-
const compatibilityPath = path.join(workingDir, 'implementations.md');
|
|
8
|
-
const rendered = renderPlanArtifact(sessionId, request, planContent);
|
|
9
|
-
await fs.writeFile(artifactPath, rendered, 'utf8');
|
|
10
|
-
await fs.writeFile(compatibilityPath, rendered, 'utf8');
|
|
11
|
-
return { artifactPath, compatibilityPath };
|
|
12
|
-
}
|
|
13
|
-
export async function loadLatestPlanArtifact(workingDir) {
|
|
14
|
-
const plansDir = path.join(workingDir, '.xibecode', 'plans');
|
|
15
|
-
let files;
|
|
16
|
-
try {
|
|
17
|
-
files = await fs.readdir(plansDir);
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
const markdownFiles = files.filter((file) => file.endsWith('.md'));
|
|
23
|
-
if (markdownFiles.length === 0)
|
|
24
|
-
return null;
|
|
25
|
-
// Bounded concurrency (chunks of 20) to prevent EMFILE errors while speeding up IO
|
|
26
|
-
const CONCURRENCY_LIMIT = 20;
|
|
27
|
-
const withStats = [];
|
|
28
|
-
for (let i = 0; i < markdownFiles.length; i += CONCURRENCY_LIMIT) {
|
|
29
|
-
const chunk = markdownFiles.slice(i, i + CONCURRENCY_LIMIT);
|
|
30
|
-
const results = await Promise.all(chunk.map(async (file) => {
|
|
31
|
-
const fullPath = path.join(plansDir, file);
|
|
32
|
-
const stat = await fs.stat(fullPath);
|
|
33
|
-
return { fullPath, mtimeMs: stat.mtimeMs };
|
|
34
|
-
}));
|
|
35
|
-
withStats.push(...results);
|
|
36
|
-
}
|
|
37
|
-
withStats.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
38
|
-
const latestPath = withStats[0].fullPath;
|
|
39
|
-
const content = await fs.readFile(latestPath, 'utf8');
|
|
40
|
-
return { path: latestPath, content };
|
|
41
|
-
}
|
|
42
|
-
function renderPlanArtifact(sessionId, request, planContent) {
|
|
43
|
-
const now = new Date().toISOString();
|
|
44
|
-
return [
|
|
45
|
-
`# Implementation Plan`,
|
|
46
|
-
``,
|
|
47
|
-
`- Session: ${sessionId}`,
|
|
48
|
-
`- Generated: ${now}`,
|
|
49
|
-
``,
|
|
50
|
-
`## Request`,
|
|
51
|
-
``,
|
|
52
|
-
request.trim(),
|
|
53
|
-
``,
|
|
54
|
-
`## Plan`,
|
|
55
|
-
``,
|
|
56
|
-
planContent.trim(),
|
|
57
|
-
``,
|
|
58
|
-
].join('\n');
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=plan-artifacts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-artifacts.js","sourceRoot":"","sources":["../../src/core/plan-artifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export type PlanSessionStatus = 'drafting' | 'awaiting_answers' | 'awaiting_approval' | 'approved' | 'rejected' | 'executing' | 'completed';
|
|
2
|
-
export interface PlanSession {
|
|
3
|
-
id: string;
|
|
4
|
-
request: string;
|
|
5
|
-
status: PlanSessionStatus;
|
|
6
|
-
createdAt: string;
|
|
7
|
-
updatedAt: string;
|
|
8
|
-
answers: Record<string, string>;
|
|
9
|
-
artifactPath?: string;
|
|
10
|
-
metadata?: Record<string, string>;
|
|
11
|
-
}
|
|
12
|
-
export declare class PlanSessionManager {
|
|
13
|
-
private readonly workingDir;
|
|
14
|
-
private readonly sessionDir;
|
|
15
|
-
constructor(workingDir?: string);
|
|
16
|
-
create(request: string, metadata?: Record<string, string>): Promise<PlanSession>;
|
|
17
|
-
load(sessionId: string): Promise<PlanSession | null>;
|
|
18
|
-
updateStatus(sessionId: string, status: PlanSessionStatus): Promise<PlanSession | null>;
|
|
19
|
-
attachArtifact(sessionId: string, artifactPath: string): Promise<PlanSession | null>;
|
|
20
|
-
addAnswers(sessionId: string, answers: Record<string, string>): Promise<PlanSession | null>;
|
|
21
|
-
listRecent(limit?: number): Promise<PlanSession[]>;
|
|
22
|
-
private save;
|
|
23
|
-
private getSessionPath;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=plan-session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-session.d.ts","sourceRoot":"","sources":["../../src/core/plan-session.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,kBAAkB,GAClB,mBAAmB,GACnB,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAEP,UAAU,GAAE,MAAsB;IAIzD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAehF,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAUpD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASvF,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASpF,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAS3F,UAAU,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAgCtC,IAAI;IAMlB,OAAO,CAAC,cAAc;CAGvB"}
|