@foundation0/git 1.0.0 → 1.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.
Files changed (117) hide show
  1. package/{packages/git/README.md → README.md} +14 -5
  2. package/{packages/git/mcp → mcp}/README.md +3 -1
  3. package/{packages/git/mcp → mcp}/cli.mjs +0 -0
  4. package/package.json +43 -13
  5. package/{packages/git/src → src}/git-service-api.ts +3 -0
  6. package/{packages/git/src → src}/index.ts +8 -0
  7. package/src/label-management.ts +587 -0
  8. package/src/platform/config.ts +60 -0
  9. package/.codex.example/config.toml +0 -10
  10. package/.env.example +0 -10
  11. package/packages/fs/README.md +0 -47
  12. package/packages/fs/node_modules/.bin/f0-git-mcp +0 -21
  13. package/packages/fs/node_modules/.bin/f0-git-mcp-server +0 -21
  14. package/packages/fs/node_modules/.bin/f0-git-mcp-server.CMD +0 -12
  15. package/packages/fs/node_modules/.bin/f0-git-mcp-server.ps1 +0 -41
  16. package/packages/fs/node_modules/.bin/f0-git-mcp.CMD +0 -12
  17. package/packages/fs/node_modules/.bin/f0-git-mcp.ps1 +0 -41
  18. package/packages/fs/node_modules/.bin/tsc +0 -21
  19. package/packages/fs/node_modules/.bin/tsc.CMD +0 -12
  20. package/packages/fs/node_modules/.bin/tsc.ps1 +0 -41
  21. package/packages/fs/node_modules/.bin/tsserver +0 -21
  22. package/packages/fs/node_modules/.bin/tsserver.CMD +0 -12
  23. package/packages/fs/node_modules/.bin/tsserver.ps1 +0 -41
  24. package/packages/fs/node_modules/.bin/vite +0 -21
  25. package/packages/fs/node_modules/.bin/vite.CMD +0 -12
  26. package/packages/fs/node_modules/.bin/vite.ps1 +0 -41
  27. package/packages/fs/node_modules/.bin/vitest +0 -21
  28. package/packages/fs/node_modules/.bin/vitest.CMD +0 -12
  29. package/packages/fs/node_modules/.bin/vitest.ps1 +0 -41
  30. package/packages/fs/package.json +0 -28
  31. package/packages/fs/src/cli.ts +0 -74
  32. package/packages/fs/src/git-fs.ts +0 -705
  33. package/packages/fs/src/index.ts +0 -33
  34. package/packages/fs/src/mount.ts +0 -297
  35. package/packages/fs/tsconfig.json +0 -7
  36. package/packages/git/mcp/tests/e2e/git-mcp-e2e.spec.ts +0 -157
  37. package/packages/git/mcp/tests/e2e/server.fixture.ts +0 -109
  38. package/packages/git/node_modules/.bin/tsc +0 -21
  39. package/packages/git/node_modules/.bin/tsc.CMD +0 -12
  40. package/packages/git/node_modules/.bin/tsc.ps1 +0 -41
  41. package/packages/git/node_modules/.bin/tsserver +0 -21
  42. package/packages/git/node_modules/.bin/tsserver.CMD +0 -12
  43. package/packages/git/node_modules/.bin/tsserver.ps1 +0 -41
  44. package/packages/git/node_modules/.bin/vite +0 -21
  45. package/packages/git/node_modules/.bin/vite.CMD +0 -12
  46. package/packages/git/node_modules/.bin/vite.ps1 +0 -41
  47. package/packages/git/node_modules/.bin/vitest +0 -21
  48. package/packages/git/node_modules/.bin/vitest.CMD +0 -12
  49. package/packages/git/node_modules/.bin/vitest.ps1 +0 -41
  50. package/packages/git/node_modules/.vite/vitest/results.json +0 -1
  51. package/packages/git/package.json +0 -60
  52. package/packages/git/scripts/create-issue.mjs +0 -93
  53. package/packages/git/scripts/extract-git-spec.mjs +0 -234
  54. package/packages/git/scripts/fetch-gitea-swagger.mjs +0 -22
  55. package/packages/git/src/platform/config.ts +0 -140
  56. package/packages/git/tests/api.spec.ts +0 -55
  57. package/packages/git/tests/e2e/git-service-feature-e2e.spec.ts +0 -232
  58. package/packages/git/tests/git-service-api-object.spec.ts +0 -97
  59. package/packages/git/tests/git-service-feature-matrix.spec.ts +0 -182
  60. package/packages/git/tests/issue-dependencies.spec.ts +0 -81
  61. package/packages/git/tsconfig.json +0 -7
  62. package/packages/git/vitest.config.ts +0 -7
  63. package/packages/utils/package.json +0 -9
  64. package/packages/utils/src/awk.ts +0 -6
  65. package/packages/utils/src/cat.ts +0 -6
  66. package/packages/utils/src/cd.ts +0 -6
  67. package/packages/utils/src/chgrp.ts +0 -6
  68. package/packages/utils/src/chmod.ts +0 -6
  69. package/packages/utils/src/chown.ts +0 -6
  70. package/packages/utils/src/cp.ts +0 -6
  71. package/packages/utils/src/curl.ts +0 -6
  72. package/packages/utils/src/cut.ts +0 -6
  73. package/packages/utils/src/date.ts +0 -6
  74. package/packages/utils/src/echo.ts +0 -6
  75. package/packages/utils/src/find.ts +0 -6
  76. package/packages/utils/src/grep.ts +0 -6
  77. package/packages/utils/src/gunzip.ts +0 -6
  78. package/packages/utils/src/gzip.ts +0 -6
  79. package/packages/utils/src/head.ts +0 -6
  80. package/packages/utils/src/hostname.ts +0 -6
  81. package/packages/utils/src/index.ts +0 -37
  82. package/packages/utils/src/ls.ts +0 -6
  83. package/packages/utils/src/mkdir.ts +0 -6
  84. package/packages/utils/src/mv.ts +0 -6
  85. package/packages/utils/src/ping.ts +0 -6
  86. package/packages/utils/src/pwd.ts +0 -6
  87. package/packages/utils/src/rm.ts +0 -6
  88. package/packages/utils/src/rmdir.ts +0 -6
  89. package/packages/utils/src/sed.ts +0 -6
  90. package/packages/utils/src/sort.ts +0 -6
  91. package/packages/utils/src/tail.ts +0 -6
  92. package/packages/utils/src/tar.ts +0 -6
  93. package/packages/utils/src/touch.ts +0 -6
  94. package/packages/utils/src/tr.ts +0 -6
  95. package/packages/utils/src/uname.ts +0 -6
  96. package/packages/utils/src/uniq.ts +0 -6
  97. package/packages/utils/src/unzip.ts +0 -6
  98. package/packages/utils/src/util.ts +0 -4
  99. package/packages/utils/src/wc.ts +0 -6
  100. package/packages/utils/src/wget.ts +0 -6
  101. package/packages/utils/src/whoami.ts +0 -6
  102. package/packages/utils/src/zip.ts +0 -6
  103. package/pnpm-workspace.yaml +0 -2
  104. package/tsconfig.base.json +0 -12
  105. /package/{packages/git/gitea-swagger.json → gitea-swagger.json} +0 -0
  106. /package/{packages/git/mcp → mcp}/src/cli.ts +0 -0
  107. /package/{packages/git/mcp → mcp}/src/client.ts +0 -0
  108. /package/{packages/git/mcp → mcp}/src/index.ts +0 -0
  109. /package/{packages/git/mcp → mcp}/src/server.ts +0 -0
  110. /package/{packages/git/src → src}/api.ts +0 -0
  111. /package/{packages/git/src → src}/git-service-feature-spec.generated.ts +0 -0
  112. /package/{packages/git/src → src}/issue-dependencies.ts +0 -0
  113. /package/{packages/git/src → src}/platform/gitea-adapter.ts +0 -0
  114. /package/{packages/git/src → src}/platform/gitea-rules.ts +0 -0
  115. /package/{packages/git/src → src}/platform/index.ts +0 -0
  116. /package/{packages/git/src → src}/repository.ts +0 -0
  117. /package/{packages/git/src → src}/spec-mock.ts +0 -0
