@kansei-link/bantou 0.2.0 → 0.2.1
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/LICENSE +21 -21
- package/README.md +110 -110
- package/data/exclusion-rules/README.md +104 -104
- package/data/exclusion-rules/jp-tax-baseline-v1.json +185 -185
- package/data/exclusion-rules-schema.json +109 -109
- package/data/keyword-dict/README.md +91 -91
- package/data/keyword-dict/jp-tax-baseline-v1.json +398 -398
- package/data/keyword-dict-schema.json +117 -117
- package/data/tax-rules/jp-tax-rules-v1.json +170 -170
- package/dist/classifier/claude-classifier.js +35 -35
- package/dist/classifier/keyword-classifier.js +5 -2
- package/dist/exclusion/exclusion-checker.js +5 -0
- package/dist/tax-rules/tax-rule-engine.js +5 -0
- package/package.json +74 -74
|
@@ -22,8 +22,11 @@ function defaultDataDir() {
|
|
|
22
22
|
const envDir = process.env.COCKPIT_DATA_DIR;
|
|
23
23
|
if (envDir)
|
|
24
24
|
return envDir;
|
|
25
|
-
//
|
|
26
|
-
|
|
25
|
+
// Published package: dist/classifier/ → ../../data
|
|
26
|
+
const publishedPath = path.resolve(__dirname, '../../data');
|
|
27
|
+
if (fs.existsSync(publishedPath))
|
|
28
|
+
return publishedPath;
|
|
29
|
+
// Dev monorepo: packages/cockpit-mcp/src/classifier/ → ../../../../data
|
|
27
30
|
return path.resolve(__dirname, '../../../../data');
|
|
28
31
|
}
|
|
29
32
|
export class KeywordClassifier {
|
|
@@ -20,6 +20,11 @@ function defaultDataDir() {
|
|
|
20
20
|
const envDir = process.env.COCKPIT_DATA_DIR;
|
|
21
21
|
if (envDir)
|
|
22
22
|
return envDir;
|
|
23
|
+
// Published package: dist/exclusion/ → ../../data
|
|
24
|
+
const publishedPath = path.resolve(__dirname, '../../data');
|
|
25
|
+
if (fs.existsSync(publishedPath))
|
|
26
|
+
return publishedPath;
|
|
27
|
+
// Dev monorepo: packages/cockpit-mcp/src/exclusion/ → ../../../../data
|
|
23
28
|
return path.resolve(__dirname, '../../../../data');
|
|
24
29
|
}
|
|
25
30
|
export class ExclusionChecker {
|
|
@@ -18,6 +18,11 @@ function defaultDataDir() {
|
|
|
18
18
|
const envDir = process.env.COCKPIT_DATA_DIR;
|
|
19
19
|
if (envDir)
|
|
20
20
|
return envDir;
|
|
21
|
+
// Published package: dist/tax-rules/ → ../../data
|
|
22
|
+
const publishedPath = path.resolve(__dirname, '../../data');
|
|
23
|
+
if (fs.existsSync(publishedPath))
|
|
24
|
+
return publishedPath;
|
|
25
|
+
// Dev monorepo: packages/cockpit-mcp/src/tax-rules/ → ../../../../data
|
|
21
26
|
return path.resolve(__dirname, '../../../../data');
|
|
22
27
|
}
|
|
23
28
|
function containsAny(haystack, needles) {
|
package/package.json
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@kansei-link/bantou",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "番頭 — AI仕訳アシスタント。日本の税理士事務所向け会計自動化MCPサーバー。freee・弥生・MF・TKC対応。修正を永久記憶し、使うほど賢くなる。",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"bantou": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist/**/*.js",
|
|
12
|
-
"dist/**/*.d.ts",
|
|
13
|
-
"!dist/**/__tests__/**",
|
|
14
|
-
"data/keyword-dict/jp-tax-baseline-v1.json",
|
|
15
|
-
"data/keyword-dict-schema.json",
|
|
16
|
-
"data/exclusion-rules/jp-tax-baseline-v1.json",
|
|
17
|
-
"data/exclusion-rules-schema.json",
|
|
18
|
-
"data/tax-rules/jp-tax-rules-v1.json",
|
|
19
|
-
"README.md",
|
|
20
|
-
"LICENSE"
|
|
21
|
-
],
|
|
22
|
-
"scripts": {
|
|
23
|
-
"build": "tsc",
|
|
24
|
-
"start": "node dist/index.js",
|
|
25
|
-
"dev": "tsx src/index.ts",
|
|
26
|
-
"doctor:freee": "tsx src/bin/freee-doctor.ts",
|
|
27
|
-
"test": "vitest run",
|
|
28
|
-
"smoke": "node tests/smoke.mjs",
|
|
29
|
-
"copy-data": "node -e \"require('fs').cpSync('../../data','./data',{recursive:true})\"",
|
|
30
|
-
"clean-data": "node -e \"require('fs').rmSync('./data',{recursive:true,force:true})\"",
|
|
31
|
-
"prepublishOnly": "npm run copy-data && npm run build && npm test"
|
|
32
|
-
},
|
|
33
|
-
"keywords": [
|
|
34
|
-
"mcp",
|
|
35
|
-
"model-context-protocol",
|
|
36
|
-
"accounting",
|
|
37
|
-
"freee",
|
|
38
|
-
"money-forward",
|
|
39
|
-
"tax-accountant",
|
|
40
|
-
"japan",
|
|
41
|
-
"automation",
|
|
42
|
-
"claude",
|
|
43
|
-
"claude-code"
|
|
44
|
-
],
|
|
45
|
-
"author": "Synapse Arrows PTE. LTD.",
|
|
46
|
-
"license": "MIT",
|
|
47
|
-
"homepage": "https://github.com/michielinksee/kansei-link-cockpit",
|
|
48
|
-
"repository": {
|
|
49
|
-
"type": "git",
|
|
50
|
-
"url": "git+https://github.com/michielinksee/kansei-link-cockpit.git",
|
|
51
|
-
"directory": "packages/cockpit-mcp"
|
|
52
|
-
},
|
|
53
|
-
"bugs": {
|
|
54
|
-
"url": "https://github.com/michielinksee/kansei-link-cockpit/issues"
|
|
55
|
-
},
|
|
56
|
-
"dependencies": {
|
|
57
|
-
"@anthropic-ai/sdk": "^0.40.1",
|
|
58
|
-
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
59
|
-
"better-sqlite3": "^12.9.0",
|
|
60
|
-
"zod": "^3.23.0"
|
|
61
|
-
},
|
|
62
|
-
"devDependencies": {
|
|
63
|
-
"@types/node": "^22.7.0",
|
|
64
|
-
"tsx": "^4.19.0",
|
|
65
|
-
"typescript": "^5.6.0",
|
|
66
|
-
"vitest": "^2.0.0"
|
|
67
|
-
},
|
|
68
|
-
"engines": {
|
|
69
|
-
"node": ">=20"
|
|
70
|
-
},
|
|
71
|
-
"publishConfig": {
|
|
72
|
-
"access": "public"
|
|
73
|
-
}
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@kansei-link/bantou",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "番頭 — AI仕訳アシスタント。日本の税理士事務所向け会計自動化MCPサーバー。freee・弥生・MF・TKC対応。修正を永久記憶し、使うほど賢くなる。",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"bantou": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/**/*.js",
|
|
12
|
+
"dist/**/*.d.ts",
|
|
13
|
+
"!dist/**/__tests__/**",
|
|
14
|
+
"data/keyword-dict/jp-tax-baseline-v1.json",
|
|
15
|
+
"data/keyword-dict-schema.json",
|
|
16
|
+
"data/exclusion-rules/jp-tax-baseline-v1.json",
|
|
17
|
+
"data/exclusion-rules-schema.json",
|
|
18
|
+
"data/tax-rules/jp-tax-rules-v1.json",
|
|
19
|
+
"README.md",
|
|
20
|
+
"LICENSE"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"start": "node dist/index.js",
|
|
25
|
+
"dev": "tsx src/index.ts",
|
|
26
|
+
"doctor:freee": "tsx src/bin/freee-doctor.ts",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"smoke": "node tests/smoke.mjs",
|
|
29
|
+
"copy-data": "node -e \"require('fs').cpSync('../../data','./data',{recursive:true})\"",
|
|
30
|
+
"clean-data": "node -e \"require('fs').rmSync('./data',{recursive:true,force:true})\"",
|
|
31
|
+
"prepublishOnly": "npm run copy-data && npm run build && npm test"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"mcp",
|
|
35
|
+
"model-context-protocol",
|
|
36
|
+
"accounting",
|
|
37
|
+
"freee",
|
|
38
|
+
"money-forward",
|
|
39
|
+
"tax-accountant",
|
|
40
|
+
"japan",
|
|
41
|
+
"automation",
|
|
42
|
+
"claude",
|
|
43
|
+
"claude-code"
|
|
44
|
+
],
|
|
45
|
+
"author": "Synapse Arrows PTE. LTD.",
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"homepage": "https://github.com/michielinksee/kansei-link-cockpit",
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "git+https://github.com/michielinksee/kansei-link-cockpit.git",
|
|
51
|
+
"directory": "packages/cockpit-mcp"
|
|
52
|
+
},
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/michielinksee/kansei-link-cockpit/issues"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@anthropic-ai/sdk": "^0.40.1",
|
|
58
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
59
|
+
"better-sqlite3": "^12.9.0",
|
|
60
|
+
"zod": "^3.23.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@types/node": "^22.7.0",
|
|
64
|
+
"tsx": "^4.19.0",
|
|
65
|
+
"typescript": "^5.6.0",
|
|
66
|
+
"vitest": "^2.0.0"
|
|
67
|
+
},
|
|
68
|
+
"engines": {
|
|
69
|
+
"node": ">=20"
|
|
70
|
+
},
|
|
71
|
+
"publishConfig": {
|
|
72
|
+
"access": "public"
|
|
73
|
+
}
|
|
74
|
+
}
|