@tickernelz/paperclip-pro-plugin-kubernetes 2026.925.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 (100) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +180 -0
  3. package/dist/adapter-defaults.d.ts +29 -0
  4. package/dist/adapter-defaults.d.ts.map +1 -0
  5. package/dist/adapter-defaults.js +98 -0
  6. package/dist/adapter-defaults.js.map +1 -0
  7. package/dist/adapter-registry.d.ts +64 -0
  8. package/dist/adapter-registry.d.ts.map +1 -0
  9. package/dist/adapter-registry.js +25 -0
  10. package/dist/adapter-registry.js.map +1 -0
  11. package/dist/cilium-network-policy.d.ts +12 -0
  12. package/dist/cilium-network-policy.d.ts.map +1 -0
  13. package/dist/cilium-network-policy.js +60 -0
  14. package/dist/cilium-network-policy.js.map +1 -0
  15. package/dist/file-sync.d.ts +73 -0
  16. package/dist/file-sync.d.ts.map +1 -0
  17. package/dist/file-sync.js +752 -0
  18. package/dist/file-sync.js.map +1 -0
  19. package/dist/image-allowlist.d.ts +18 -0
  20. package/dist/image-allowlist.d.ts.map +1 -0
  21. package/dist/image-allowlist.js +39 -0
  22. package/dist/image-allowlist.js.map +1 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/job-orchestrator.d.ts +24 -0
  28. package/dist/job-orchestrator.d.ts.map +1 -0
  29. package/dist/job-orchestrator.js +90 -0
  30. package/dist/job-orchestrator.js.map +1 -0
  31. package/dist/kube-client.d.ts +15 -0
  32. package/dist/kube-client.d.ts.map +1 -0
  33. package/dist/kube-client.js +23 -0
  34. package/dist/kube-client.js.map +1 -0
  35. package/dist/lease-lifecycle.d.ts +62 -0
  36. package/dist/lease-lifecycle.d.ts.map +1 -0
  37. package/dist/lease-lifecycle.js +155 -0
  38. package/dist/lease-lifecycle.js.map +1 -0
  39. package/dist/manifest.d.ts +4 -0
  40. package/dist/manifest.d.ts.map +1 -0
  41. package/dist/manifest.js +108 -0
  42. package/dist/manifest.js.map +1 -0
  43. package/dist/network-policy.d.ts +22 -0
  44. package/dist/network-policy.d.ts.map +1 -0
  45. package/dist/network-policy.js +116 -0
  46. package/dist/network-policy.js.map +1 -0
  47. package/dist/plugin.d.ts +3 -0
  48. package/dist/plugin.d.ts.map +1 -0
  49. package/dist/plugin.js +820 -0
  50. package/dist/plugin.js.map +1 -0
  51. package/dist/pod-exec.d.ts +67 -0
  52. package/dist/pod-exec.d.ts.map +1 -0
  53. package/dist/pod-exec.js +401 -0
  54. package/dist/pod-exec.js.map +1 -0
  55. package/dist/pod-spec-builder.d.ts +25 -0
  56. package/dist/pod-spec-builder.d.ts.map +1 -0
  57. package/dist/pod-spec-builder.js +82 -0
  58. package/dist/pod-spec-builder.js.map +1 -0
  59. package/dist/sandbox-cr-builder.d.ts +40 -0
  60. package/dist/sandbox-cr-builder.d.ts.map +1 -0
  61. package/dist/sandbox-cr-builder.js +123 -0
  62. package/dist/sandbox-cr-builder.js.map +1 -0
  63. package/dist/sandbox-cr-orchestrator.d.ts +62 -0
  64. package/dist/sandbox-cr-orchestrator.d.ts.map +1 -0
  65. package/dist/sandbox-cr-orchestrator.js +248 -0
  66. package/dist/sandbox-cr-orchestrator.js.map +1 -0
  67. package/dist/sandbox-orchestrator.d.ts +39 -0
  68. package/dist/sandbox-orchestrator.d.ts.map +1 -0
  69. package/dist/sandbox-orchestrator.js +2 -0
  70. package/dist/sandbox-orchestrator.js.map +1 -0
  71. package/dist/scoped-network-egress.d.ts +19 -0
  72. package/dist/scoped-network-egress.d.ts.map +1 -0
  73. package/dist/scoped-network-egress.js +86 -0
  74. package/dist/scoped-network-egress.js.map +1 -0
  75. package/dist/secret-manager.d.ts +14 -0
  76. package/dist/secret-manager.d.ts.map +1 -0
  77. package/dist/secret-manager.js +39 -0
  78. package/dist/secret-manager.js.map +1 -0
  79. package/dist/tenant-orchestrator.d.ts +35 -0
  80. package/dist/tenant-orchestrator.d.ts.map +1 -0
  81. package/dist/tenant-orchestrator.js +263 -0
  82. package/dist/tenant-orchestrator.js.map +1 -0
  83. package/dist/types.d.ts +279 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +65 -0
  86. package/dist/types.js.map +1 -0
  87. package/dist/upload-interceptor.d.ts +44 -0
  88. package/dist/upload-interceptor.d.ts.map +1 -0
  89. package/dist/upload-interceptor.js +114 -0
  90. package/dist/upload-interceptor.js.map +1 -0
  91. package/dist/utils.d.ts +11 -0
  92. package/dist/utils.d.ts.map +1 -0
  93. package/dist/utils.js +51 -0
  94. package/dist/utils.js.map +1 -0
  95. package/dist/worker.d.ts +3 -0
  96. package/dist/worker.d.ts.map +1 -0
  97. package/dist/worker.js +5 -0
  98. package/dist/worker.js.map +1 -0
  99. package/manifests/operator-prerequisites.yaml +22 -0
  100. package/package.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-sync.js","sourceRoot":"","sources":["../src/file-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Glob matching for image references.