@@ -197,12 +197,21 @@ await api.repo.sync()
197
197
  ### 5) Team triage with labels
198
198
 
199
199
  ```ts
200
- await api.label.list()
201
- await api.label.create({ data: { name: 'priority-high', color: '#d73a4a' } })
202
- await api.label.edit('priority-high', {
203
- data: { color: '#fbca04', description: 'Escalated issue' },
200
+ await api.repo.label.listManaged()
201
+
202
+ await api.repo.label.upsert('priority-high', {
203
+ color: '#d73a4a',
204
+ description: 'Initial escalation label',
204
205
  })
205
- await api.label.delete('priority-high')
206
+
207
+ await api.repo.label.getByName('priority-high')
208
+
209
+ await api.repo.label.upsert('priority-high', {
210
+ color: '#fbca04',
211
+ description: 'Escalated issue',
212
+ })
213
+
214
+ await api.repo.label.deleteByName('priority-high')
206
215
  ```
207
216
 
208
217
  ### 6) Search and discovery
@@ -199,7 +199,7 @@ Tips:
199
199
 
200
200
  - Prefer `https://` for `GITEA_HOST` to avoid leaking `GITEA_TOKEN` over plaintext HTTP.
201
201
  - The CLI entrypoint in `packages/git/mcp/src/cli.ts` rejects `http://` hosts unless `--allow-insecure-http` is passed for local testing.
202
- - Keep `GITEA_TOKEN` in environment variables (or an uncommitted `.env`); use the repo root `.env.example` as a template.
202
+ - Set `GITEA_TOKEN` in the MCP process environment. The package does not auto-load `.env` files.
203
203
 
