@difflab/pi 0.8.0 → 0.9.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 (67) hide show
  1. package/README.md +8 -10
  2. package/agents/diffpi-orchestrator.md +1 -1
  3. package/agents/diffpi-planner.md +2 -2
  4. package/agents/diffpi-reviewer.md +2 -2
  5. package/agents/diffpi-worker.md +6 -6
  6. package/dist/environment.d.ts +0 -1
  7. package/dist/environment.d.ts.map +1 -1
  8. package/dist/extensions/index.js +319 -1495
  9. package/dist/index.d.ts +5 -9
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +140 -759
  12. package/dist/log.d.ts +6 -11
  13. package/dist/log.d.ts.map +1 -1
  14. package/dist/plan/verify.d.ts.map +1 -1
  15. package/dist/review/index.d.ts +2 -3
  16. package/dist/review/index.d.ts.map +1 -1
  17. package/dist/review/review-backend.d.ts +2 -3
  18. package/dist/review/review-backend.d.ts.map +1 -1
  19. package/dist/setup.d.ts +0 -2
  20. package/dist/setup.d.ts.map +1 -1
  21. package/dist/tools/index.js +319 -1495
  22. package/dist/tools/log.d.ts.map +1 -1
  23. package/dist/tools/review.d.ts +1 -7
  24. package/dist/tools/review.d.ts.map +1 -1
  25. package/dist/tools/setup.d.ts.map +1 -1
  26. package/package.json +1 -5
  27. package/skills/diffpi-setup/SKILL.md +3 -3
  28. package/skills/plan/SKILL.md +3 -4
  29. package/skills/plan/references/design-quality.md +1 -1
  30. package/skills/plan/references/workflows/finalize.md +2 -2
  31. package/skills/plan/references/workflows/go.md +7 -5
  32. package/skills/plan/references/workflows/help.md +1 -2
  33. package/skills/plan/references/workflows/init.md +2 -2
  34. package/skills/plan/references/workflows/inline-fallback.md +3 -3
  35. package/skills/plan/references/workflows/new.md +3 -3
  36. package/skills/plan/references/workflows/update.md +6 -4
  37. package/skills/plan/references/workflows/validate.md +5 -5
  38. package/skills/review/SKILL.md +5 -5
  39. package/skills/review/references/review-standards.md +9 -1
  40. package/skills/review/references/workflows/address.md +9 -15
  41. package/skills/review/references/workflows/auto.md +9 -17
  42. package/skills/review/references/workflows/complete.md +2 -2
  43. package/skills/review/references/workflows/edit.md +7 -5
  44. package/skills/review/references/workflows/help.md +12 -20
  45. package/skills/review/references/workflows/new.md +14 -13
  46. package/skills/review/references/workflows/publish.md +2 -2
  47. package/skills/review/references/workflows/status.md +1 -1
  48. package/skills/review/templates/REVIEW.md +39 -0
  49. package/templates/plan/PLAN.md +9 -1
  50. package/templates/review/draft-pr.md +3 -9
  51. package/dist/cli/plan.d.ts +0 -17
  52. package/dist/cli/plan.d.ts.map +0 -1
  53. package/dist/cli.d.ts +0 -4
  54. package/dist/cli.d.ts.map +0 -1
  55. package/dist/cli.js +0 -2258
  56. package/dist/extensions/tuicrx.d.ts +0 -66
  57. package/dist/extensions/tuicrx.d.ts.map +0 -1
  58. package/dist/extensions/zedx.d.ts +0 -18
  59. package/dist/extensions/zedx.d.ts.map +0 -1
  60. package/dist/review/local-review-backend.d.ts +0 -3
  61. package/dist/review/local-review-backend.d.ts.map +0 -1
  62. package/dist/review/local-reviews.d.ts +0 -31
  63. package/dist/review/local-reviews.d.ts.map +0 -1
  64. package/dist/review/review-markdown.d.ts +0 -6
  65. package/dist/review/review-markdown.d.ts.map +0 -1
  66. package/skills/plan/references/workflows/annotate.md +0 -13
  67. package/skills/review/references/workflows/open.md +0 -11
