@difflab/pi 0.1.0 → 0.2.0-rc.202609170958.44c1e9f

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/README.md +36 -1
  2. package/agents/diffpi-autonomous.md +15 -0
  3. package/agents/diffpi-copilot.md +22 -0
  4. package/agents/diffpi-orchestrator.md +23 -0
  5. package/agents/diffpi-planner.md +15 -0
  6. package/agents/diffpi-reviewer.md +27 -0
  7. package/agents/diffpi-tutor.md +20 -0
  8. package/agents/diffpi-worker.md +19 -0
  9. package/dist/assets.d.ts +4 -0
  10. package/dist/assets.d.ts.map +1 -0
  11. package/dist/config.d.ts +28 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/environment.d.ts +40 -0
  14. package/dist/environment.d.ts.map +1 -0
  15. package/dist/extensions/index.js +2919 -183
  16. package/dist/forge.d.ts +48 -0
  17. package/dist/forge.d.ts.map +1 -0
  18. package/dist/fsx.d.ts +6 -0
  19. package/dist/fsx.d.ts.map +1 -0
  20. package/dist/gates.d.ts +12 -0
  21. package/dist/gates.d.ts.map +1 -0
  22. package/dist/index.d.ts +26 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2162 -162
  25. package/dist/modes.d.ts +59 -0
  26. package/dist/modes.d.ts.map +1 -0
  27. package/dist/pi.d.ts +21 -5
  28. package/dist/pi.d.ts.map +1 -1
  29. package/dist/process.d.ts +2 -0
  30. package/dist/process.d.ts.map +1 -1
  31. package/dist/review-backend.d.ts +15 -0
  32. package/dist/review-backend.d.ts.map +1 -0
  33. package/dist/review-publication.d.ts +17 -0
  34. package/dist/review-publication.d.ts.map +1 -0
  35. package/dist/review-types.d.ts +49 -0
  36. package/dist/review-types.d.ts.map +1 -0
  37. package/dist/review.d.ts +62 -0
  38. package/dist/review.d.ts.map +1 -0
  39. package/dist/setup.d.ts +11 -0
  40. package/dist/setup.d.ts.map +1 -1
  41. package/dist/store.d.ts +15 -0
  42. package/dist/store.d.ts.map +1 -0
  43. package/dist/templates.d.ts +14 -0
  44. package/dist/templates.d.ts.map +1 -0
  45. package/dist/tools/index.d.ts +6 -2
  46. package/dist/tools/index.d.ts.map +1 -1
  47. package/dist/tools/index.js +2631 -172
  48. package/dist/tools/modes.d.ts +4 -0
  49. package/dist/tools/modes.d.ts.map +1 -0
  50. package/dist/tools/review.d.ts +7 -0
  51. package/dist/tools/review.d.ts.map +1 -0
  52. package/dist/tools/setup.d.ts.map +1 -1
  53. package/dist/tools/templates.d.ts +3 -0
  54. package/dist/tools/templates.d.ts.map +1 -0
  55. package/dist/tuicr.d.ts +55 -0
  56. package/dist/tuicr.d.ts.map +1 -0
  57. package/dist/zed.d.ts +11 -0
  58. package/dist/zed.d.ts.map +1 -0
  59. package/package.json +4 -2
  60. package/skills/diffpi-setup/SKILL.md +15 -1
  61. package/skills/mode/SKILL.md +38 -0
  62. package/skills/review/SKILL.md +15 -0
  63. package/skills/review/references/workflows/address.md +10 -0
  64. package/skills/review/references/workflows/edit.md +9 -0
  65. package/skills/review/references/workflows/help.md +12 -0
  66. package/skills/review/references/workflows/merge.md +6 -0
  67. package/skills/review/references/workflows/new.md +9 -0
  68. package/skills/review/references/workflows/open.md +7 -0
  69. package/skills/review/references/workflows/publish.md +8 -0
  70. package/templates/review/draft-pr.md +18 -0