204
204
  ## API surface
205
205
 
@@ -207,3 +207,5 @@ Tips:
207
207
  - `GitMcpClient`
208
208
  - `createGitMcpClient(options)`
209
209
  - `normalizeToolCallNameForServer(prefix, toolName)`
210
+ - Includes label-management tools exposed from the API object:
211
+ `repo.label.listManaged`, `repo.label.getByName`, `repo.label.upsert`, and `repo.label.deleteByName`
File without changes
package/package.json CHANGED
@@ -1,28 +1,58 @@
1
1
  {
2
2
  "name": "@foundation0/git",
3
- "version": "1.0.0",
4
- "description": "Foundation 0 Git",
3
+ "version": "1.2.1",
4
+ "description": "Foundation 0 Git API and MCP server",
5
5
  "type": "module",
6
+ "bin": {
7
+ "f0-git-mcp": "./mcp/cli.mjs",
8
+ "f0-git-mcp-server": "./mcp/cli.mjs"
9
+ },
6
10
  "private": false,
7
- "workspaces": [
8
- "packages/*",
9
- "packages/git/*"
10
- ],
11
+ "main": "./src/index.ts",
11
12
  "keywords": [
12
13
  "foundation0",
13
- "git"
14
+ "example",
15
+ "git",
16
+ "mcp"
14
17
  ],
15
- "author": "Foundation 0",
18
+ "author": "",
16
19
  "license": "ISC",
20
+ "files": [
21
+ "src",
22
+ "mcp/src",
23
+ "mcp/cli.mjs",
24
+ "mcp/README.md",
25
+ "README.md",
26
+ "gitea-swagger.json"
27
+ ],
17
28
  "publishConfig": {
18
29
  "access": "public",
19
30
  "registry": "https://registry.npmjs.org/"
20
31
  },
32
+ "dependencies": {
33
+ "@modelcontextprotocol/sdk": "^1.13.0",
34
+ "zod": "^3.24.1"
35
+ },
36
+ "exports": {
37
+ ".": "./src/index.ts",
38
+ "./mcp": "./mcp/src/index.ts",
39
+ "./mcp/server": "./mcp/src/server.ts",
40
+ "./mcp/client": "./mcp/src/client.ts",
41
+ "./mcp/cli": "./mcp/cli.mjs"
42
+ },
43
+ "devDependencies": {
44
+ "@types/node": "^22.10.2",
45
+ "vitest": "^2.1.8",
46
+ "typescript": "^5.5.4"
47
+ },
21
48
  "scripts": {
22
- "deploy": "pnpm publish --access public",
23
- "test": "pnpm -r test",
24
- "version:patch": "pnpm version:patch",
25
- "version:minor": "pnpm version:minor",
26
- "version:major": "pnpm version:major"
49
+ "fetch:gitea-swagger": "bun run ./scripts/fetch-gitea-swagger.mjs",
50
+ "generate:git-spec": "bun run ./scripts/extract-git-spec.mjs",
51
+ "mcp": "bun run ./mcp/src/cli.ts",
52
+ "test": "bunx vitest run",
53
+ "deploy": "pnpm prepublishOnly && pnpm publish --access public",
54
+ "version:patch": "pnpm version patch --no-workspaces",
55
+ "version:minor": "pnpm version minor --no-workspaces",
56
+ "version:major": "pnpm version major --no-workspaces"
27
57
  }
28
58
  }
@@ -2,6 +2,7 @@ import { createGitPlatformAdapter, type GitPlatformAdapterFactoryDeps } from './
2
2
  import { getGitPlatformConfig, type GitPlatformConfig } from './platform/config'
3
3
  import { type GitServiceFlag, type GitServiceFeature, gitServiceFeatureSpec } from './git-service-feature-spec.generated'
4
4
  import { type GitApiFeatureMapping } from './platform/gitea-adapter'
5
+ import { attachGitLabelManagementApi } from './label-management'
5
6
  import { spawn } from 'node:child_process'
6
7
  import crypto from 'node:crypto'
7
8
 
@@ -556,6 +557,8 @@ export const createGitServiceApi = (options: GitServiceApiFactoryOptions = {}):
556
557
  }
557
558
  }
558
559
 
560
+ attachGitLabelManagementApi(root, defaults)
561
+
559
562
  return root
560
563
  }
561
564
 
@@ -36,6 +36,14 @@ export {
36
36
  type GitIssueDependencyPayload,
37
37
  type GitIssueDependencySyncResult,
38
38
  } from './issue-dependencies'
39
+ export {
40
+ attachGitLabelManagementApi,
41
+ createGitLabelManagementApi,
42
+ extractRepositoryLabels,
43
+ type GitLabelManagementApi,
44
+ type GitLabelManagementDefaults,
45
+ type GitRepositoryLabel,
46
+ } from './label-management'
39
47
  export { resolveProjectRepoIdentity, type GitRepositoryIdentity } from './repository'
40
48
  export type {
41
49
  GitServiceApi,