@@ -1,66 +0,0 @@
1
- import { type LaunchResult } from '../environment';
2
- import { type ReviewComment, type ReviewThreadRecord } from '../review/types';
3
- export interface SessionSummary {
4
- slug: string;
5
- kind: string;
6
- path: string;
7
- updatedAt: string;
8
- commentCount: number;
9
- anchor: string;
10
- active: boolean;
11
- }
12
- interface SessionCommentJson {
13
- id?: string;
14
- content: string;
15
- side?: 'old' | 'new' | null;
16
- username?: string;
17
- author?: string;
18
- }
19
- interface SessionFileJson {
20
- file_comments?: SessionCommentJson[];
21
- line_comments?: Record<string, SessionCommentJson[]>;
22
- }
23
- export interface SessionJson {
24
- id?: string;
25
- branch_name?: string;
26
- repo_path?: string;
27
- review_comments?: SessionCommentJson[];
28
- files?: Record<string, SessionFileJson>;
29
- }
30
- export declare function tuicrAvailable(): Promise<boolean>;
31
- export declare function listSessions(repo?: string): Promise<SessionSummary[]>;
32
- export declare function addComment(session: string, body: string, opts?: {
33
- targetFile?: string;
34
- line?: number;
35
- side?: 'old' | 'new';
36
- username?: string;
37
- }): Promise<void>;
38
- export declare function launch(cwd: string, pr?: number | string, localBase?: string): Promise<LaunchResult>;
39
- export declare function resolveSession(cwd: string, branch: string): Promise<SessionSummary | undefined>;
40
- export declare function resolveReviewSession(cwd: string, target: {
41
- branch: string;
42
- workingTree?: boolean;
43
- owner?: string;
44
- repo?: string;
45
- number?: number;
46
- }): Promise<SessionSummary | undefined>;
47
- /** Resolve the matching PR draft when publishing remotely, or a local draft otherwise. */
48
- export declare function resolvePublishSession(cwd: string, target: {
49
- branch: string;
50
- owner?: string;
51
- repo?: string;
52
- number?: number;
53
- }): Promise<SessionSummary | undefined>;
54
- export declare function resolvePrSession(cwd: string, owner: string, repo: string, number: number): Promise<SessionSummary | undefined>;
55
- export declare function findMatchingSession(sessions: readonly SessionSummary[], cwd: string, branch: string): Promise<SessionSummary | undefined>;
56
- export declare function readSession(path: string): Promise<SessionJson>;
57
- export declare function toLocalReviewThreads(session: SessionJson): ReviewThreadRecord[];
58
- export declare function toFindings(session: SessionJson, options?: {
59
- agentOnly?: boolean;
60
- excludeLocalResponses?: boolean;
61
- }): {
62
- comments: ReviewComment[];
63
- body: string;
64
- };
65
- export {};
66
- //# sourceMappingURL=tuicrx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tuicrx.d.ts","sourceRoot":"","sources":["../../src/extensions/tuicrx.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /** Stable task label for working-tree and local-revision reviews. */
2
- export declare const ZED_LOCAL_REVIEW_TASK_NAME = "diffpi: tuicr local review";
3
- /** Backward-compatible alias for the original public constant. */
4
- export declare const ZED_REVIEW_TASK_NAME = "diffpi: tuicr local review";
5
- export declare const ZED_PR_REVIEW_TASK_NAME = "diffpi: tuicr PR review";
6
- export declare const ZED_PLAN_ANNOTATE_TASK_NAME = "diffpi: annotate plan";
7
- export interface ZedEnsureResult {
8
- path: string;
9
- changed: boolean;
10
- existed: boolean;
11
- }
12
- export declare function zedTasksPath(homeDir?: string): string;
13
- export declare function zedKeymapPath(homeDir?: string): string;
14
- export declare function ensureZedReviewTask(homeDir?: string, _command?: readonly string[]): Promise<ZedEnsureResult>;
15
- export declare function ensureZedPlanTask(packageVersion: string, homeDir?: string): Promise<ZedEnsureResult>;
16
- export declare function ensureZedReviewKeybinding(homeDir?: string): Promise<ZedEnsureResult>;
17
- export declare function zedReviewTaskName(command: readonly string[]): string;
18
- //# sourceMappingURL=zedx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zedx.d.ts","sourceRoot":"","sources":["../../src/extensions/zedx.ts"],"names":[],"mappings":"AAIA,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,+BAA6B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAoBnE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAY,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAY,GAAG,MAAM,CAEzD;AAED,wBAAsB,mBAAmB,CACvC,OAAO,SAAY,EACnB,QAAQ,GAAE,SAAS,MAAM,EAAwC,GAChE,OAAO,CAAC,eAAe,CAAC,CAiB1B;AAED,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAuB7G;AAED,wBAAsB,yBAAyB,CAAC,OAAO,SAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB7F;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAKpE"}
@@ -1,3 +0,0 @@
1
- import type { LocalReviewBackendOptions, ReviewBackend } from './types';
2
- export declare function LocalReviewBackend(options: LocalReviewBackendOptions): ReviewBackend;
3
- //# sourceMappingURL=local-review-backend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-review-backend.d.ts","sourceRoot":"","sources":["../../src/review/local-review-backend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAqCpF"}
@@ -1,31 +0,0 @@
1
- import { type SessionSummary } from '../extensions/tuicrx';
2
- import { type ReviewThreadRecord } from './types';
3
- export interface LocalReviewDump {
4
- schemaVersion: 1;
5
- id: string;
6
- revision: number;
7
- branch: string;
8
- base: string;
9
- createdAt: string;
10
- diff: string;
11
- comments: ReviewThreadRecord[];
12
- tuicr: {
13
- slug: string;
14
- output: string;
15
- };
16
- }
17
- export interface CaptureLocalReviewInput {
18
- cwd: string;
19
- branch: string;
20
- base: string;
21
- diff: string;
22
- session: SessionSummary;
23
- now?: () => Date;
24
- homeDir?: string;
25
- }
26
- export declare function captureLocalReview(input: CaptureLocalReviewInput): Promise<{
27
- path: string;
28
- dump: LocalReviewDump;
29
- }>;
30
- export declare function readLocalReview(cwd: string, branch: string, revision?: number, homeDir?: string): Promise<LocalReviewDump | undefined>;
31
- //# sourceMappingURL=local-reviews.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-reviews.d.ts","sourceRoot":"","sources":["../../src/review/local-reviews.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI9D,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAsBlD;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAWtC"}
@@ -1,6 +0,0 @@
1
- import type { ReviewDocInput, ReviewThreadArtifactOptions, ReviewThreadRecord } from './types';
2
- export declare function renderReviewDoc(input: ReviewDocInput): string;
3
- export declare function renderThreadArtifact(title: string, target: string, threads: readonly ReviewThreadRecord[], options?: ReviewThreadArtifactOptions): string;
4
- export declare function parseThreadArtifact(content: string): ReviewThreadRecord[];
5
- export declare function upsertThreadReply(content: string, threadId: string, body: string, question?: boolean, resolved?: boolean): string;
6
- //# sourceMappingURL=review-markdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-markdown.d.ts","sourceRoot":"","sources":["../../src/review/review-markdown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA2B/F,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA8B7D;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,OAAO,GAAE,2BAAgC,GACxC,MAAM,CAwDR;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAoBzE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,CAiBR"}
@@ -1,13 +0,0 @@
1
- # `/plan annotate`
2
-
3
- ## Parse arguments
4
-
5
- Syntax: `annotate <plan-path>` (no flags required; use an explicit target if supplied).
6
-
7
- 1. Match `annotate` or clear intent to inspect a plan with a human. Resolve one plan path from explicit input before inferred request/repository context, then a safe default if unique. Do not require a positional path when a single target is evident. Ask via `ask_user_question` only for material ambiguity; route truly insufficient intent to full [help](help.md).
8
-
9
- ## Steps
10
-
11
- 1. Open the selected PLAN.md and numbered briefs in `tuicr --file` or a direct-file human review in the foreground. Do not launch an automatic Plan Reviewer.
12
- 2. Tie human comments to current plan file paths. Leave plan files, status and checkboxes unchanged. Direct requested edits to a separate explicit `/plan update`, or readiness to `/plan finalize`.
13
- 3. Report exact file or review UI failures; do not turn annotation into an automated second reviewer round.
@@ -1,11 +0,0 @@
1
- # open
2
-
3
- ## Parse arguments
4
-
5
- Accept `open [target] [--local]`. Fuzzy-match the existing PR/MR or tuicr session from the request and repository. Prefer explicit arguments/flags, then safe inference, then the current-review target. Select local for an explicit working-tree request. Call `ask_user_question` only for material ambiguity.
6
-
7
- ## Steps
8
-
9
- 1. Call `review_context` first with the selected target/backend/local; reuse its target/backend/local/cwd. Reject unsupported selections without switching backend.
10
- 2. Call `review_open` for an existing remote PR/MR in the browser. For `--local`, call `review_edit` to open only the matching existing tuicr session.
11
- 3. Report the opened target or exact missing-session/browser/launch failure. Do not create a review, generate findings or mutate review state.