3
+ * - `*` matches any sequence of characters EXCEPT `/` (so a wildcard doesn't span path segments)
4
+ * - `?` matches exactly one character (excluding `/`)
5
+ */
6
+ export declare function globMatch(pattern: string, value: string): boolean;
7
+ export interface ResolveImageInput {
8
+ imageOverride?: string | null;
9
+ }
10
+ export interface ResolveImageDefaults {
11
+ runtimeImage: string;
12
+ }
13
+ export interface ResolveImageConfig {
14
+ imageAllowList: string[];
15
+ imageRegistry?: string;
16
+ }
17
+ export declare function resolveImage(target: ResolveImageInput, defaults: ResolveImageDefaults, config: ResolveImageConfig): string;
18
+ //# sourceMappingURL=image-allowlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-allowlist.d.ts","sourceRoot":"","sources":["../src/image-allowlist.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUjE;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAWR"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Glob matching for image references.
3
+ * - `*` matches any sequence of characters EXCEPT `/` (so a wildcard doesn't span path segments)
4
+ * - `?` matches exactly one character (excluding `/`)
5
+ */
6
+ export function globMatch(pattern, value) {
7
+ const re = new RegExp("^" +
8
+ pattern
9
+ .replace(/[.+^${}()|[\]\\]/g, "\\$&")
10
+ .replace(/\*/g, "[^/]*")
11
+ .replace(/\?/g, "[^/]") +
12
+ "$");
13
+ return re.test(value);
14
+ }
15
+ export function resolveImage(target, defaults, config) {
16
+ if (target.imageOverride) {
17
+ if (!config.imageAllowList.some((p) => globMatch(p, target.imageOverride))) {
18
+ throw new Error(`Image override "${target.imageOverride}" is not in allowlist`);
19
+ }
20
+ return target.imageOverride;
21
+ }
22
+ if (config.imageRegistry) {
23
+ return rewriteRegistry(defaults.runtimeImage, config.imageRegistry);
24
+ }
25
+ return defaults.runtimeImage;
26
+ }
27
+ function rewriteRegistry(image, registry) {
28
+ // image is like "ghcr.io/paperclipai/agent-runtime-claude:v1"
29
+ // we want to replace the first two path segments (host + org) with `registry`
30
+ const cleanRegistry = registry.replace(/\/+$/, "");
31
+ const colonIdx = image.lastIndexOf(":");
32
+ const tag = colonIdx >= 0 ? image.slice(colonIdx) : "";
33
+ const path = colonIdx >= 0 ? image.slice(0, colonIdx) : image;
34
+ const segments = path.split("/");
35
+ // Strip the host+org (first two segments), keep the image name
36
+ const imageName = segments.slice(2).join("/") || segments[segments.length - 1];
37
+ return `${cleanRegistry}/${imageName}${tag}`;
38
+ }
39
+ //# sourceMappingURL=image-allowlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-allowlist.js","sourceRoot":"","sources":["../src/image-allowlist.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAa;IACtD,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,GAAG;QACD,OAAO;aACJ,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;aACpC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;aACvB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QACzB,GAAG,CACN,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAeD,MAAM,UAAU,YAAY,CAC1B,MAAyB,EACzB,QAA8B,EAC9B,MAA0B;IAE1B,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,aAAc,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,aAAa,uBAAuB,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,QAAgB;IACtD,8DAA8D;IAC9D,8EAA8E;IAC9E,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,+DAA+D;IAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/E,OAAO,GAAG,aAAa,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as manifest } from "./manifest.js";
2
+ export { default as plugin } from "./plugin.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { default as manifest } from "./manifest.js";
2
+ export { default as plugin } from "./plugin.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { KubeClients } from "./kube-client.js";
2
+ import type { SandboxOrchestrator, SandboxStatus } from "./sandbox-orchestrator.js";
3
+ export declare class JobTimeoutError extends Error {
4
+ constructor(namespace: string, name: string, timeoutMs: number);
5
+ }
6
+ export declare function createJob(clients: KubeClients, namespace: string, manifest: Record<string, unknown>): Promise<{
7
+ uid: string;
8
+ }>;
9
+ export type JobStatus = SandboxStatus;
10
+ export declare function getJobStatus(clients: KubeClients, namespace: string, name: string): Promise<JobStatus>;
11
+ export declare function findPodForJob(clients: KubeClients, namespace: string, jobName: string): Promise<string | null>;
12
+ export declare function streamPodLogs(clients: KubeClients, namespace: string, podName: string, onChunk: (stream: "stdout" | "stderr", text: string) => Promise<void>): Promise<void>;
13
+ export declare function deleteJob(clients: KubeClients, namespace: string, name: string): Promise<void>;
14
+ export declare function waitForJobCompletion(clients: KubeClients, namespace: string, name: string, opts?: {
15
+ timeoutMs: number;
16
+ pollMs?: number;
17
+ }): Promise<JobStatus>;
18
+ /**
19
+ * Job-backed conformance to SandboxOrchestrator. Plugin.ts imports THIS value
20
+ * (the swap point) — to use a different backend, swap this import for another
21
+ * module exposing a SandboxOrchestrator-shaped default export.
22
+ */
23
+ export declare const jobOrchestrator: SandboxOrchestrator;
24
+ //# sourceMappingURL=job-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-orchestrator.d.ts","sourceRoot":"","sources":["../src/job-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEpF,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAI/D;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAK1B;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,CAAC,CAoBpB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACpE,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAyC,GAClF,OAAO,CAAC,SAAS,CAAC,CASpB;AAMD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,mBAO7B,CAAC"}
@@ -0,0 +1,90 @@
1
+ export class JobTimeoutError extends Error {
2
+ constructor(namespace, name, timeoutMs) {
3
+ super(`Job ${namespace}/${name} did not complete within ${timeoutMs}ms`);
4
+ this.name = "JobTimeoutError";
5
+ }
6
+ }
7
+ export async function createJob(clients, namespace, manifest) {
8
+ const result = await clients.batch.createNamespacedJob({ namespace, body: manifest });
9
+ const uid = result.metadata?.uid;
10
+ if (!uid)
11
+ throw new Error("Job created without a UID");
12
+ return { uid };
13
+ }
14
+ export async function getJobStatus(clients, namespace, name) {
15
+ const result = await clients.batch.readNamespacedJobStatus({ namespace, name });
16
+ const body = result ?? {};
17
+ const status = body.status ?? {};
18
+ const active = status.active ?? 0;
19
+ const succeeded = status.succeeded ?? 0;
20
+ const failed = status.failed ?? 0;
21
+ const conditions = status.conditions ?? [];
22
+ const completed = conditions.find((c) => c.type === "Complete" && c.status === "True");
23
+ const failedCond = conditions.find((c) => c.type === "Failed" && c.status === "True");
24
+ if (failedCond || failed > 0) {
25
+ return { phase: "Failed", complete: false, active, succeeded, failed, reason: failedCond?.reason, message: failedCond?.message };
26
+ }
27
+ if (completed || succeeded > 0) {
28
+ return { phase: "Succeeded", complete: true, active, succeeded, failed };
29
+ }
30
+ if (active > 0) {
31
+ return { phase: "Running", complete: false, active, succeeded, failed };
32
+ }
33
+ return { phase: "Pending", complete: false, active, succeeded, failed };
34
+ }
35
+ export async function findPodForJob(clients, namespace, jobName) {
36
+ const result = await clients.core.listNamespacedPod({
37
+ namespace,
38
+ labelSelector: `job-name=${jobName}`,
39
+ });
40
+ const items = (result.items) ?? [];
41
+ const running = items.find((p) => p.status?.phase === "Running");
42
+ return (running ?? items[0])?.metadata?.name ?? null;
43
+ }
44
+ export async function streamPodLogs(clients, namespace, podName, onChunk) {
45
+ // V1 limitation: readNamespacedPodLog returns combined stdout (the kubectl-style
46
+ // log view). stderr is not separately exposed via this API path — agent
47
+ // containers that need stderr/stdout separation should use a sidecar log
48
+ // scraper or wrap their CLI to emit structured output on stdout. We always
49
+ // emit chunks as "stdout"; the "stderr" callback slot in SandboxOrchestrator
50
+ // is unused by the Job-backed implementation.
51
+ const result = await clients.core.readNamespacedPodLog({ namespace, name: podName });
52
+ const text = result ?? "";
53
+ if (text.length > 0)
54
+ await onChunk("stdout", text);
55
+ }
56
+ export async function deleteJob(clients, namespace, name) {
57
+ await clients.batch.deleteNamespacedJob({
58
+ namespace,
59
+ name,
60
+ propagationPolicy: "Foreground",
61
+ });
62
+ }
63
+ export async function waitForJobCompletion(clients, namespace, name, opts = { timeoutMs: 120_000, pollMs: 2000 }) {
64
+ const deadline = Date.now() + opts.timeoutMs;
65
+ const pollMs = opts.pollMs ?? 2000;
66
+ while (Date.now() < deadline) {
67
+ const status = await getJobStatus(clients, namespace, name);
68
+ if (status.phase === "Succeeded" || status.phase === "Failed")
69
+ return status;
70
+ await sleep(pollMs);
71
+ }
72
+ throw new JobTimeoutError(namespace, name, opts.timeoutMs);
73
+ }
74
+ function sleep(ms) {
75
+ return new Promise((resolve) => setTimeout(resolve, ms));
76
+ }
77
+ /**
78
+ * Job-backed conformance to SandboxOrchestrator. Plugin.ts imports THIS value
79
+ * (the swap point) — to use a different backend, swap this import for another
80
+ * module exposing a SandboxOrchestrator-shaped default export.
81
+ */
82
+ export const jobOrchestrator = {
83
+ claim: createJob,
84
+ getStatus: getJobStatus,
85
+ findPod: findPodForJob,
86
+ streamLogs: streamPodLogs,
87
+ release: deleteJob,
88
+ waitForCompletion: waitForJobCompletion,
89
+ };
90
+ //# sourceMappingURL=job-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-orchestrator.js","sourceRoot":"","sources":["../src/job-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { KubeConfig, CoreV1Api, BatchV1Api, CustomObjectsApi, NetworkingV1Api, RbacAuthorizationV1Api } from "@kubernetes/client-node";
2
+ export interface CreateKubeConfigInput {
3
+ inCluster?: boolean;
4
+ kubeconfig?: string;
5
+ }
6
+ export declare function createKubeConfig(input: CreateKubeConfigInput): KubeConfig;
7
+ export interface KubeClients {
8
+ core: CoreV1Api;
9
+ batch: BatchV1Api;
10
+ custom: CustomObjectsApi;
11
+ networking: NetworkingV1Api;
12
+ rbac: RbacAuthorizationV1Api;
13
+ }
14
+ export declare function makeKubeClients(kc: KubeConfig): KubeClients;
15
+ //# sourceMappingURL=kube-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kube-client.d.ts","sourceRoot":"","sources":["../src/kube-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,UAAU,CAWzE;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,eAAe,CAAC;IAC5B,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,WAAW,CAQ3D"}
@@ -0,0 +1,23 @@
1
+ import { KubeConfig, CoreV1Api, BatchV1Api, CustomObjectsApi, NetworkingV1Api, RbacAuthorizationV1Api, } from "@kubernetes/client-node";
2
+ export function createKubeConfig(input) {
3
+ const kc = new KubeConfig();
4
+ if (input.inCluster) {
5
+ kc.loadFromCluster();
6
+ return kc;
7
+ }
8
+ if (input.kubeconfig && input.kubeconfig.trim().length > 0) {
9
+ kc.loadFromString(input.kubeconfig);
10
+ return kc;
11
+ }
12
+ throw new Error("createKubeConfig requires either inCluster=true or a kubeconfig string");
13
+ }
14
+ export function makeKubeClients(kc) {
15
+ return {
16
+ core: kc.makeApiClient(CoreV1Api),
17
+ batch: kc.makeApiClient(BatchV1Api),
18
+ custom: kc.makeApiClient(CustomObjectsApi),
19
+ networking: kc.makeApiClient(NetworkingV1Api),
20
+ rbac: kc.makeApiClient(RbacAuthorizationV1Api),
21
+ };
22
+ }
23
+ //# sourceMappingURL=kube-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kube-client.js","sourceRoot":"","sources":["../src/kube-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAOjC,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;AAC5F,CAAC;AAUD,MAAM,UAAU,eAAe,CAAC,EAAc;IAC5C,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;QACjC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC;QAC1C,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;QAC7C,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Resume + destroy lifecycle helpers for Kubernetes sandbox leases.
3
+ *
4
+ * Resume semantics: a lease is resumable only while its workload resource
5
+ * (Sandbox CR or Job) still exists and its pod is Running/Ready (or becomes
6
+ * Ready within a short bounded wait). Unlike Daytona — where a stopped sandbox
7
+ * can be started again by ID — Kubernetes pods are NOT restartable: once the
8
+ * pod backing a lease is gone or terminally failed, the lease can never be
9
+ * revived in place. That asymmetry is intentional; the plugin reports the
10
+ * lease as expired and the server falls back to a fresh acquireLease, which
11
+ * provisions a new pod.
12
+ *
13
+ * Destroy semantics: the forced cleanup path. Deletes every resource
14
+ * acquireLease created (Sandbox CR / Job, its pod, the per-run Secret),
15
+ * treating 404s as success so it is idempotent and safe to call against
16
+ * half-deleted leases.
17
+ */
18
+ import type { KubeClients } from "./kube-client.js";
19
+ /** True when a Kubernetes API error means "resource not found" (HTTP 404). */
20
+ export declare function isKubeNotFoundError(err: unknown): boolean;
21
+ export type ResumeCheckResult = {
22
+ resumable: true;
23
+ podName: string | null;
24
+ phase: "Pending" | "Running";
25
+ } | {
26
+ resumable: false;
27
+ reason: string;
28
+ };
29
+ export interface ResumeCheckInput {
30
+ namespace: string;
31
+ /** Workload resource name (Sandbox CR name or Job name) == providerLeaseId. */
32
+ name: string;
33
+ backend: "sandbox-cr" | "job";
34
+ /** Bounded wait for an existing Sandbox pod to report Ready. */
35
+ readyTimeoutMs?: number;
36
+ pollMs?: number;
37
+ }
38
+ /**
39
+ * Check whether the workload behind a lease is still alive and exec-able.
40
+ * Returns `resumable: false` (never throws "expected" states) when the
41
+ * resource is gone (404), terminally failed, terminating, or doesn't become
42
+ * Ready within the bounded wait — all of which mean the caller should fall
43
+ * back to a fresh acquireLease.
44
+ */
45
+ export declare function checkLeaseResumable(clients: KubeClients, input: ResumeCheckInput): Promise<ResumeCheckResult>;
46
+ export interface DestroyLeaseInput {
47
+ namespace: string;
48
+ /** Workload resource name (Sandbox CR name or Job name) == providerLeaseId. */
49
+ name: string;
50
+ backend: "sandbox-cr" | "job";
51
+ podName: string | null;
52
+ secretName: string | null;
53
+ }
54
+ /**
55
+ * Forcibly delete every resource acquireLease created for this lease.
56
+ * Workload first (its deletion cascades to the pod and, via ownerReferences,
57
+ * the per-run Secret in the normal case); then the pod and Secret explicitly
58
+ * so a wedged controller or broken ownerRef cannot strand them. Every delete
59
+ * treats 404 as success — destroy is idempotent.
60
+ */
61
+ export declare function destroyLeaseResources(clients: KubeClients, input: DestroyLeaseInput): Promise<void>;
62
+ //# sourceMappingURL=lease-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lease-lifecycle.d.ts","sourceRoot":"","sources":["../src/lease-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQpD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIzD;AAUD,MAAM,MAAM,iBAAiB,GACzB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,GACzE;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,GAAG,KAAK,CAAC;IAC9B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAoF5B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,GAAG,KAAK,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Resume + destroy lifecycle helpers for Kubernetes sandbox leases.
3
+ *
4
+ * Resume semantics: a lease is resumable only while its workload resource
5
+ * (Sandbox CR or Job) still exists and its pod is Running/Ready (or becomes
6
+ * Ready within a short bounded wait). Unlike Daytona — where a stopped sandbox
7
+ * can be started again by ID — Kubernetes pods are NOT restartable: once the
8
+ * pod backing a lease is gone or terminally failed, the lease can never be
9
+ * revived in place. That asymmetry is intentional; the plugin reports the
10
+ * lease as expired and the server falls back to a fresh acquireLease, which
11
+ * provisions a new pod.
12
+ *
13
+ * Destroy semantics: the forced cleanup path. Deletes every resource
14
+ * acquireLease created (Sandbox CR / Job, its pod, the per-run Secret),
15
+ * treating 404s as success so it is idempotent and safe to call against
16
+ * half-deleted leases.
17
+ */
18
+ import { deleteJob, findPodForJob, getJobStatus } from "./job-orchestrator.js";
19
+ import { deleteSandboxCr, findPodForSandbox, waitForSandboxReady, } from "./sandbox-cr-orchestrator.js";
20
+ /** True when a Kubernetes API error means "resource not found" (HTTP 404). */
21
+ export function isKubeNotFoundError(err) {
22
+ const code = err.code
23
+ ?? err.statusCode;
24
+ return code === 404;
25
+ }
26
+ async function ignoreNotFound(promise) {
27
+ try {
28
+ await promise;
29
+ }
30
+ catch (err) {
31
+ if (!isKubeNotFoundError(err))
32
+ throw err;
33
+ }
34
+ }
35
+ /**
36
+ * Check whether the workload behind a lease is still alive and exec-able.
37
+ * Returns `resumable: false` (never throws "expected" states) when the
38
+ * resource is gone (404), terminally failed, terminating, or doesn't become
39
+ * Ready within the bounded wait — all of which mean the caller should fall
40
+ * back to a fresh acquireLease.
41
+ */
42
+ export async function checkLeaseResumable(clients, input) {
43
+ if (input.backend === "sandbox-cr") {
44
+ // Bounded wait for the Sandbox to report Ready. waitForSandboxReady fails
45
+ // fast on Failed/Terminating; a timeout means the pod never came up. None
46
+ // of those states are resumable — k8s pods cannot be restarted in place.
47
+ try {
48
+ await waitForSandboxReady(clients, input.namespace, input.name, {
49
+ timeoutMs: input.readyTimeoutMs ?? 30_000,
50
+ pollMs: input.pollMs ?? 1_000,
51
+ });
52
+ }
53
+ catch (err) {
54
+ if (isKubeNotFoundError(err)) {
55
+ return { resumable: false, reason: "Sandbox CR no longer exists" };
56
+ }
57
+ return {
58
+ resumable: false,
59
+ reason: err instanceof Error ? err.message : String(err),
60
+ };
61
+ }
62
+ let podName;
63
+ try {
64
+ podName = await findPodForSandbox(clients, input.namespace, input.name);
65
+ }
66
+ catch (err) {
67
+ // CR deleted between the readiness check and the pod lookup.
68
+ if (isKubeNotFoundError(err)) {
69
+ return { resumable: false, reason: "Sandbox CR no longer exists" };
70
+ }
71
+ throw err;
72
+ }
73
+ if (!podName) {
74
+ return {
75
+ resumable: false,
76
+ reason: "Sandbox is Ready but no backing pod was found",
77
+ };
78
+ }
79
+ // Confirm the pod itself is Running and not being torn down — the CR
80
+ // status can lag pod deletion.
81
+ let pod;
82
+ try {
83
+ pod = await clients.core.readNamespacedPod({
84
+ namespace: input.namespace,
85
+ name: podName,
86
+ });
87
+ }
88
+ catch (err) {
89
+ if (isKubeNotFoundError(err)) {
90
+ return { resumable: false, reason: `Pod ${podName} no longer exists` };
91
+ }
92
+ throw err;
93
+ }
94
+ const podPhase = pod.status?.phase;
95
+ const terminating = Boolean(pod.metadata?.deletionTimestamp);
96
+ if (podPhase !== "Running" || terminating) {
97
+ return {
98
+ resumable: false,
99
+ reason: `Pod ${podName} is ${terminating ? "terminating" : podPhase ?? "in an unknown phase"}`,
100
+ };
101
+ }
102
+ return { resumable: true, podName, phase: "Running" };
103
+ }
104
+ // ── Job backend ───────────────────────────────────────────────────────────
105
+ let status;
106
+ try {
107
+ status = await getJobStatus(clients, input.namespace, input.name);
108
+ }
109
+ catch (err) {
110
+ if (isKubeNotFoundError(err)) {
111
+ return { resumable: false, reason: "Job no longer exists" };
112
+ }
113
+ throw err;
114
+ }
115
+ if (status.phase === "Succeeded" || status.phase === "Failed") {
116
+ // Terminal Jobs cannot be re-run in place.
117
+ return { resumable: false, reason: `Job is ${status.phase}` };
118
+ }
119
+ // Pending/Running Jobs are resumable: execute() waits for completion
120
+ // itself, so a not-yet-scheduled pod (podName null) is fine here.
121
+ const podName = await findPodForJob(clients, input.namespace, input.name);
122
+ return {
123
+ resumable: true,
124
+ podName,
125
+ phase: status.phase === "Running" ? "Running" : "Pending",
126
+ };
127
+ }
128
+ /**
129
+ * Forcibly delete every resource acquireLease created for this lease.
130
+ * Workload first (its deletion cascades to the pod and, via ownerReferences,
131
+ * the per-run Secret in the normal case); then the pod and Secret explicitly
132
+ * so a wedged controller or broken ownerRef cannot strand them. Every delete
133
+ * treats 404 as success — destroy is idempotent.
134
+ */
135
+ export async function destroyLeaseResources(clients, input) {
136
+ if (input.backend === "sandbox-cr") {
137
+ await ignoreNotFound(deleteSandboxCr(clients, input.namespace, input.name));
138
+ }
139
+ else {
140
+ await ignoreNotFound(deleteJob(clients, input.namespace, input.name));
141
+ }
142
+ if (input.podName) {
143
+ await ignoreNotFound(clients.core.deleteNamespacedPod({
144
+ namespace: input.namespace,
145
+ name: input.podName,
146
+ }));
147
+ }
148
+ if (input.secretName) {
149
+ await ignoreNotFound(clients.core.deleteNamespacedSecret({
150
+ namespace: input.namespace,
151
+ name: input.secretName,
152
+ }));
153
+ }
154
+ }
155
+ //# sourceMappingURL=lease-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lease-lifecycle.js","sourceRoot":"","sources":["../src/lease-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,MAAM,IAAI,GAAI,GAA8C,CAAC,IAAI;WAC3D,GAA8C,CAAC,UAAU,CAAC;IAChE,OAAO,IAAI,KAAK,GAAG,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAyB;IACrD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;YAAE,MAAM,GAAG,CAAC;IAC3C,CAAC;AACH,CAAC;AAgBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAoB,EACpB,KAAuB;IAEvB,IAAI,KAAK,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACnC,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,IAAI,CAAC;YACH,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;gBAC9D,SAAS,EAAE,KAAK,CAAC,cAAc,IAAI,MAAM;gBACzC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;YACrE,CAAC;YACD,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC;QACJ,CAAC;QAED,IAAI,OAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,6DAA6D;YAC7D,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;YACrE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,+CAA+C;aACxD,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,+BAA+B;QAC/B,IAAI,GAAgF,CAAC;QACrF,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBACzC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,OAAO;aACd,CAAe,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,OAAO,mBAAmB,EAAE,CAAC;YACzE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,EAAE,CAAC;YAC1C,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,OAAO,OAAO,OAAO,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,IAAI,qBAAqB,EAAE;aAC/F,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxD,CAAC;IAED,6EAA6E;IAC7E,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QAC9D,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9D,2CAA2C;QAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IAChE,CAAC;IACD,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO;QACL,SAAS,EAAE,IAAI;QACf,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KAC1D,CAAC;AACJ,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAoB,EACpB,KAAwB;IAExB,IAAI,KAAK,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACnC,MAAM,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,cAAc,CAClB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,OAAO;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,cAAc,CAClB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,UAAU;SACvB,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { PaperclipPluginManifestV1 } from "@tickernelz/paperclip-pro-plugin-sdk";
2
+ declare const manifest: PaperclipPluginManifestV1;
3
+ export default manifest;
4
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAKtF,QAAA,MAAM,QAAQ,EAAE,yBAiHf,CAAC;AAEF,eAAe,QAAQ,CAAC"}