@kosuke-ai/cli 0.0.57 → 1.0.1-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -434
- package/dist/commands/auth.js +117 -0
- package/dist/generated/commands/deploy/cancel.js +17 -0
- package/dist/generated/commands/deploy/messages.js +17 -0
- package/dist/generated/commands/deploy/run.js +60 -0
- package/dist/generated/commands/index.js +132 -0
- package/dist/generated/commands/preview/get.js +25 -0
- package/dist/generated/commands/preview/health.js +25 -0
- package/dist/generated/commands/preview/reset.js +27 -0
- package/dist/generated/commands/preview/share-create.js +36 -0
- package/dist/generated/commands/preview/share-delete.js +26 -0
- package/dist/generated/commands/preview/share-get.js +26 -0
- package/dist/generated/commands/preview/shared.js +17 -0
- package/dist/generated/commands/projects/create.js +37 -0
- package/dist/generated/commands/projects/delete.js +17 -0
- package/dist/generated/commands/projects/env-vars-add.js +21 -0
- package/dist/generated/commands/projects/env-vars-remove.js +21 -0
- package/dist/generated/commands/projects/get.js +17 -0
- package/dist/generated/commands/projects/list.js +15 -0
- package/dist/generated/commands/projects/services-add.js +87 -0
- package/dist/generated/commands/projects/services-list.js +18 -0
- package/dist/generated/commands/projects/services-remove.js +19 -0
- package/dist/generated/commands/projects/services-update.js +81 -0
- package/dist/generated/commands/projects/settings-get.js +18 -0
- package/dist/generated/commands/projects/settings-import.js +91 -0
- package/dist/generated/commands/projects/settings-update.js +77 -0
- package/dist/generated/commands/projects/skills.js +35 -0
- package/dist/generated/commands/projects/update.js +27 -0
- package/dist/generated/commands/sessions/activate.js +18 -0
- package/dist/generated/commands/sessions/checklist-generate.js +19 -0
- package/dist/generated/commands/sessions/checklist-get.js +19 -0
- package/dist/generated/commands/sessions/comments-add.js +63 -0
- package/dist/generated/commands/sessions/comments-delete.js +20 -0
- package/dist/generated/commands/sessions/comments-list.js +19 -0
- package/dist/generated/commands/sessions/comments-update.js +23 -0
- package/dist/generated/commands/sessions/create.js +126 -0
- package/dist/generated/commands/sessions/delete.js +18 -0
- package/dist/generated/commands/sessions/diff-files.js +19 -0
- package/dist/generated/commands/sessions/diff-patch.js +86 -0
- package/dist/generated/commands/sessions/edit-prompt.js +59 -0
- package/dist/generated/commands/sessions/files-get.js +27 -0
- package/dist/generated/commands/sessions/files-list.js +19 -0
- package/dist/generated/commands/sessions/files-write.js +41 -0
- package/dist/generated/commands/sessions/get.js +18 -0
- package/dist/generated/commands/sessions/git-commit-message.js +19 -0
- package/dist/generated/commands/sessions/git-commit.js +29 -0
- package/dist/generated/commands/sessions/git-push.js +19 -0
- package/dist/generated/commands/sessions/git-state.js +19 -0
- package/dist/generated/commands/sessions/jobs-cancel.js +20 -0
- package/dist/generated/commands/sessions/jobs-get.js +20 -0
- package/dist/generated/commands/sessions/list.js +81 -0
- package/dist/generated/commands/sessions/messages.js +18 -0
- package/dist/generated/commands/sessions/search.js +23 -0
- package/dist/generated/commands/sessions/send.js +98 -0
- package/dist/generated/commands/sessions/update.js +72 -0
- package/dist/generated/commands/workspaces/access-status.js +29 -0
- package/dist/generated/commands/workspaces/ai-provider-get.js +18 -0
- package/dist/generated/commands/workspaces/ai-provider-remove.js +42 -0
- package/dist/generated/commands/workspaces/ai-provider-set.js +21 -0
- package/dist/generated/commands/workspaces/credits.js +17 -0
- package/dist/generated/commands/workspaces/get.js +17 -0
- package/dist/generated/commands/workspaces/getting-started-get.js +18 -0
- package/dist/generated/commands/workspaces/getting-started-update.js +32 -0
- package/dist/generated/commands/workspaces/list.js +15 -0
- package/dist/generated/commands/workspaces/members.js +25 -0
- package/dist/generated/commands/workspaces/sandbox-limit.js +17 -0
- package/dist/generated/commands/workspaces/stop-sandboxes.js +27 -0
- package/dist/generated/commands/workspaces/usage.js +32 -0
- package/dist/index.js +5 -595
- package/dist/program.js +46 -0
- package/dist/runtime/attach.js +139 -0
- package/dist/runtime/attachments.js +58 -0
- package/dist/runtime/client.js +12 -0
- package/dist/runtime/config.js +49 -0
- package/dist/runtime/credentials.js +24 -0
- package/dist/runtime/descriptor.js +7 -0
- package/dist/runtime/invoke.js +152 -0
- package/dist/runtime/runtime.js +41 -0
- package/dist/runtime/version.js +5 -0
- package/openapi.json +5222 -0
- package/package.json +21 -79
- package/LICENSE +0 -21
- package/claude.costs.json +0 -34
- package/dist/__tests__/utils/file-discovery.test.d.ts +0 -5
- package/dist/__tests__/utils/file-discovery.test.d.ts.map +0 -1
- package/dist/__tests__/utils/file-discovery.test.js +0 -51
- package/dist/__tests__/utils/file-discovery.test.js.map +0 -1
- package/dist/__tests__/utils/logger-nologs.test.d.ts +0 -5
- package/dist/__tests__/utils/logger-nologs.test.d.ts.map +0 -1
- package/dist/__tests__/utils/logger-nologs.test.js +0 -34
- package/dist/__tests__/utils/logger-nologs.test.js.map +0 -1
- package/dist/__tests__/utils/logger.test.d.ts +0 -5
- package/dist/__tests__/utils/logger.test.d.ts.map +0 -1
- package/dist/__tests__/utils/logger.test.js +0 -243
- package/dist/__tests__/utils/logger.test.js.map +0 -1
- package/dist/__tests__/utils/validator.test.d.ts +0 -5
- package/dist/__tests__/utils/validator.test.d.ts.map +0 -1
- package/dist/__tests__/utils/validator.test.js +0 -206
- package/dist/__tests__/utils/validator.test.js.map +0 -1
- package/dist/index.d.ts +0 -37
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kosuke/commands/analyse.d.ts +0 -15
- package/dist/kosuke/commands/analyse.d.ts.map +0 -1
- package/dist/kosuke/commands/analyse.js +0 -304
- package/dist/kosuke/commands/analyse.js.map +0 -1
- package/dist/kosuke/commands/build.d.ts +0 -35
- package/dist/kosuke/commands/build.d.ts.map +0 -1
- package/dist/kosuke/commands/build.js +0 -660
- package/dist/kosuke/commands/build.js.map +0 -1
- package/dist/kosuke/commands/fix.d.ts +0 -21
- package/dist/kosuke/commands/fix.d.ts.map +0 -1
- package/dist/kosuke/commands/fix.js +0 -256
- package/dist/kosuke/commands/fix.js.map +0 -1
- package/dist/kosuke/commands/getcode.d.ts +0 -29
- package/dist/kosuke/commands/getcode.d.ts.map +0 -1
- package/dist/kosuke/commands/getcode.js +0 -248
- package/dist/kosuke/commands/getcode.js.map +0 -1
- package/dist/kosuke/commands/lint.d.ts +0 -21
- package/dist/kosuke/commands/lint.d.ts.map +0 -1
- package/dist/kosuke/commands/lint.js +0 -342
- package/dist/kosuke/commands/lint.js.map +0 -1
- package/dist/kosuke/commands/migrate.d.ts +0 -38
- package/dist/kosuke/commands/migrate.d.ts.map +0 -1
- package/dist/kosuke/commands/migrate.js +0 -284
- package/dist/kosuke/commands/migrate.js.map +0 -1
- package/dist/kosuke/commands/plan.d.ts +0 -28
- package/dist/kosuke/commands/plan.d.ts.map +0 -1
- package/dist/kosuke/commands/plan.js +0 -684
- package/dist/kosuke/commands/plan.js.map +0 -1
- package/dist/kosuke/commands/requirements.d.ts +0 -52
- package/dist/kosuke/commands/requirements.d.ts.map +0 -1
- package/dist/kosuke/commands/requirements.js +0 -615
- package/dist/kosuke/commands/requirements.js.map +0 -1
- package/dist/kosuke/commands/review.d.ts +0 -26
- package/dist/kosuke/commands/review.d.ts.map +0 -1
- package/dist/kosuke/commands/review.js +0 -303
- package/dist/kosuke/commands/review.js.map +0 -1
- package/dist/kosuke/commands/serve.d.ts +0 -9
- package/dist/kosuke/commands/serve.d.ts.map +0 -1
- package/dist/kosuke/commands/serve.js +0 -17
- package/dist/kosuke/commands/serve.js.map +0 -1
- package/dist/kosuke/commands/ship.d.ts +0 -37
- package/dist/kosuke/commands/ship.d.ts.map +0 -1
- package/dist/kosuke/commands/ship.js +0 -375
- package/dist/kosuke/commands/ship.js.map +0 -1
- package/dist/kosuke/commands/sync-rules.d.ts +0 -9
- package/dist/kosuke/commands/sync-rules.d.ts.map +0 -1
- package/dist/kosuke/commands/sync-rules.js +0 -414
- package/dist/kosuke/commands/sync-rules.js.map +0 -1
- package/dist/kosuke/commands/test.d.ts +0 -42
- package/dist/kosuke/commands/test.d.ts.map +0 -1
- package/dist/kosuke/commands/test.js +0 -540
- package/dist/kosuke/commands/test.js.map +0 -1
- package/dist/kosuke/commands/tickets.d.ts +0 -43
- package/dist/kosuke/commands/tickets.d.ts.map +0 -1
- package/dist/kosuke/commands/tickets.js +0 -876
- package/dist/kosuke/commands/tickets.js.map +0 -1
- package/dist/kosuke/commands/validate-tickets.d.ts +0 -23
- package/dist/kosuke/commands/validate-tickets.d.ts.map +0 -1
- package/dist/kosuke/commands/validate-tickets.js +0 -360
- package/dist/kosuke/commands/validate-tickets.js.map +0 -1
- package/dist/kosuke/serve/middleware/error-handler.d.ts +0 -14
- package/dist/kosuke/serve/middleware/error-handler.d.ts.map +0 -1
- package/dist/kosuke/serve/middleware/error-handler.js +0 -42
- package/dist/kosuke/serve/middleware/error-handler.js.map +0 -1
- package/dist/kosuke/serve/middleware/validation.d.ts +0 -13
- package/dist/kosuke/serve/middleware/validation.d.ts.map +0 -1
- package/dist/kosuke/serve/middleware/validation.js +0 -38
- package/dist/kosuke/serve/middleware/validation.js.map +0 -1
- package/dist/kosuke/serve/routes/build.d.ts +0 -6
- package/dist/kosuke/serve/routes/build.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/build.js +0 -226
- package/dist/kosuke/serve/routes/build.js.map +0 -1
- package/dist/kosuke/serve/routes/health.d.ts +0 -6
- package/dist/kosuke/serve/routes/health.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/health.js +0 -11
- package/dist/kosuke/serve/routes/health.js.map +0 -1
- package/dist/kosuke/serve/routes/plan.d.ts +0 -6
- package/dist/kosuke/serve/routes/plan.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/plan.js +0 -106
- package/dist/kosuke/serve/routes/plan.js.map +0 -1
- package/dist/kosuke/serve/server.d.ts +0 -16
- package/dist/kosuke/serve/server.d.ts.map +0 -1
- package/dist/kosuke/serve/server.js +0 -67
- package/dist/kosuke/serve/server.js.map +0 -1
- package/dist/kosuke/serve/validation/build.d.ts +0 -41
- package/dist/kosuke/serve/validation/build.d.ts.map +0 -1
- package/dist/kosuke/serve/validation/build.js +0 -20
- package/dist/kosuke/serve/validation/build.js.map +0 -1
- package/dist/kosuke/serve/validation/plan.d.ts +0 -26
- package/dist/kosuke/serve/validation/plan.d.ts.map +0 -1
- package/dist/kosuke/serve/validation/plan.js +0 -15
- package/dist/kosuke/serve/validation/plan.js.map +0 -1
- package/dist/kosuke/types.d.ts +0 -539
- package/dist/kosuke/types.d.ts.map +0 -1
- package/dist/kosuke/types.js +0 -5
- package/dist/kosuke/types.js.map +0 -1
- package/dist/kosuke/utils/batch-creator.d.ts +0 -14
- package/dist/kosuke/utils/batch-creator.d.ts.map +0 -1
- package/dist/kosuke/utils/batch-creator.js +0 -76
- package/dist/kosuke/utils/batch-creator.js.map +0 -1
- package/dist/kosuke/utils/claude-agent.d.ts +0 -140
- package/dist/kosuke/utils/claude-agent.d.ts.map +0 -1
- package/dist/kosuke/utils/claude-agent.js +0 -388
- package/dist/kosuke/utils/claude-agent.js.map +0 -1
- package/dist/kosuke/utils/constants.d.ts +0 -40
- package/dist/kosuke/utils/constants.d.ts.map +0 -1
- package/dist/kosuke/utils/constants.js +0 -54
- package/dist/kosuke/utils/constants.js.map +0 -1
- package/dist/kosuke/utils/file-discovery.d.ts +0 -15
- package/dist/kosuke/utils/file-discovery.d.ts.map +0 -1
- package/dist/kosuke/utils/file-discovery.js +0 -80
- package/dist/kosuke/utils/file-discovery.js.map +0 -1
- package/dist/kosuke/utils/git.d.ts +0 -41
- package/dist/kosuke/utils/git.d.ts.map +0 -1
- package/dist/kosuke/utils/git.js +0 -145
- package/dist/kosuke/utils/git.js.map +0 -1
- package/dist/kosuke/utils/github.d.ts +0 -17
- package/dist/kosuke/utils/github.d.ts.map +0 -1
- package/dist/kosuke/utils/github.js +0 -22
- package/dist/kosuke/utils/github.js.map +0 -1
- package/dist/kosuke/utils/interactive-input.d.ts +0 -22
- package/dist/kosuke/utils/interactive-input.d.ts.map +0 -1
- package/dist/kosuke/utils/interactive-input.js +0 -124
- package/dist/kosuke/utils/interactive-input.js.map +0 -1
- package/dist/kosuke/utils/json-parser.d.ts +0 -14
- package/dist/kosuke/utils/json-parser.d.ts.map +0 -1
- package/dist/kosuke/utils/json-parser.js +0 -40
- package/dist/kosuke/utils/json-parser.js.map +0 -1
- package/dist/kosuke/utils/logger.d.ts +0 -161
- package/dist/kosuke/utils/logger.d.ts.map +0 -1
- package/dist/kosuke/utils/logger.js +0 -234
- package/dist/kosuke/utils/logger.js.map +0 -1
- package/dist/kosuke/utils/playwright-mcp-client.d.ts +0 -46
- package/dist/kosuke/utils/playwright-mcp-client.d.ts.map +0 -1
- package/dist/kosuke/utils/playwright-mcp-client.js +0 -135
- package/dist/kosuke/utils/playwright-mcp-client.js.map +0 -1
- package/dist/kosuke/utils/pr-orchestrator.d.ts +0 -49
- package/dist/kosuke/utils/pr-orchestrator.d.ts.map +0 -1
- package/dist/kosuke/utils/pr-orchestrator.js +0 -154
- package/dist/kosuke/utils/pr-orchestrator.js.map +0 -1
- package/dist/kosuke/utils/repository-manager.d.ts +0 -13
- package/dist/kosuke/utils/repository-manager.d.ts.map +0 -1
- package/dist/kosuke/utils/repository-manager.js +0 -94
- package/dist/kosuke/utils/repository-manager.js.map +0 -1
- package/dist/kosuke/utils/repository-resolver.d.ts +0 -12
- package/dist/kosuke/utils/repository-resolver.d.ts.map +0 -1
- package/dist/kosuke/utils/repository-resolver.js +0 -186
- package/dist/kosuke/utils/repository-resolver.js.map +0 -1
- package/dist/kosuke/utils/tickets-manager.d.ts +0 -34
- package/dist/kosuke/utils/tickets-manager.d.ts.map +0 -1
- package/dist/kosuke/utils/tickets-manager.js +0 -106
- package/dist/kosuke/utils/tickets-manager.js.map +0 -1
- package/dist/kosuke/utils/validator.d.ts +0 -45
- package/dist/kosuke/utils/validator.d.ts.map +0 -1
- package/dist/kosuke/utils/validator.js +0 -248
- package/dist/kosuke/utils/validator.js.map +0 -1
- package/dist/lib.d.ts +0 -104
- package/dist/lib.d.ts.map +0 -1
- package/dist/lib.js +0 -104
- package/dist/lib.js.map +0 -1
- package/dist/package.json +0 -99
package/package.json
CHANGED
|
@@ -1,99 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kosuke-ai/cli",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Kosuke CLI
|
|
5
|
-
"
|
|
6
|
-
"CLI",
|
|
7
|
-
"automation",
|
|
8
|
-
"code-quality",
|
|
9
|
-
"claude-ai"
|
|
10
|
-
],
|
|
11
|
-
"homepage": "https://github.com/Kosuke-Org/kosuke-cli#readme",
|
|
12
|
-
"bugs": {
|
|
13
|
-
"url": "https://github.com/Kosuke-Org/kosuke-cli/issues"
|
|
14
|
-
},
|
|
3
|
+
"version": "1.0.1-next.2",
|
|
4
|
+
"description": "Kosuke platform CLI. The client customers install to drive app.kosuke.ai from their own machine.",
|
|
5
|
+
"license": "MIT",
|
|
15
6
|
"repository": {
|
|
16
7
|
"type": "git",
|
|
17
|
-
"url": "git+https://github.com/Kosuke-Org/kosuke-
|
|
8
|
+
"url": "git+https://github.com/Kosuke-Org/kosuke-core.git",
|
|
9
|
+
"directory": "apps/cli"
|
|
18
10
|
},
|
|
19
|
-
"license": "ISC",
|
|
20
|
-
"author": "filippo.pedrazzini@kosuke.ai",
|
|
21
11
|
"type": "module",
|
|
22
|
-
"main": "dist/lib.js",
|
|
23
|
-
"types": "dist/lib.d.ts",
|
|
24
12
|
"bin": {
|
|
25
13
|
"kosuke": "dist/index.js"
|
|
26
14
|
},
|
|
27
|
-
"exports": {
|
|
28
|
-
".": {
|
|
29
|
-
"import": "./dist/lib.js",
|
|
30
|
-
"types": "./dist/lib.d.ts"
|
|
31
|
-
},
|
|
32
|
-
"./cli": "./dist/index.js"
|
|
33
|
-
},
|
|
34
15
|
"files": [
|
|
35
16
|
"dist",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"README.md",
|
|
39
|
-
"LICENSE"
|
|
17
|
+
"openapi.json",
|
|
18
|
+
"README.md"
|
|
40
19
|
],
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=22.18"
|
|
22
|
+
},
|
|
41
23
|
"scripts": {
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"prepublishOnly": "npm run clean && npm run build",
|
|
46
|
-
"dev": "tsx index.ts",
|
|
47
|
-
"dev:link": "npm run build && npm link && npm run build:watch",
|
|
48
|
-
"test": "vitest run",
|
|
49
|
-
"test:watch": "vitest",
|
|
50
|
-
"test:coverage": "vitest run --coverage",
|
|
51
|
-
"prepare": "husky",
|
|
52
|
-
"lint": "eslint .",
|
|
53
|
-
"lint:fix": "eslint . --fix",
|
|
54
|
-
"format": "prettier --write \"**/*.{ts,js,json,md}\"",
|
|
55
|
-
"format:check": "prettier --check \"**/*.{ts,js,json,md}\"",
|
|
24
|
+
"generate": "node scripts/generate.ts",
|
|
25
|
+
"check": "npm run generate && node scripts/assert-clean.ts && npm run typecheck && npm test",
|
|
26
|
+
"build": "tsc -p tsconfig.build.json && chmod +x dist/index.js",
|
|
56
27
|
"typecheck": "tsc --noEmit",
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"check:all": "npm run lint && npm run typecheck && npm test && npm run knip"
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"prepack": "npm run build"
|
|
60
30
|
},
|
|
61
31
|
"dependencies": {
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
65
|
-
"@octokit/rest": "^22.0.1",
|
|
66
|
-
"dotenv": "^17.2.3",
|
|
67
|
-
"fastify": "^5.6.2",
|
|
68
|
-
"glob": "^13.0.0",
|
|
69
|
-
"ignore": "^7.0.5",
|
|
70
|
-
"simple-git": "^3.22.0",
|
|
71
|
-
"zod": "^3.25.76"
|
|
32
|
+
"commander": "^14.0.0",
|
|
33
|
+
"openapi-fetch": "^0.14.0"
|
|
72
34
|
},
|
|
73
35
|
"devDependencies": {
|
|
74
|
-
"@
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"@vitest/coverage-v8": "^3.1.3",
|
|
79
|
-
"eslint": "^9.18.0",
|
|
80
|
-
"eslint-config-prettier": "^9.1.0",
|
|
81
|
-
"husky": "^9.1.7",
|
|
82
|
-
"knip": "^5.45.3",
|
|
83
|
-
"lint-staged": "^15.2.11",
|
|
84
|
-
"prettier": "^3.4.2",
|
|
85
|
-
"tsx": "^4.7.0",
|
|
86
|
-
"typescript": "^5.3.0",
|
|
87
|
-
"vitest": "^3.1.3"
|
|
88
|
-
},
|
|
89
|
-
"lint-staged": {
|
|
90
|
-
"*.{ts,js}": [
|
|
91
|
-
"prettier --write",
|
|
92
|
-
"eslint --fix --max-warnings 0",
|
|
93
|
-
"vitest related --run"
|
|
94
|
-
],
|
|
95
|
-
"*.{json,md}": [
|
|
96
|
-
"prettier --write"
|
|
97
|
-
]
|
|
36
|
+
"@types/node": "^22.0.0",
|
|
37
|
+
"openapi-typescript": "^7.9.0",
|
|
38
|
+
"typescript": "^5.9.0",
|
|
39
|
+
"vitest": "^4.0.0"
|
|
98
40
|
}
|
|
99
41
|
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Kosuke Org
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/claude.costs.json
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"description": "Claude model pricing configuration (per million tokens)",
|
|
4
|
-
"models": {
|
|
5
|
-
"claude-haiku-4-5-20251001": {
|
|
6
|
-
"name": "Claude Haiku 4.5",
|
|
7
|
-
"input": 1.0,
|
|
8
|
-
"output": 5.0,
|
|
9
|
-
"cacheCreation": 1.25,
|
|
10
|
-
"cacheRead": 0.1
|
|
11
|
-
},
|
|
12
|
-
"claude-sonnet-4-5-20250929": {
|
|
13
|
-
"name": "Claude Sonnet 4.5",
|
|
14
|
-
"input": 3.0,
|
|
15
|
-
"output": 15.0,
|
|
16
|
-
"cacheCreation": 3.75,
|
|
17
|
-
"cacheRead": 0.3
|
|
18
|
-
},
|
|
19
|
-
"claude-opus-4-5-20251101": {
|
|
20
|
-
"name": "Claude Opus 4.5",
|
|
21
|
-
"input": 5.0,
|
|
22
|
-
"output": 25.0,
|
|
23
|
-
"cacheCreation": 6.25,
|
|
24
|
-
"cacheRead": 0.5
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"default": {
|
|
28
|
-
"name": "Claude Haiku 4.5",
|
|
29
|
-
"input": 1.0,
|
|
30
|
-
"output": 5.0,
|
|
31
|
-
"cacheCreation": 1.25,
|
|
32
|
-
"cacheRead": 0.1
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-discovery.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/file-discovery.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for file discovery utilities
|
|
3
|
-
*/
|
|
4
|
-
import { describe, it, expect } from 'vitest';
|
|
5
|
-
import { discoverFiles } from '@/kosuke/utils/file-discovery';
|
|
6
|
-
describe('discoverFiles', () => {
|
|
7
|
-
it('should return an array of files', async () => {
|
|
8
|
-
const files = await discoverFiles();
|
|
9
|
-
expect(Array.isArray(files)).toBe(true);
|
|
10
|
-
expect(files.length).toBeGreaterThan(0);
|
|
11
|
-
});
|
|
12
|
-
it('should discover TypeScript files by default', async () => {
|
|
13
|
-
const files = await discoverFiles();
|
|
14
|
-
// Should find at least some .ts files
|
|
15
|
-
const tsFiles = files.filter((f) => f.endsWith('.ts'));
|
|
16
|
-
expect(tsFiles.length).toBeGreaterThan(0);
|
|
17
|
-
});
|
|
18
|
-
it('should respect file type filters', async () => {
|
|
19
|
-
const files = await discoverFiles({ types: ['ts'] });
|
|
20
|
-
// All files should be .ts files
|
|
21
|
-
expect(files.every((f) => f.endsWith('.ts'))).toBe(true);
|
|
22
|
-
});
|
|
23
|
-
it('should filter out node_modules', async () => {
|
|
24
|
-
const files = await discoverFiles();
|
|
25
|
-
// Should not include any files from node_modules
|
|
26
|
-
expect(files.some((f) => f.includes('node_modules'))).toBe(false);
|
|
27
|
-
});
|
|
28
|
-
it('should filter out dist directory', async () => {
|
|
29
|
-
const files = await discoverFiles();
|
|
30
|
-
// Should not include any files from dist
|
|
31
|
-
expect(files.some((f) => f.includes('dist/'))).toBe(false);
|
|
32
|
-
});
|
|
33
|
-
it('should support scope filtering', async () => {
|
|
34
|
-
const files = await discoverFiles({ scope: 'kosuke' });
|
|
35
|
-
// All files should be under kosuke directory
|
|
36
|
-
expect(files.every((f) => f.startsWith('kosuke/'))).toBe(true);
|
|
37
|
-
});
|
|
38
|
-
it('should return unique files', async () => {
|
|
39
|
-
const files = await discoverFiles();
|
|
40
|
-
// Should not have duplicates
|
|
41
|
-
const uniqueFiles = [...new Set(files)];
|
|
42
|
-
expect(files.length).toBe(uniqueFiles.length);
|
|
43
|
-
});
|
|
44
|
-
it('should return sorted files', async () => {
|
|
45
|
-
const files = await discoverFiles();
|
|
46
|
-
// Should be sorted alphabetically
|
|
47
|
-
const sortedFiles = [...files].sort();
|
|
48
|
-
expect(files).toEqual(sortedFiles);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=file-discovery.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-discovery.test.js","sourceRoot":"","sources":["../../../__tests__/utils/file-discovery.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger-nologs.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/logger-nologs.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for logger noLogs functionality
|
|
3
|
-
*/
|
|
4
|
-
import { describe, it, expect } from 'vitest';
|
|
5
|
-
import { logger } from '../../kosuke/utils/logger.js';
|
|
6
|
-
describe('Logger noLogs flag', () => {
|
|
7
|
-
it('should create context with noLogs=false by default', () => {
|
|
8
|
-
const context = logger.createContext('ship');
|
|
9
|
-
expect(context.noLogs).toBe(false);
|
|
10
|
-
});
|
|
11
|
-
it('should create context with noLogs=true when specified', () => {
|
|
12
|
-
const context = logger.createContext('ship', { noLogs: true });
|
|
13
|
-
expect(context.noLogs).toBe(true);
|
|
14
|
-
});
|
|
15
|
-
it('should not call API when noLogs is true', async () => {
|
|
16
|
-
const context = logger.createContext('test', { noLogs: true });
|
|
17
|
-
// Should not throw even if env vars are missing
|
|
18
|
-
await expect(logger.complete(context, 'success')).resolves.not.toThrow();
|
|
19
|
-
});
|
|
20
|
-
it('should respect noLogs flag in context', async () => {
|
|
21
|
-
const context = logger.createContext('review', { noLogs: true });
|
|
22
|
-
context.tokensInput = 100;
|
|
23
|
-
context.tokensOutput = 200;
|
|
24
|
-
// Should complete without making API calls
|
|
25
|
-
await expect(logger.complete(context, 'success')).resolves.not.toThrow();
|
|
26
|
-
});
|
|
27
|
-
it('should handle noLogs with error status', async () => {
|
|
28
|
-
const context = logger.createContext('ship', { noLogs: true });
|
|
29
|
-
const error = new Error('Test error');
|
|
30
|
-
// Should not throw even with error status and noLogs
|
|
31
|
-
await expect(logger.complete(context, 'error', error)).resolves.not.toThrow();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
//# sourceMappingURL=logger-nologs.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger-nologs.test.js","sourceRoot":"","sources":["../../../__tests__/utils/logger-nologs.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/D,gDAAgD;QAChD,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC1B,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;QAE3B,2CAA2C;QAC3C,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAEtC,qDAAqD;QACrD,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/logger.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for CLI logger utility
|
|
3
|
-
*/
|
|
4
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
5
|
-
describe('logger', () => {
|
|
6
|
-
beforeEach(() => {
|
|
7
|
-
// Clear any module cache
|
|
8
|
-
vi.resetModules();
|
|
9
|
-
// Suppress console warnings in tests
|
|
10
|
-
vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
11
|
-
});
|
|
12
|
-
afterEach(() => {
|
|
13
|
-
vi.restoreAllMocks();
|
|
14
|
-
});
|
|
15
|
-
describe('calculateCost', () => {
|
|
16
|
-
it('should calculate cost correctly with input and output tokens only', async () => {
|
|
17
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
18
|
-
const cost = logger.calculateCost(1000000, 1000000);
|
|
19
|
-
// $3 (input) + $15 (output) = $18
|
|
20
|
-
expect(cost).toBe('18.000000');
|
|
21
|
-
});
|
|
22
|
-
it('should calculate cost correctly with cache tokens', async () => {
|
|
23
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
24
|
-
const cost = logger.calculateCost(1000000, 1000000, 1000000, 1000000);
|
|
25
|
-
// $3 (input) + $15 (output) + $3.75 (cache write) + $0.30 (cache read) = $22.05
|
|
26
|
-
expect(cost).toBe('22.050000');
|
|
27
|
-
});
|
|
28
|
-
it('should handle zero tokens', async () => {
|
|
29
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
30
|
-
const cost = logger.calculateCost(0, 0, 0, 0);
|
|
31
|
-
expect(cost).toBe('0.000000');
|
|
32
|
-
});
|
|
33
|
-
it('should handle small token amounts', async () => {
|
|
34
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
35
|
-
const cost = logger.calculateCost(1000, 500);
|
|
36
|
-
// (1000/1M * $3) + (500/1M * $15) = $0.003 + $0.0075 = $0.0105
|
|
37
|
-
expect(cost).toBe('0.010500');
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('createContext', () => {
|
|
41
|
-
it('should create a new context with correct initial values', async () => {
|
|
42
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
43
|
-
const context = logger.createContext('ship');
|
|
44
|
-
expect(context.command).toBe('ship');
|
|
45
|
-
expect(context.tokensInput).toBe(0);
|
|
46
|
-
expect(context.tokensOutput).toBe(0);
|
|
47
|
-
expect(context.tokensCacheCreation).toBe(0);
|
|
48
|
-
expect(context.tokensCacheRead).toBe(0);
|
|
49
|
-
expect(context.inferenceTimeMs).toBe(0);
|
|
50
|
-
expect(context.fixesApplied).toBe(0);
|
|
51
|
-
expect(context.testsRun).toBe(0);
|
|
52
|
-
expect(context.testsPassed).toBe(0);
|
|
53
|
-
expect(context.testsFailed).toBe(0);
|
|
54
|
-
expect(context.iterations).toBe(0);
|
|
55
|
-
expect(context.filesModified).toEqual([]);
|
|
56
|
-
expect(context.startTime).toBeGreaterThan(0);
|
|
57
|
-
expect(context.startedAt).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/);
|
|
58
|
-
});
|
|
59
|
-
it('should support all command types', async () => {
|
|
60
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
61
|
-
const commands = ['ship', 'test', 'review', 'getcode', 'tickets'];
|
|
62
|
-
commands.forEach((command) => {
|
|
63
|
-
const context = logger.createContext(command);
|
|
64
|
-
expect(context.command).toBe(command);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe('trackTokens', () => {
|
|
69
|
-
it('should accumulate token usage', async () => {
|
|
70
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
71
|
-
const context = logger.createContext('ship');
|
|
72
|
-
logger.trackTokens(context, {
|
|
73
|
-
input: 1000,
|
|
74
|
-
output: 500,
|
|
75
|
-
cacheCreation: 100,
|
|
76
|
-
cacheRead: 50,
|
|
77
|
-
});
|
|
78
|
-
expect(context.tokensInput).toBe(1000);
|
|
79
|
-
expect(context.tokensOutput).toBe(500);
|
|
80
|
-
expect(context.tokensCacheCreation).toBe(100);
|
|
81
|
-
expect(context.tokensCacheRead).toBe(50);
|
|
82
|
-
// Track more tokens
|
|
83
|
-
logger.trackTokens(context, {
|
|
84
|
-
input: 2000,
|
|
85
|
-
output: 1000,
|
|
86
|
-
cacheCreation: 200,
|
|
87
|
-
cacheRead: 100,
|
|
88
|
-
});
|
|
89
|
-
expect(context.tokensInput).toBe(3000);
|
|
90
|
-
expect(context.tokensOutput).toBe(1500);
|
|
91
|
-
expect(context.tokensCacheCreation).toBe(300);
|
|
92
|
-
expect(context.tokensCacheRead).toBe(150);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
describe('isEnabled', () => {
|
|
96
|
-
it('should return false when environment variables are not set', async () => {
|
|
97
|
-
// Stub environment variables before importing
|
|
98
|
-
vi.stubEnv('KOSUKE_BASE_URL', '');
|
|
99
|
-
vi.stubEnv('KOSUKE_API_KEY', '');
|
|
100
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', '');
|
|
101
|
-
// Import logger with stubbed env
|
|
102
|
-
const { logger } = await import('@/kosuke/utils/logger.js');
|
|
103
|
-
expect(logger.isEnabled()).toBe(false);
|
|
104
|
-
});
|
|
105
|
-
it('should return true when all environment variables are set', async () => {
|
|
106
|
-
// Stub environment variables before importing
|
|
107
|
-
vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
|
|
108
|
-
vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
|
|
109
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
|
|
110
|
-
// Import logger with stubbed env
|
|
111
|
-
const { logger } = await import('@/kosuke/utils/logger.js');
|
|
112
|
-
expect(logger.isEnabled()).toBe(true);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
describe('getProjectContext', () => {
|
|
116
|
-
it('should return null when logging is disabled', async () => {
|
|
117
|
-
// Stub environment variables before importing
|
|
118
|
-
vi.stubEnv('KOSUKE_BASE_URL', '');
|
|
119
|
-
vi.stubEnv('KOSUKE_API_KEY', '');
|
|
120
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', '');
|
|
121
|
-
// Import logger with no env vars
|
|
122
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
123
|
-
const context = logger.getProjectContext();
|
|
124
|
-
expect(context).toBeNull();
|
|
125
|
-
});
|
|
126
|
-
it('should return project context when logging is enabled', async () => {
|
|
127
|
-
// Stub environment variables before importing
|
|
128
|
-
vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
|
|
129
|
-
vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
|
|
130
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
|
|
131
|
-
// Import logger with stubbed env
|
|
132
|
-
const { logger } = await import('@/kosuke/utils/logger.js');
|
|
133
|
-
const context = logger.getProjectContext();
|
|
134
|
-
expect(context).toEqual({ projectId: 'test-project-id' });
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
describe('logCommand', () => {
|
|
138
|
-
it('should not throw when logging is disabled', async () => {
|
|
139
|
-
vi.stubEnv('KOSUKE_BASE_URL', '');
|
|
140
|
-
vi.stubEnv('KOSUKE_API_KEY', '');
|
|
141
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', '');
|
|
142
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
143
|
-
const context = logger.createContext('ship');
|
|
144
|
-
await expect(logger.complete(context, 'success')).resolves.not.toThrow();
|
|
145
|
-
});
|
|
146
|
-
it('should not throw when API call fails', async () => {
|
|
147
|
-
vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
|
|
148
|
-
vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
|
|
149
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
|
|
150
|
-
// Mock fetch to throw an error
|
|
151
|
-
global.fetch = vi.fn().mockRejectedValue(new Error('Network error'));
|
|
152
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
153
|
-
const context = logger.createContext('ship');
|
|
154
|
-
await expect(logger.complete(context, 'success')).resolves.not.toThrow();
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
describe('cost calculation edge cases', () => {
|
|
158
|
-
it('should handle very large token counts', async () => {
|
|
159
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
160
|
-
const cost = logger.calculateCost(100000000, 50000000);
|
|
161
|
-
// (100M/1M * $3) + (50M/1M * $15) = $300 + $750 = $1050
|
|
162
|
-
expect(cost).toBe('1050.000000');
|
|
163
|
-
});
|
|
164
|
-
it('should format decimals correctly', async () => {
|
|
165
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
166
|
-
const cost = logger.calculateCost(333, 666);
|
|
167
|
-
// Should have exactly 6 decimal places
|
|
168
|
-
expect(cost).toMatch(/^\d+\.\d{6}$/);
|
|
169
|
-
});
|
|
170
|
-
it('should handle fractional token costs', async () => {
|
|
171
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
172
|
-
const cost = logger.calculateCost(1, 1, 1, 1);
|
|
173
|
-
// Very small amounts should still be calculated
|
|
174
|
-
const numericCost = parseFloat(cost);
|
|
175
|
-
expect(numericCost).toBeGreaterThan(0);
|
|
176
|
-
expect(numericCost).toBeLessThan(0.001);
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
describe('context mutation', () => {
|
|
180
|
-
it('should allow direct mutation of context fields', async () => {
|
|
181
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
182
|
-
const context = logger.createContext('test');
|
|
183
|
-
context.testsRun = 10;
|
|
184
|
-
context.testsPassed = 8;
|
|
185
|
-
context.testsFailed = 2;
|
|
186
|
-
context.fixesApplied = 5;
|
|
187
|
-
context.iterations = 3;
|
|
188
|
-
context.filesModified = ['file1.ts', 'file2.ts'];
|
|
189
|
-
expect(context.testsRun).toBe(10);
|
|
190
|
-
expect(context.testsPassed).toBe(8);
|
|
191
|
-
expect(context.testsFailed).toBe(2);
|
|
192
|
-
expect(context.fixesApplied).toBe(5);
|
|
193
|
-
expect(context.iterations).toBe(3);
|
|
194
|
-
expect(context.filesModified).toEqual(['file1.ts', 'file2.ts']);
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
describe('complete', () => {
|
|
198
|
-
it('should calculate execution time', async () => {
|
|
199
|
-
vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
|
|
200
|
-
vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
|
|
201
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
|
|
202
|
-
// Mock fetch to avoid actual API calls
|
|
203
|
-
global.fetch = vi.fn().mockResolvedValue({
|
|
204
|
-
ok: true,
|
|
205
|
-
json: async () => ({}),
|
|
206
|
-
});
|
|
207
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
208
|
-
const context = logger.createContext('ship');
|
|
209
|
-
const startTime = Date.now();
|
|
210
|
-
// Simulate some work
|
|
211
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
212
|
-
await logger.complete(context, 'success');
|
|
213
|
-
const executionTime = Date.now() - startTime;
|
|
214
|
-
// Allow for small timing variance (±1ms) due to timer precision
|
|
215
|
-
expect(executionTime).toBeGreaterThanOrEqual(99);
|
|
216
|
-
});
|
|
217
|
-
it('should handle error status with error message', async () => {
|
|
218
|
-
vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
|
|
219
|
-
vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
|
|
220
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
|
|
221
|
-
// Mock fetch to throw an error
|
|
222
|
-
global.fetch = vi.fn().mockRejectedValue(new Error('Network error'));
|
|
223
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
224
|
-
const context = logger.createContext('ship');
|
|
225
|
-
const error = new Error('Test error message');
|
|
226
|
-
await expect(logger.complete(context, 'error', error)).resolves.not.toThrow();
|
|
227
|
-
});
|
|
228
|
-
it('should handle cancelled status', async () => {
|
|
229
|
-
vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
|
|
230
|
-
vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
|
|
231
|
-
vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
|
|
232
|
-
// Mock fetch to avoid actual API calls
|
|
233
|
-
global.fetch = vi.fn().mockResolvedValue({
|
|
234
|
-
ok: true,
|
|
235
|
-
json: async () => ({}),
|
|
236
|
-
});
|
|
237
|
-
const { logger } = await import('@/kosuke/utils/logger');
|
|
238
|
-
const context = logger.createContext('ship');
|
|
239
|
-
await expect(logger.complete(context, 'cancelled')).resolves.not.toThrow();
|
|
240
|
-
});
|
|
241
|
-
});
|
|
242
|
-
});
|
|
243
|
-
//# sourceMappingURL=logger.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../__tests__/utils/logger.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validator.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/validator.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|