@@ -0,0 +1,48 @@
1
+ import type { ForgeProvider, VcsInfo } from './environment';
2
+ export interface PrRef {
3
+ number: number;
4
+ title: string;
5
+ url: string;
6
+ isDraft: boolean;
7
+ baseRef: string;
8
+ headRef: string;
9
+ headSha?: string;
10
+ }
11
+ export interface OpenPrOptions {
12
+ title: string;
13
+ body: string;
14
+ base: string;
15
+ head: string;
16
+ draft?: boolean;
17
+ }
18
+ /**
19
+ * PR/MR lifecycle adapter for a hosted code forge.
20
+ *
21
+ * Review state belongs to `ReviewBackend`; this interface owns lifecycle calls.
22
+ */
23
+ export interface Forge {
24
+ readonly provider: ForgeProvider;
25
+ /** Create a draft PR/MR from a rendered title and body. */
26
+ createDraftPr(options: OpenPrOptions): Promise<PrRef>;
27
+ /** Resolve a PR/MR by number, URL-derived number, or source branch. */
28
+ viewPr(idOrBranch: string): Promise<PrRef | undefined>;
29
+ /** Read the repository's default target branch. */
30
+ defaultBranch(): Promise<string>;
31
+ /** Fetch the complete PR/MR diff. */
32
+ prDiff(id: number): Promise<string>;
33
+ /** Fetch checks or pipelines for this exact PR/MR. */
34
+ prChecks(id: number): Promise<string>;
35
+ /** Change a draft PR/MR to ready for review. */
36
+ markReady(id: number): Promise<void>;
37
+ /**
38
+ * Close the PR/MR. This has no review status; publish a review separately.
39
+ * An optional comment is posted before the close operation.
40
+ */
41
+ closePr(id: number, comment?: string): Promise<void>;
42
+ /** Recheck GitHub readiness and squash-merge with the approved subject. */
43
+ mergePr(id: number, subject: string): Promise<void>;
44
+ }
45
+ export declare function createForge(vcs: VcsInfo): Forge;
46
+ export declare function assertGitHubMergeReady(input: string): void;
47
+ export declare function isConfirmedMissingChange(provider: ForgeProvider, output: string): boolean;
48
+ //# sourceMappingURL=forge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../src/forge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG5D,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,2DAA2D;IAC3D,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,uEAAuE;IACvE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACvD,mDAAmD;IACnD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,qCAAqC;IACrC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,gDAAgD;IAChD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAI/C;AAgPD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAoC1D;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAgBzF"}
package/dist/fsx.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import type { Dirent } from 'node:fs';
2
+ /** Read a directory, or return an empty list when the path does not exist. */
3
+ export declare function readDirectoryIfExists(path: string): Promise<Dirent[]>;
4
+ /** Read a UTF-8 file, or return undefined when the path does not exist. */
5
+ export declare function readTextIfExists(path: string): Promise<string | undefined>;
6
+ //# sourceMappingURL=fsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsx.d.ts","sourceRoot":"","sources":["../src/fsx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,8EAA8E;AAC9E,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAO3E;AAED,2EAA2E;AAC3E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAOhF"}
@@ -0,0 +1,12 @@
1
+ export declare const CONVENTIONAL_COMMIT: RegExp;
2
+ export type GateStatus = 'pass' | 'fail' | 'warn' | 'skip';
3
+ export interface GateResult {
4
+ name: string;
5
+ status: GateStatus;
6
+ detail: string;
7
+ }
8
+ export declare function checkConventionalSubject(subject: string): GateResult;
9
+ export declare function runMiseGates(cwd: string): Promise<GateResult[]>;
10
+ export declare function ciGate(checksOutput: string): GateResult;
11
+ export declare function parseMiseTasks(input: string): Map<string, string[]>;
12
+ //# sourceMappingURL=gates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,QAAsF,CAAC;AAGvH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAQpE;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAkBrE;AAED,wBAAgB,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAMvD;AAQD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAkBnE"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,32 @@
1
+ export { diffpiConfigPaths, findPreferredModel, loadDiffpiConfig, resolveAgentModelPreferences } from './config';
2
+ export { detectIde, detectMux, detectShell, detectVcs, openInNewTab, parseRemote } from './environment';
3
+ export { assertGitHubMergeReady, createForge } from './forge';
4
+ export { checkConventionalSubject, ciGate, CONVENTIONAL_COMMIT, runMiseGates } from './gates';
5
+ export { assertReviewEventSupported, createLocalReviewBackend, createRemoteReviewBackend, githubReviewSubmissionEndpoint, hasGitlabDraftNotes, parseGitlabDiffRefs, } from './review-backend';
1
6
  export { mcp } from './mcp';
