@devcxl/opencode-cabbage 1.0.0 → 1.1.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.
Files changed (70) hide show
  1. package/assets/agents/team/architect.md +3 -0
  2. package/dist/kernel/context.js +12 -1
  3. package/dist/kernel/context.js.map +1 -1
  4. package/dist/kernel/flow.d.ts +12 -3
  5. package/dist/kernel/flow.js +107 -27
  6. package/dist/kernel/flow.js.map +1 -1
  7. package/dist/kernel/permission.d.ts +1 -1
  8. package/dist/kernel/permission.js +9 -1
  9. package/dist/kernel/permission.js.map +1 -1
  10. package/dist/kernel/profile.js +5 -2
  11. package/dist/kernel/profile.js.map +1 -1
  12. package/dist/kernel/records.d.ts +22 -6
  13. package/dist/kernel/records.js +71 -28
  14. package/dist/kernel/records.js.map +1 -1
  15. package/dist/kernel/release.d.ts +2 -0
  16. package/dist/kernel/release.js +13 -1
  17. package/dist/kernel/release.js.map +1 -1
  18. package/dist/kernel/review.js +6 -5
  19. package/dist/kernel/review.js.map +1 -1
  20. package/dist/kernel/session-index.d.ts +5 -3
  21. package/dist/kernel/session-index.js +81 -65
  22. package/dist/kernel/session-index.js.map +1 -1
  23. package/dist/kernel/setup.d.ts +26 -1
  24. package/dist/kernel/setup.js +87 -10
  25. package/dist/kernel/setup.js.map +1 -1
  26. package/dist/kernel/task.d.ts +14 -9
  27. package/dist/kernel/task.js +138 -53
  28. package/dist/kernel/task.js.map +1 -1
  29. package/dist/kernel/tdd/adapter.js +27 -26
  30. package/dist/kernel/tdd/adapter.js.map +1 -1
  31. package/dist/kernel/tdd/digest.d.ts +1 -0
  32. package/dist/kernel/tdd/digest.js +6 -4
  33. package/dist/kernel/tdd/digest.js.map +1 -1
  34. package/dist/kernel/tdd/evaluator.js +1 -1
  35. package/dist/kernel/tdd/evaluator.js.map +1 -1
  36. package/dist/kernel/tdd/state.d.ts +1 -1
  37. package/dist/kernel/tdd/state.js +1 -1
  38. package/dist/kernel/tdd/state.js.map +1 -1
  39. package/dist/kernel/worktree.d.ts +1 -1
  40. package/dist/kernel/worktree.js +35 -6
  41. package/dist/kernel/worktree.js.map +1 -1
  42. package/dist/plugin/flow-control.d.ts +11 -0
  43. package/dist/plugin/flow-control.js +47 -14
  44. package/dist/plugin/flow-control.js.map +1 -1
  45. package/dist/plugin/goal.d.ts +11 -1
  46. package/dist/plugin/goal.js +17 -3
  47. package/dist/plugin/goal.js.map +1 -1
  48. package/dist/plugin/prompt-lint.js +0 -1
  49. package/dist/plugin/prompt-lint.js.map +1 -1
  50. package/dist/plugin/release-control.d.ts +2 -0
  51. package/dist/plugin/release-control.js +59 -20
  52. package/dist/plugin/release-control.js.map +1 -1
  53. package/dist/plugin/server.js +53 -20
  54. package/dist/plugin/server.js.map +1 -1
  55. package/dist/plugin/setup-control.d.ts +15 -1
  56. package/dist/plugin/setup-control.js +37 -6
  57. package/dist/plugin/setup-control.js.map +1 -1
  58. package/dist/plugin/task-control.d.ts +2 -2
  59. package/dist/plugin/task-control.js +15 -8
  60. package/dist/plugin/task-control.js.map +1 -1
  61. package/dist/plugin/tdd-checkpoint.d.ts +10 -0
  62. package/dist/plugin/tdd-checkpoint.js +86 -3
  63. package/dist/plugin/tdd-checkpoint.js.map +1 -1
  64. package/dist/util/gh.d.ts +5 -0
  65. package/dist/util/gh.js +12 -0
  66. package/dist/util/gh.js.map +1 -1
  67. package/dist/util/paths.d.ts +6 -0
  68. package/dist/util/paths.js +14 -0
  69. package/dist/util/paths.js.map +1 -1
  70. package/package.json +4 -4
package/dist/util/gh.js CHANGED
@@ -12,4 +12,16 @@ export function gh(args, timeout = 30_000, env) {
12
12
  const execEnv = env ? { ...process.env, ...env } : process.env;
13
13
  return execAsync(`gh ${args}`, { timeout, env: execEnv });
14
14
  }
