@pmelab/gtd 10.5.0 → 10.7.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pmelab/gtd",
3
- "version": "10.5.0",
3
+ "version": "10.7.0",
4
4
  "private": false,
5
5
  "description": "Git-aware CLI that emits the next prompt for an autonomous coding agent based on the current repository state",
6
6
  "bin": {
@@ -29,15 +29,15 @@
29
29
  "scripts": {
30
30
  "prepare": "husky",
31
31
  "dev": "node dev/run.mjs",
32
- "build": "tsdown",
32
+ "build": "tsdown --filter web && npx @tailwindcss/cli -i src/web/styles.css -o dist/web/main.css --minify && node scripts/inline-web-client.mjs && tsdown --filter gtd",
33
33
  "postbuild": "jiti scripts/generate-schema.ts && node scripts/assert-no-test-doubles.mjs",
34
34
  "watch": "tsdown --watch",
35
- "test": "turbo run format:check typecheck lint lint:sh test:unit test:e2e:inmem test:e2e:live deadcode",
35
+ "test": "turbo run format:check typecheck lint lint:sh test:unit test:e2e:inmem test:e2e:live test:web deadcode",
36
36
  "test:unit": "vitest run --project unit",
37
37
  "test:watch": "vitest",
38
38
  "test:changed": "vitest run --project unit --project e2e-inmem --changed HEAD",
39
39
  "test:e2e": "npm run test:e2e:inmem && npm run test:e2e:live",
40
- "typecheck": "tsc --noEmit",
40
+ "typecheck": "tsc --noEmit && tsc --noEmit -p src/web/tsconfig.json",
41
41
  "lint": "oxlint .",
42
42
  "lint:sh": "jiti scripts/generate-shell-corpus.ts --check && shellcheck -s sh tests/shell/corpus/*.sh",
43
43
  "format": "oxfmt --write .",
@@ -46,6 +46,8 @@
46
46
  "test:e2e:inmem": "vitest run --project e2e-inmem",
47
47
  "test:e2e:live": "vitest run --project e2e-live --no-file-parallelism",
48
48
  "deadcode": "fallow --summary --quiet",
49
+ "test:web": "vitest run --project storybook",
50
+ "storybook": "storybook dev --host 0.0.0.0",
49
51
  "coverage": "vitest run --project unit --coverage",
50
52
  "eval": ": \"${GTD_EVALS_URL:?GTD_EVALS_URL is required — the OpenAI-compatible gateway every graded turn and the judge run through}\" && : \"${GTD_EVALS_KEY:?GTD_EVALS_KEY is required — the gateway bearer key}\" && npx turbo run build && node evals/eval.mjs",
51
53
  "eval:baseline": "node evals/compare-baseline.mjs --record"
@@ -60,10 +62,22 @@
60
62
  "@semantic-release/git": "^10.0.1",
61
63
  "@semantic-release/github": "^12.0.8",
62
64
  "@semantic-release/npm": "^12.0.0",
65
+ "@storybook/addon-vitest": "^10.6.0",
66
+ "@storybook/react-vite": "^10.6.0",
63
67
  "@stryker-mutator/core": "^9.6.1",
64
68
  "@stryker-mutator/typescript-checker": "^9.6.1",
65
69
  "@stryker-mutator/vitest-runner": "^9.6.1",
70
+ "@tailwindcss/cli": "^4.3.3",
71
+ "@tailwindcss/vite": "^4.3.3",
72
+ "@tanstack/react-query": "^5.102.8",
73
+ "@trpc/client": "^11.18.0",
74
+ "@trpc/react-query": "^11.18.0",
75
+ "@types/mdast": "^4.0.4",
66
76
  "@types/node": "^25.9.3",
77
+ "@types/react": "^19.2.7",
78
+ "@types/react-dom": "^19.2.3",
79
+ "@vitejs/plugin-react": "^5.2.0",
80
+ "@vitest/browser": "^3.2.7",
67
81
  "@vitest/coverage-v8": "^3.2.7",
68
82
  "fallow": "^3.14.0",
69
83
  "fast-check": "^4.8.0",
@@ -72,10 +86,15 @@
72
86
  "lint-staged": "^17.0.8",
73
87
  "oxfmt": "^0.59.0",
74
88
  "oxlint": "^1.74.0",
89
+ "playwright": "^1.62.1",
75
90
  "prettier": "^3.8.1",
76
91
  "promptfoo": "0.122.1",
77
92
  "quickpickle": "1.11.2",
93
+ "react": "^19.2.0",
94
+ "react-dom": "^19.2.0",
78
95
  "semantic-release": "^25.0.5",
96
+ "storybook": "^10.6.0",
97
+ "tailwindcss": "^4.3.3",
79
98
  "tsdown": "^0.22.8",
80
99
  "turbo": "^2.10.9",
81
100
  "vitest": "^3.2.0"
@@ -86,9 +105,15 @@
86
105
  "dependencies": {
87
106
  "@effect/platform": "^0.94.2",
88
107
  "@effect/platform-node": "^0.104.1",
108
+ "@trpc/server": "^11.18.0",
89
109
  "cosmiconfig": "^9.0.2",
90
110
  "effect": "^3.19.15",
91
111
  "eta": "^4.6.0",
112
+ "mdast-util-from-markdown": "^2.0.3",
113
+ "mdast-util-gfm-footnote": "^2.1.0",
114
+ "mdast-util-gfm-task-list-item": "^2.0.0",
115
+ "micromark-extension-gfm-footnote": "^2.1.0",
116
+ "micromark-extension-gfm-task-list-item": "^2.1.0",
92
117
  "vscode-languageserver": "^10.1.0",
93
118
  "vscode-languageserver-textdocument": "^1.0.13",
94
119
  "yaml": "^2.8.2"
package/schema.json CHANGED
@@ -271,6 +271,29 @@
271
271
  }
272
272
  }
273
273
  },
274
+ "ui": {
275
+ "type": "object",
276
+ "description": "Settings for `gtd ui`: where it listens, and optional TLS.",
277
+ "additionalProperties": false,
278
+ "properties": {
279
+ "port": {
280
+ "type": "integer",
281
+ "description": "TCP port `gtd ui` listens on."
282
+ },
283
+ "host": {
284
+ "type": "string",
285
+ "description": "Host/interface `gtd ui` binds to."
286
+ },
287
+ "cert": {
288
+ "type": "string",
289
+ "description": "Path to a TLS certificate file, enabling HTTPS. Requires `key` too."
290
+ },
291
+ "key": {
292
+ "type": "string",
293
+ "description": "Path to a TLS private key file, enabling HTTPS. Requires `cert` too."
294
+ }
295
+ }
296
+ },
274
297
  "$schema": {
275
298
  "type": "string",
276
299
  "description": "Editor-only pointer at this schema. Stripped by gtd before validation."