2
7
  export { mise } from './mise';
8
+ export { createModeController, discoverAgentModes, resolveAgentMode } from './modes';
3
9
  export { pi } from './pi';
4
- export { ensureMcpAdapters, ensureMise, ensureMiseDeps, ensureMiseHooks, ensurePiPlugins, ensurePiSkills, setupPi, } from './setup';
10
+ export { loadReviewPublicationState, reviewCommentFingerprint, reviewReplyFingerprint, saveReviewPublicationState, unpublishedReviewComments, } from './review-publication';
11
+ export { computeProjectSlug, ensureStore, gitToplevel, reviewsDir, sessionsDir, storeDir, storeGlobalRoot, } from './store';
12
+ export { addComment, launch, listSessions, readSession, resolvePrSession, resolveReviewSession, resolveSession, toFindings, tuicrAvailable, } from './tuicr';
13
+ export { ensureZedReviewKeybinding, ensureZedReviewTask, zedKeymapPath, zedTasksPath, ZED_REVIEW_TASK_NAME, } from './zed';
14
+ export { dedupeFindings, findingSchema, findingsSchema, yymmdd, localReviewAuthor, parseThreadArtifact, renderReviewDoc, renderThreadArtifact, reviewRecordName, reviewSlug, severitySchema, toReviewComments, upsertThreadReply, withRemoteProvenance, } from './review';
15
+ export { ensureMcpAdapters, ensureMise, ensureMiseDeps, ensureMiseHooks, ensurePiAgents, ensurePiPlugins, ensurePiSkills, setupPi, } from './setup';
16
+ export { loadTemplate, renderTemplate, templateRelativePath } from './templates';
17
+ export type { DiffpiAgentConfig, DiffpiConfig, DiffpiConfigPaths, LoadedDiffpiConfig } from './config';
18
+ export type { AgentMode, ModeCatalog, ModeController, ModeListOptions, ModePromptStrategy, ModeSelectionResult, ModeThinkingLevel, } from './modes';
5
19
  export type { CommandResult } from './process';
20
+ export type { ForgeProvider, Ide, LaunchOptions, LaunchResult, Mux, VcsInfo } from './environment';
21
+ export type { Forge, OpenPrOptions, PrRef } from './forge';
22
+ export type { ReviewPublicationState } from './review-publication';
23
+ export type { GitlabDiffRefs } from './review-backend';
24
+ export type { LocalReviewBackendOptions, ReviewBackend, ReviewComment, ReviewDraft, ReviewEvent, ReviewReply, ReviewSide, ReviewThreadArtifactOptions, ReviewThreadRecord, } from './review-types';
25
+ export type { GateResult, GateStatus } from './gates';
26
+ export type { Finding, ReviewDocInput, Severity } from './review';
27
+ export type { StoreInfo } from './store';
28
+ export type { SessionSummary, SessionJson } from './tuicr';
29
+ export type { ZedEnsureResult } from './zed';
6
30
  export type { IssueTracker, SetupAction, SetupOptions, SetupResult, SetupStatus } from './setup';
31
+ export type { LoadedTemplate, TemplateRegistryOptions } from './templates';
7
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}