@paperclipai/plugin-workspace-diff 0.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.
- package/dist/contracts.d.ts +634 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +122 -0
- package/dist/contracts.js.map +1 -0
- package/dist/diff-model.d.ts +46 -0
- package/dist/diff-model.d.ts.map +1 -0
- package/dist/diff-model.js +87 -0
- package/dist/diff-model.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +4 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +34 -0
- package/dist/manifest.js.map +1 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +25431 -0
- package/dist/ui/index.js.map +7 -0
- package/dist/worker.d.ts +8 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +77 -0
- package/dist/worker.js.map +1 -0
- package/dist/workspace-diff.d.ts +9 -0
- package/dist/workspace-diff.d.ts.map +1 -0
- package/dist/workspace-diff.js +663 -0
- package/dist/workspace-diff.js.map +1 -0
- package/package.json +53 -0
package/dist/worker.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function resolveDefaultBaseRef(input: {
|
|
2
|
+
workspaceBaseRef?: unknown;
|
|
3
|
+
projectWorkspaceDefaultRef?: unknown;
|
|
4
|
+
projectWorkspaceRepoRef?: unknown;
|
|
5
|
+
}): string | null;
|
|
6
|
+
declare const plugin: import("@paperclipai/plugin-sdk").PaperclipPlugin;
|
|
7
|
+
export default plugin;
|
|
8
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAeA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,GAAG,MAAM,GAAG,IAAI,CAIhB;AAED,QAAA,MAAM,MAAM,mDA8DV,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
package/dist/worker.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { definePlugin, runWorker } from "@paperclipai/plugin-sdk";
|
|
2
|
+
import { workspaceDiffQuerySchema } from "./contracts.js";
|
|
3
|
+
import { workspaceDiffService } from "./workspace-diff.js";
|
|
4
|
+
const PLUGIN_NAME = "workspace-diff";
|
|
5
|
+
function readString(value) {
|
|
6
|
+
return typeof value === "string" ? value.trim() : "";
|
|
7
|
+
}
|
|
8
|
+
function readOptionalString(value) {
|
|
9
|
+
const trimmed = readString(value);
|
|
10
|
+
return trimmed || null;
|
|
11
|
+
}
|
|
12
|
+
export function resolveDefaultBaseRef(input) {
|
|
13
|
+
return readOptionalString(input.workspaceBaseRef)
|
|
14
|
+
?? readOptionalString(input.projectWorkspaceDefaultRef)
|
|
15
|
+
?? readOptionalString(input.projectWorkspaceRepoRef);
|
|
16
|
+
}
|
|
17
|
+
const plugin = definePlugin({
|
|
18
|
+
async setup(ctx) {
|
|
19
|
+
ctx.logger.info(`${PLUGIN_NAME} plugin setup`);
|
|
20
|
+
const workspaceDiff = workspaceDiffService();
|
|
21
|
+
ctx.data.register("workspace-diff", async (params) => {
|
|
22
|
+
const workspaceId = readString(params.workspaceId);
|
|
23
|
+
const companyId = readString(params.companyId);
|
|
24
|
+
if (!workspaceId || !companyId) {
|
|
25
|
+
throw new Error("workspaceId and companyId are required");
|
|
26
|
+
}
|
|
27
|
+
if (params.entityType === "project_workspace") {
|
|
28
|
+
const projectId = readString(params.projectId);
|
|
29
|
+
if (!projectId) {
|
|
30
|
+
throw new Error("projectId is required for project workspace diffs");
|
|
31
|
+
}
|
|
32
|
+
const workspaces = await ctx.projects.listWorkspaces(projectId, companyId);
|
|
33
|
+
const workspace = workspaces.find((candidate) => candidate.id === workspaceId);
|
|
34
|
+
if (!workspace) {
|
|
35
|
+
throw new Error("Workspace not found");
|
|
36
|
+
}
|
|
37
|
+
return workspaceDiff.getDiff({
|
|
38
|
+
id: workspace.id,
|
|
39
|
+
companyId,
|
|
40
|
+
cwd: workspace.path,
|
|
41
|
+
baseRef: resolveDefaultBaseRef({
|
|
42
|
+
projectWorkspaceDefaultRef: workspace.defaultRef,
|
|
43
|
+
projectWorkspaceRepoRef: workspace.repoRef,
|
|
44
|
+
}),
|
|
45
|
+
}, workspaceDiffQuerySchema.parse(params));
|
|
46
|
+
}
|
|
47
|
+
const workspace = await ctx.executionWorkspaces.get(workspaceId, companyId);
|
|
48
|
+
if (!workspace) {
|
|
49
|
+
throw new Error("Workspace not found");
|
|
50
|
+
}
|
|
51
|
+
let projectWorkspaceDefaultBaseRef = null;
|
|
52
|
+
if (!readOptionalString(workspace.baseRef) && workspace.projectWorkspaceId) {
|
|
53
|
+
const workspaces = await ctx.projects.listWorkspaces(workspace.projectId, companyId);
|
|
54
|
+
const projectWorkspace = workspaces.find((candidate) => candidate.id === workspace.projectWorkspaceId);
|
|
55
|
+
projectWorkspaceDefaultBaseRef = projectWorkspace
|
|
56
|
+
? resolveDefaultBaseRef({
|
|
57
|
+
projectWorkspaceDefaultRef: projectWorkspace.defaultRef,
|
|
58
|
+
projectWorkspaceRepoRef: projectWorkspace.repoRef,
|
|
59
|
+
})
|
|
60
|
+
: null;
|
|
61
|
+
}
|
|
62
|
+
return workspaceDiff.getDiff({
|
|
63
|
+
...workspace,
|
|
64
|
+
baseRef: resolveDefaultBaseRef({
|
|
65
|
+
workspaceBaseRef: workspace.baseRef,
|
|
66
|
+
projectWorkspaceDefaultRef: projectWorkspaceDefaultBaseRef,
|
|
67
|
+
}),
|
|
68
|
+
}, workspaceDiffQuerySchema.parse(params));
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
async onHealth() {
|
|
72
|
+
return { status: "ok", message: `${PLUGIN_NAME} ready` };
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
export default plugin;
|
|
76
|
+
runWorker(plugin, import.meta.url);
|
|
77
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PluginExecutionWorkspaceMetadata } from "@paperclipai/plugin-sdk";
|
|
2
|
+
import type { WorkspaceDiffCaps, WorkspaceDiffQueryOptions, WorkspaceDiffResponse } from "./contracts.js";
|
|
3
|
+
export declare const WORKSPACE_DIFF_CAPS: WorkspaceDiffCaps;
|
|
4
|
+
type WorkspaceDiffTarget = Pick<PluginExecutionWorkspaceMetadata, "id" | "companyId" | "cwd" | "baseRef">;
|
|
5
|
+
export declare function workspaceDiffService(): {
|
|
6
|
+
getDiff(workspace: WorkspaceDiffTarget, query: WorkspaceDiffQueryOptions): Promise<WorkspaceDiffResponse>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=workspace-diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-diff.d.ts","sourceRoot":"","sources":["../src/workspace-diff.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EACV,iBAAiB,EAKjB,yBAAyB,EACzB,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AAIxB,eAAO,MAAM,mBAAmB,EAAE,iBAKjC,CAAC;AAsBF,KAAK,mBAAmB,GAAG,IAAI,CAAC,gCAAgC,EAAE,IAAI,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;AAgpB1G,wBAAgB,oBAAoB;uBAEP,mBAAmB,SAAS,yBAAyB,GAAG,OAAO,CAAC,qBAAqB,CAAC;EAiFlH"}
|