@git.zone/tsdoc 2.0.5 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.smartconfig.json +21 -2
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/aidocs_classes/commit.d.ts +3 -0
- package/dist_ts/aidocs_classes/commit.js +122 -115
- package/dist_ts/aidocs_classes/description.js +58 -14
- package/dist_ts/aidocs_classes/projectcontext.d.ts +2 -1
- package/dist_ts/aidocs_classes/projectcontext.js +24 -8
- package/dist_ts/aidocs_classes/readme.js +28 -20
- package/dist_ts/classes.aidoc.d.ts +20 -4
- package/dist_ts/classes.aidoc.js +96 -71
- package/dist_ts/classes.diffprocessor.d.ts +1 -0
- package/dist_ts/classes.diffprocessor.js +25 -16
- package/dist_ts/classes.typedoc.js +33 -11
- package/dist_ts/cli.js +57 -11
- package/dist_ts/helpers.agenttools.d.ts +2 -0
- package/dist_ts/helpers.agenttools.js +5 -0
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +2 -1
- package/dist_ts/plugins.d.ts +7 -3
- package/dist_ts/plugins.js +8 -4
- package/package.json +15 -15
- package/readme.md +39 -18
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/aidocs_classes/commit.ts +134 -134
- package/ts/aidocs_classes/description.ts +60 -17
- package/ts/aidocs_classes/projectcontext.ts +24 -24
- package/ts/aidocs_classes/readme.ts +28 -21
- package/ts/classes.aidoc.ts +124 -77
- package/ts/classes.diffprocessor.ts +23 -13
- package/ts/classes.typedoc.ts +35 -12
- package/ts/cli.ts +59 -10
- package/ts/helpers.agenttools.ts +5 -0
- package/ts/index.ts +1 -0
- package/ts/plugins.ts +8 -2
|
@@ -3,7 +3,8 @@ import * as paths from './paths.js';
|
|
|
3
3
|
export class TypeDoc {
|
|
4
4
|
// Static
|
|
5
5
|
static async isTypeDocDir(dirPathArg) {
|
|
6
|
-
return
|
|
6
|
+
return await plugins.fsInstance.file(plugins.path.join(dirPathArg, 'ts/index.ts')).exists()
|
|
7
|
+
|| await plugins.fsInstance.file(plugins.path.join(dirPathArg, 'ts_web/index.ts')).exists();
|
|
7
8
|
}
|
|
8
9
|
constructor(dirPathArg) {
|
|
9
10
|
this.smartshellInstance = new plugins.smartshell.Smartshell({
|
|
@@ -26,23 +27,44 @@ export class TypeDoc {
|
|
|
26
27
|
include: [],
|
|
27
28
|
};
|
|
28
29
|
let startDirectory = '';
|
|
29
|
-
if (await plugins.fsInstance.directory(plugins.path.join(
|
|
30
|
-
data.include.push(plugins.path.join(
|
|
30
|
+
if (await plugins.fsInstance.directory(plugins.path.join(this.typedocDirectory, './ts')).exists()) {
|
|
31
|
+
data.include.push(plugins.path.join(this.typedocDirectory, './ts/**/*'));
|
|
31
32
|
startDirectory = 'ts';
|
|
32
33
|
}
|
|
33
|
-
if (await plugins.fsInstance.directory(plugins.path.join(
|
|
34
|
-
data.include.push(plugins.path.join(
|
|
34
|
+
if (await plugins.fsInstance.directory(plugins.path.join(this.typedocDirectory, './ts_web')).exists()) {
|
|
35
|
+
data.include.push(plugins.path.join(this.typedocDirectory, './ts_web/**/*'));
|
|
35
36
|
if (!startDirectory) {
|
|
36
37
|
startDirectory = 'ts_web';
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
if (!startDirectory) {
|
|
41
|
+
throw new Error(`No TypeDoc entrypoint found in ${this.typedocDirectory}`);
|
|
42
|
+
}
|
|
43
|
+
const tempDir = plugins.path.join(this.typedocDirectory, '.nogit', 'tsdoc');
|
|
44
|
+
const tempTsconfigFile = plugins.path.join(tempDir, 'tsconfig.json');
|
|
45
|
+
await plugins.fsInstance.directory(tempDir).recursive().create();
|
|
46
|
+
await plugins.fsInstance.file(tempTsconfigFile).encoding('utf8').write(JSON.stringify(data));
|
|
47
|
+
const publicDir = plugins.path.join(this.typedocDirectory, 'public');
|
|
48
|
+
let targetDir = publicDir;
|
|
41
49
|
if (options?.publicSubdir) {
|
|
42
|
-
targetDir = plugins.path.join(targetDir, options.publicSubdir);
|
|
50
|
+
targetDir = plugins.path.resolve(plugins.path.join(targetDir, options.publicSubdir));
|
|
51
|
+
const resolvedPublicDir = plugins.path.resolve(publicDir);
|
|
52
|
+
if (!targetDir.startsWith(`${resolvedPublicDir}${plugins.path.sep}`) && targetDir !== resolvedPublicDir) {
|
|
53
|
+
throw new Error(`Invalid publicSubdir outside public directory: ${options.publicSubdir}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const result = await this.smartshellInstance.exec(`typedoc --tsconfig ${shellQuote(tempTsconfigFile)} --out ${shellQuote(targetDir)} ${shellQuote(plugins.path.join(this.typedocDirectory, startDirectory, 'index.ts'))}`);
|
|
58
|
+
if (result.exitCode !== 0) {
|
|
59
|
+
throw new Error('typedoc command failed.');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
if (await plugins.fsInstance.file(tempTsconfigFile).exists()) {
|
|
64
|
+
await plugins.fsInstance.file(tempTsconfigFile).delete();
|
|
65
|
+
}
|
|
43
66
|
}
|
|
44
|
-
await this.smartshellInstance.exec(`typedoc --tsconfig ${paths.tsconfigFile} --out ${targetDir} ${startDirectory}/index.ts`);
|
|
45
|
-
await plugins.fsInstance.file(paths.tsconfigFile).delete();
|
|
46
67
|
}
|
|
47
68
|
}
|
|
48
|
-
|
|
69
|
+
const shellQuote = (value) => `'${value.replaceAll("'", "'\\''")}'`;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50eXBlZG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy50eXBlZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxPQUFPO0lBTWxCLFNBQVM7SUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFrQjtRQUNqRCxPQUFPLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO2VBQ3RGLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoRyxDQUFDO0lBSUQsWUFBWSxVQUFrQjtRQWJ2Qix1QkFBa0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQzVELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLGVBQWUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDaEMsQ0FBQyxDQUFDO1FBV0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQztRQUN0RCxNQUFNLElBQUksR0FBRztZQUNYLGVBQWUsRUFBRTtnQkFDZixzQkFBc0IsRUFBRSxJQUFJO2dCQUM1Qix1QkFBdUIsRUFBRSxLQUFLO2dCQUM5QixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLGdCQUFnQixFQUFFLFVBQVU7Z0JBQzVCLGVBQWUsRUFB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
|
package/dist_ts/cli.js
CHANGED
|
@@ -3,6 +3,39 @@ import * as paths from './paths.js';
|
|
|
3
3
|
import { logger } from './logging.js';
|
|
4
4
|
import { TypeDoc } from './classes.typedoc.js';
|
|
5
5
|
import { AiDoc } from './classes.aidoc.js';
|
|
6
|
+
import { NoChangesError } from './aidocs_classes/commit.js';
|
|
7
|
+
const createAiDoc = async (argvArg) => {
|
|
8
|
+
const aidocInstance = new AiDoc(argvArg);
|
|
9
|
+
await aidocInstance.start();
|
|
10
|
+
return aidocInstance;
|
|
11
|
+
};
|
|
12
|
+
const getSmartcliArgv = () => {
|
|
13
|
+
if (process.argv.length === 0)
|
|
14
|
+
return undefined;
|
|
15
|
+
if (process.argv[0] === process.execPath)
|
|
16
|
+
return undefined;
|
|
17
|
+
return [process.execPath, 'tsdoc', ...process.argv];
|
|
18
|
+
};
|
|
19
|
+
const handleAuthCommand = async (argvArg) => {
|
|
20
|
+
const subcommand = argvArg._?.[1] ?? 'status';
|
|
21
|
+
if (subcommand === 'login') {
|
|
22
|
+
await plugins.tsagent.loginChatGptAuth();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const inspections = await plugins.tsagent.inspectChatGptAuthSources();
|
|
26
|
+
console.log('OpenAI ChatGPT auth sources:');
|
|
27
|
+
for (const inspection of inspections) {
|
|
28
|
+
const status = inspection.usable
|
|
29
|
+
? 'usable'
|
|
30
|
+
: inspection.exists
|
|
31
|
+
? inspection.expired
|
|
32
|
+
? 'expired'
|
|
33
|
+
: 'not usable'
|
|
34
|
+
: 'missing';
|
|
35
|
+
const account = inspection.email ? ` (${inspection.email})` : '';
|
|
36
|
+
console.log(` ${inspection.source}: ${status}${account} - ${inspection.filePath}`);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
6
39
|
export const run = async () => {
|
|
7
40
|
const tsdocCli = new plugins.smartcli.Smartcli();
|
|
8
41
|
tsdocCli.standardCommand().subscribe(async (argvArg) => {
|
|
@@ -23,8 +56,7 @@ export const run = async () => {
|
|
|
23
56
|
});
|
|
24
57
|
});
|
|
25
58
|
tsdocCli.addCommand('aidoc').subscribe(async (argvArg) => {
|
|
26
|
-
const aidocInstance =
|
|
27
|
-
await aidocInstance.start();
|
|
59
|
+
const aidocInstance = await createAiDoc(argvArg);
|
|
28
60
|
logger.log('info', `Generating new readme...`);
|
|
29
61
|
logger.log('info', `This may take some time...`);
|
|
30
62
|
await aidocInstance.buildReadme(paths.cwd);
|
|
@@ -32,35 +64,49 @@ export const run = async () => {
|
|
|
32
64
|
logger.log('info', `This may take some time...`);
|
|
33
65
|
await aidocInstance.buildDescription(paths.cwd);
|
|
34
66
|
});
|
|
67
|
+
tsdocCli.addCommand('aidocs').subscribe(async (argvArg) => {
|
|
68
|
+
tsdocCli.triggerCommand('aidoc', argvArg);
|
|
69
|
+
});
|
|
35
70
|
tsdocCli.addCommand('readme').subscribe(async (argvArg) => {
|
|
36
|
-
const aidocInstance =
|
|
37
|
-
await aidocInstance.start();
|
|
71
|
+
const aidocInstance = await createAiDoc(argvArg);
|
|
38
72
|
logger.log('info', `Generating new readme...`);
|
|
39
73
|
logger.log('info', `This may take some time...`);
|
|
40
74
|
await aidocInstance.buildReadme(paths.cwd);
|
|
41
75
|
});
|
|
42
76
|
tsdocCli.addCommand('description').subscribe(async (argvArg) => {
|
|
43
|
-
const aidocInstance =
|
|
44
|
-
await aidocInstance.start();
|
|
77
|
+
const aidocInstance = await createAiDoc(argvArg);
|
|
45
78
|
logger.log('info', `Generating new description and keywords...`);
|
|
46
79
|
logger.log('info', `This may take some time...`);
|
|
47
80
|
await aidocInstance.buildDescription(paths.cwd);
|
|
48
81
|
});
|
|
49
82
|
tsdocCli.addCommand('commit').subscribe(async (argvArg) => {
|
|
50
|
-
const aidocInstance =
|
|
51
|
-
await aidocInstance.start();
|
|
83
|
+
const aidocInstance = await createAiDoc(argvArg);
|
|
52
84
|
logger.log('info', `Generating commit message...`);
|
|
53
85
|
logger.log('info', `This may take some time...`);
|
|
54
|
-
|
|
86
|
+
let commitObject;
|
|
87
|
+
try {
|
|
88
|
+
commitObject = await aidocInstance.buildNextCommitObject(paths.cwd);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error instanceof NoChangesError || error.name === 'NoChangesError') {
|
|
92
|
+
logger.log('info', 'No uncommitted changes found.');
|
|
93
|
+
console.log(JSON.stringify({ ok: true, noChanges: true }, null, 2));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
55
98
|
logger.log('ok', `Commit message generated:`);
|
|
56
99
|
console.log(JSON.stringify(commitObject, null, 2));
|
|
57
100
|
});
|
|
101
|
+
tsdocCli.addCommand('auth').subscribe(async (argvArg) => {
|
|
102
|
+
await handleAuthCommand(argvArg);
|
|
103
|
+
});
|
|
58
104
|
tsdocCli.addCommand('test').subscribe((argvArg) => {
|
|
59
105
|
tsdocCli.triggerCommand('typedoc', argvArg);
|
|
60
106
|
process.on('exit', async () => {
|
|
61
107
|
await plugins.fsInstance.directory(paths.publicDir).recursive().delete();
|
|
62
108
|
});
|
|
63
109
|
});
|
|
64
|
-
tsdocCli.startParse();
|
|
110
|
+
tsdocCli.startParse(getSmartcliArgv());
|
|
65
111
|
};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLE9BQVksRUFBa0IsRUFBRTtJQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxHQUF5QixFQUFFO0lBQ2pELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ2hELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsUUFBUTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzNELE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxPQUFZLEVBQWlCLEVBQUU7SUFDOUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUM5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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
export const createReadOnlyFileSystemTools = async (rootDirArg) => {
|
|
3
|
+
return await plugins.tsagent.createReadOnlyProjectTools(rootDirArg);
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5hZ2VudHRvb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvaGVscGVycy5hZ2VudHRvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEtBQUssRUFBRSxVQUFrQixFQUFFLEVBQUU7SUFDeEUsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDIn0=
|
package/dist_ts/index.d.ts
CHANGED
package/dist_ts/index.js
CHANGED
|
@@ -8,4 +8,5 @@ export const runCli = async () => {
|
|
|
8
8
|
};
|
|
9
9
|
// exports
|
|
10
10
|
export * from './classes.aidoc.js';
|
|
11
|
-
|
|
11
|
+
export { NoChangesError } from './aidocs_classes/commit.js';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckIsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRWIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQyJ9
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
1
2
|
import * as path from 'path';
|
|
2
|
-
export { path };
|
|
3
|
+
export { fs, path };
|
|
3
4
|
import * as smartconfig from '@push.rocks/smartconfig';
|
|
4
5
|
import * as qenv from '@push.rocks/qenv';
|
|
5
6
|
import * as smartagent from '@push.rocks/smartagent';
|
|
7
|
+
import * as smartagentCompaction from '@push.rocks/smartagent/compaction';
|
|
6
8
|
import * as smartagentTools from '@push.rocks/smartagent/tools';
|
|
7
9
|
import * as smartai from '@push.rocks/smartai';
|
|
10
|
+
import * as smartaiOpenAiChatGptAuth from '@push.rocks/smartai/openai-chatgpt-auth';
|
|
8
11
|
import * as smartcli from '@push.rocks/smartcli';
|
|
9
12
|
import * as smartdelay from '@push.rocks/smartdelay';
|
|
10
13
|
import * as smartfile from '@push.rocks/smartfile';
|
|
@@ -16,10 +19,11 @@ import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-loca
|
|
|
16
19
|
import * as smartpath from '@push.rocks/smartpath';
|
|
17
20
|
import * as smartshell from '@push.rocks/smartshell';
|
|
18
21
|
import * as smarttime from '@push.rocks/smarttime';
|
|
19
|
-
export { smartconfig, qenv, smartagent, smartagentTools, smartai, smartcli, smartdelay, smartfile, smartfs, smartgit, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell, smarttime, };
|
|
22
|
+
export { smartconfig, qenv, smartagent, smartagentCompaction, smartagentTools, smartai, smartaiOpenAiChatGptAuth, smartcli, smartdelay, smartfile, smartfs, smartgit, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell, smarttime, };
|
|
20
23
|
export declare const fsInstance: smartfs.SmartFs;
|
|
21
24
|
export declare const smartfileFactory: smartfile.SmartFileFactory;
|
|
25
|
+
import * as tsagent from '@git.zone/tsagent';
|
|
22
26
|
import * as tspublish from '@git.zone/tspublish';
|
|
23
|
-
export { tspublish };
|
|
27
|
+
export { tsagent, tspublish };
|
|
24
28
|
import * as typedoc from 'typedoc';
|
|
25
29
|
export { typedoc };
|
package/dist_ts/plugins.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
// node native
|
|
2
|
+
import * as fs from 'node:fs/promises';
|
|
2
3
|
import * as path from 'path';
|
|
3
|
-
export { path };
|
|
4
|
+
export { fs, path };
|
|
4
5
|
// pushrocks scope
|
|
5
6
|
import * as smartconfig from '@push.rocks/smartconfig';
|
|
6
7
|
import * as qenv from '@push.rocks/qenv';
|
|
7
8
|
import * as smartagent from '@push.rocks/smartagent';
|
|
9
|
+
import * as smartagentCompaction from '@push.rocks/smartagent/compaction';
|
|
8
10
|
import * as smartagentTools from '@push.rocks/smartagent/tools';
|
|
9
11
|
import * as smartai from '@push.rocks/smartai';
|
|
12
|
+
import * as smartaiOpenAiChatGptAuth from '@push.rocks/smartai/openai-chatgpt-auth';
|
|
10
13
|
import * as smartcli from '@push.rocks/smartcli';
|
|
11
14
|
import * as smartdelay from '@push.rocks/smartdelay';
|
|
12
15
|
import * as smartfile from '@push.rocks/smartfile';
|
|
@@ -18,16 +21,17 @@ import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-loca
|
|
|
18
21
|
import * as smartpath from '@push.rocks/smartpath';
|
|
19
22
|
import * as smartshell from '@push.rocks/smartshell';
|
|
20
23
|
import * as smarttime from '@push.rocks/smarttime';
|
|
21
|
-
export { smartconfig, qenv, smartagent, smartagentTools, smartai, smartcli, smartdelay, smartfile, smartfs, smartgit, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell, smarttime, };
|
|
24
|
+
export { smartconfig, qenv, smartagent, smartagentCompaction, smartagentTools, smartai, smartaiOpenAiChatGptAuth, smartcli, smartdelay, smartfile, smartfs, smartgit, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell, smarttime, };
|
|
22
25
|
// Create a shared SmartFs instance for filesystem operations
|
|
23
26
|
const smartFsNodeProvider = new smartfs.SmartFsProviderNode();
|
|
24
27
|
export const fsInstance = new smartfs.SmartFs(smartFsNodeProvider);
|
|
25
28
|
// Create a shared SmartFileFactory for in-memory file operations
|
|
26
29
|
export const smartfileFactory = smartfile.SmartFileFactory.nodeFs();
|
|
27
30
|
// @git.zone scope
|
|
31
|
+
import * as tsagent from '@git.zone/tsagent';
|
|
28
32
|
import * as tspublish from '@git.zone/tspublish';
|
|
29
|
-
export { tspublish };
|
|
33
|
+
export { tsagent, tspublish };
|
|
30
34
|
// third party scope
|
|
31
35
|
import * as typedoc from 'typedoc';
|
|
32
36
|
export { typedoc };
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVwQixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLG9CQUFvQixNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sS0FBSyxlQUFlLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssd0JBQXdCLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxhQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssd0JBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osVUFBVSxFQUNWLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsT0FBTyxFQUNQLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsUUFBUSxFQUNSLGFBQWEsRUFDYixRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxHQUNWLENBQUM7QUFFRiw2REFBNkQ7QUFDN0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0FBQzlELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUVuRSxpRUFBaUU7QUFDakUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO0FBRXBFLGtCQUFrQjtBQUNsQixPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUU5QixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFFbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/tsdoc",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A comprehensive TypeScript documentation tool that leverages AI to generate and enhance project documentation, including dynamic README creation, API docs via TypeDoc, and smart commit message generation.",
|
|
6
6
|
"type": "module",
|
|
@@ -12,26 +12,21 @@
|
|
|
12
12
|
"bin": {
|
|
13
13
|
"tsdoc": "./cli.js"
|
|
14
14
|
},
|
|
15
|
-
"scripts": {
|
|
16
|
-
"test": "(tstest test/ --verbose --logfile --timeout 600) && pnpm run testCli",
|
|
17
|
-
"testCli": "(node ./cli.ts.js) && (node ./cli.ts.js aidocs)",
|
|
18
|
-
"build": "(tsbuild --web)",
|
|
19
|
-
"buildDocs": "tsdoc"
|
|
20
|
-
},
|
|
21
15
|
"devDependencies": {
|
|
22
|
-
"@git.zone/tsbuild": "^4.4.
|
|
23
|
-
"@git.zone/tsrun": "^2.0.
|
|
24
|
-
"@git.zone/tstest": "^3.6.
|
|
16
|
+
"@git.zone/tsbuild": "^4.4.2",
|
|
17
|
+
"@git.zone/tsrun": "^2.0.4",
|
|
18
|
+
"@git.zone/tstest": "^3.6.6",
|
|
25
19
|
"@types/json-schema": "^7.0.15",
|
|
26
|
-
"@types/node": "^25.
|
|
20
|
+
"@types/node": "^25.9.3",
|
|
27
21
|
"@types/yargs-parser": "^21.0.3"
|
|
28
22
|
},
|
|
29
23
|
"dependencies": {
|
|
24
|
+
"@git.zone/tsagent": "^1.1.1",
|
|
30
25
|
"@git.zone/tspublish": "^1.11.6",
|
|
31
26
|
"@push.rocks/early": "^4.0.4",
|
|
32
27
|
"@push.rocks/qenv": "^6.1.4",
|
|
33
|
-
"@push.rocks/smartagent": "^3.
|
|
34
|
-
"@push.rocks/smartai": "^
|
|
28
|
+
"@push.rocks/smartagent": "^3.3.0",
|
|
29
|
+
"@push.rocks/smartai": "^4.0.0",
|
|
35
30
|
"@push.rocks/smartcli": "^4.0.21",
|
|
36
31
|
"@push.rocks/smartconfig": "^6.1.1",
|
|
37
32
|
"@push.rocks/smartdelay": "^3.1.0",
|
|
@@ -83,5 +78,10 @@
|
|
|
83
78
|
"url": "https://gitlab.com/gitzone/tsdoc/issues"
|
|
84
79
|
},
|
|
85
80
|
"homepage": "https://gitlab.com/gitzone/tsdoc#readme",
|
|
86
|
-
"
|
|
87
|
-
|
|
81
|
+
"scripts": {
|
|
82
|
+
"test": "(tstest test/ --verbose --logfile --timeout 600) && pnpm run testCli",
|
|
83
|
+
"testCli": "(node ./cli.ts.js auth status) && (node ./cli.ts.js typedoc --publicSubdir test) && rm -rf public",
|
|
84
|
+
"build": "(tsbuild --web)",
|
|
85
|
+
"buildDocs": "tsdoc"
|
|
86
|
+
}
|
|
87
|
+
}
|
package/readme.md
CHANGED
|
@@ -21,7 +21,7 @@ pnpm add @git.zone/tsdoc
|
|
|
21
21
|
|
|
22
22
|
## Usage
|
|
23
23
|
|
|
24
|
-
`@git.zone/tsdoc` is a TypeScript documentation powerhouse that combines traditional [TypeDoc](https://typedoc.org/) API docs with AI-powered documentation workflows. It
|
|
24
|
+
`@git.zone/tsdoc` is a TypeScript documentation powerhouse that combines traditional [TypeDoc](https://typedoc.org/) API docs with AI-powered documentation workflows. It delegates AI configuration, authentication, model setup, read-only project tools, and agent execution to `@git.zone/tsagent` to generate READMEs, project descriptions, keywords, and semantic commit messages by intelligently exploring your project's codebase.
|
|
25
25
|
|
|
26
26
|
### CLI Commands
|
|
27
27
|
|
|
@@ -33,6 +33,8 @@ pnpm add @git.zone/tsdoc
|
|
|
33
33
|
| `tsdoc description` | 🏷️ Generates AI-powered description and keywords only |
|
|
34
34
|
| `tsdoc commit` | 💬 Generates a semantic commit message from uncommitted changes |
|
|
35
35
|
| `tsdoc typedoc` | 📚 Generates traditional TypeDoc API documentation |
|
|
36
|
+
| `tsdoc auth status` | Shows available ChatGPT subscription auth sources without printing secrets |
|
|
37
|
+
| `tsdoc auth login` | Starts a ChatGPT device-code login and stores SmartAI auth |
|
|
36
38
|
|
|
37
39
|
### 🤖 AI-Powered Documentation (`aidoc`)
|
|
38
40
|
|
|
@@ -119,7 +121,7 @@ import { AiDoc } from '@git.zone/tsdoc';
|
|
|
119
121
|
|
|
120
122
|
const aidoc = new AiDoc();
|
|
121
123
|
|
|
122
|
-
// Initialize —
|
|
124
|
+
// Initialize — resolves ChatGPT subscription auth first, then API-key fallback when needed
|
|
123
125
|
await aidoc.start();
|
|
124
126
|
|
|
125
127
|
// Generate a comprehensive README for a project
|
|
@@ -155,26 +157,45 @@ await aidoc.start();
|
|
|
155
157
|
|
|
156
158
|
## Configuration
|
|
157
159
|
|
|
158
|
-
###
|
|
160
|
+
### AI Defaults
|
|
159
161
|
|
|
160
|
-
|
|
162
|
+
AI features default to OpenAI `gpt-5.5` with `providerOptions.openai.reasoningEffort` set to `xhigh`. `tsdoc` uses `@git.zone/tsagent` for model setup, ChatGPT subscription auth, API-key fallback, cache handling, read-only project tools, and agent execution.
|
|
161
163
|
|
|
162
|
-
|
|
163
|
-
2. **Constructor argument**: Pass `{ OPENAI_TOKEN: 'sk-...' }` to `new AiDoc()`
|
|
164
|
-
3. **Interactive prompt**: On first run, tsdoc will prompt for the token and persist it
|
|
164
|
+
### Authentication
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
Default auth mode is `auto`. For OpenAI, `tsdoc` first tries ChatGPT subscription auth and falls back to API-key auth only when no usable subscription auth exists.
|
|
167
|
+
|
|
168
|
+
Subscription auth source preference:
|
|
169
|
+
|
|
170
|
+
1. `opencode` (`~/.local/share/opencode/auth.json`)
|
|
171
|
+
2. `codex` (`~/.codex/auth.json`)
|
|
172
|
+
3. `smartai` (`~/.git.zone/ide/openai-chatgpt-auth.json`)
|
|
173
|
+
|
|
174
|
+
Use `tsdoc auth status` to inspect available sources without printing tokens. Use `tsdoc auth login` to create SmartAI-managed ChatGPT auth through the device-code flow.
|
|
175
|
+
|
|
176
|
+
API-key fallback still supports `OPENAI_TOKEN`, `OPENAI_API_KEY`, constructor-provided `apiKey`, and the persisted `~/.smartconfig/kv/@git.zone/tsdoc.json` token.
|
|
167
177
|
|
|
168
178
|
### .smartconfig.json
|
|
169
179
|
|
|
170
|
-
tsdoc uses `.smartconfig.json` for project metadata.
|
|
180
|
+
tsdoc uses `.smartconfig.json` for project metadata. AI configuration is read through `@git.zone/tsagent`, `tsdoc`, and `@git.zone/tsdoc` in that order, with later keys overriding earlier keys. Legal information for README generation remains under `@git.zone/tsdoc.legal` or legacy `tsdoc.legal`.
|
|
171
181
|
|
|
172
182
|
```json
|
|
173
183
|
{
|
|
174
|
-
"
|
|
184
|
+
"@git.zone/tsagent": {
|
|
185
|
+
"provider": "openai",
|
|
186
|
+
"model": "gpt-5.5",
|
|
187
|
+
"authMode": "auto",
|
|
188
|
+
"chatGptAuthSources": ["opencode", "codex", "smartai"],
|
|
189
|
+
"providerOptions": {
|
|
190
|
+
"openai": {
|
|
191
|
+
"reasoningEffort": "xhigh"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"@git.zone/tsdoc": {
|
|
175
196
|
"legal": "\n## License and Legal Information\n\n..."
|
|
176
197
|
},
|
|
177
|
-
"
|
|
198
|
+
"@git.zone/cli": {
|
|
178
199
|
"module": {
|
|
179
200
|
"githost": "gitlab.com",
|
|
180
201
|
"gitscope": "gitzone",
|
|
@@ -187,7 +208,7 @@ tsdoc uses `.smartconfig.json` for project metadata. The `tsdoc` key holds legal
|
|
|
187
208
|
}
|
|
188
209
|
```
|
|
189
210
|
|
|
190
|
-
The `description` command writes updated description/keywords to
|
|
211
|
+
The `description` command writes updated description/keywords to `@git.zone/cli.module` in `.smartconfig.json`, updates legacy `gitzone.module` when present, and updates `package.json`.
|
|
191
212
|
|
|
192
213
|
## Architecture
|
|
193
214
|
|
|
@@ -195,7 +216,7 @@ The `description` command writes updated description/keywords to both `gitzone.m
|
|
|
195
216
|
|
|
196
217
|
```
|
|
197
218
|
@git.zone/tsdoc
|
|
198
|
-
├── AiDoc # Main orchestrator —
|
|
219
|
+
├── AiDoc # Main orchestrator — wraps TsAgent and delegates to task classes
|
|
199
220
|
├── TypeDoc # Traditional TypeDoc API documentation generation
|
|
200
221
|
├── ProjectContext # Gathers project files (package.json, source, tests, config)
|
|
201
222
|
├── DiffProcessor # Intelligent git diff processing with prioritization & sampling
|
|
@@ -207,14 +228,14 @@ The `description` command writes updated description/keywords to both `gitzone.m
|
|
|
207
228
|
|
|
208
229
|
### 🧠 AI Agent Architecture
|
|
209
230
|
|
|
210
|
-
Each documentation task (readme, commit, description) runs an autonomous AI agent
|
|
231
|
+
Each documentation task (readme, commit, description) runs an autonomous AI agent through the shared `@git.zone/tsagent` runtime:
|
|
211
232
|
|
|
212
233
|
1. **System prompt** defines the agent's role, constraints, and output format
|
|
213
|
-
2. **Filesystem tools** give the agent scoped, read-only access to the project directory
|
|
234
|
+
2. **Filesystem tools** come from `tsagent.createReadOnlyProjectTools()` and give the agent scoped, enforced read-only access to the project directory
|
|
214
235
|
3. **Autonomous exploration** — the agent decides which files to read, in what order
|
|
215
236
|
4. **Structured output** — README markdown, commit JSON, or description JSON
|
|
216
237
|
|
|
217
|
-
|
|
238
|
+
`TsAgent` centralizes model setup, ChatGPT subscription auth, provider options, cache options, and `@push.rocks/smartagent` execution across all agent calls.
|
|
218
239
|
|
|
219
240
|
### ⚡ Diff Processing Pipeline
|
|
220
241
|
|
|
@@ -227,7 +248,7 @@ The `DiffProcessor` handles large git diffs without blowing up token budgets:
|
|
|
227
248
|
| **Large** | ≥ 800 lines changed | Metadata only (filepath + stats) |
|
|
228
249
|
|
|
229
250
|
Files are scored by importance:
|
|
230
|
-
- **100** — Source files (`src/`, `lib/`, `app/`, `components/`, `pages/`, `api/`)
|
|
251
|
+
- **100** — Source files (`ts/`, `ts_web/`, `src/`, `lib/`, `app/`, `components/`, `pages/`, `api/`)
|
|
231
252
|
- **80** — Test files (`test/`, `*.test.ts`, `*.spec.ts`)
|
|
232
253
|
- **70** — Interface/type files, entry points (`index.ts`, `mod.ts`)
|
|
233
254
|
- **60** — Configuration files (`.json`, `.yaml`, `.config.ts`)
|
|
@@ -240,7 +261,7 @@ Token budget is calculated dynamically: `context_limit - safety_margin - overhea
|
|
|
240
261
|
|
|
241
262
|
- **Node.js** >= 18
|
|
242
263
|
- **TypeScript** project with a `ts/` source directory
|
|
243
|
-
- **OpenAI API key** for AI features
|
|
264
|
+
- **OpenAI API key or ChatGPT subscription auth** for AI features
|
|
244
265
|
|
|
245
266
|
## License and Legal Information
|
|
246
267
|
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@git.zone/tsdoc',
|
|
6
|
-
version: '2.0
|
|
6
|
+
version: '2.1.0',
|
|
7
7
|
description: 'A comprehensive TypeScript documentation tool that leverages AI to generate and enhance project documentation, including dynamic README creation, API docs via TypeDoc, and smart commit message generation.'
|
|
8
8
|
}
|