mirror of
https://github.com/Tencent/teamai-cli.git
synced 2026-10-02 03:14:40 +08:00
* fix(tags,roles): honor --dry-run in tags subscribe, tags unsubscribe and roles set (#836) The three commands saved the local config and reset lastPullRev even under the global --dry-run, which is documented as "Preview mode, no changes made". Their siblings (tags add/remove, roles init/add/remove/ update) already return early with a [dry-run] message. The roles set preview names the additional roles it would save, including none, because a real run replaces the existing list. oxlint reported the unused options parameter in tagsSubscribe and tagsUnsubscribe; rolesSet has the same bug but reads options.add. * chore(lint): add oxlint with its default rules Pinned to an exact version so a new default rule arrives in its own PR, not as a CI failure on an unrelated one. The no-unused-vars options keep oxlint's _ ignore patterns and add ignoreRestSiblings, which the rest-omit in dashboard.ts relies on to keep config and roots out of /api/workspaces. * style(lint): apply oxlint safe fixes Drop redundant escapes in regex character classes and template literals, empty-object fallbacks in object spreads (spreading undefined adds nothing), and anchored regexes that are plain startsWith/endsWith checks. No behavior change. * refactor(lint): remove unused imports and an unused catch binding Applied with oxlint --fix-suggestions and reviewed by hand. Every removed whole import is a library module with no import-time side effects. * refactor(lint): remove dead code reported by no-unused-vars Each hit was checked against its callers and git history; none is missing wiring (the two that were, tags subscribe/unsubscribe, are fixed in the preceding commit). Removed: unused locals and functions, the options parameter of tagsList, rolesList and generateDigest (read-only commands), the never-read interactive option of importFromRepo, the empty test/e2e.mjs left over from the E2E migration, and a try/catch that only rethrew. new Array(n) becomes Array.from. No behavior change. * test(lint): fix lint hits in tests - contribute dry-run test asserted nothing; it now checks that the run leaves the repo/HOME tree unchanged (verified to fail when the dry-run early return is removed). - Drop a no-op expect(result).not.toThrow on a string. - Keep undefined in two optional-chain casts so a regression fails the assertion instead of throwing a TypeError. - Remove unused locals, helpers and imports; new Array(n) becomes Array.from. * refactor(lint): write control-character classes as \p{Cc} no-control-regex flags literal control ranges. \p{Cc} names the same set (C0, DEL, C1) and reads as what it means. Checked against the old classes on every code point from U+0000 to U+10FFFF: manifest-schema and agent-format match exactly, and contribute-check's normalization pipeline produces the same output. The test assertion is now stricter and checks every control character the sanitizer removes. * refactor(lint): remove disable directives for rules that are not enabled Four eslint-disable comments named rules this repo never ran (no-await-in-loop, @typescript-eslint/no-explicit-any), so they suppressed nothing. * ci(lint): fail CI on any oxlint warning (#828) npm run lint runs oxlint --deny-warnings and runs before the type check in both GitHub Actions and Coding CI. The repo is at zero warnings, so new code must stay clean. --report-unused-disable-directives also fails on a disable comment that suppresses nothing, so a suppression cannot outlive the code it was written for. CLAUDE.md, AGENTS.md, CONTRIBUTING.md and the PR template list the command so contributors and agents run it before opening a PR. Closes #828 * chore(lint): pin oxlint 1.16.0, the newest release that accepts Node 20.0 oxlint 1.17.0 and later declare engines.node ^20.19.0 || >=22.12.0, while the repo supports Node >=20. 1.16.0 declares >=8, supports --deny-warnings and --report-unused-disable-directives, and reports 0 warnings on this branch. * Revert "fix(tags,roles): honor --dry-run in tags subscribe, tags unsubscribe and roles set (#836)" This reverts commit224d459c99. * refactor(lint): mark the unused options parameter of tags subscribe and unsubscribe With the #837 dry-run fix reverted out of this PR, both functions no longer read options. The underscore prefix keeps the signature and call sites unchanged, so #837 can rebase onto it by renaming the parameter back. * chore(lint): restore oxlint 1.85.0 This reverts commite2347efa. oxlint is a devDependency, so its Node requirement (^20.19.0 || >=22.12.0) never reaches users installing teamai-cli, and CI's node-version 20 resolves to the latest 20.x. Staying on 1.85.0 keeps the #836 warning counts and the planned type-aware follow-up on the same version. * docs(contributing): note the Node version npm run lint needs * docs(agents): note the Node version npm run lint needs
99 lines
2.3 KiB
JSON
99 lines
2.3 KiB
JSON
{
|
|
"name": "teamai-cli",
|
|
"version": "0.22.0",
|
|
"description": "TeamAI — Make Every Team AI Native (skill sync + shared knowledge base, powered by Git)",
|
|
"type": "module",
|
|
"bin": {
|
|
"teamai": "dist/index.js"
|
|
},
|
|
"files": [
|
|
"dist/**/*.js",
|
|
"skills",
|
|
"skill-data",
|
|
"!**/__pycache__",
|
|
"!**/*.pyc",
|
|
"agents",
|
|
"README.md",
|
|
"CHANGELOG.md",
|
|
"LICENSE"
|
|
],
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"scripts": {
|
|
"build": "tsup",
|
|
"dev": "tsup --watch",
|
|
"test": "vitest run",
|
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage",
|
|
"typecheck": "tsc --noEmit",
|
|
"lint": "oxlint --deny-warnings --report-unused-disable-directives",
|
|
"release": "standard-version",
|
|
"prepublishOnly": "npm run build"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/Tencent/teamai-cli.git"
|
|
},
|
|
"homepage": "https://github.com/Tencent/teamai-cli#readme",
|
|
"bugs": {
|
|
"url": "https://github.com/Tencent/teamai-cli/issues"
|
|
},
|
|
"keywords": [
|
|
"ai",
|
|
"team",
|
|
"devkit",
|
|
"skills",
|
|
"sharing"
|
|
],
|
|
"author": "jeffyxu <jeffyxu@tencent.com>",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"chalk": "^5.3.0",
|
|
"commander": "^12.1.0",
|
|
"cross-spawn": "^7.0.6",
|
|
"fflate": "^0.8.3",
|
|
"fs-extra": "^11.2.0",
|
|
"gray-matter": "^4.0.3",
|
|
"listr2": "^9.0.5",
|
|
"ora": "^8.1.0",
|
|
"semver": "^7.8.5",
|
|
"simple-git": "^3.36.0",
|
|
"smol-toml": "^1.7.1",
|
|
"tree-sitter-wasms": "0.1.13",
|
|
"web-tree-sitter": "0.25.10",
|
|
"yaml": "^2.6.0",
|
|
"zod": "^3.24.0"
|
|
},
|
|
"overrides": {
|
|
"js-yaml": "^3.15.2",
|
|
"brace-expansion@1": "1.1.18",
|
|
"brace-expansion@2": "2.1.4",
|
|
"brace-expansion@5": "5.0.9",
|
|
"nanoid": "3.3.19",
|
|
"postcss": "8.5.28",
|
|
"picomatch": "4.0.7"
|
|
},
|
|
"devDependencies": {
|
|
"@types/cross-spawn": "^6.0.6",
|
|
"@types/fs-extra": "^11.0.4",
|
|
"@types/node": "^20.17.0",
|
|
"@types/semver": "^7.8.0",
|
|
"@vitest/coverage-v8": "^3.2.7",
|
|
"fast-check": "^4.10.2",
|
|
"opencode-ai": "1.18.23",
|
|
"oxlint": "1.85.0",
|
|
"standard-version": "^9.5.0",
|
|
"tsup": "^8.3.0",
|
|
"typescript": "^5.7.0",
|
|
"vitest": "^3.2.7"
|
|
},
|
|
"main": "index.js",
|
|
"directories": {
|
|
"doc": "docs",
|
|
"example": "examples",
|
|
"test": "test"
|
|
}
|
|
}
|