fix(smartconfig): migrate project metadata and config handling to .smartconfig.json
This commit is contained in:
44
.smartconfig.json
Normal file
44
.smartconfig.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"gitzone": {
|
||||
"projectType": "npm",
|
||||
"module": {
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "gitzone",
|
||||
"gitrepo": "tsdoc",
|
||||
"shortDescription": "a tool for better documentation",
|
||||
"npmPackagename": "@git.zone/tsdoc",
|
||||
"license": "MIT",
|
||||
"projectDomain": "git.zone",
|
||||
"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.",
|
||||
"keywords": [
|
||||
"TypeScript",
|
||||
"documentation",
|
||||
"AI",
|
||||
"CLI",
|
||||
"README",
|
||||
"TypeDoc",
|
||||
"commit messages",
|
||||
"automation",
|
||||
"code analysis",
|
||||
"context trimming",
|
||||
"developer tools"
|
||||
]
|
||||
}
|
||||
},
|
||||
"npmci": {
|
||||
"npmGlobalTools": [],
|
||||
"npmAccessLevel": "public"
|
||||
},
|
||||
"tsdoc": {
|
||||
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [LICENSE](./license) file.\n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.\n\nUse of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District Court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
|
||||
},
|
||||
"@git.zone/cli": {
|
||||
"release": {
|
||||
"registries": [
|
||||
"https://verdaccio.lossless.digital",
|
||||
"https://registry.npmjs.org"
|
||||
],
|
||||
"accessLevel": "public"
|
||||
}
|
||||
}
|
||||
}
|
||||
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"json.schemas": [
|
||||
{
|
||||
"fileMatch": ["/npmextra.json"],
|
||||
"fileMatch": ["/.smartconfig.json"],
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-03-24 - 2.0.2 - fix(smartconfig)
|
||||
migrate project metadata and config handling to .smartconfig.json
|
||||
|
||||
- replace npmextra.json with .smartconfig.json across packaging, project context, README generation, and description prompts
|
||||
- fix description updates to write metadata under gitzone.module and use smartconfig KeyValueStore for persisted settings
|
||||
- refresh documentation and dependency versions to reflect the new config location and storage path
|
||||
|
||||
## 2026-03-24 - 2.0.1 - fix(aidocs, config)
|
||||
migrate aidocs configuration handling from npmextra to smartconfig
|
||||
|
||||
|
||||
2
license
2
license
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2019 Lossless GmbH (hello@lossless.com)
|
||||
Copyright (c) 2019 Task Venture Capital GmbH (hello@task.vc)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"gitzone": {
|
||||
"projectType": "npm",
|
||||
"module": {
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "gitzone",
|
||||
"gitrepo": "tsdoc",
|
||||
"shortDescription": "a tool for better documentation",
|
||||
"npmPackagename": "@git.zone/tsdoc",
|
||||
"license": "MIT",
|
||||
"projectDomain": "git.zone",
|
||||
"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.",
|
||||
"keywords": [
|
||||
"TypeScript",
|
||||
"documentation",
|
||||
"AI",
|
||||
"CLI",
|
||||
"README",
|
||||
"TypeDoc",
|
||||
"commit messages",
|
||||
"automation",
|
||||
"code analysis",
|
||||
"context trimming",
|
||||
"developer tools"
|
||||
]
|
||||
}
|
||||
},
|
||||
"npmci": {
|
||||
"npmGlobalTools": [],
|
||||
"npmAccessLevel": "public"
|
||||
},
|
||||
"tsdoc": {
|
||||
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
|
||||
},
|
||||
"@git.zone/cli": {
|
||||
"release": {
|
||||
"registries": [
|
||||
"https://verdaccio.lossless.digital",
|
||||
"https://registry.npmjs.org"
|
||||
],
|
||||
"accessLevel": "public"
|
||||
}
|
||||
}
|
||||
}
|
||||
16
package.json
16
package.json
@@ -21,13 +21,13 @@
|
||||
"devDependencies": {
|
||||
"@git.zone/tsbuild": "^4.3.0",
|
||||
"@git.zone/tsrun": "^2.0.1",
|
||||
"@git.zone/tstest": "^3.3.2",
|
||||
"@types/node": "^25.4.0"
|
||||
"@git.zone/tstest": "^3.5.1",
|
||||
"@types/node": "^25.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@git.zone/tspublish": "^1.11.2",
|
||||
"@git.zone/tspublish": "^1.11.3",
|
||||
"@push.rocks/early": "^4.0.4",
|
||||
"@push.rocks/smartconfig": "^6.0.0",
|
||||
"@push.rocks/smartconfig": "^6.0.1",
|
||||
"@push.rocks/qenv": "^6.1.3",
|
||||
"@push.rocks/smartagent": "^3.0.2",
|
||||
"@push.rocks/smartai": "^2.0.0",
|
||||
@@ -40,10 +40,10 @@
|
||||
"@push.rocks/smartlog": "^3.2.1",
|
||||
"@push.rocks/smartlog-destination-local": "^9.0.2",
|
||||
"@push.rocks/smartpath": "^6.0.0",
|
||||
"@push.rocks/smartshell": "^3.3.7",
|
||||
"@push.rocks/smartshell": "^3.3.8",
|
||||
"@push.rocks/smarttime": "^4.2.3",
|
||||
"typedoc": "^0.28.17",
|
||||
"typescript": "^5.9.3"
|
||||
"typedoc": "^0.28.18",
|
||||
"typescript": "^6.0.2"
|
||||
},
|
||||
"files": [
|
||||
"ts/**/*",
|
||||
@@ -54,7 +54,7 @@
|
||||
"dist_ts_web/**/*",
|
||||
"assets/**/*",
|
||||
"cli.js",
|
||||
"npmextra.json",
|
||||
".smartconfig.json",
|
||||
"readme.md"
|
||||
],
|
||||
"browserslist": [
|
||||
|
||||
309
pnpm-lock.yaml
generated
309
pnpm-lock.yaml
generated
@@ -9,8 +9,8 @@ importers:
|
||||
.:
|
||||
dependencies:
|
||||
'@git.zone/tspublish':
|
||||
specifier: ^1.11.2
|
||||
version: 1.11.2
|
||||
specifier: ^1.11.3
|
||||
version: 1.11.3
|
||||
'@push.rocks/early':
|
||||
specifier: ^4.0.4
|
||||
version: 4.0.4
|
||||
@@ -19,16 +19,16 @@ importers:
|
||||
version: 6.1.3
|
||||
'@push.rocks/smartagent':
|
||||
specifier: ^3.0.2
|
||||
version: 3.0.2(typescript@5.9.3)(ws@8.19.0)
|
||||
version: 3.0.2(typescript@6.0.2)(ws@8.19.0)
|
||||
'@push.rocks/smartai':
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0(typescript@5.9.3)(ws@8.19.0)(zod@3.25.76)
|
||||
version: 2.0.0(typescript@6.0.2)(ws@8.19.0)(zod@3.25.76)
|
||||
'@push.rocks/smartcli':
|
||||
specifier: ^4.0.20
|
||||
version: 4.0.20
|
||||
'@push.rocks/smartconfig':
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.0
|
||||
specifier: ^6.0.1
|
||||
version: 6.0.1
|
||||
'@push.rocks/smartdelay':
|
||||
specifier: ^3.0.5
|
||||
version: 3.0.5
|
||||
@@ -54,17 +54,17 @@ importers:
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.0
|
||||
'@push.rocks/smartshell':
|
||||
specifier: ^3.3.7
|
||||
version: 3.3.7
|
||||
specifier: ^3.3.8
|
||||
version: 3.3.8
|
||||
'@push.rocks/smarttime':
|
||||
specifier: ^4.2.3
|
||||
version: 4.2.3
|
||||
typedoc:
|
||||
specifier: ^0.28.17
|
||||
version: 0.28.17(typescript@5.9.3)
|
||||
specifier: ^0.28.18
|
||||
version: 0.28.18(typescript@6.0.2)
|
||||
typescript:
|
||||
specifier: ^5.9.3
|
||||
version: 5.9.3
|
||||
specifier: ^6.0.2
|
||||
version: 6.0.2
|
||||
devDependencies:
|
||||
'@git.zone/tsbuild':
|
||||
specifier: ^4.3.0
|
||||
@@ -73,11 +73,11 @@ importers:
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
'@git.zone/tstest':
|
||||
specifier: ^3.3.2
|
||||
version: 3.3.2(@aws-sdk/credential-providers@3.808.0)(socks@2.8.7)(typescript@5.9.3)
|
||||
specifier: ^3.5.1
|
||||
version: 3.5.1(@aws-sdk/credential-providers@3.808.0)(socks@2.8.7)(typescript@6.0.2)
|
||||
'@types/node':
|
||||
specifier: ^25.4.0
|
||||
version: 25.4.0
|
||||
specifier: ^25.5.0
|
||||
version: 25.5.0
|
||||
|
||||
packages:
|
||||
|
||||
@@ -764,8 +764,8 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@gerrit0/mini-shiki@3.20.0':
|
||||
resolution: {integrity: sha512-Wa57i+bMpK6PGJZ1f2myxo3iO+K/kZikcyvH8NIqNNZhQUbDav7V9LQmWOXhf946mz5c1NZ19WMsGYiDKTryzQ==}
|
||||
'@gerrit0/mini-shiki@3.23.0':
|
||||
resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==}
|
||||
|
||||
'@git.zone/tsbuild@4.3.0':
|
||||
resolution: {integrity: sha512-lb6eMQ8RQPaJqAB4kC++GIElOiTAH1pClmoND/q7XHuiMZxv6cXz2/U/sZt339mon2c40dXRG2tkLF2jRsP0pQ==}
|
||||
@@ -775,16 +775,16 @@ packages:
|
||||
resolution: {integrity: sha512-JW1xjSv7UjAm2lwAQPxhCWs14wqs+UIq5FqIGUPuI6rrDBWIMT2d0gpP6iP6TqXqgm6XpBlfU4rHcHheUXzXbQ==}
|
||||
hasBin: true
|
||||
|
||||
'@git.zone/tspublish@1.11.2':
|
||||
resolution: {integrity: sha512-BcGap1OzXDgXpfQXMh9W17r/CkWNhPsJ3WzjG2wrGE+ePUJCJAm9w6+J8G5WdZZcZKPqTB07cp707LbSiksc5A==}
|
||||
'@git.zone/tspublish@1.11.3':
|
||||
resolution: {integrity: sha512-hYpnNc1f2OXrBNKKtQN3MBeflnw/6jI6v8lP6IlX79r7Aczg5DVa+s40gJt9vliftaLyDY/FRFixZifv4MnKGw==}
|
||||
hasBin: true
|
||||
|
||||
'@git.zone/tsrun@2.0.1':
|
||||
resolution: {integrity: sha512-NEcnsjvlC1o3Z6SS3VhKCf6Ev+Sh4EAinmggslrIR/ppMrvjDbXNFXoyr3PB+GLeSAR0JRZ1fGvVYjpEzjBdIg==}
|
||||
hasBin: true
|
||||
|
||||
'@git.zone/tstest@3.3.2':
|
||||
resolution: {integrity: sha512-1R3VMEg+VMeMlSTIzIYTAsRIHuZMlpWmG1j4Q1cPSSw3jOp79OD7sJxfHkqy4bO/nTTcKMGXs5DD1nhT7Xno8w==}
|
||||
'@git.zone/tstest@3.5.1':
|
||||
resolution: {integrity: sha512-R1T3Tr9zun0B5bFq8qK8/KZ2uqHZHfDPB3/mhoL5ekwxGSI4InX5sXMpbNuhw2EdNZ7rMAHNCyeSLz2PwFmNZw==}
|
||||
hasBin: true
|
||||
|
||||
'@img/colour@1.0.0':
|
||||
@@ -1249,8 +1249,8 @@ packages:
|
||||
'@push.rocks/smartclickhouse@2.0.17':
|
||||
resolution: {integrity: sha512-IYO8Obor/Ruam2KQ2B/+5uQ+rL0exU5KZoSgOc3jkkrfjn+zZenN2xoV8lVqavAtxZVfG7MfxFrcv6I7I9ZMmA==}
|
||||
|
||||
'@push.rocks/smartconfig@6.0.0':
|
||||
resolution: {integrity: sha512-ohXwJdbDXV2budErnZKWBOz01YkjP6gJsZ7QM9+6Wsh+r7O1CVT3JpV+mD8xJWy5tZRHI+3B9L8z0+WkIDtKzw==}
|
||||
'@push.rocks/smartconfig@6.0.1':
|
||||
resolution: {integrity: sha512-nuUbiOTy7WbDliZV2mG1VRaeJYygtBlLNVs3LmLoPmBzbZwwUMq+HFVS19BhXxmQnGZ5+JXW05dZXKfMqEDZnw==}
|
||||
|
||||
'@push.rocks/smartcrypto@2.0.4':
|
||||
resolution: {integrity: sha512-1+/5bsjyataf5uUkUNnnVXGRAt+gHVk1KDzozjTqgqJxHvQk1d9fVDohL6CxUhUucTPtu5VR5xNBiV8YCDuGyw==}
|
||||
@@ -1387,17 +1387,17 @@ packages:
|
||||
'@push.rocks/smartrust@1.3.1':
|
||||
resolution: {integrity: sha512-3ApbgF6yGeE2TRQxBY9Y48H1JlpcRheIp7QDBLSSfk80Uoe6fjdgBAfNz3Ir8hW3RZ3b7hA3sm1ZshCok58SEA==}
|
||||
|
||||
'@push.rocks/smartrust@1.3.2':
|
||||
resolution: {integrity: sha512-HPzSJgDnKUdE5fkn2+BC9JvFXk7wl6aURAiHAXjHSCBLtzfgB7jEXjlg+K6CEfMjwQV7sy+hYABlq5DLXcFseQ==}
|
||||
|
||||
'@push.rocks/smartrx@3.0.10':
|
||||
resolution: {integrity: sha512-USjIYcsSfzn14cwOsxgq/bBmWDTTzy3ouWAnW5NdMyRRzEbmeNrvmy6TRqNeDlJ2PsYNTt1rr/zGUqvIy72ITg==}
|
||||
|
||||
'@push.rocks/smarts3@5.3.0':
|
||||
resolution: {integrity: sha512-6bo55ovCDEylbTxwPFZYDrZrz2babQEUmxHIexmVcP2j+6LYRHDbGYnWoyKdtqniqDFZ04pFkOoZ85hUzU5xCw==}
|
||||
|
||||
'@push.rocks/smartserve@2.0.1':
|
||||
resolution: {integrity: sha512-YQb2qexfCzCqOlLWBBXKMg6xG4zahCPAxomz/KEKAwHtW6wMTtuHKSTSkRTQ0vl9jssLMAmRz2OyafiL9XGJXQ==}
|
||||
|
||||
'@push.rocks/smartshell@3.3.7':
|
||||
resolution: {integrity: sha512-b3st2+FjHUVhZZRlXfw93+SQA0UMVlURqe55uVpWdjJX7jeGXTTeszuYygtiR99zC5iZ8WZhGDct3N2L1qc/qw==}
|
||||
'@push.rocks/smartshell@3.3.8':
|
||||
resolution: {integrity: sha512-t9J/py0vnea4ZtOs7Anc9dc6lcvg6EDvYBw5eE1mB+KUWxMQf/ROIQwWMo6B9SMNY4JS2UwvfuJQJ8makP/7Tg==}
|
||||
|
||||
'@push.rocks/smartspawn@3.0.3':
|
||||
resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==}
|
||||
@@ -1405,6 +1405,9 @@ packages:
|
||||
'@push.rocks/smartstate@2.0.27':
|
||||
resolution: {integrity: sha512-q4UKir7GV3hakJWXQR4DoA4tUVwT5GRkJ/MtanHYF0wZLHfS19+nGmyO9y974zk3eT9hmy3+Lq5cKtU2W6+Y3w==}
|
||||
|
||||
'@push.rocks/smartstorage@6.3.2':
|
||||
resolution: {integrity: sha512-g8rXlVZ+6iKmzNoybtwQntdb7EWA6WnVmbXNOdwDKWR8w4o/7UMErj+H5mt57iqYIy1pzQAoTb8IWJNsti7XQw==}
|
||||
|
||||
'@push.rocks/smartstream@3.2.5':
|
||||
resolution: {integrity: sha512-PLGGIFDy8JLNVUnnntMSIYN4W081YSbNC7Y/sWpvUT8PAXtbEXXUiDFgK5o3gcI0ptpKQxHAwxhzNlPj0sbFVg==}
|
||||
|
||||
@@ -1433,9 +1436,6 @@ packages:
|
||||
'@push.rocks/smartyaml@2.0.5':
|
||||
resolution: {integrity: sha512-tBcf+HaOIfeEsTMwgUZDtZERCxXQyRsWO8Ar5DjBdiSRchbhVGZQEBzXswMS0W5ZoRenjgPK+4tPW3JQGRTfbg==}
|
||||
|
||||
'@push.rocks/taskbuffer@3.2.0':
|
||||
resolution: {integrity: sha512-O+zp9XIWKYswkASLzUPeRP8+APQEjfpIMDXCkr3DSiTcd3KRpeWRZw1FKh2F3T8lqrGKedbEtrf87HFB4/CQfQ==}
|
||||
|
||||
'@push.rocks/taskbuffer@3.5.0':
|
||||
resolution: {integrity: sha512-Y9WwIEIyp6oVFdj06j84tfrZIvjhbMb3DF52rYxlTeYLk3W7RPhSg1bGPCbtkXWeKdBrSe37V90BkOG7Qq8Pqg==}
|
||||
|
||||
@@ -1615,17 +1615,17 @@ packages:
|
||||
'@sec-ant/readable-stream@0.4.1':
|
||||
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
|
||||
|
||||
'@shikijs/engine-oniguruma@3.20.0':
|
||||
resolution: {integrity: sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==}
|
||||
'@shikijs/engine-oniguruma@3.23.0':
|
||||
resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==}
|
||||
|
||||
'@shikijs/langs@3.20.0':
|
||||
resolution: {integrity: sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==}
|
||||
'@shikijs/langs@3.23.0':
|
||||
resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==}
|
||||
|
||||
'@shikijs/themes@3.20.0':
|
||||
resolution: {integrity: sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==}
|
||||
'@shikijs/themes@3.23.0':
|
||||
resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==}
|
||||
|
||||
'@shikijs/types@3.20.0':
|
||||
resolution: {integrity: sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==}
|
||||
'@shikijs/types@3.23.0':
|
||||
resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==}
|
||||
|
||||
'@shikijs/vscode-textmate@10.0.2':
|
||||
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
|
||||
@@ -1876,12 +1876,12 @@ packages:
|
||||
'@tsclass/tsclass@4.4.4':
|
||||
resolution: {integrity: sha512-YZOAF+u+r4u5rCev2uUd1KBTBdfyFdtDmcv4wuN+864lMccbdfRICR3SlJwCfYS1lbeV3QNLYGD30wjRXgvCJA==}
|
||||
|
||||
'@tsclass/tsclass@9.2.0':
|
||||
resolution: {integrity: sha512-A6ULEkQfYgOnCKQVQRt26O7PRzFo4PE2EoD25RAtnuFuVrNwGynYC20Vee2c8KAOyI7nQ/LaREki9KAX4AHOHQ==}
|
||||
|
||||
'@tsclass/tsclass@9.3.0':
|
||||
resolution: {integrity: sha512-KD3oTUN3RGu67tgjNHgWWZGsdYipr1RUDxQ9MMKSgIJ6oNZ4q5m2rg0ibrgyHWkAjTPlHVa6kHP3uVOY+8bnHw==}
|
||||
|
||||
'@tsclass/tsclass@9.5.0':
|
||||
resolution: {integrity: sha512-HwMVwkrBnEFMjwOsMkGwWN/q+XEczSpf4a/PBAXgkDdV6sXdxAMFXUH1tW8Y5ecuvXFYMvFry4X57MCCT7Dm8A==}
|
||||
|
||||
'@tybys/wasm-util@0.10.1':
|
||||
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
|
||||
|
||||
@@ -1949,8 +1949,8 @@ packages:
|
||||
'@types/node@22.19.3':
|
||||
resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==}
|
||||
|
||||
'@types/node@25.4.0':
|
||||
resolution: {integrity: sha512-9wLpoeWuBlcbBpOY3XmzSTG3oscB6xjBEEtn+pYXTfhyXhIxC5FsBer2KTopBlvKEiW9l13po9fq+SJY/5lkhw==}
|
||||
'@types/node@25.5.0':
|
||||
resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==}
|
||||
|
||||
'@types/ping@0.4.4':
|
||||
resolution: {integrity: sha512-ifvo6w2f5eJYlXm+HiVx67iJe8WZp87sfa683nlqED5Vnt9Z93onkokNoWqOG21EaE8fMxyKPobE+mkPEyxsdw==}
|
||||
@@ -2105,6 +2105,10 @@ packages:
|
||||
balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
balanced-match@4.0.4:
|
||||
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
|
||||
bare-events@2.5.4:
|
||||
resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==}
|
||||
|
||||
@@ -2168,6 +2172,10 @@ packages:
|
||||
brace-expansion@2.0.1:
|
||||
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
|
||||
|
||||
brace-expansion@5.0.5:
|
||||
resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
|
||||
broadcast-channel@7.2.0:
|
||||
resolution: {integrity: sha512-JgraikEriG/TxBUi2W/w2O0jhHjXZUtXAvCZH0Yr3whjxYVgAg0hSe6r/teM+I5H5Q/q6RhyuKdC2pHNlFyepQ==}
|
||||
|
||||
@@ -2949,8 +2957,8 @@ packages:
|
||||
make-error@1.3.6:
|
||||
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
|
||||
|
||||
markdown-it@14.1.0:
|
||||
resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
|
||||
markdown-it@14.1.1:
|
||||
resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==}
|
||||
hasBin: true
|
||||
|
||||
markdown-table@3.0.4:
|
||||
@@ -3142,6 +3150,10 @@ packages:
|
||||
resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
|
||||
engines: {node: 20 || >=22}
|
||||
|
||||
minimatch@10.2.4:
|
||||
resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
|
||||
minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
|
||||
@@ -3737,6 +3749,10 @@ packages:
|
||||
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
|
||||
hasBin: true
|
||||
|
||||
tagged-tag@1.0.0:
|
||||
resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
tar-fs@3.1.1:
|
||||
resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==}
|
||||
|
||||
@@ -3832,6 +3848,10 @@ packages:
|
||||
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
type-fest@5.5.0:
|
||||
resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
typed-array-buffer@1.0.3:
|
||||
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -3839,18 +3859,23 @@ packages:
|
||||
typed-query-selector@2.12.0:
|
||||
resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==}
|
||||
|
||||
typedoc@0.28.17:
|
||||
resolution: {integrity: sha512-ZkJ2G7mZrbxrKxinTQMjFqsCoYY6a5Luwv2GKbTnBCEgV2ihYm5CflA9JnJAwH0pZWavqfYxmDkFHPt4yx2oDQ==}
|
||||
typedoc@0.28.18:
|
||||
resolution: {integrity: sha512-NTWTUOFRQ9+SGKKTuWKUioUkjxNwtS3JDRPVKZAXGHZy2wCA8bdv2iJiyeePn0xkmK+TCCqZFT0X7+2+FLjngA==}
|
||||
engines: {node: '>= 18', pnpm: '>= 10'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x
|
||||
typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x
|
||||
|
||||
typescript@5.9.3:
|
||||
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
typescript@6.0.2:
|
||||
resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
uc.micro@2.1.0:
|
||||
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
|
||||
|
||||
@@ -5209,17 +5234,17 @@ snapshots:
|
||||
'@esbuild/win32-x64@0.27.2':
|
||||
optional: true
|
||||
|
||||
'@gerrit0/mini-shiki@3.20.0':
|
||||
'@gerrit0/mini-shiki@3.23.0':
|
||||
dependencies:
|
||||
'@shikijs/engine-oniguruma': 3.20.0
|
||||
'@shikijs/langs': 3.20.0
|
||||
'@shikijs/themes': 3.20.0
|
||||
'@shikijs/types': 3.20.0
|
||||
'@shikijs/engine-oniguruma': 3.23.0
|
||||
'@shikijs/langs': 3.23.0
|
||||
'@shikijs/themes': 3.23.0
|
||||
'@shikijs/types': 3.23.0
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
|
||||
'@git.zone/tsbuild@4.3.0':
|
||||
dependencies:
|
||||
'@git.zone/tspublish': 1.11.2
|
||||
'@git.zone/tspublish': 1.11.3
|
||||
'@push.rocks/early': 4.0.4
|
||||
'@push.rocks/smartcli': 4.0.20
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
@@ -5256,14 +5281,17 @@ snapshots:
|
||||
rolldown: 1.0.0-beta.52
|
||||
typescript: 5.9.3
|
||||
transitivePeerDependencies:
|
||||
- '@nuxt/kit'
|
||||
- '@swc/helpers'
|
||||
- react
|
||||
- supports-color
|
||||
- vue
|
||||
|
||||
'@git.zone/tspublish@1.11.2':
|
||||
'@git.zone/tspublish@1.11.3':
|
||||
dependencies:
|
||||
'@push.rocks/consolecolor': 2.0.3
|
||||
'@push.rocks/npmextra': 5.3.3
|
||||
'@push.rocks/smartcli': 4.0.20
|
||||
'@push.rocks/smartconfig': 6.0.1
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartfile': 13.1.2
|
||||
'@push.rocks/smartfs': 1.5.0
|
||||
@@ -5271,7 +5299,7 @@ snapshots:
|
||||
'@push.rocks/smartnpm': 2.0.6
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
'@push.rocks/smartrequest': 5.0.1
|
||||
'@push.rocks/smartshell': 3.3.7
|
||||
'@push.rocks/smartshell': 3.3.8
|
||||
transitivePeerDependencies:
|
||||
- '@nuxt/kit'
|
||||
- aws-crt
|
||||
@@ -5282,16 +5310,16 @@ snapshots:
|
||||
'@git.zone/tsrun@2.0.1':
|
||||
dependencies:
|
||||
'@push.rocks/smartfile': 13.1.2
|
||||
'@push.rocks/smartshell': 3.3.7
|
||||
'@push.rocks/smartshell': 3.3.8
|
||||
tsx: 4.21.0
|
||||
|
||||
'@git.zone/tstest@3.3.2(@aws-sdk/credential-providers@3.808.0)(socks@2.8.7)(typescript@5.9.3)':
|
||||
'@git.zone/tstest@3.5.1(@aws-sdk/credential-providers@3.808.0)(socks@2.8.7)(typescript@6.0.2)':
|
||||
dependencies:
|
||||
'@git.zone/tsbundle': 2.9.1
|
||||
'@git.zone/tsrun': 2.0.1
|
||||
'@push.rocks/consolecolor': 2.0.3
|
||||
'@push.rocks/qenv': 6.1.3
|
||||
'@push.rocks/smartbrowser': 2.0.11(typescript@5.9.3)
|
||||
'@push.rocks/smartbrowser': 2.0.11(typescript@6.0.2)
|
||||
'@push.rocks/smartcrypto': 2.0.4
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartenv': 6.0.0
|
||||
@@ -5305,9 +5333,9 @@ snapshots:
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
'@push.rocks/smartpromise': 4.2.3
|
||||
'@push.rocks/smartrequest': 5.0.1
|
||||
'@push.rocks/smarts3': 5.3.0
|
||||
'@push.rocks/smartserve': 2.0.1
|
||||
'@push.rocks/smartshell': 3.3.7
|
||||
'@push.rocks/smartshell': 3.3.8
|
||||
'@push.rocks/smartstorage': 6.3.2
|
||||
'@push.rocks/smarttime': 4.2.3
|
||||
'@push.rocks/smartwatch': 6.3.0
|
||||
'@types/ws': 8.18.1
|
||||
@@ -5972,13 +6000,18 @@ snapshots:
|
||||
dependencies:
|
||||
'@push.rocks/qenv': 6.1.3
|
||||
'@push.rocks/smartfile': 11.2.7
|
||||
'@push.rocks/smartjson': 5.0.20
|
||||
'@push.rocks/smartjson': 5.2.0
|
||||
'@push.rocks/smartlog': 3.2.1
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
'@push.rocks/smartpromise': 4.2.3
|
||||
'@push.rocks/smartrx': 3.0.10
|
||||
'@push.rocks/taskbuffer': 3.2.0
|
||||
'@tsclass/tsclass': 9.2.0
|
||||
'@push.rocks/taskbuffer': 3.5.0
|
||||
'@tsclass/tsclass': 9.3.0
|
||||
transitivePeerDependencies:
|
||||
- '@nuxt/kit'
|
||||
- react
|
||||
- supports-color
|
||||
- vue
|
||||
|
||||
'@push.rocks/qenv@6.1.3':
|
||||
dependencies:
|
||||
@@ -5988,12 +6021,12 @@ snapshots:
|
||||
'@push.rocks/smartlog': 3.2.1
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
|
||||
'@push.rocks/smartagent@3.0.2(typescript@5.9.3)(ws@8.19.0)':
|
||||
'@push.rocks/smartagent@3.0.2(typescript@6.0.2)(ws@8.19.0)':
|
||||
dependencies:
|
||||
'@push.rocks/smartai': 2.0.0(typescript@5.9.3)(ws@8.19.0)(zod@3.25.76)
|
||||
'@push.rocks/smartai': 2.0.0(typescript@6.0.2)(ws@8.19.0)(zod@3.25.76)
|
||||
'@push.rocks/smartfs': 1.5.0
|
||||
'@push.rocks/smartrequest': 5.0.1
|
||||
'@push.rocks/smartshell': 3.3.7
|
||||
'@push.rocks/smartshell': 3.3.8
|
||||
ai: 6.0.116(zod@3.25.76)
|
||||
zod: 3.25.76
|
||||
transitivePeerDependencies:
|
||||
@@ -6009,7 +6042,7 @@ snapshots:
|
||||
- vue
|
||||
- ws
|
||||
|
||||
'@push.rocks/smartai@2.0.0(typescript@5.9.3)(ws@8.19.0)(zod@3.25.76)':
|
||||
'@push.rocks/smartai@2.0.0(typescript@6.0.2)(ws@8.19.0)(zod@3.25.76)':
|
||||
dependencies:
|
||||
'@ai-sdk/anthropic': 3.0.58(zod@3.25.76)
|
||||
'@ai-sdk/google': 3.0.43(zod@3.25.76)
|
||||
@@ -6020,7 +6053,7 @@ snapshots:
|
||||
'@ai-sdk/provider': 3.0.8
|
||||
'@ai-sdk/xai': 3.0.67(zod@3.25.76)
|
||||
'@anthropic-ai/sdk': 0.78.0(zod@3.25.76)
|
||||
'@push.rocks/smartpdf': 4.2.0(typescript@5.9.3)
|
||||
'@push.rocks/smartpdf': 4.2.0(typescript@6.0.2)
|
||||
ai: 6.0.116(zod@3.25.76)
|
||||
openai: 6.27.0(ws@8.19.0)(zod@3.25.76)
|
||||
transitivePeerDependencies:
|
||||
@@ -6055,11 +6088,11 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@push.rocks/smartbrowser@2.0.11(typescript@5.9.3)':
|
||||
'@push.rocks/smartbrowser@2.0.11(typescript@6.0.2)':
|
||||
dependencies:
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartpdf': 4.2.0(typescript@5.9.3)
|
||||
'@push.rocks/smartpuppeteer': 2.0.5(typescript@5.9.3)
|
||||
'@push.rocks/smartpdf': 4.2.0(typescript@6.0.2)
|
||||
'@push.rocks/smartpuppeteer': 2.0.5(typescript@6.0.2)
|
||||
'@push.rocks/smartunique': 3.0.9
|
||||
transitivePeerDependencies:
|
||||
- '@nuxt/kit'
|
||||
@@ -6117,7 +6150,7 @@ snapshots:
|
||||
'@push.rocks/smarturl': 3.1.0
|
||||
'@push.rocks/webrequest': 3.0.37
|
||||
|
||||
'@push.rocks/smartconfig@6.0.0':
|
||||
'@push.rocks/smartconfig@6.0.1':
|
||||
dependencies:
|
||||
'@push.rocks/qenv': 6.1.3
|
||||
'@push.rocks/smartfile': 11.2.7
|
||||
@@ -6270,7 +6303,7 @@ snapshots:
|
||||
'@push.rocks/smartfile': 11.2.7
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
'@push.rocks/smartpromise': 4.2.3
|
||||
'@push.rocks/smartshell': 3.3.7
|
||||
'@push.rocks/smartshell': 3.3.8
|
||||
'@push.rocks/smartstring': 4.1.0
|
||||
'@push.rocks/smarttime': 4.2.3
|
||||
'@types/diff': 8.0.0
|
||||
@@ -6467,7 +6500,7 @@ snapshots:
|
||||
|
||||
'@push.rocks/smartpath@6.0.0': {}
|
||||
|
||||
'@push.rocks/smartpdf@4.2.0(typescript@5.9.3)':
|
||||
'@push.rocks/smartpdf@4.2.0(typescript@6.0.2)':
|
||||
dependencies:
|
||||
'@push.rocks/smartbuffer': 3.0.5
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
@@ -6476,7 +6509,7 @@ snapshots:
|
||||
'@push.rocks/smartnetwork': 4.4.0
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
'@push.rocks/smartpromise': 4.2.3
|
||||
'@push.rocks/smartpuppeteer': 2.0.5(typescript@5.9.3)
|
||||
'@push.rocks/smartpuppeteer': 2.0.5(typescript@6.0.2)
|
||||
'@push.rocks/smartserve': 2.0.1
|
||||
'@push.rocks/smartunique': 3.0.9
|
||||
'@tsclass/tsclass': 9.3.0
|
||||
@@ -6501,11 +6534,11 @@ snapshots:
|
||||
|
||||
'@push.rocks/smartpromise@4.2.3': {}
|
||||
|
||||
'@push.rocks/smartpuppeteer@2.0.5(typescript@5.9.3)':
|
||||
'@push.rocks/smartpuppeteer@2.0.5(typescript@6.0.2)':
|
||||
dependencies:
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartshell': 3.3.7
|
||||
puppeteer: 24.28.0(typescript@5.9.3)
|
||||
'@push.rocks/smartshell': 3.3.8
|
||||
puppeteer: 24.28.0(typescript@6.0.2)
|
||||
tree-kill: 1.2.2
|
||||
transitivePeerDependencies:
|
||||
- bare-abort-controller
|
||||
@@ -6550,17 +6583,15 @@ snapshots:
|
||||
dependencies:
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
|
||||
'@push.rocks/smartrust@1.3.2':
|
||||
dependencies:
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
|
||||
'@push.rocks/smartrx@3.0.10':
|
||||
dependencies:
|
||||
'@push.rocks/smartpromise': 4.2.3
|
||||
rxjs: 7.8.2
|
||||
|
||||
'@push.rocks/smarts3@5.3.0':
|
||||
dependencies:
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
'@push.rocks/smartrust': 1.3.1
|
||||
'@tsclass/tsclass': 9.3.0
|
||||
|
||||
'@push.rocks/smartserve@2.0.1':
|
||||
dependencies:
|
||||
'@api.global/typedrequest': 3.2.5
|
||||
@@ -6574,7 +6605,7 @@ snapshots:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
'@push.rocks/smartshell@3.3.7':
|
||||
'@push.rocks/smartshell@3.3.8':
|
||||
dependencies:
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartexit': 2.0.3
|
||||
@@ -6600,6 +6631,12 @@ snapshots:
|
||||
'@push.rocks/smartrx': 3.0.10
|
||||
'@push.rocks/webstore': 2.0.20
|
||||
|
||||
'@push.rocks/smartstorage@6.3.2':
|
||||
dependencies:
|
||||
'@push.rocks/smartpath': 6.0.0
|
||||
'@push.rocks/smartrust': 1.3.2
|
||||
'@tsclass/tsclass': 9.5.0
|
||||
|
||||
'@push.rocks/smartstream@3.2.5':
|
||||
dependencies:
|
||||
'@push.rocks/lik': 6.2.2
|
||||
@@ -6660,16 +6697,6 @@ snapshots:
|
||||
'@types/js-yaml': 3.12.10
|
||||
js-yaml: 3.14.2
|
||||
|
||||
'@push.rocks/taskbuffer@3.2.0':
|
||||
dependencies:
|
||||
'@push.rocks/lik': 6.2.2
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartlog': 3.2.1
|
||||
'@push.rocks/smartpromise': 4.2.3
|
||||
'@push.rocks/smartrx': 3.0.10
|
||||
'@push.rocks/smarttime': 4.2.3
|
||||
'@push.rocks/smartunique': 3.0.9
|
||||
|
||||
'@push.rocks/taskbuffer@3.5.0':
|
||||
dependencies:
|
||||
'@design.estate/dees-element': 2.1.3
|
||||
@@ -6830,20 +6857,20 @@ snapshots:
|
||||
|
||||
'@sec-ant/readable-stream@0.4.1': {}
|
||||
|
||||
'@shikijs/engine-oniguruma@3.20.0':
|
||||
'@shikijs/engine-oniguruma@3.23.0':
|
||||
dependencies:
|
||||
'@shikijs/types': 3.20.0
|
||||
'@shikijs/types': 3.23.0
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
|
||||
'@shikijs/langs@3.20.0':
|
||||
'@shikijs/langs@3.23.0':
|
||||
dependencies:
|
||||
'@shikijs/types': 3.20.0
|
||||
'@shikijs/types': 3.23.0
|
||||
|
||||
'@shikijs/themes@3.20.0':
|
||||
'@shikijs/themes@3.23.0':
|
||||
dependencies:
|
||||
'@shikijs/types': 3.20.0
|
||||
'@shikijs/types': 3.23.0
|
||||
|
||||
'@shikijs/types@3.20.0':
|
||||
'@shikijs/types@3.23.0':
|
||||
dependencies:
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
'@types/hast': 3.0.4
|
||||
@@ -7217,14 +7244,14 @@ snapshots:
|
||||
dependencies:
|
||||
type-fest: 4.41.0
|
||||
|
||||
'@tsclass/tsclass@9.2.0':
|
||||
dependencies:
|
||||
type-fest: 4.41.0
|
||||
|
||||
'@tsclass/tsclass@9.3.0':
|
||||
dependencies:
|
||||
type-fest: 4.41.0
|
||||
|
||||
'@tsclass/tsclass@9.5.0':
|
||||
dependencies:
|
||||
type-fest: 5.5.0
|
||||
|
||||
'@tybys/wasm-util@0.10.1':
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
@@ -7232,11 +7259,11 @@ snapshots:
|
||||
|
||||
'@types/bn.js@5.2.0':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/clean-css@4.2.11':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
source-map: 0.6.1
|
||||
|
||||
'@types/debug@4.1.12':
|
||||
@@ -7249,7 +7276,7 @@ snapshots:
|
||||
|
||||
'@types/dns-packet@5.6.5':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/elliptic@6.4.18':
|
||||
dependencies:
|
||||
@@ -7258,7 +7285,7 @@ snapshots:
|
||||
'@types/fs-extra@11.0.4':
|
||||
dependencies:
|
||||
'@types/jsonfile': 6.1.4
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/hast@3.0.4':
|
||||
dependencies:
|
||||
@@ -7278,7 +7305,7 @@ snapshots:
|
||||
|
||||
'@types/jsonfile@6.1.4':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/mdast@4.0.4':
|
||||
dependencies:
|
||||
@@ -7292,11 +7319,11 @@ snapshots:
|
||||
|
||||
'@types/mute-stream@0.0.4':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/node-forge@1.3.14':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/node@16.9.1': {}
|
||||
|
||||
@@ -7304,7 +7331,7 @@ snapshots:
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
|
||||
'@types/node@25.4.0':
|
||||
'@types/node@25.5.0':
|
||||
dependencies:
|
||||
undici-types: 7.18.2
|
||||
|
||||
@@ -7320,11 +7347,11 @@ snapshots:
|
||||
|
||||
'@types/tar-stream@3.1.4':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/through2@2.0.41':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/trusted-types@2.0.7': {}
|
||||
|
||||
@@ -7350,11 +7377,11 @@ snapshots:
|
||||
|
||||
'@types/ws@8.18.1':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/yauzl@2.10.3':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
optional: true
|
||||
|
||||
'@ungap/structured-clone@1.3.0': {}
|
||||
@@ -7451,6 +7478,8 @@ snapshots:
|
||||
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
balanced-match@4.0.4: {}
|
||||
|
||||
bare-events@2.5.4:
|
||||
optional: true
|
||||
|
||||
@@ -7509,6 +7538,10 @@ snapshots:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
|
||||
brace-expansion@5.0.5:
|
||||
dependencies:
|
||||
balanced-match: 4.0.4
|
||||
|
||||
broadcast-channel@7.2.0:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.28.4
|
||||
@@ -7629,14 +7662,14 @@ snapshots:
|
||||
ini: 1.3.8
|
||||
proto-list: 1.2.4
|
||||
|
||||
cosmiconfig@9.0.0(typescript@5.9.3):
|
||||
cosmiconfig@9.0.0(typescript@6.0.2):
|
||||
dependencies:
|
||||
env-paths: 2.2.1
|
||||
import-fresh: 3.3.1
|
||||
js-yaml: 4.1.0
|
||||
parse-json: 5.2.0
|
||||
optionalDependencies:
|
||||
typescript: 5.9.3
|
||||
typescript: 6.0.2
|
||||
|
||||
crc-32@1.2.2: {}
|
||||
|
||||
@@ -8383,7 +8416,7 @@ snapshots:
|
||||
|
||||
make-error@1.3.6: {}
|
||||
|
||||
markdown-it@14.1.0:
|
||||
markdown-it@14.1.1:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
entities: 4.5.0
|
||||
@@ -8755,6 +8788,10 @@ snapshots:
|
||||
dependencies:
|
||||
'@isaacs/brace-expansion': 5.0.0
|
||||
|
||||
minimatch@10.2.4:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.5
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.12
|
||||
@@ -9054,11 +9091,11 @@ snapshots:
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
puppeteer@24.28.0(typescript@5.9.3):
|
||||
puppeteer@24.28.0(typescript@6.0.2):
|
||||
dependencies:
|
||||
'@puppeteer/browsers': 2.10.13
|
||||
chromium-bidi: 10.5.1(devtools-protocol@0.0.1521046)
|
||||
cosmiconfig: 9.0.0(typescript@5.9.3)
|
||||
cosmiconfig: 9.0.0(typescript@6.0.2)
|
||||
devtools-protocol: 0.0.1521046
|
||||
puppeteer-core: 24.28.0
|
||||
typed-query-selector: 2.12.0
|
||||
@@ -9424,6 +9461,8 @@ snapshots:
|
||||
|
||||
systeminformation@5.27.11: {}
|
||||
|
||||
tagged-tag@1.0.0: {}
|
||||
|
||||
tar-fs@3.1.1:
|
||||
dependencies:
|
||||
pump: 3.0.3
|
||||
@@ -9533,6 +9572,10 @@ snapshots:
|
||||
|
||||
type-fest@4.41.0: {}
|
||||
|
||||
type-fest@5.5.0:
|
||||
dependencies:
|
||||
tagged-tag: 1.0.0
|
||||
|
||||
typed-array-buffer@1.0.3:
|
||||
dependencies:
|
||||
call-bound: 1.0.4
|
||||
@@ -9541,17 +9584,19 @@ snapshots:
|
||||
|
||||
typed-query-selector@2.12.0: {}
|
||||
|
||||
typedoc@0.28.17(typescript@5.9.3):
|
||||
typedoc@0.28.18(typescript@6.0.2):
|
||||
dependencies:
|
||||
'@gerrit0/mini-shiki': 3.20.0
|
||||
'@gerrit0/mini-shiki': 3.23.0
|
||||
lunr: 2.3.9
|
||||
markdown-it: 14.1.0
|
||||
minimatch: 9.0.5
|
||||
typescript: 5.9.3
|
||||
markdown-it: 14.1.1
|
||||
minimatch: 10.2.4
|
||||
typescript: 6.0.2
|
||||
yaml: 2.8.2
|
||||
|
||||
typescript@5.9.3: {}
|
||||
|
||||
typescript@6.0.2: {}
|
||||
|
||||
uc.micro@2.1.0: {}
|
||||
|
||||
uglify-js@3.19.3: {}
|
||||
|
||||
181
readme.md
181
readme.md
@@ -1,6 +1,6 @@
|
||||
# @git.zone/tsdoc
|
||||
|
||||
AI-Powered Documentation for TypeScript Projects
|
||||
AI-Powered Documentation & Commit Intelligence for TypeScript Projects 🚀
|
||||
|
||||
## Issue Reporting and Security
|
||||
|
||||
@@ -12,31 +12,31 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
|
||||
# Global installation (recommended for CLI usage)
|
||||
pnpm add -g @git.zone/tsdoc
|
||||
|
||||
# Or use with npx
|
||||
# Or use with npx (no install needed)
|
||||
npx @git.zone/tsdoc
|
||||
|
||||
# Or install locally as a dependency
|
||||
# Or install locally as a project dependency
|
||||
pnpm add @git.zone/tsdoc
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
`@git.zone/tsdoc` is a comprehensive TypeScript documentation tool that combines traditional TypeDoc API documentation generation with AI-powered documentation workflows. It uses OpenAI models via the Vercel AI SDK to generate READMEs, project descriptions, keywords, and semantic commit messages by intelligently exploring your project with agentic tool use.
|
||||
`@git.zone/tsdoc` is a TypeScript documentation powerhouse that combines traditional [TypeDoc](https://typedoc.org/) API docs with AI-powered documentation workflows. It uses OpenAI models via `@push.rocks/smartai` and autonomous agents via `@push.rocks/smartagent` to generate READMEs, project descriptions, keywords, and semantic commit messages — all by intelligently exploring your project's codebase with scoped filesystem tools.
|
||||
|
||||
### CLI Commands
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `tsdoc` | Auto-detects project type and runs TypeDoc |
|
||||
| `tsdoc aidoc` | Generates AI-powered README + description/keywords |
|
||||
| `tsdoc readme` | Generates AI-powered README only |
|
||||
| `tsdoc description` | Generates AI-powered description and keywords only |
|
||||
| `tsdoc commit` | Generates a semantic commit message from uncommitted changes |
|
||||
| `tsdoc typedoc` | Generates traditional TypeDoc API documentation |
|
||||
| `tsdoc` | 🔍 Auto-detects project type and runs TypeDoc |
|
||||
| `tsdoc aidoc` | 🤖 Generates AI-powered README + description/keywords |
|
||||
| `tsdoc readme` | 📝 Generates AI-powered README only |
|
||||
| `tsdoc description` | 🏷️ Generates AI-powered description and keywords only |
|
||||
| `tsdoc commit` | 💬 Generates a semantic commit message from uncommitted changes |
|
||||
| `tsdoc typedoc` | 📚 Generates traditional TypeDoc API documentation |
|
||||
|
||||
### Generating AI-Powered Documentation
|
||||
### 🤖 AI-Powered Documentation (`aidoc`)
|
||||
|
||||
The `aidoc` command combines README generation and description/keyword generation in one step:
|
||||
The `aidoc` command is the all-in-one workflow that combines README generation and description/keyword generation:
|
||||
|
||||
```bash
|
||||
# In your project root
|
||||
@@ -44,11 +44,13 @@ tsdoc aidoc
|
||||
```
|
||||
|
||||
This will:
|
||||
1. Analyze your codebase using an AI agent with filesystem access
|
||||
2. Generate a comprehensive `readme.md`
|
||||
3. Update `package.json` and `npmextra.json` with an AI-generated description and keywords
|
||||
|
||||
You can also run these separately:
|
||||
1. Spin up an AI agent with read-only filesystem access scoped to your project
|
||||
2. The agent autonomously explores your project structure, reads source files, and understands the API
|
||||
3. Generate a comprehensive `readme.md` with install instructions, usage examples, and architecture overview
|
||||
4. Update `package.json` and `.smartconfig.json` with an AI-generated description and keywords
|
||||
|
||||
You can also run these steps individually:
|
||||
|
||||
```bash
|
||||
# Generate only the README
|
||||
@@ -58,39 +60,41 @@ tsdoc readme
|
||||
tsdoc description
|
||||
```
|
||||
|
||||
### Generating Commit Messages
|
||||
### 💬 Smart Commit Messages (`commit`)
|
||||
|
||||
The `commit` command analyzes your uncommitted changes and produces a structured commit object:
|
||||
The `commit` command analyzes your uncommitted changes and produces a structured commit object following [Conventional Commits](https://www.conventionalcommits.org/):
|
||||
|
||||
```bash
|
||||
tsdoc commit
|
||||
```
|
||||
|
||||
Output is a JSON object following conventional commits:
|
||||
Output is a JSON object:
|
||||
|
||||
```json
|
||||
{
|
||||
"recommendedNextVersionLevel": "feat",
|
||||
"recommendedNextVersionScope": "core",
|
||||
"recommendedNextVersionMessage": "add new feature for better documentation",
|
||||
"recommendedNextVersionMessage": "add smart diff processing for large changesets",
|
||||
"recommendedNextVersionDetails": [
|
||||
"implemented X",
|
||||
"refactored Y"
|
||||
"implemented intelligent diff sampling with head/tail extraction",
|
||||
"added file prioritization by importance score"
|
||||
],
|
||||
"recommendedNextVersion": "1.13.0",
|
||||
"changelog": "# Changelog\n\n## 2026-03-11 - 1.13.0 - core\n..."
|
||||
"changelog": "# Changelog\n\n## 2026-03-24 - 1.13.0 - core\n..."
|
||||
}
|
||||
```
|
||||
|
||||
The commit command includes intelligent diff processing that:
|
||||
- Excludes lock files, build artifacts, IDE directories, and caches from the diff
|
||||
- Prioritizes source files over build artifacts
|
||||
- Samples large diffs with head/tail extraction to stay within token budgets
|
||||
- Automatically generates or updates the changelog
|
||||
Under the hood, the commit flow:
|
||||
|
||||
### Generating TypeDoc
|
||||
- **Excludes noise**: Lock files, build artifacts (`dist/`, `dist_*/`), IDE directories, caches, and source maps are filtered out before processing
|
||||
- **Prioritizes what matters**: Source files rank higher than test files, which rank higher than config, docs, and build artifacts
|
||||
- **Handles large diffs gracefully**: The `DiffProcessor` categorizes files by size — small files (< 300 lines) are included in full, medium files (< 800 lines) get head/tail sampling, and large files are metadata-only
|
||||
- **Respects token budgets**: Dynamically calculates available tokens based on the model's context limit minus overhead
|
||||
- **Auto-generates changelogs**: If no `changelog.md` exists, one is created from the full git history
|
||||
|
||||
For traditional API documentation via TypeDoc:
|
||||
### 📚 TypeDoc Generation (`typedoc`)
|
||||
|
||||
For traditional API documentation:
|
||||
|
||||
```bash
|
||||
# Generate to default ./public directory
|
||||
@@ -100,34 +104,40 @@ tsdoc typedoc
|
||||
tsdoc typedoc --publicSubdir docs
|
||||
```
|
||||
|
||||
### Monorepo Support
|
||||
TypeDoc generation auto-detects your source directories (`ts/` and `ts_web/`) and creates a temporary tsconfig for compilation.
|
||||
|
||||
When generating READMEs, tsdoc automatically detects monorepo submodules via `@git.zone/tspublish` conventions. Each submodule directory with a `tspublish.json` gets its own generated README.
|
||||
### 🏗️ Monorepo Support
|
||||
|
||||
When generating READMEs, tsdoc automatically detects monorepo submodules via `@git.zone/tspublish` conventions. Each submodule directory containing a `tspublish.json` gets its own generated README with the legal section appended.
|
||||
|
||||
### Programmatic API
|
||||
|
||||
You can also use tsdoc programmatically:
|
||||
You can use tsdoc programmatically in your own tools:
|
||||
|
||||
```typescript
|
||||
import { AiDoc } from '@git.zone/tsdoc';
|
||||
|
||||
const aidoc = new AiDoc();
|
||||
await aidoc.start(); // Initializes the AI model (prompts for OpenAI token if needed)
|
||||
|
||||
// Generate a README
|
||||
await aidoc.buildReadme('/path/to/project');
|
||||
// Initialize — prompts for OpenAI token on first run, then persists it
|
||||
await aidoc.start();
|
||||
|
||||
// Generate description and keywords
|
||||
// Generate a comprehensive README for a project
|
||||
const readmeContent = await aidoc.buildReadme('/path/to/project');
|
||||
|
||||
// Generate description and keywords, updating package.json and .smartconfig.json
|
||||
await aidoc.buildDescription('/path/to/project');
|
||||
|
||||
// Generate a commit message object
|
||||
// Generate a structured commit message object from uncommitted changes
|
||||
const commitObj = await aidoc.buildNextCommitObject('/path/to/project');
|
||||
console.log(commitObj);
|
||||
console.log(commitObj.recommendedNextVersionLevel); // 'fix' | 'feat' | 'BREAKING CHANGE'
|
||||
console.log(commitObj.recommendedNextVersionMessage);
|
||||
console.log(commitObj.changelog);
|
||||
|
||||
// Get project context information
|
||||
// Get gathered project files (package.json, source files, tests, config)
|
||||
const context = await aidoc.getProjectContext('/path/to/project');
|
||||
|
||||
// Get token count for a project
|
||||
// Get token count for a project's context
|
||||
const tokenCount = await aidoc.getProjectContextTokenCount('/path/to/project');
|
||||
|
||||
// Estimate tokens in arbitrary text
|
||||
@@ -136,21 +146,28 @@ const tokens = aidoc.countTokens('some text here');
|
||||
await aidoc.stop();
|
||||
```
|
||||
|
||||
You can also pass the OpenAI token directly via the constructor:
|
||||
|
||||
```typescript
|
||||
const aidoc = new AiDoc({ OPENAI_TOKEN: 'sk-...' });
|
||||
await aidoc.start();
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### OpenAI Token
|
||||
|
||||
An OpenAI API key is required for all AI features. It can be provided in three ways:
|
||||
An OpenAI API key is required for all AI features. It can be provided in three ways (checked in order):
|
||||
|
||||
1. **Environment variable**: `OPENAI_TOKEN`
|
||||
2. **Interactive prompt**: On first run, tsdoc will prompt for the token and persist it
|
||||
3. **Constructor argument**: Pass `{ OPENAI_TOKEN: 'sk-...' }` to `new AiDoc()`
|
||||
1. **Environment variable**: Set `OPENAI_TOKEN` in your environment or `.env` file
|
||||
2. **Constructor argument**: Pass `{ OPENAI_TOKEN: 'sk-...' }` to `new AiDoc()`
|
||||
3. **Interactive prompt**: On first run, tsdoc will prompt for the token and persist it
|
||||
|
||||
The token is persisted at `~/.npmextra/kv/@git.zone/tsdoc.json` for subsequent runs.
|
||||
The token is persisted at `~/.smartconfig/kv/@git.zone/tsdoc.json` for subsequent runs.
|
||||
|
||||
### npmextra.json
|
||||
### .smartconfig.json
|
||||
|
||||
tsdoc uses `npmextra.json` for project metadata. The `tsdoc` key holds legal information that gets appended to generated READMEs:
|
||||
tsdoc uses `.smartconfig.json` for project metadata. The `tsdoc` key holds legal information that gets appended to generated READMEs:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -170,62 +187,78 @@ tsdoc uses `npmextra.json` for project metadata. The `tsdoc` key holds legal inf
|
||||
}
|
||||
```
|
||||
|
||||
The `description` command writes updated description/keywords to both `gitzone.module` in `.smartconfig.json` and to `package.json`.
|
||||
|
||||
## Architecture
|
||||
|
||||
### Core Components
|
||||
|
||||
```
|
||||
@git.zone/tsdoc
|
||||
├── AiDoc # Main orchestrator - manages AI model and delegates to task classes
|
||||
├── AiDoc # Main orchestrator — manages AI model, delegates to task classes
|
||||
├── TypeDoc # Traditional TypeDoc API documentation generation
|
||||
├── ProjectContext # Gathers project files for context (package.json, ts/, test/)
|
||||
├── DiffProcessor # Intelligent git diff processing with prioritization and sampling
|
||||
├── Readme # AI-powered README generation using runAgent with filesystem tools
|
||||
├── Commit # AI-powered commit message generation with diff analysis
|
||||
├── Description # AI-powered description and keyword generation
|
||||
├── ProjectContext # Gathers project files (package.json, source, tests, config)
|
||||
├── DiffProcessor # Intelligent git diff processing with prioritization & sampling
|
||||
├── Readme # AI agent-driven README generation with filesystem tools
|
||||
├── Commit # AI agent-driven commit message generation with diff analysis
|
||||
├── Description # AI agent-driven description and keyword generation
|
||||
└── CLI # Command-line interface built on @push.rocks/smartcli
|
||||
```
|
||||
|
||||
### AI Agent Architecture
|
||||
### 🧠 AI Agent Architecture
|
||||
|
||||
tsdoc uses `@push.rocks/smartagent`'s `runAgent()` function with `@push.rocks/smartai`'s `getModel()` for all AI tasks. Each documentation task (readme, commit, description) runs an autonomous AI agent that:
|
||||
Each documentation task (readme, commit, description) runs an autonomous AI agent via `@push.rocks/smartagent`'s `runAgent()`:
|
||||
|
||||
1. Receives a system prompt defining its role and constraints
|
||||
2. Gets access to scoped filesystem tools (read-only, limited to project directory)
|
||||
3. Explores the project structure autonomously using tool calls
|
||||
4. Produces the final output (README markdown, commit JSON, or description JSON)
|
||||
1. **System prompt** defines the agent's role, constraints, and output format
|
||||
2. **Filesystem tools** give the agent scoped, read-only access to the project directory
|
||||
3. **Autonomous exploration** — the agent decides which files to read, in what order
|
||||
4. **Structured output** — README markdown, commit JSON, or description JSON
|
||||
|
||||
### Diff Processing
|
||||
The agents use `@push.rocks/smartai`'s `getModel()` to create a language model instance backed by OpenAI.
|
||||
|
||||
The `DiffProcessor` class handles large git diffs intelligently:
|
||||
### ⚡ Diff Processing Pipeline
|
||||
|
||||
- **Small files** (< 300 lines): Included in full
|
||||
- **Medium files** (< 800 lines): Head/tail sampling with context
|
||||
- **Large files**: Metadata only (filepath, lines added/removed)
|
||||
- Files are prioritized by importance: source > test > config > docs > build artifacts
|
||||
- Token budget is enforced dynamically based on OpenAI's context limits
|
||||
The `DiffProcessor` handles large git diffs without blowing up token budgets:
|
||||
|
||||
| File Category | Threshold | Treatment |
|
||||
|---------------|-----------|-----------|
|
||||
| **Small** | < 300 lines changed | Included in full |
|
||||
| **Medium** | < 800 lines changed | Head (75 lines) + tail (75 lines) sampling |
|
||||
| **Large** | ≥ 800 lines changed | Metadata only (filepath + stats) |
|
||||
|
||||
Files are scored by importance:
|
||||
- **100** — Source files (`src/`, `lib/`, `app/`, `components/`, `pages/`, `api/`)
|
||||
- **80** — Test files (`test/`, `*.test.ts`, `*.spec.ts`)
|
||||
- **70** — Interface/type files, entry points (`index.ts`, `mod.ts`)
|
||||
- **60** — Configuration files (`.json`, `.yaml`, `.config.ts`)
|
||||
- **40** — Documentation (`.md`, `.txt`)
|
||||
- **10** — Build artifacts (`dist/`, `build/`, `.next/`)
|
||||
|
||||
Token budget is calculated dynamically: `context_limit - safety_margin - overhead - prompt_size`.
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Node.js** >= 18.0.0
|
||||
- **TypeScript** project with `ts/` source directory
|
||||
- **OpenAI API key** (for AI features)
|
||||
- **Node.js** >= 18
|
||||
- **TypeScript** project with a `ts/` source directory
|
||||
- **OpenAI API key** for AI features
|
||||
|
||||
## License and Legal Information
|
||||
|
||||
This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository.
|
||||
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [LICENSE](./license) file.
|
||||
|
||||
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
|
||||
|
||||
### Trademarks
|
||||
|
||||
This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.
|
||||
This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.
|
||||
|
||||
Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.
|
||||
|
||||
### Company Information
|
||||
|
||||
Task Venture Capital GmbH
|
||||
Registered at District court Bremen HRB 35230 HB, Germany
|
||||
Registered at District Court Bremen HRB 35230 HB, Germany
|
||||
|
||||
For any legal inquiries or if you require further information, please contact us via email at hello@task.vc.
|
||||
For any legal inquiries or further information, please contact us via email at hello@task.vc.
|
||||
|
||||
By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@git.zone/tsdoc',
|
||||
version: '2.0.1',
|
||||
version: '2.0.2',
|
||||
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.'
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ You create project descriptions and keywords for npm packages.
|
||||
You have access to filesystem tools to explore the project.
|
||||
|
||||
IMPORTANT RULES:
|
||||
- Only READ files (package.json, npmextra.json, source files in ts/)
|
||||
- Only READ files (package.json, .smartconfig.json, source files in ts/)
|
||||
- Do NOT write, delete, or modify any files
|
||||
- Your final response must be valid JSON only
|
||||
- Description must be a clear, concise one-sentence summary
|
||||
@@ -43,7 +43,7 @@ PROJECT DIRECTORY: ${this.projectDir}
|
||||
Use the filesystem tools to explore the project and understand what it does:
|
||||
1. First, use list_directory to see the project structure
|
||||
2. Read package.json to understand the package name and current description
|
||||
3. Read npmextra.json if it exists for additional metadata
|
||||
3. Read .smartconfig.json if it exists for additional metadata
|
||||
4. Read key source files in ts/ directory to understand the implementation
|
||||
|
||||
Then generate a description and keywords based on your exploration.
|
||||
@@ -83,8 +83,8 @@ Don't wrap the JSON in \`\`\`json\`\`\` - just return the raw JSON object.
|
||||
const smartconfigJson = files.smartfilesNpmextraJSON;
|
||||
const smartconfigJsonContent = JSON.parse(smartconfigJson.contents.toString());
|
||||
|
||||
smartconfigJsonContent['@git.zone/cli'].module.description = resultObject.description;
|
||||
smartconfigJsonContent['@git.zone/cli'].module.keywords = resultObject.keywords;
|
||||
smartconfigJsonContent['gitzone'].module.description = resultObject.description;
|
||||
smartconfigJsonContent['gitzone'].module.keywords = resultObject.keywords;
|
||||
|
||||
smartconfigJson.contents = Buffer.from(JSON.stringify(smartconfigJsonContent, null, 2));
|
||||
await smartconfigJson.write();
|
||||
|
||||
@@ -27,7 +27,7 @@ export class ProjectContext {
|
||||
this.projectDir,
|
||||
);
|
||||
const smartfilesNpmextraJSON = await plugins.smartfileFactory.fromFilePath(
|
||||
plugins.path.join(this.projectDir, 'smartconfig.json'),
|
||||
plugins.path.join(this.projectDir, '.smartconfig.json'),
|
||||
this.projectDir,
|
||||
);
|
||||
const smartfilesMod = await plugins.smartfileFactory.virtualDirectoryFromPath(
|
||||
|
||||
@@ -22,9 +22,9 @@ export class Readme {
|
||||
const smartconfigJson = JSON.parse(
|
||||
(await projectContext.gatherFiles()).smartfilesNpmextraJSON.contents.toString()
|
||||
);
|
||||
const legalInfo = smartconfigJson?.['@git.zone/tsdoc']?.legal;
|
||||
const legalInfo = smartconfigJson?.['tsdoc']?.legal;
|
||||
if (!legalInfo) {
|
||||
const error = new Error(`No legal information found in smartconfig.json`);
|
||||
const error = new Error(`No legal information found in .smartconfig.json`);
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import * as aiDocsClasses from './aidocs_classes/index.js';
|
||||
export class AiDoc {
|
||||
private openaiToken: string;
|
||||
|
||||
public smartconfigKV: plugins.npmextra.KeyValueStore;
|
||||
public smartconfigKV: plugins.smartconfig.KeyValueStore;
|
||||
public qenvInstance: plugins.qenv.Qenv;
|
||||
public aidocInteract: plugins.smartinteract.SmartInteract;
|
||||
public model: plugins.smartai.LanguageModelV3;
|
||||
@@ -52,7 +52,7 @@ export class AiDoc {
|
||||
console.log('Migration complete: tsdoc.json -> @git.zone/tsdoc.json');
|
||||
}
|
||||
|
||||
this.smartconfigKV = new plugins.npmextra.KeyValueStore({
|
||||
this.smartconfigKV = new plugins.smartconfig.KeyValueStore({
|
||||
typeArg: 'userHomeDir',
|
||||
identityArg: '@git.zone/tsdoc',
|
||||
mandatoryKeys: ['OPENAI_TOKEN'],
|
||||
|
||||
@@ -4,7 +4,7 @@ import * as path from 'path';
|
||||
export { path };
|
||||
|
||||
// pushrocks scope
|
||||
import * as npmextra from '@push.rocks/smartconfig';
|
||||
import * as smartconfig from '@push.rocks/smartconfig';
|
||||
import * as qenv from '@push.rocks/qenv';
|
||||
import * as smartagent from '@push.rocks/smartagent';
|
||||
import * as smartagentTools from '@push.rocks/smartagent/tools';
|
||||
@@ -22,7 +22,7 @@ import * as smartshell from '@push.rocks/smartshell';
|
||||
import * as smarttime from '@push.rocks/smarttime';
|
||||
|
||||
export {
|
||||
npmextra,
|
||||
smartconfig,
|
||||
qenv,
|
||||
smartagent,
|
||||
smartagentTools,
|
||||
|
||||
Reference in New Issue
Block a user