gamemindpilot 2.9.5 → 2.9.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/README.md +1 -1
- package/dist/index.js +1 -1
- package/dist/utils/project.js +37 -21
- package/dist/utils/project.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/utils/project.ts +34 -20
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# 🛸 GameMindPilot CLI v2.9.
|
|
1
|
+
# 🛸 GameMindPilot CLI v2.9.6 - The Narrative-First Mastery
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/gamemindpilot)
|
|
4
4
|
[](https://www.npmjs.com/package/gamemindpilot)
|
package/dist/index.js
CHANGED
|
@@ -44,7 +44,7 @@ const program = new commander_1.Command();
|
|
|
44
44
|
program
|
|
45
45
|
.name('gmpilot')
|
|
46
46
|
.description('GameMindPilot CLI - Your AI Game Development Assistant')
|
|
47
|
-
.version('2.9.
|
|
47
|
+
.version('2.9.6');
|
|
48
48
|
const login_1 = require("./commands/login");
|
|
49
49
|
const chat_1 = require("./commands/chat");
|
|
50
50
|
const init_1 = require("./commands/init");
|
package/dist/utils/project.js
CHANGED
|
@@ -10,9 +10,13 @@ const PROJECT_DIR = '.gmpilot';
|
|
|
10
10
|
const CONTEXT_FILE = path_1.default.join(PROJECT_DIR, 'context.json');
|
|
11
11
|
exports.projectManager = {
|
|
12
12
|
isProject: () => {
|
|
13
|
-
return fs_1.default.existsSync(PROJECT_DIR);
|
|
13
|
+
return fs_1.default.existsSync(PROJECT_DIR) && fs_1.default.lstatSync(PROJECT_DIR).isDirectory();
|
|
14
14
|
},
|
|
15
15
|
init: (name, author) => {
|
|
16
|
+
// Legacy migration: if .gmpilot is a file, delete it
|
|
17
|
+
if (fs_1.default.existsSync(PROJECT_DIR) && !fs_1.default.lstatSync(PROJECT_DIR).isDirectory()) {
|
|
18
|
+
fs_1.default.unlinkSync(PROJECT_DIR);
|
|
19
|
+
}
|
|
16
20
|
if (!fs_1.default.existsSync(PROJECT_DIR)) {
|
|
17
21
|
fs_1.default.mkdirSync(PROJECT_DIR);
|
|
18
22
|
}
|
|
@@ -36,29 +40,41 @@ exports.projectManager = {
|
|
|
36
40
|
}
|
|
37
41
|
},
|
|
38
42
|
addEntry: (type, content) => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
context.history
|
|
43
|
+
try {
|
|
44
|
+
if (!exports.projectManager.isProject())
|
|
45
|
+
return;
|
|
46
|
+
const context = exports.projectManager.get();
|
|
47
|
+
context.history.push({
|
|
48
|
+
type,
|
|
49
|
+
timestamp: new Date().toISOString(),
|
|
50
|
+
content
|
|
51
|
+
});
|
|
52
|
+
// Keep only last 10 entries to avoid token bloat
|
|
53
|
+
if (context.history.length > 10) {
|
|
54
|
+
context.history = context.history.slice(-10);
|
|
55
|
+
}
|
|
56
|
+
fs_1.default.writeFileSync(CONTEXT_FILE, JSON.stringify(context, null, 2));
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
// Silent fail to avoid crashing the main command flow
|
|
50
60
|
}
|
|
51
|
-
fs_1.default.writeFileSync(CONTEXT_FILE, JSON.stringify(context, null, 2));
|
|
52
61
|
},
|
|
53
62
|
getSummary: () => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
try {
|
|
64
|
+
if (!exports.projectManager.isProject())
|
|
65
|
+
return "No project initialization found. Run 'gmpilot init' first.";
|
|
66
|
+
const context = exports.projectManager.get();
|
|
67
|
+
if (context.history.length === 0)
|
|
68
|
+
return "No previous history found for this project.";
|
|
69
|
+
let summary = `Project: ${context.projectName} (Author: ${context.author})\n\nRecent History:\n`;
|
|
70
|
+
context.history.forEach((entry, i) => {
|
|
71
|
+
summary += `[${i + 1}] ${entry.type} (${new Date(entry.timestamp).toLocaleString()}):\n${entry.content.substring(0, 500)}...\n\n`;
|
|
72
|
+
});
|
|
73
|
+
return summary;
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
return "Error loading project history.";
|
|
77
|
+
}
|
|
62
78
|
}
|
|
63
79
|
};
|
|
64
80
|
//# sourceMappingURL=project.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAYxB,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAE/C,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE,GAAY,EAAE;QACvB,OAAO,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ const program = new Command();
|
|
|
12
12
|
program
|
|
13
13
|
.name('gmpilot')
|
|
14
14
|
.description('GameMindPilot CLI - Your AI Game Development Assistant')
|
|
15
|
-
.version('2.9.
|
|
15
|
+
.version('2.9.6');
|
|
16
16
|
|
|
17
17
|
import { loginCommand } from './commands/login';
|
|
18
18
|
import { chatCommand } from './commands/chat';
|
package/src/utils/project.ts
CHANGED
|
@@ -16,10 +16,15 @@ const CONTEXT_FILE = path.join(PROJECT_DIR, 'context.json');
|
|
|
16
16
|
|
|
17
17
|
export const projectManager = {
|
|
18
18
|
isProject: (): boolean => {
|
|
19
|
-
return fs.existsSync(PROJECT_DIR);
|
|
19
|
+
return fs.existsSync(PROJECT_DIR) && fs.lstatSync(PROJECT_DIR).isDirectory();
|
|
20
20
|
},
|
|
21
21
|
|
|
22
22
|
init: (name: string, author: string) => {
|
|
23
|
+
// Legacy migration: if .gmpilot is a file, delete it
|
|
24
|
+
if (fs.existsSync(PROJECT_DIR) && !fs.lstatSync(PROJECT_DIR).isDirectory()) {
|
|
25
|
+
fs.unlinkSync(PROJECT_DIR);
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
if (!fs.existsSync(PROJECT_DIR)) {
|
|
24
29
|
fs.mkdirSync(PROJECT_DIR);
|
|
25
30
|
}
|
|
@@ -44,28 +49,37 @@ export const projectManager = {
|
|
|
44
49
|
},
|
|
45
50
|
|
|
46
51
|
addEntry: (type: string, content: string) => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
context.history
|
|
52
|
+
try {
|
|
53
|
+
if (!projectManager.isProject()) return;
|
|
54
|
+
const context = projectManager.get();
|
|
55
|
+
context.history.push({
|
|
56
|
+
type,
|
|
57
|
+
timestamp: new Date().toISOString(),
|
|
58
|
+
content
|
|
59
|
+
});
|
|
60
|
+
// Keep only last 10 entries to avoid token bloat
|
|
61
|
+
if (context.history.length > 10) {
|
|
62
|
+
context.history = context.history.slice(-10);
|
|
63
|
+
}
|
|
64
|
+
fs.writeFileSync(CONTEXT_FILE, JSON.stringify(context, null, 2));
|
|
65
|
+
} catch (err) {
|
|
66
|
+
// Silent fail to avoid crashing the main command flow
|
|
57
67
|
}
|
|
58
|
-
fs.writeFileSync(CONTEXT_FILE, JSON.stringify(context, null, 2));
|
|
59
68
|
},
|
|
60
69
|
|
|
61
70
|
getSummary: (): string => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
summary
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
try {
|
|
72
|
+
if (!projectManager.isProject()) return "No project initialization found. Run 'gmpilot init' first.";
|
|
73
|
+
const context = projectManager.get();
|
|
74
|
+
if (context.history.length === 0) return "No previous history found for this project.";
|
|
75
|
+
|
|
76
|
+
let summary = `Project: ${context.projectName} (Author: ${context.author})\n\nRecent History:\n`;
|
|
77
|
+
context.history.forEach((entry, i) => {
|
|
78
|
+
summary += `[${i+1}] ${entry.type} (${new Date(entry.timestamp).toLocaleString()}):\n${entry.content.substring(0, 500)}...\n\n`;
|
|
79
|
+
});
|
|
80
|
+
return summary;
|
|
81
|
+
} catch (err) {
|
|
82
|
+
return "Error loading project history.";
|
|
83
|
+
}
|
|
70
84
|
}
|
|
71
85
|
};
|