@kenkaiiii/ggcoder 4.2.62 → 4.2.63

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 (35) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +3 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/compaction/token-estimator.test.js +1 -1
  5. package/dist/core/compaction/token-estimator.test.js.map +1 -1
  6. package/dist/core/mcp/client.js +22 -1
  7. package/dist/core/mcp/client.js.map +1 -1
  8. package/dist/core/model-registry.js +5 -5
  9. package/dist/core/model-registry.js.map +1 -1
  10. package/dist/system-prompt.d.ts.map +1 -1
  11. package/dist/system-prompt.js +4 -1
  12. package/dist/system-prompt.js.map +1 -1
  13. package/dist/tools/edit.d.ts.map +1 -1
  14. package/dist/tools/edit.js +4 -1
  15. package/dist/tools/edit.js.map +1 -1
  16. package/dist/ui/App.d.ts +8 -1
  17. package/dist/ui/App.d.ts.map +1 -1
  18. package/dist/ui/App.js +54 -3
  19. package/dist/ui/App.js.map +1 -1
  20. package/dist/ui/components/PlanProgress.d.ts +7 -0
  21. package/dist/ui/components/PlanProgress.d.ts.map +1 -0
  22. package/dist/ui/components/PlanProgress.js +13 -0
  23. package/dist/ui/components/PlanProgress.js.map +1 -0
  24. package/dist/ui/components/StreamingArea.d.ts.map +1 -1
  25. package/dist/ui/components/StreamingArea.js +2 -40
  26. package/dist/ui/components/StreamingArea.js.map +1 -1
  27. package/dist/ui/components/ToolExecution.d.ts +1 -0
  28. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  29. package/dist/ui/components/ToolExecution.js +6 -3
  30. package/dist/ui/components/ToolExecution.js.map +1 -1
  31. package/dist/utils/plan-steps.d.ts +34 -0
  32. package/dist/utils/plan-steps.d.ts.map +1 -0
  33. package/dist/utils/plan-steps.js +63 -0
  34. package/dist/utils/plan-steps.js.map +1 -0
  35. package/package.json +3 -3
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Plan step extraction and [DONE:n] progress tracking.
3
+ *
4
+ * The agent outputs [DONE:n] markers in its text to signal that step n
5
+ * of the approved plan has been completed. The UI parses these markers
6
+ * and renders a progress widget.
7
+ */
8
+ export interface PlanStep {
9
+ /** 1-based step number */
10
+ step: number;
11
+ /** Short description extracted from the plan */
12
+ text: string;
13
+ completed: boolean;
14
+ }
15
+ /**
16
+ * Extract numbered steps from a plan markdown string.
17
+ *
18
+ * Looks for lines like:
19
+ * 1. Do something
20
+ * 2) Do something else
21
+ * 3. **Bold step**
22
+ *
23
+ * Only top-level numbered items are extracted (not nested sub-items).
24
+ */
25
+ export declare function extractPlanSteps(planContent: string): PlanStep[];
26
+ /**
27
+ * Scan text for [DONE:n] markers and return the set of completed step numbers.
28
+ */
29
+ export declare function findCompletedMarkers(text: string): Set<number>;
30
+ /**
31
+ * Apply completed markers to a steps array (immutable — returns new array).
32
+ */
33
+ export declare function markStepsCompleted(steps: PlanStep[], completed: Set<number>): PlanStep[];
34
+ //# sourceMappingURL=plan-steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-steps.d.ts","sourceRoot":"","sources":["../../src/utils/plan-steps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,QAAQ;IACvB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,CAqBhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAO9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAUxF"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Plan step extraction and [DONE:n] progress tracking.
3
+ *
4
+ * The agent outputs [DONE:n] markers in its text to signal that step n
5
+ * of the approved plan has been completed. The UI parses these markers
6
+ * and renders a progress widget.
7
+ */
8
+ /**
9
+ * Extract numbered steps from a plan markdown string.
10
+ *
11
+ * Looks for lines like:
12
+ * 1. Do something
13
+ * 2) Do something else
14
+ * 3. **Bold step**
15
+ *
16
+ * Only top-level numbered items are extracted (not nested sub-items).
17
+ */
18
+ export function extractPlanSteps(planContent) {
19
+ const steps = [];
20
+ const pattern = /^\s*(\d+)[.)]\s+\*{0,2}([^*\n]+)/gm;
21
+ for (const match of planContent.matchAll(pattern)) {
22
+ let text = match[2]
23
+ .trim()
24
+ .replace(/\*{1,2}$/, "")
25
+ .trim();
26
+ // Skip very short items, code snippets, or sub-items
27
+ if (text.length <= 5 || text.startsWith("`") || text.startsWith("/") || text.startsWith("-")) {
28
+ continue;
29
+ }
30
+ // Truncate long step descriptions
31
+ if (text.length > 80) {
32
+ text = text.slice(0, 77) + "...";
33
+ }
34
+ steps.push({ step: steps.length + 1, text, completed: false });
35
+ }
36
+ return steps;
37
+ }
38
+ /**
39
+ * Scan text for [DONE:n] markers and return the set of completed step numbers.
40
+ */
41
+ export function findCompletedMarkers(text) {
42
+ const completed = new Set();
43
+ const pattern = /\[DONE:(\d+)\]/gi;
44
+ for (const match of text.matchAll(pattern)) {
45
+ completed.add(parseInt(match[1], 10));
46
+ }
47
+ return completed;
48
+ }
49
+ /**
50
+ * Apply completed markers to a steps array (immutable — returns new array).
51
+ */
52
+ export function markStepsCompleted(steps, completed) {
53
+ let changed = false;
54
+ const result = steps.map((s) => {
55
+ if (completed.has(s.step) && !s.completed) {
56
+ changed = true;
57
+ return { ...s, completed: true };
58
+ }
59
+ return s;
60
+ });
61
+ return changed ? result : steps;
62
+ }
63
+ //# sourceMappingURL=plan-steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-steps.js","sourceRoot":"","sources":["../../src/utils/plan-steps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,oCAAoC,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;aAChB,IAAI,EAAE;aACN,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,IAAI,EAAE,CAAC;QACV,qDAAqD;QACrD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7F,SAAS;QACX,CAAC;QACD,kCAAkC;QAClC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACrB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,OAAO,GAAG,kBAAkB,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAiB,EAAE,SAAsB;IAC1E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC1C,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenkaiiii/ggcoder",
3
- "version": "4.2.62",
3
+ "version": "4.2.63",
4
4
  "type": "module",
5
5
  "description": "CLI coding agent with OAuth authentication for Anthropic and OpenAI",
6
6
  "license": "MIT",
@@ -38,8 +38,8 @@
38
38
  "string-width": "^8.2.0",
39
39
  "wrap-ansi": "^10.0.0",
40
40
  "zod": "^4.3.6",
41
- "@kenkaiiii/gg-agent": "4.2.62",
42
- "@kenkaiiii/gg-ai": "4.2.62"
41
+ "@kenkaiiii/gg-agent": "4.2.63",
42
+ "@kenkaiiii/gg-ai": "4.2.63"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^25.5.0",