15
+ /**
16
+ * 从 gh pr create 的 stdout(PR URL,如 https://github.com/owner/repo/pull/123)解析 PR 编号。
17
+ * gh pr create 不支持 --json/--jq,只能解析 URL 末尾数字;解析失败返回 null。
18
+ */
19
+ export function parsePrUrlNumber(stdout) {
20
+ const trimmed = stdout.trim();
21
+ const match = trimmed.match(/(\d+)\/?$/);
22
+ if (!match)
23
+ return null;
24
+ const n = Number(match[1]);
25
+ return Number.isInteger(n) && n > 0 ? n : null;
26
+ }
15
27
  //# sourceMappingURL=gh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/util/gh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,EAAE,CAAC,IAAY,EAAE,OAAO,GAAG,MAAM,EAAE,GAA4B;IAC7E,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;IAC9D,OAAO,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/util/gh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,EAAE,CAAC,IAAY,EAAE,OAAO,GAAG,MAAM,EAAE,GAA4B;IAC7E,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;IAC9D,OAAO,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAChD,CAAC"}
@@ -1,4 +1,10 @@
1
1
  export declare const PLUGIN_ID = "opencode-cabbage";
2
+ /**
3
+ * 解析会话级项目目录。
4
+ * 插件级 ctx.directory/worktree 是 workspace 根,异常会话下可能是文件系统根 `/`;
5
+ * ToolContext.directory 才是 session 的项目目录。优先使用它,无效(空/相对/`/`)时退化到插件级 projectDir。
6
+ */
7
+ export declare function resolveProjectDir(ctxDirectory: string | undefined, fallback: string): string;
2
8
  export declare function slugify(value: string): string;
3
9
  export declare function toRelativePath(projectDir: string, targetPath: string): string;
4
10
  export declare function prdDir(projectDir: string): string;
@@ -2,6 +2,20 @@ import { mkdir } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { pathExists } from "./fs.js";
4
4
  export const PLUGIN_ID = "opencode-cabbage";
5
+ /**
6
+ * 解析会话级项目目录。
7
+ * 插件级 ctx.directory/worktree 是 workspace 根,异常会话下可能是文件系统根 `/`;
8
+ * ToolContext.directory 才是 session 的项目目录。优先使用它,无效(空/相对/`/`)时退化到插件级 projectDir。
9
+ */
10
+ export function resolveProjectDir(ctxDirectory, fallback) {
11
+ if (typeof ctxDirectory === "string" &&
12
+ ctxDirectory.trim() !== "" &&
13
+ ctxDirectory !== "/" &&
14
+ path.isAbsolute(ctxDirectory)) {
15
+ return ctxDirectory;
16
+ }
17
+ return fallback;
18
+ }
5
19
  const MAX_SLUG_LENGTH = 60;
6
20
  export function slugify(value) {
7
21
  let slug = value
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/util/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/util/paths.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devcxl/opencode-cabbage",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "OpenCode 全流程开发插件 — 需求→设计→任务→编码→测试→审查→自动合并,支持自动编排与并行 Subagent",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,18 +41,18 @@
41
41
  "access": "public"
42
42
  },
43
43
  "scripts": {
44
- "build": "tsc -p tsconfig.json",
44
+ "build": "rm -rf dist && tsc -p tsconfig.json",
45
45
  "prepublishOnly": "npm test && npm run typecheck && npm run build",
46
46
  "typecheck": "tsc -p tsconfig.json --noEmit",
47
47
  "test": "vitest run",
48
48
  "prompt-lint": "vitest run test/plugin/prompt-lint.test.ts",
49
- "test:pack": "npm pack --dry-run 2>&1 | tee /dev/stderr | grep -q 'assets/skills/flow-tdd/SKILL.md' && echo 'PASS: flow-tdd/SKILL.md found in tarball' || (echo 'FAIL: flow-tdd/SKILL.md not found in tarball' && exit 1)",
49
+ "test:pack": "npm run build && pack_out=$(npm pack --dry-run 2>&1); echo \"$pack_out\" | grep -q 'dist/kernel/' || { echo 'FAIL: tarball 缺少 dist/kernel/'; exit 1; }; echo \"$pack_out\" | grep -q 'dist/flowrun/' && { echo 'FAIL: tarball 含过期 flowrun/ 残留'; exit 1; }; echo 'PASS: tarball 含 dist/kernel/,无 flowrun/ 残留'",
50
50
  "docs:dev": "vitepress dev docs",
51
51
  "docs:build": "vitepress build docs",
52
52
  "docs:preview": "vitepress preview docs"
53
53
  },
54
54
  "dependencies": {
55
- "@opencode-ai/plugin": "^1.3.7",
55
+ "@opencode-ai/plugin": "^1.17.0",
56
56
  "@opencode-ai/sdk": "^1.17.14",
57
57
  "yaml": "^2.8.3"
58
58
  },