Initial commit: Paperclip plugin for Legal AI integration

16 agent tools, event handler for auto-linking, sync job every 15m.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-04 08:03:43 +00:00
commit 587a2a76ca
1183 changed files with 629235 additions and 0 deletions

View File

@@ -0,0 +1,136 @@
import { z } from "zod";
export declare const createCompanyInviteSchema: z.ZodObject<{
allowedJoinTypes: z.ZodDefault<z.ZodEnum<["human", "agent", "both"]>>;
defaultsPayload: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
agentMessage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
allowedJoinTypes: "agent" | "human" | "both";
defaultsPayload?: Record<string, unknown> | null | undefined;
agentMessage?: string | null | undefined;
}, {
allowedJoinTypes?: "agent" | "human" | "both" | undefined;
defaultsPayload?: Record<string, unknown> | null | undefined;
agentMessage?: string | null | undefined;
}>;
export type CreateCompanyInvite = z.infer<typeof createCompanyInviteSchema>;
export declare const createOpenClawInvitePromptSchema: z.ZodObject<{
agentMessage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
agentMessage?: string | null | undefined;
}, {
agentMessage?: string | null | undefined;
}>;
export type CreateOpenClawInvitePrompt = z.infer<typeof createOpenClawInvitePromptSchema>;
export declare const acceptInviteSchema: z.ZodObject<{
requestType: z.ZodEnum<["human", "agent"]>;
agentName: z.ZodOptional<z.ZodString>;
adapterType: z.ZodOptional<z.ZodEnum<["process", "http", "claude_local", "codex_local", "opencode_local", "pi_local", "cursor", "openclaw_gateway", "hermes_local"]>>;
capabilities: z.ZodNullable<z.ZodOptional<z.ZodString>>;
agentDefaultsPayload: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
responsesWebhookUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
responsesWebhookMethod: z.ZodNullable<z.ZodOptional<z.ZodString>>;
responsesWebhookHeaders: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
paperclipApiUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
webhookAuthHeader: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
requestType: "agent" | "human";
adapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | undefined;
capabilities?: string | null | undefined;
agentName?: string | undefined;
agentDefaultsPayload?: Record<string, unknown> | null | undefined;
responsesWebhookUrl?: string | null | undefined;
responsesWebhookMethod?: string | null | undefined;
responsesWebhookHeaders?: Record<string, unknown> | null | undefined;
paperclipApiUrl?: string | null | undefined;
webhookAuthHeader?: string | null | undefined;
}, {
requestType: "agent" | "human";
adapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | undefined;
capabilities?: string | null | undefined;
agentName?: string | undefined;
agentDefaultsPayload?: Record<string, unknown> | null | undefined;
responsesWebhookUrl?: string | null | undefined;
responsesWebhookMethod?: string | null | undefined;
responsesWebhookHeaders?: Record<string, unknown> | null | undefined;
paperclipApiUrl?: string | null | undefined;
webhookAuthHeader?: string | null | undefined;
}>;
export type AcceptInvite = z.infer<typeof acceptInviteSchema>;
export declare const listJoinRequestsQuerySchema: z.ZodObject<{
status: z.ZodOptional<z.ZodEnum<["pending_approval", "approved", "rejected"]>>;
requestType: z.ZodOptional<z.ZodEnum<["human", "agent"]>>;
}, "strip", z.ZodTypeAny, {
status?: "pending_approval" | "approved" | "rejected" | undefined;
requestType?: "agent" | "human" | undefined;
}, {
status?: "pending_approval" | "approved" | "rejected" | undefined;
requestType?: "agent" | "human" | undefined;
}>;
export type ListJoinRequestsQuery = z.infer<typeof listJoinRequestsQuerySchema>;
export declare const claimJoinRequestApiKeySchema: z.ZodObject<{
claimSecret: z.ZodString;
}, "strip", z.ZodTypeAny, {
claimSecret: string;
}, {
claimSecret: string;
}>;
export type ClaimJoinRequestApiKey = z.infer<typeof claimJoinRequestApiKeySchema>;
export declare const boardCliAuthAccessLevelSchema: z.ZodEnum<["board", "instance_admin_required"]>;
export type BoardCliAuthAccessLevel = z.infer<typeof boardCliAuthAccessLevelSchema>;
export declare const createCliAuthChallengeSchema: z.ZodObject<{
command: z.ZodString;
clientName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
requestedAccess: z.ZodDefault<z.ZodEnum<["board", "instance_admin_required"]>>;
requestedCompanyId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
command: string;
requestedAccess: "board" | "instance_admin_required";
clientName?: string | null | undefined;
requestedCompanyId?: string | null | undefined;
}, {
command: string;
clientName?: string | null | undefined;
requestedAccess?: "board" | "instance_admin_required" | undefined;
requestedCompanyId?: string | null | undefined;
}>;
export type CreateCliAuthChallenge = z.infer<typeof createCliAuthChallengeSchema>;
export declare const resolveCliAuthChallengeSchema: z.ZodObject<{
token: z.ZodString;
}, "strip", z.ZodTypeAny, {
token: string;
}, {
token: string;
}>;
export type ResolveCliAuthChallenge = z.infer<typeof resolveCliAuthChallengeSchema>;
export declare const updateMemberPermissionsSchema: z.ZodObject<{
grants: z.ZodArray<z.ZodObject<{
permissionKey: z.ZodEnum<["agents:create", "users:invite", "users:manage_permissions", "tasks:assign", "tasks:assign_scope", "joins:approve"]>;
scope: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strip", z.ZodTypeAny, {
permissionKey: "agents:create" | "users:invite" | "users:manage_permissions" | "tasks:assign" | "tasks:assign_scope" | "joins:approve";
scope?: Record<string, unknown> | null | undefined;
}, {
permissionKey: "agents:create" | "users:invite" | "users:manage_permissions" | "tasks:assign" | "tasks:assign_scope" | "joins:approve";
scope?: Record<string, unknown> | null | undefined;
}>, "many">;
}, "strip", z.ZodTypeAny, {
grants: {
permissionKey: "agents:create" | "users:invite" | "users:manage_permissions" | "tasks:assign" | "tasks:assign_scope" | "joins:approve";
scope?: Record<string, unknown> | null | undefined;
}[];
}, {
grants: {
permissionKey: "agents:create" | "users:invite" | "users:manage_permissions" | "tasks:assign" | "tasks:assign_scope" | "joins:approve";
scope?: Record<string, unknown> | null | undefined;
}[];
}>;
export type UpdateMemberPermissions = z.infer<typeof updateMemberPermissionsSchema>;
export declare const updateUserCompanyAccessSchema: z.ZodObject<{
companyIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
companyIds: string[];
}, {
companyIds?: string[] | undefined;
}>;
export type UpdateUserCompanyAccess = z.infer<typeof updateUserCompanyAccessSchema>;
//# sourceMappingURL=access.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/validators/access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,gCAAgC;;;;;;EAE3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,2BAA2B;;;;;;;;;EAGtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,6BAA6B,iDAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;EAKvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;EAOxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}

View File

@@ -0,0 +1,53 @@
import { z } from "zod";
import { AGENT_ADAPTER_TYPES, INVITE_JOIN_TYPES, JOIN_REQUEST_STATUSES, JOIN_REQUEST_TYPES, PERMISSION_KEYS, } from "../constants.js";
export const createCompanyInviteSchema = z.object({
allowedJoinTypes: z.enum(INVITE_JOIN_TYPES).default("both"),
defaultsPayload: z.record(z.string(), z.unknown()).optional().nullable(),
agentMessage: z.string().max(4000).optional().nullable(),
});
export const createOpenClawInvitePromptSchema = z.object({
agentMessage: z.string().max(4000).optional().nullable(),
});
export const acceptInviteSchema = z.object({
requestType: z.enum(JOIN_REQUEST_TYPES),
agentName: z.string().min(1).max(120).optional(),
adapterType: z.enum(AGENT_ADAPTER_TYPES).optional(),
capabilities: z.string().max(4000).optional().nullable(),
agentDefaultsPayload: z.record(z.string(), z.unknown()).optional().nullable(),
// OpenClaw join compatibility fields accepted at top level.
responsesWebhookUrl: z.string().max(4000).optional().nullable(),
responsesWebhookMethod: z.string().max(32).optional().nullable(),
responsesWebhookHeaders: z.record(z.string(), z.unknown()).optional().nullable(),
paperclipApiUrl: z.string().max(4000).optional().nullable(),
webhookAuthHeader: z.string().max(4000).optional().nullable(),
});
export const listJoinRequestsQuerySchema = z.object({
status: z.enum(JOIN_REQUEST_STATUSES).optional(),
requestType: z.enum(JOIN_REQUEST_TYPES).optional(),
});
export const claimJoinRequestApiKeySchema = z.object({
claimSecret: z.string().min(16).max(256),
});
export const boardCliAuthAccessLevelSchema = z.enum([
"board",
"instance_admin_required",
]);
export const createCliAuthChallengeSchema = z.object({
command: z.string().min(1).max(240),
clientName: z.string().max(120).optional().nullable(),
requestedAccess: boardCliAuthAccessLevelSchema.default("board"),
requestedCompanyId: z.string().uuid().optional().nullable(),
});
export const resolveCliAuthChallengeSchema = z.object({
token: z.string().min(16).max(256),
});
export const updateMemberPermissionsSchema = z.object({
grants: z.array(z.object({
permissionKey: z.enum(PERMISSION_KEYS),
scope: z.record(z.string(), z.unknown()).optional().nullable(),
})),
});
export const updateUserCompanyAccessSchema = z.object({
companyIds: z.array(z.string().uuid()).default([]),
});
//# sourceMappingURL=access.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/validators/access.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,156 @@
import { z } from "zod";
export declare const agentSkillStateSchema: z.ZodEnum<["available", "configured", "installed", "missing", "stale", "external"]>;
export declare const agentSkillOriginSchema: z.ZodEnum<["company_managed", "paperclip_required", "user_installed", "external_unknown"]>;
export declare const agentSkillSyncModeSchema: z.ZodEnum<["unsupported", "persistent", "ephemeral"]>;
export declare const agentSkillEntrySchema: z.ZodObject<{
key: z.ZodString;
runtimeName: z.ZodNullable<z.ZodString>;
desired: z.ZodBoolean;
managed: z.ZodBoolean;
required: z.ZodOptional<z.ZodBoolean>;
requiredReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
state: z.ZodEnum<["available", "configured", "installed", "missing", "stale", "external"]>;
origin: z.ZodOptional<z.ZodEnum<["company_managed", "paperclip_required", "user_installed", "external_unknown"]>>;
originLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
locationLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
readOnly: z.ZodOptional<z.ZodBoolean>;
sourcePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
targetPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
detail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
managed: boolean;
key: string;
desired: boolean;
runtimeName: string | null;
state: "installed" | "external" | "available" | "configured" | "missing" | "stale";
required?: boolean | undefined;
requiredReason?: string | null | undefined;
origin?: "company_managed" | "paperclip_required" | "user_installed" | "external_unknown" | undefined;
originLabel?: string | null | undefined;
locationLabel?: string | null | undefined;
readOnly?: boolean | undefined;
sourcePath?: string | null | undefined;
targetPath?: string | null | undefined;
detail?: string | null | undefined;
}, {
managed: boolean;
key: string;
desired: boolean;
runtimeName: string | null;
state: "installed" | "external" | "available" | "configured" | "missing" | "stale";
required?: boolean | undefined;
requiredReason?: string | null | undefined;
origin?: "company_managed" | "paperclip_required" | "user_installed" | "external_unknown" | undefined;
originLabel?: string | null | undefined;
locationLabel?: string | null | undefined;
readOnly?: boolean | undefined;
sourcePath?: string | null | undefined;
targetPath?: string | null | undefined;
detail?: string | null | undefined;
}>;
export declare const agentSkillSnapshotSchema: z.ZodObject<{
adapterType: z.ZodString;
supported: z.ZodBoolean;
mode: z.ZodEnum<["unsupported", "persistent", "ephemeral"]>;
desiredSkills: z.ZodArray<z.ZodString, "many">;
entries: z.ZodArray<z.ZodObject<{
key: z.ZodString;
runtimeName: z.ZodNullable<z.ZodString>;
desired: z.ZodBoolean;
managed: z.ZodBoolean;
required: z.ZodOptional<z.ZodBoolean>;
requiredReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
state: z.ZodEnum<["available", "configured", "installed", "missing", "stale", "external"]>;
origin: z.ZodOptional<z.ZodEnum<["company_managed", "paperclip_required", "user_installed", "external_unknown"]>>;
originLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
locationLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
readOnly: z.ZodOptional<z.ZodBoolean>;
sourcePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
targetPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
detail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
managed: boolean;
key: string;
desired: boolean;
runtimeName: string | null;
state: "installed" | "external" | "available" | "configured" | "missing" | "stale";
required?: boolean | undefined;
requiredReason?: string | null | undefined;
origin?: "company_managed" | "paperclip_required" | "user_installed" | "external_unknown" | undefined;
originLabel?: string | null | undefined;
locationLabel?: string | null | undefined;
readOnly?: boolean | undefined;
sourcePath?: string | null | undefined;
targetPath?: string | null | undefined;
detail?: string | null | undefined;
}, {
managed: boolean;
key: string;
desired: boolean;
runtimeName: string | null;
state: "installed" | "external" | "available" | "configured" | "missing" | "stale";
required?: boolean | undefined;
requiredReason?: string | null | undefined;
origin?: "company_managed" | "paperclip_required" | "user_installed" | "external_unknown" | undefined;
originLabel?: string | null | undefined;
locationLabel?: string | null | undefined;
readOnly?: boolean | undefined;
sourcePath?: string | null | undefined;
targetPath?: string | null | undefined;
detail?: string | null | undefined;
}>, "many">;
warnings: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
entries: {
managed: boolean;
key: string;
desired: boolean;
runtimeName: string | null;
state: "installed" | "external" | "available" | "configured" | "missing" | "stale";
required?: boolean | undefined;
requiredReason?: string | null | undefined;
origin?: "company_managed" | "paperclip_required" | "user_installed" | "external_unknown" | undefined;
originLabel?: string | null | undefined;
locationLabel?: string | null | undefined;
readOnly?: boolean | undefined;
sourcePath?: string | null | undefined;
targetPath?: string | null | undefined;
detail?: string | null | undefined;
}[];
mode: "unsupported" | "persistent" | "ephemeral";
adapterType: string;
supported: boolean;
warnings: string[];
desiredSkills: string[];
}, {
entries: {
managed: boolean;
key: string;
desired: boolean;
runtimeName: string | null;
state: "installed" | "external" | "available" | "configured" | "missing" | "stale";
required?: boolean | undefined;
requiredReason?: string | null | undefined;
origin?: "company_managed" | "paperclip_required" | "user_installed" | "external_unknown" | undefined;
originLabel?: string | null | undefined;
locationLabel?: string | null | undefined;
readOnly?: boolean | undefined;
sourcePath?: string | null | undefined;
targetPath?: string | null | undefined;
detail?: string | null | undefined;
}[];
mode: "unsupported" | "persistent" | "ephemeral";
adapterType: string;
supported: boolean;
warnings: string[];
desiredSkills: string[];
}>;
export declare const agentSkillSyncSchema: z.ZodObject<{
desiredSkills: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
desiredSkills: string[];
}, {
desiredSkills: string[];
}>;
export type AgentSkillSync = z.infer<typeof agentSkillSyncSchema>;
//# sourceMappingURL=adapter-skills.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"adapter-skills.d.ts","sourceRoot":"","sources":["../../src/validators/adapter-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB,qFAOhC,CAAC;AAEH,eAAO,MAAM,sBAAsB,4FAKjC,CAAC;AAEH,eAAO,MAAM,wBAAwB,uDAInC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAehC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}

View File

@@ -0,0 +1,48 @@
import { z } from "zod";
export const agentSkillStateSchema = z.enum([
"available",
"configured",
"installed",
"missing",
"stale",
"external",
]);
export const agentSkillOriginSchema = z.enum([
"company_managed",
"paperclip_required",
"user_installed",
"external_unknown",
]);
export const agentSkillSyncModeSchema = z.enum([
"unsupported",
"persistent",
"ephemeral",
]);
export const agentSkillEntrySchema = z.object({
key: z.string().min(1),
runtimeName: z.string().min(1).nullable(),
desired: z.boolean(),
managed: z.boolean(),
required: z.boolean().optional(),
requiredReason: z.string().nullable().optional(),
state: agentSkillStateSchema,
origin: agentSkillOriginSchema.optional(),
originLabel: z.string().nullable().optional(),
locationLabel: z.string().nullable().optional(),
readOnly: z.boolean().optional(),
sourcePath: z.string().nullable().optional(),
targetPath: z.string().nullable().optional(),
detail: z.string().nullable().optional(),
});
export const agentSkillSnapshotSchema = z.object({
adapterType: z.string().min(1),
supported: z.boolean(),
mode: agentSkillSyncModeSchema,
desiredSkills: z.array(z.string().min(1)),
entries: z.array(agentSkillEntrySchema),
warnings: z.array(z.string()),
});
export const agentSkillSyncSchema = z.object({
desiredSkills: z.array(z.string().min(1)),
});
//# sourceMappingURL=adapter-skills.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"adapter-skills.js","sourceRoot":"","sources":["../../src/validators/adapter-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,WAAW;IACX,YAAY;IACZ,WAAW;IACX,SAAS;IACT,OAAO;IACP,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,iBAAiB;IACjB,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7C,aAAa;IACb,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,KAAK,EAAE,qBAAqB;IAC5B,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,IAAI,EAAE,wBAAwB;IAC9B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1C,CAAC,CAAC"}

View File

@@ -0,0 +1,279 @@
import { z } from "zod";
export declare const agentPermissionsSchema: z.ZodObject<{
canCreateAgents: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
canCreateAgents: boolean;
}, {
canCreateAgents?: boolean | undefined;
}>;
export declare const agentInstructionsBundleModeSchema: z.ZodEnum<["managed", "external"]>;
export declare const updateAgentInstructionsBundleSchema: z.ZodObject<{
mode: z.ZodOptional<z.ZodEnum<["managed", "external"]>>;
rootPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
entryFile: z.ZodOptional<z.ZodString>;
clearLegacyPromptTemplate: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
clearLegacyPromptTemplate: boolean;
mode?: "external" | "managed" | undefined;
rootPath?: string | null | undefined;
entryFile?: string | undefined;
}, {
mode?: "external" | "managed" | undefined;
rootPath?: string | null | undefined;
entryFile?: string | undefined;
clearLegacyPromptTemplate?: boolean | undefined;
}>;
export type UpdateAgentInstructionsBundle = z.infer<typeof updateAgentInstructionsBundleSchema>;
export declare const upsertAgentInstructionsFileSchema: z.ZodObject<{
path: z.ZodString;
content: z.ZodString;
clearLegacyPromptTemplate: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
path: string;
content: string;
clearLegacyPromptTemplate: boolean;
}, {
path: string;
content: string;
clearLegacyPromptTemplate?: boolean | undefined;
}>;
export type UpsertAgentInstructionsFile = z.infer<typeof upsertAgentInstructionsFileSchema>;
export declare const createAgentSchema: z.ZodObject<{
name: z.ZodString;
role: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ceo", "cto", "cmo", "cfo", "engineer", "designer", "pm", "qa", "devops", "researcher", "general"]>>>;
title: z.ZodNullable<z.ZodOptional<z.ZodString>>;
icon: z.ZodNullable<z.ZodOptional<z.ZodEnum<["bot", "cpu", "brain", "zap", "rocket", "code", "terminal", "shield", "eye", "search", "wrench", "hammer", "lightbulb", "sparkles", "star", "heart", "flame", "bug", "cog", "database", "globe", "lock", "mail", "message-square", "file-code", "git-branch", "package", "puzzle", "target", "wand", "atom", "circuit-board", "radar", "swords", "telescope", "microscope", "crown", "gem", "hexagon", "pentagon", "fingerprint"]>>>;
reportsTo: z.ZodNullable<z.ZodOptional<z.ZodString>>;
capabilities: z.ZodNullable<z.ZodOptional<z.ZodString>>;
desiredSkills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
adapterType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["process", "http", "claude_local", "codex_local", "opencode_local", "pi_local", "cursor", "openclaw_gateway", "hermes_local"]>>>;
adapterConfig: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>>;
runtimeConfig: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
budgetMonthlyCents: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
permissions: z.ZodOptional<z.ZodObject<{
canCreateAgents: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
canCreateAgents: boolean;
}, {
canCreateAgents?: boolean | undefined;
}>>;
metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strip", z.ZodTypeAny, {
name: string;
budgetMonthlyCents: number;
adapterType: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local";
role: "ceo" | "cto" | "cmo" | "cfo" | "engineer" | "designer" | "pm" | "qa" | "devops" | "researcher" | "general";
adapterConfig: Record<string, unknown>;
runtimeConfig: Record<string, unknown>;
metadata?: Record<string, unknown> | null | undefined;
desiredSkills?: string[] | undefined;
title?: string | null | undefined;
icon?: "bot" | "cpu" | "brain" | "zap" | "rocket" | "code" | "terminal" | "shield" | "eye" | "search" | "wrench" | "hammer" | "lightbulb" | "sparkles" | "star" | "heart" | "flame" | "bug" | "cog" | "database" | "globe" | "lock" | "mail" | "message-square" | "file-code" | "git-branch" | "package" | "puzzle" | "target" | "wand" | "atom" | "circuit-board" | "radar" | "swords" | "telescope" | "microscope" | "crown" | "gem" | "hexagon" | "pentagon" | "fingerprint" | null | undefined;
capabilities?: string | null | undefined;
permissions?: {
canCreateAgents: boolean;
} | undefined;
reportsTo?: string | null | undefined;
}, {
name: string;
budgetMonthlyCents?: number | undefined;
metadata?: Record<string, unknown> | null | undefined;
adapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | undefined;
desiredSkills?: string[] | undefined;
role?: "ceo" | "cto" | "cmo" | "cfo" | "engineer" | "designer" | "pm" | "qa" | "devops" | "researcher" | "general" | undefined;
title?: string | null | undefined;
icon?: "bot" | "cpu" | "brain" | "zap" | "rocket" | "code" | "terminal" | "shield" | "eye" | "search" | "wrench" | "hammer" | "lightbulb" | "sparkles" | "star" | "heart" | "flame" | "bug" | "cog" | "database" | "globe" | "lock" | "mail" | "message-square" | "file-code" | "git-branch" | "package" | "puzzle" | "target" | "wand" | "atom" | "circuit-board" | "radar" | "swords" | "telescope" | "microscope" | "crown" | "gem" | "hexagon" | "pentagon" | "fingerprint" | null | undefined;
capabilities?: string | null | undefined;
adapterConfig?: Record<string, unknown> | undefined;
runtimeConfig?: Record<string, unknown> | undefined;
permissions?: {
canCreateAgents?: boolean | undefined;
} | undefined;
reportsTo?: string | null | undefined;
}>;
export type CreateAgent = z.infer<typeof createAgentSchema>;
export declare const createAgentHireSchema: z.ZodObject<{
name: z.ZodString;
role: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ceo", "cto", "cmo", "cfo", "engineer", "designer", "pm", "qa", "devops", "researcher", "general"]>>>;
title: z.ZodNullable<z.ZodOptional<z.ZodString>>;
icon: z.ZodNullable<z.ZodOptional<z.ZodEnum<["bot", "cpu", "brain", "zap", "rocket", "code", "terminal", "shield", "eye", "search", "wrench", "hammer", "lightbulb", "sparkles", "star", "heart", "flame", "bug", "cog", "database", "globe", "lock", "mail", "message-square", "file-code", "git-branch", "package", "puzzle", "target", "wand", "atom", "circuit-board", "radar", "swords", "telescope", "microscope", "crown", "gem", "hexagon", "pentagon", "fingerprint"]>>>;
reportsTo: z.ZodNullable<z.ZodOptional<z.ZodString>>;
capabilities: z.ZodNullable<z.ZodOptional<z.ZodString>>;
desiredSkills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
adapterType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["process", "http", "claude_local", "codex_local", "opencode_local", "pi_local", "cursor", "openclaw_gateway", "hermes_local"]>>>;
adapterConfig: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>>;
runtimeConfig: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
budgetMonthlyCents: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
permissions: z.ZodOptional<z.ZodObject<{
canCreateAgents: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
canCreateAgents: boolean;
}, {
canCreateAgents?: boolean | undefined;
}>>;
metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
} & {
sourceIssueId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
sourceIssueIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
name: string;
budgetMonthlyCents: number;
adapterType: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local";
role: "ceo" | "cto" | "cmo" | "cfo" | "engineer" | "designer" | "pm" | "qa" | "devops" | "researcher" | "general";
adapterConfig: Record<string, unknown>;
runtimeConfig: Record<string, unknown>;
metadata?: Record<string, unknown> | null | undefined;
desiredSkills?: string[] | undefined;
title?: string | null | undefined;
icon?: "bot" | "cpu" | "brain" | "zap" | "rocket" | "code" | "terminal" | "shield" | "eye" | "search" | "wrench" | "hammer" | "lightbulb" | "sparkles" | "star" | "heart" | "flame" | "bug" | "cog" | "database" | "globe" | "lock" | "mail" | "message-square" | "file-code" | "git-branch" | "package" | "puzzle" | "target" | "wand" | "atom" | "circuit-board" | "radar" | "swords" | "telescope" | "microscope" | "crown" | "gem" | "hexagon" | "pentagon" | "fingerprint" | null | undefined;
capabilities?: string | null | undefined;
permissions?: {
canCreateAgents: boolean;
} | undefined;
reportsTo?: string | null | undefined;
sourceIssueId?: string | null | undefined;
sourceIssueIds?: string[] | undefined;
}, {
name: string;
budgetMonthlyCents?: number | undefined;
metadata?: Record<string, unknown> | null | undefined;
adapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | undefined;
desiredSkills?: string[] | undefined;
role?: "ceo" | "cto" | "cmo" | "cfo" | "engineer" | "designer" | "pm" | "qa" | "devops" | "researcher" | "general" | undefined;
title?: string | null | undefined;
icon?: "bot" | "cpu" | "brain" | "zap" | "rocket" | "code" | "terminal" | "shield" | "eye" | "search" | "wrench" | "hammer" | "lightbulb" | "sparkles" | "star" | "heart" | "flame" | "bug" | "cog" | "database" | "globe" | "lock" | "mail" | "message-square" | "file-code" | "git-branch" | "package" | "puzzle" | "target" | "wand" | "atom" | "circuit-board" | "radar" | "swords" | "telescope" | "microscope" | "crown" | "gem" | "hexagon" | "pentagon" | "fingerprint" | null | undefined;
capabilities?: string | null | undefined;
adapterConfig?: Record<string, unknown> | undefined;
runtimeConfig?: Record<string, unknown> | undefined;
permissions?: {
canCreateAgents?: boolean | undefined;
} | undefined;
reportsTo?: string | null | undefined;
sourceIssueId?: string | null | undefined;
sourceIssueIds?: string[] | undefined;
}>;
export type CreateAgentHire = z.infer<typeof createAgentHireSchema>;
export declare const updateAgentSchema: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
budgetMonthlyCents: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodNumber>>>;
metadata: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
adapterType: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["process", "http", "claude_local", "codex_local", "opencode_local", "pi_local", "cursor", "openclaw_gateway", "hermes_local"]>>>>;
desiredSkills: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
role: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["ceo", "cto", "cmo", "cfo", "engineer", "designer", "pm", "qa", "devops", "researcher", "general"]>>>>;
title: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
icon: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodEnum<["bot", "cpu", "brain", "zap", "rocket", "code", "terminal", "shield", "eye", "search", "wrench", "hammer", "lightbulb", "sparkles", "star", "heart", "flame", "bug", "cog", "database", "globe", "lock", "mail", "message-square", "file-code", "git-branch", "package", "puzzle", "target", "wand", "atom", "circuit-board", "radar", "swords", "telescope", "microscope", "crown", "gem", "hexagon", "pentagon", "fingerprint"]>>>>;
capabilities: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
adapterConfig: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>>>;
runtimeConfig: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
reportsTo: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
} & {
permissions: z.ZodOptional<z.ZodNever>;
replaceAdapterConfig: z.ZodOptional<z.ZodBoolean>;
status: z.ZodOptional<z.ZodEnum<["active", "paused", "idle", "running", "error", "pending_approval", "terminated"]>>;
spentMonthlyCents: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
status?: "active" | "paused" | "idle" | "running" | "error" | "pending_approval" | "terminated" | undefined;
name?: string | undefined;
budgetMonthlyCents?: number | undefined;
spentMonthlyCents?: number | undefined;
metadata?: Record<string, unknown> | null | undefined;
adapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | undefined;
desiredSkills?: string[] | undefined;
role?: "ceo" | "cto" | "cmo" | "cfo" | "engineer" | "designer" | "pm" | "qa" | "devops" | "researcher" | "general" | undefined;
title?: string | null | undefined;
icon?: "bot" | "cpu" | "brain" | "zap" | "rocket" | "code" | "terminal" | "shield" | "eye" | "search" | "wrench" | "hammer" | "lightbulb" | "sparkles" | "star" | "heart" | "flame" | "bug" | "cog" | "database" | "globe" | "lock" | "mail" | "message-square" | "file-code" | "git-branch" | "package" | "puzzle" | "target" | "wand" | "atom" | "circuit-board" | "radar" | "swords" | "telescope" | "microscope" | "crown" | "gem" | "hexagon" | "pentagon" | "fingerprint" | null | undefined;
capabilities?: string | null | undefined;
adapterConfig?: Record<string, unknown> | undefined;
runtimeConfig?: Record<string, unknown> | undefined;
permissions?: undefined;
reportsTo?: string | null | undefined;
replaceAdapterConfig?: boolean | undefined;
}, {
status?: "active" | "paused" | "idle" | "running" | "error" | "pending_approval" | "terminated" | undefined;
name?: string | undefined;
budgetMonthlyCents?: number | undefined;
spentMonthlyCents?: number | undefined;
metadata?: Record<string, unknown> | null | undefined;
adapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | undefined;
desiredSkills?: string[] | undefined;
role?: "ceo" | "cto" | "cmo" | "cfo" | "engineer" | "designer" | "pm" | "qa" | "devops" | "researcher" | "general" | undefined;
title?: string | null | undefined;
icon?: "bot" | "cpu" | "brain" | "zap" | "rocket" | "code" | "terminal" | "shield" | "eye" | "search" | "wrench" | "hammer" | "lightbulb" | "sparkles" | "star" | "heart" | "flame" | "bug" | "cog" | "database" | "globe" | "lock" | "mail" | "message-square" | "file-code" | "git-branch" | "package" | "puzzle" | "target" | "wand" | "atom" | "circuit-board" | "radar" | "swords" | "telescope" | "microscope" | "crown" | "gem" | "hexagon" | "pentagon" | "fingerprint" | null | undefined;
capabilities?: string | null | undefined;
adapterConfig?: Record<string, unknown> | undefined;
runtimeConfig?: Record<string, unknown> | undefined;
permissions?: undefined;
reportsTo?: string | null | undefined;
replaceAdapterConfig?: boolean | undefined;
}>;
export type UpdateAgent = z.infer<typeof updateAgentSchema>;
export declare const updateAgentInstructionsPathSchema: z.ZodObject<{
path: z.ZodNullable<z.ZodString>;
adapterConfigKey: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
path: string | null;
adapterConfigKey?: string | undefined;
}, {
path: string | null;
adapterConfigKey?: string | undefined;
}>;
export type UpdateAgentInstructionsPath = z.infer<typeof updateAgentInstructionsPathSchema>;
export declare const createAgentKeySchema: z.ZodObject<{
name: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
}, {
name?: string | undefined;
}>;
export type CreateAgentKey = z.infer<typeof createAgentKeySchema>;
export declare const wakeAgentSchema: z.ZodObject<{
source: z.ZodDefault<z.ZodOptional<z.ZodEnum<["timer", "assignment", "on_demand", "automation"]>>>;
triggerDetail: z.ZodOptional<z.ZodEnum<["manual", "ping", "callback", "system"]>>;
reason: z.ZodNullable<z.ZodOptional<z.ZodString>>;
payload: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
idempotencyKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
forceFreshSession: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>, boolean, unknown>;
}, "strip", z.ZodTypeAny, {
source: "timer" | "assignment" | "on_demand" | "automation";
forceFreshSession: boolean;
reason?: string | null | undefined;
triggerDetail?: "manual" | "system" | "ping" | "callback" | undefined;
payload?: Record<string, unknown> | null | undefined;
idempotencyKey?: string | null | undefined;
}, {
source?: "timer" | "assignment" | "on_demand" | "automation" | undefined;
reason?: string | null | undefined;
triggerDetail?: "manual" | "system" | "ping" | "callback" | undefined;
payload?: Record<string, unknown> | null | undefined;
idempotencyKey?: string | null | undefined;
forceFreshSession?: unknown;
}>;
export type WakeAgent = z.infer<typeof wakeAgentSchema>;
export declare const resetAgentSessionSchema: z.ZodObject<{
taskKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
taskKey?: string | null | undefined;
}, {
taskKey?: string | null | undefined;
}>;
export type ResetAgentSession = z.infer<typeof resetAgentSessionSchema>;
export declare const testAdapterEnvironmentSchema: z.ZodObject<{
adapterConfig: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>>;
}, "strip", z.ZodTypeAny, {
adapterConfig: Record<string, unknown>;
}, {
adapterConfig?: Record<string, unknown> | undefined;
}>;
export type TestAdapterEnvironment = z.infer<typeof testAdapterEnvironmentSchema>;
export declare const updateAgentPermissionsSchema: z.ZodObject<{
canCreateAgents: z.ZodBoolean;
canAssignTasks: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
canCreateAgents: boolean;
canAssignTasks: boolean;
}, {
canCreateAgents: boolean;
canAssignTasks: boolean;
}>;
export type UpdateAgentPermissions = z.infer<typeof updateAgentPermissionsSchema>;
//# sourceMappingURL=agent.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/validators/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAEH,eAAO,MAAM,iCAAiC,oCAAkC,CAAC;AAEjF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;EAK9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,iCAAiC;;;;;;;;;;;;EAI5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAe5F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1B,CAAC;AAEL,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iCAAiC;;;;;;;;;EAG5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EAU1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,4BAA4B;;;;;;;;;EAGvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}

View File

@@ -0,0 +1,85 @@
import { z } from "zod";
import { AGENT_ADAPTER_TYPES, AGENT_ICON_NAMES, AGENT_ROLES, AGENT_STATUSES, } from "../constants.js";
import { envConfigSchema } from "./secret.js";
export const agentPermissionsSchema = z.object({
canCreateAgents: z.boolean().optional().default(false),
});
export const agentInstructionsBundleModeSchema = z.enum(["managed", "external"]);
export const updateAgentInstructionsBundleSchema = z.object({
mode: agentInstructionsBundleModeSchema.optional(),
rootPath: z.string().trim().min(1).nullable().optional(),
entryFile: z.string().trim().min(1).optional(),
clearLegacyPromptTemplate: z.boolean().optional().default(false),
});
export const upsertAgentInstructionsFileSchema = z.object({
path: z.string().trim().min(1),
content: z.string(),
clearLegacyPromptTemplate: z.boolean().optional().default(false),
});
const adapterConfigSchema = z.record(z.unknown()).superRefine((value, ctx) => {
const envValue = value.env;
if (envValue === undefined)
return;
const parsed = envConfigSchema.safeParse(envValue);
if (!parsed.success) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "adapterConfig.env must be a map of valid env bindings",
path: ["env"],
});
}
});
export const createAgentSchema = z.object({
name: z.string().min(1),
role: z.enum(AGENT_ROLES).optional().default("general"),
title: z.string().optional().nullable(),
icon: z.enum(AGENT_ICON_NAMES).optional().nullable(),
reportsTo: z.string().uuid().optional().nullable(),
capabilities: z.string().optional().nullable(),
desiredSkills: z.array(z.string().min(1)).optional(),
adapterType: z.enum(AGENT_ADAPTER_TYPES).optional().default("process"),
adapterConfig: adapterConfigSchema.optional().default({}),
runtimeConfig: z.record(z.unknown()).optional().default({}),
budgetMonthlyCents: z.number().int().nonnegative().optional().default(0),
permissions: agentPermissionsSchema.optional(),
metadata: z.record(z.unknown()).optional().nullable(),
});
export const createAgentHireSchema = createAgentSchema.extend({
sourceIssueId: z.string().uuid().optional().nullable(),
sourceIssueIds: z.array(z.string().uuid()).optional(),
});
export const updateAgentSchema = createAgentSchema
.omit({ permissions: true })
.partial()
.extend({
permissions: z.never().optional(),
replaceAdapterConfig: z.boolean().optional(),
status: z.enum(AGENT_STATUSES).optional(),
spentMonthlyCents: z.number().int().nonnegative().optional(),
});
export const updateAgentInstructionsPathSchema = z.object({
path: z.string().trim().min(1).nullable(),
adapterConfigKey: z.string().trim().min(1).optional(),
});
export const createAgentKeySchema = z.object({
name: z.string().min(1).default("default"),
});
export const wakeAgentSchema = z.object({
source: z.enum(["timer", "assignment", "on_demand", "automation"]).optional().default("on_demand"),
triggerDetail: z.enum(["manual", "ping", "callback", "system"]).optional(),
reason: z.string().optional().nullable(),
payload: z.record(z.unknown()).optional().nullable(),
idempotencyKey: z.string().optional().nullable(),
forceFreshSession: z.preprocess((value) => (value === null ? undefined : value), z.boolean().optional().default(false)),
});
export const resetAgentSessionSchema = z.object({
taskKey: z.string().min(1).optional().nullable(),
});
export const testAdapterEnvironmentSchema = z.object({
adapterConfig: adapterConfigSchema.optional().default({}),
});
export const updateAgentPermissionsSchema = z.object({
canCreateAgents: z.boolean(),
canAssignTasks: z.boolean(),
});
//# sourceMappingURL=agent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/validators/agent.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,57 @@
import { z } from "zod";
export declare const createApprovalSchema: z.ZodObject<{
type: z.ZodEnum<["hire_agent", "approve_ceo_strategy", "budget_override_required"]>;
requestedByAgentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
issueIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
type: "hire_agent" | "approve_ceo_strategy" | "budget_override_required";
payload: Record<string, unknown>;
requestedByAgentId?: string | null | undefined;
issueIds?: string[] | undefined;
}, {
type: "hire_agent" | "approve_ceo_strategy" | "budget_override_required";
payload: Record<string, unknown>;
requestedByAgentId?: string | null | undefined;
issueIds?: string[] | undefined;
}>;
export type CreateApproval = z.infer<typeof createApprovalSchema>;
export declare const resolveApprovalSchema: z.ZodObject<{
decisionNote: z.ZodNullable<z.ZodOptional<z.ZodString>>;
decidedByUserId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
decidedByUserId: string;
decisionNote?: string | null | undefined;
}, {
decisionNote?: string | null | undefined;
decidedByUserId?: string | undefined;
}>;
export type ResolveApproval = z.infer<typeof resolveApprovalSchema>;
export declare const requestApprovalRevisionSchema: z.ZodObject<{
decisionNote: z.ZodNullable<z.ZodOptional<z.ZodString>>;
decidedByUserId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
decidedByUserId: string;
decisionNote?: string | null | undefined;
}, {
decisionNote?: string | null | undefined;
decidedByUserId?: string | undefined;
}>;
export type RequestApprovalRevision = z.infer<typeof requestApprovalRevisionSchema>;
export declare const resubmitApprovalSchema: z.ZodObject<{
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
payload?: Record<string, unknown> | undefined;
}, {
payload?: Record<string, unknown> | undefined;
}>;
export type ResubmitApproval = z.infer<typeof resubmitApprovalSchema>;
export declare const addApprovalCommentSchema: z.ZodObject<{
body: z.ZodString;
}, "strip", z.ZodTypeAny, {
body: string;
}, {
body: string;
}>;
export type AddApprovalComment = z.infer<typeof addApprovalCommentSchema>;
//# sourceMappingURL=approval.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/validators/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,6BAA6B;;;;;;;;;EAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}

View File

@@ -0,0 +1,23 @@
import { z } from "zod";
import { APPROVAL_TYPES } from "../constants.js";
export const createApprovalSchema = z.object({
type: z.enum(APPROVAL_TYPES),
requestedByAgentId: z.string().uuid().optional().nullable(),
payload: z.record(z.unknown()),
issueIds: z.array(z.string().uuid()).optional(),
});
export const resolveApprovalSchema = z.object({
decisionNote: z.string().optional().nullable(),
decidedByUserId: z.string().optional().default("board"),
});
export const requestApprovalRevisionSchema = z.object({
decisionNote: z.string().optional().nullable(),
decidedByUserId: z.string().optional().default("board"),
});
export const resubmitApprovalSchema = z.object({
payload: z.record(z.unknown()).optional(),
});
export const addApprovalCommentSchema = z.object({
body: z.string().min(1),
});
//# sourceMappingURL=approval.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/validators/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAC5B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3D,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;CACxD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;CACxD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC"}

View File

@@ -0,0 +1,10 @@
import { z } from "zod";
export declare const createAssetImageMetadataSchema: z.ZodObject<{
namespace: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
namespace?: string | undefined;
}, {
namespace?: string | undefined;
}>;
export type CreateAssetImageMetadata = z.infer<typeof createAssetImageMetadataSchema>;
//# sourceMappingURL=asset.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/validators/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,8BAA8B;;;;;;EAQzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}

View File

@@ -0,0 +1,11 @@
import { z } from "zod";
export const createAssetImageMetadataSchema = z.object({
namespace: z
.string()
.trim()
.min(1)
.max(120)
.regex(/^[a-zA-Z0-9/_-]+$/)
.optional(),
});
//# sourceMappingURL=asset.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/validators/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CAAC,mBAAmB,CAAC;SAC1B,QAAQ,EAAE;CACd,CAAC,CAAC"}

View File

@@ -0,0 +1,56 @@
import { z } from "zod";
export declare const upsertBudgetPolicySchema: z.ZodObject<{
scopeType: z.ZodEnum<["company", "agent", "project"]>;
scopeId: z.ZodString;
metric: z.ZodDefault<z.ZodOptional<z.ZodEnum<["billed_cents"]>>>;
windowKind: z.ZodDefault<z.ZodOptional<z.ZodEnum<["calendar_month_utc", "lifetime"]>>>;
amount: z.ZodNumber;
warnPercent: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
hardStopEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
notifyEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
isActive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
scopeType: "agent" | "company" | "project";
scopeId: string;
metric: "billed_cents";
windowKind: "calendar_month_utc" | "lifetime";
amount: number;
warnPercent: number;
hardStopEnabled: boolean;
notifyEnabled: boolean;
isActive: boolean;
}, {
scopeType: "agent" | "company" | "project";
scopeId: string;
amount: number;
metric?: "billed_cents" | undefined;
windowKind?: "calendar_month_utc" | "lifetime" | undefined;
warnPercent?: number | undefined;
hardStopEnabled?: boolean | undefined;
notifyEnabled?: boolean | undefined;
isActive?: boolean | undefined;
}>;
export type UpsertBudgetPolicy = z.infer<typeof upsertBudgetPolicySchema>;
export declare const resolveBudgetIncidentSchema: z.ZodEffects<z.ZodObject<{
action: z.ZodEnum<["keep_paused", "raise_budget_and_resume"]>;
amount: z.ZodOptional<z.ZodNumber>;
decisionNote: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
action: "keep_paused" | "raise_budget_and_resume";
amount?: number | undefined;
decisionNote?: string | null | undefined;
}, {
action: "keep_paused" | "raise_budget_and_resume";
amount?: number | undefined;
decisionNote?: string | null | undefined;
}>, {
action: "keep_paused" | "raise_budget_and_resume";
amount?: number | undefined;
decisionNote?: string | null | undefined;
}, {
action: "keep_paused" | "raise_budget_and_resume";
amount?: number | undefined;
decisionNote?: string | null | undefined;
}>;
export type ResolveBudgetIncident = z.infer<typeof resolveBudgetIncidentSchema>;
//# sourceMappingURL=budget.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/validators/budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;EAYtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}

View File

@@ -0,0 +1,27 @@
import { z } from "zod";
import { BUDGET_INCIDENT_RESOLUTION_ACTIONS, BUDGET_METRICS, BUDGET_SCOPE_TYPES, BUDGET_WINDOW_KINDS, } from "../constants.js";
export const upsertBudgetPolicySchema = z.object({
scopeType: z.enum(BUDGET_SCOPE_TYPES),
scopeId: z.string().uuid(),
metric: z.enum(BUDGET_METRICS).optional().default("billed_cents"),
windowKind: z.enum(BUDGET_WINDOW_KINDS).optional().default("calendar_month_utc"),
amount: z.number().int().nonnegative(),
warnPercent: z.number().int().min(1).max(99).optional().default(80),
hardStopEnabled: z.boolean().optional().default(true),
notifyEnabled: z.boolean().optional().default(true),
isActive: z.boolean().optional().default(true),
});
export const resolveBudgetIncidentSchema = z.object({
action: z.enum(BUDGET_INCIDENT_RESOLUTION_ACTIONS),
amount: z.number().int().nonnegative().optional(),
decisionNote: z.string().optional().nullable(),
}).superRefine((value, ctx) => {
if (value.action === "raise_budget_and_resume" && typeof value.amount !== "number") {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "amount is required when raising a budget",
path: ["amount"],
});
}
});
//# sourceMappingURL=budget.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/validators/budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kCAAkC,EAClC,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC1B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IACjE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC;IAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC/C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACjD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,yBAAyB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnF,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0CAA0C;YACnD,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
{"version":3,"file":"company-portability.d.ts","sourceRoot":"","sources":["../../src/validators/company-portability.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,211 @@
import { z } from "zod";
export const portabilityIncludeSchema = z
.object({
company: z.boolean().optional(),
agents: z.boolean().optional(),
projects: z.boolean().optional(),
issues: z.boolean().optional(),
skills: z.boolean().optional(),
})
.partial();
export const portabilityEnvInputSchema = z.object({
key: z.string().min(1),
description: z.string().nullable(),
agentSlug: z.string().min(1).nullable(),
kind: z.enum(["secret", "plain"]),
requirement: z.enum(["required", "optional"]),
defaultValue: z.string().nullable(),
portability: z.enum(["portable", "system_dependent"]),
});
export const portabilityFileEntrySchema = z.union([
z.string(),
z.object({
encoding: z.literal("base64"),
data: z.string(),
contentType: z.string().min(1).optional().nullable(),
}),
]);
export const portabilityCompanyManifestEntrySchema = z.object({
path: z.string().min(1),
name: z.string().min(1),
description: z.string().nullable(),
brandColor: z.string().nullable(),
logoPath: z.string().nullable(),
requireBoardApprovalForNewAgents: z.boolean(),
});
export const portabilitySidebarOrderSchema = z.object({
agents: z.array(z.string().min(1)).default([]),
projects: z.array(z.string().min(1)).default([]),
});
export const portabilityAgentManifestEntrySchema = z.object({
slug: z.string().min(1),
name: z.string().min(1),
path: z.string().min(1),
skills: z.array(z.string().min(1)).default([]),
role: z.string().min(1),
title: z.string().nullable(),
icon: z.string().nullable(),
capabilities: z.string().nullable(),
reportsToSlug: z.string().min(1).nullable(),
adapterType: z.string().min(1),
adapterConfig: z.record(z.unknown()),
runtimeConfig: z.record(z.unknown()),
permissions: z.record(z.unknown()),
budgetMonthlyCents: z.number().int().nonnegative(),
metadata: z.record(z.unknown()).nullable(),
});
export const portabilitySkillManifestEntrySchema = z.object({
key: z.string().min(1),
slug: z.string().min(1),
name: z.string().min(1),
path: z.string().min(1),
description: z.string().nullable(),
sourceType: z.string().min(1),
sourceLocator: z.string().nullable(),
sourceRef: z.string().nullable(),
trustLevel: z.string().nullable(),
compatibility: z.string().nullable(),
metadata: z.record(z.unknown()).nullable(),
fileInventory: z.array(z.object({
path: z.string().min(1),
kind: z.string().min(1),
})).default([]),
});
export const portabilityProjectManifestEntrySchema = z.object({
slug: z.string().min(1),
name: z.string().min(1),
path: z.string().min(1),
description: z.string().nullable(),
ownerAgentSlug: z.string().min(1).nullable(),
leadAgentSlug: z.string().min(1).nullable(),
targetDate: z.string().nullable(),
color: z.string().nullable(),
status: z.string().nullable(),
executionWorkspacePolicy: z.record(z.unknown()).nullable(),
workspaces: z.array(z.object({
key: z.string().min(1),
name: z.string().min(1),
sourceType: z.string().nullable(),
repoUrl: z.string().nullable(),
repoRef: z.string().nullable(),
defaultRef: z.string().nullable(),
visibility: z.string().nullable(),
setupCommand: z.string().nullable(),
cleanupCommand: z.string().nullable(),
metadata: z.record(z.unknown()).nullable(),
isPrimary: z.boolean(),
})).default([]),
metadata: z.record(z.unknown()).nullable(),
});
export const portabilityIssueRoutineTriggerManifestEntrySchema = z.object({
kind: z.string().min(1),
label: z.string().nullable(),
enabled: z.boolean(),
cronExpression: z.string().nullable(),
timezone: z.string().nullable(),
signingMode: z.string().nullable(),
replayWindowSec: z.number().int().nullable(),
});
export const portabilityIssueRoutineManifestEntrySchema = z.object({
concurrencyPolicy: z.string().nullable(),
catchUpPolicy: z.string().nullable(),
triggers: z.array(portabilityIssueRoutineTriggerManifestEntrySchema).default([]),
});
export const portabilityIssueManifestEntrySchema = z.object({
slug: z.string().min(1),
identifier: z.string().min(1).nullable(),
title: z.string().min(1),
path: z.string().min(1),
projectSlug: z.string().min(1).nullable(),
projectWorkspaceKey: z.string().min(1).nullable(),
assigneeAgentSlug: z.string().min(1).nullable(),
description: z.string().nullable(),
recurring: z.boolean().default(false),
routine: portabilityIssueRoutineManifestEntrySchema.nullable(),
legacyRecurrence: z.record(z.unknown()).nullable(),
status: z.string().nullable(),
priority: z.string().nullable(),
labelIds: z.array(z.string().min(1)).default([]),
billingCode: z.string().nullable(),
executionWorkspaceSettings: z.record(z.unknown()).nullable(),
assigneeAdapterOverrides: z.record(z.unknown()).nullable(),
metadata: z.record(z.unknown()).nullable(),
});
export const portabilityManifestSchema = z.object({
schemaVersion: z.number().int().positive(),
generatedAt: z.string().datetime(),
source: z
.object({
companyId: z.string().uuid(),
companyName: z.string().min(1),
})
.nullable(),
includes: z.object({
company: z.boolean(),
agents: z.boolean(),
projects: z.boolean(),
issues: z.boolean(),
skills: z.boolean(),
}),
company: portabilityCompanyManifestEntrySchema.nullable(),
sidebar: portabilitySidebarOrderSchema.nullable(),
agents: z.array(portabilityAgentManifestEntrySchema),
skills: z.array(portabilitySkillManifestEntrySchema).default([]),
projects: z.array(portabilityProjectManifestEntrySchema).default([]),
issues: z.array(portabilityIssueManifestEntrySchema).default([]),
envInputs: z.array(portabilityEnvInputSchema).default([]),
});
export const portabilitySourceSchema = z.discriminatedUnion("type", [
z.object({
type: z.literal("inline"),
rootPath: z.string().min(1).optional().nullable(),
files: z.record(portabilityFileEntrySchema),
}),
z.object({
type: z.literal("github"),
url: z.string().url(),
}),
]);
export const portabilityTargetSchema = z.discriminatedUnion("mode", [
z.object({
mode: z.literal("new_company"),
newCompanyName: z.string().min(1).optional().nullable(),
}),
z.object({
mode: z.literal("existing_company"),
companyId: z.string().uuid(),
}),
]);
export const portabilityAgentSelectionSchema = z.union([
z.literal("all"),
z.array(z.string().min(1)),
]);
export const portabilityCollisionStrategySchema = z.enum(["rename", "skip", "replace"]);
export const companyPortabilityExportSchema = z.object({
include: portabilityIncludeSchema.optional(),
agents: z.array(z.string().min(1)).optional(),
skills: z.array(z.string().min(1)).optional(),
projects: z.array(z.string().min(1)).optional(),
issues: z.array(z.string().min(1)).optional(),
projectIssues: z.array(z.string().min(1)).optional(),
selectedFiles: z.array(z.string().min(1)).optional(),
expandReferencedSkills: z.boolean().optional(),
sidebarOrder: portabilitySidebarOrderSchema.partial().optional(),
});
export const companyPortabilityPreviewSchema = z.object({
source: portabilitySourceSchema,
include: portabilityIncludeSchema.optional(),
target: portabilityTargetSchema,
agents: portabilityAgentSelectionSchema.optional(),
collisionStrategy: portabilityCollisionStrategySchema.optional(),
nameOverrides: z.record(z.string().min(1), z.string().min(1)).optional(),
selectedFiles: z.array(z.string().min(1)).optional(),
});
export const portabilityAdapterOverrideSchema = z.object({
adapterType: z.string().min(1),
adapterConfig: z.record(z.unknown()).optional(),
});
export const companyPortabilityImportSchema = companyPortabilityPreviewSchema.extend({
adapterOverrides: z.record(z.string().min(1), portabilityAdapterOverrideSchema).optional(),
});
//# sourceMappingURL=company-portability.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,797 @@
import { z } from "zod";
export declare const companySkillSourceTypeSchema: z.ZodEnum<["local_path", "github", "url", "catalog", "skills_sh"]>;
export declare const companySkillTrustLevelSchema: z.ZodEnum<["markdown_only", "assets", "scripts_executables"]>;
export declare const companySkillCompatibilitySchema: z.ZodEnum<["compatible", "unknown", "invalid"]>;
export declare const companySkillSourceBadgeSchema: z.ZodEnum<["paperclip", "github", "local", "url", "catalog", "skills_sh"]>;
export declare const companySkillFileInventoryEntrySchema: z.ZodObject<{
path: z.ZodString;
kind: z.ZodEnum<["skill", "markdown", "reference", "script", "asset", "other"]>;
}, "strip", z.ZodTypeAny, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}>;
export declare const companySkillSchema: z.ZodObject<{
id: z.ZodString;
companyId: z.ZodString;
key: z.ZodString;
slug: z.ZodString;
name: z.ZodString;
description: z.ZodNullable<z.ZodString>;
markdown: z.ZodString;
sourceType: z.ZodEnum<["local_path", "github", "url", "catalog", "skills_sh"]>;
sourceLocator: z.ZodNullable<z.ZodString>;
sourceRef: z.ZodNullable<z.ZodString>;
trustLevel: z.ZodEnum<["markdown_only", "assets", "scripts_executables"]>;
compatibility: z.ZodEnum<["compatible", "unknown", "invalid"]>;
fileInventory: z.ZodDefault<z.ZodArray<z.ZodObject<{
path: z.ZodString;
kind: z.ZodEnum<["skill", "markdown", "reference", "script", "asset", "other"]>;
}, "strip", z.ZodTypeAny, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}>, "many">>;
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
fileInventory: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[];
metadata: Record<string, unknown> | null;
}, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
metadata: Record<string, unknown> | null;
fileInventory?: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[] | undefined;
}>;
export declare const companySkillListItemSchema: z.ZodObject<{
id: z.ZodString;
companyId: z.ZodString;
key: z.ZodString;
slug: z.ZodString;
name: z.ZodString;
description: z.ZodNullable<z.ZodString>;
markdown: z.ZodString;
sourceType: z.ZodEnum<["local_path", "github", "url", "catalog", "skills_sh"]>;
sourceLocator: z.ZodNullable<z.ZodString>;
sourceRef: z.ZodNullable<z.ZodString>;
trustLevel: z.ZodEnum<["markdown_only", "assets", "scripts_executables"]>;
compatibility: z.ZodEnum<["compatible", "unknown", "invalid"]>;
fileInventory: z.ZodDefault<z.ZodArray<z.ZodObject<{
path: z.ZodString;
kind: z.ZodEnum<["skill", "markdown", "reference", "script", "asset", "other"]>;
}, "strip", z.ZodTypeAny, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}>, "many">>;
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
} & {
attachedAgentCount: z.ZodNumber;
editable: z.ZodBoolean;
editableReason: z.ZodNullable<z.ZodString>;
sourceLabel: z.ZodNullable<z.ZodString>;
sourceBadge: z.ZodEnum<["paperclip", "github", "local", "url", "catalog", "skills_sh"]>;
}, "strip", z.ZodTypeAny, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
fileInventory: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[];
metadata: Record<string, unknown> | null;
attachedAgentCount: number;
editable: boolean;
editableReason: string | null;
sourceLabel: string | null;
sourceBadge: "paperclip" | "github" | "url" | "catalog" | "skills_sh" | "local";
}, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
metadata: Record<string, unknown> | null;
attachedAgentCount: number;
editable: boolean;
editableReason: string | null;
sourceLabel: string | null;
sourceBadge: "paperclip" | "github" | "url" | "catalog" | "skills_sh" | "local";
fileInventory?: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[] | undefined;
}>;
export declare const companySkillUsageAgentSchema: z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
urlKey: z.ZodString;
adapterType: z.ZodString;
desired: z.ZodBoolean;
actualState: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
id: string;
name: string;
urlKey: string;
adapterType: string;
desired: boolean;
actualState: string | null;
}, {
id: string;
name: string;
urlKey: string;
adapterType: string;
desired: boolean;
actualState: string | null;
}>;
export declare const companySkillDetailSchema: z.ZodObject<{
id: z.ZodString;
companyId: z.ZodString;
key: z.ZodString;
slug: z.ZodString;
name: z.ZodString;
description: z.ZodNullable<z.ZodString>;
markdown: z.ZodString;
sourceType: z.ZodEnum<["local_path", "github", "url", "catalog", "skills_sh"]>;
sourceLocator: z.ZodNullable<z.ZodString>;
sourceRef: z.ZodNullable<z.ZodString>;
trustLevel: z.ZodEnum<["markdown_only", "assets", "scripts_executables"]>;
compatibility: z.ZodEnum<["compatible", "unknown", "invalid"]>;
fileInventory: z.ZodDefault<z.ZodArray<z.ZodObject<{
path: z.ZodString;
kind: z.ZodEnum<["skill", "markdown", "reference", "script", "asset", "other"]>;
}, "strip", z.ZodTypeAny, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}>, "many">>;
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
} & {
attachedAgentCount: z.ZodNumber;
usedByAgents: z.ZodDefault<z.ZodArray<z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
urlKey: z.ZodString;
adapterType: z.ZodString;
desired: z.ZodBoolean;
actualState: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
id: string;
name: string;
urlKey: string;
adapterType: string;
desired: boolean;
actualState: string | null;
}, {
id: string;
name: string;
urlKey: string;
adapterType: string;
desired: boolean;
actualState: string | null;
}>, "many">>;
editable: z.ZodBoolean;
editableReason: z.ZodNullable<z.ZodString>;
sourceLabel: z.ZodNullable<z.ZodString>;
sourceBadge: z.ZodEnum<["paperclip", "github", "local", "url", "catalog", "skills_sh"]>;
}, "strip", z.ZodTypeAny, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
fileInventory: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[];
metadata: Record<string, unknown> | null;
attachedAgentCount: number;
editable: boolean;
editableReason: string | null;
sourceLabel: string | null;
sourceBadge: "paperclip" | "github" | "url" | "catalog" | "skills_sh" | "local";
usedByAgents: {
id: string;
name: string;
urlKey: string;
adapterType: string;
desired: boolean;
actualState: string | null;
}[];
}, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
metadata: Record<string, unknown> | null;
attachedAgentCount: number;
editable: boolean;
editableReason: string | null;
sourceLabel: string | null;
sourceBadge: "paperclip" | "github" | "url" | "catalog" | "skills_sh" | "local";
fileInventory?: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[] | undefined;
usedByAgents?: {
id: string;
name: string;
urlKey: string;
adapterType: string;
desired: boolean;
actualState: string | null;
}[] | undefined;
}>;
export declare const companySkillUpdateStatusSchema: z.ZodObject<{
supported: z.ZodBoolean;
reason: z.ZodNullable<z.ZodString>;
trackingRef: z.ZodNullable<z.ZodString>;
currentRef: z.ZodNullable<z.ZodString>;
latestRef: z.ZodNullable<z.ZodString>;
hasUpdate: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
supported: boolean;
reason: string | null;
trackingRef: string | null;
currentRef: string | null;
latestRef: string | null;
hasUpdate: boolean;
}, {
supported: boolean;
reason: string | null;
trackingRef: string | null;
currentRef: string | null;
latestRef: string | null;
hasUpdate: boolean;
}>;
export declare const companySkillImportSchema: z.ZodObject<{
source: z.ZodString;
}, "strip", z.ZodTypeAny, {
source: string;
}, {
source: string;
}>;
export declare const companySkillProjectScanRequestSchema: z.ZodObject<{
projectIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
workspaceIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
projectIds?: string[] | undefined;
workspaceIds?: string[] | undefined;
}, {
projectIds?: string[] | undefined;
workspaceIds?: string[] | undefined;
}>;
export declare const companySkillProjectScanSkippedSchema: z.ZodObject<{
projectId: z.ZodString;
projectName: z.ZodString;
workspaceId: z.ZodNullable<z.ZodString>;
workspaceName: z.ZodNullable<z.ZodString>;
path: z.ZodNullable<z.ZodString>;
reason: z.ZodString;
}, "strip", z.ZodTypeAny, {
path: string | null;
reason: string;
projectId: string;
projectName: string;
workspaceId: string | null;
workspaceName: string | null;
}, {
path: string | null;
reason: string;
projectId: string;
projectName: string;
workspaceId: string | null;
workspaceName: string | null;
}>;
export declare const companySkillProjectScanConflictSchema: z.ZodObject<{
slug: z.ZodString;
key: z.ZodString;
projectId: z.ZodString;
projectName: z.ZodString;
workspaceId: z.ZodString;
workspaceName: z.ZodString;
path: z.ZodString;
existingSkillId: z.ZodString;
existingSkillKey: z.ZodString;
existingSourceLocator: z.ZodNullable<z.ZodString>;
reason: z.ZodString;
}, "strip", z.ZodTypeAny, {
path: string;
key: string;
slug: string;
reason: string;
projectId: string;
projectName: string;
workspaceId: string;
workspaceName: string;
existingSkillId: string;
existingSkillKey: string;
existingSourceLocator: string | null;
}, {
path: string;
key: string;
slug: string;
reason: string;
projectId: string;
projectName: string;
workspaceId: string;
workspaceName: string;
existingSkillId: string;
existingSkillKey: string;
existingSourceLocator: string | null;
}>;
export declare const companySkillProjectScanResultSchema: z.ZodObject<{
scannedProjects: z.ZodNumber;
scannedWorkspaces: z.ZodNumber;
discovered: z.ZodNumber;
imported: z.ZodArray<z.ZodObject<{
id: z.ZodString;
companyId: z.ZodString;
key: z.ZodString;
slug: z.ZodString;
name: z.ZodString;
description: z.ZodNullable<z.ZodString>;
markdown: z.ZodString;
sourceType: z.ZodEnum<["local_path", "github", "url", "catalog", "skills_sh"]>;
sourceLocator: z.ZodNullable<z.ZodString>;
sourceRef: z.ZodNullable<z.ZodString>;
trustLevel: z.ZodEnum<["markdown_only", "assets", "scripts_executables"]>;
compatibility: z.ZodEnum<["compatible", "unknown", "invalid"]>;
fileInventory: z.ZodDefault<z.ZodArray<z.ZodObject<{
path: z.ZodString;
kind: z.ZodEnum<["skill", "markdown", "reference", "script", "asset", "other"]>;
}, "strip", z.ZodTypeAny, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}>, "many">>;
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
fileInventory: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[];
metadata: Record<string, unknown> | null;
}, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
metadata: Record<string, unknown> | null;
fileInventory?: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[] | undefined;
}>, "many">;
updated: z.ZodArray<z.ZodObject<{
id: z.ZodString;
companyId: z.ZodString;
key: z.ZodString;
slug: z.ZodString;
name: z.ZodString;
description: z.ZodNullable<z.ZodString>;
markdown: z.ZodString;
sourceType: z.ZodEnum<["local_path", "github", "url", "catalog", "skills_sh"]>;
sourceLocator: z.ZodNullable<z.ZodString>;
sourceRef: z.ZodNullable<z.ZodString>;
trustLevel: z.ZodEnum<["markdown_only", "assets", "scripts_executables"]>;
compatibility: z.ZodEnum<["compatible", "unknown", "invalid"]>;
fileInventory: z.ZodDefault<z.ZodArray<z.ZodObject<{
path: z.ZodString;
kind: z.ZodEnum<["skill", "markdown", "reference", "script", "asset", "other"]>;
}, "strip", z.ZodTypeAny, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}, {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}>, "many">>;
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
fileInventory: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[];
metadata: Record<string, unknown> | null;
}, {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
metadata: Record<string, unknown> | null;
fileInventory?: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[] | undefined;
}>, "many">;
skipped: z.ZodArray<z.ZodObject<{
projectId: z.ZodString;
projectName: z.ZodString;
workspaceId: z.ZodNullable<z.ZodString>;
workspaceName: z.ZodNullable<z.ZodString>;
path: z.ZodNullable<z.ZodString>;
reason: z.ZodString;
}, "strip", z.ZodTypeAny, {
path: string | null;
reason: string;
projectId: string;
projectName: string;
workspaceId: string | null;
workspaceName: string | null;
}, {
path: string | null;
reason: string;
projectId: string;
projectName: string;
workspaceId: string | null;
workspaceName: string | null;
}>, "many">;
conflicts: z.ZodArray<z.ZodObject<{
slug: z.ZodString;
key: z.ZodString;
projectId: z.ZodString;
projectName: z.ZodString;
workspaceId: z.ZodString;
workspaceName: z.ZodString;
path: z.ZodString;
existingSkillId: z.ZodString;
existingSkillKey: z.ZodString;
existingSourceLocator: z.ZodNullable<z.ZodString>;
reason: z.ZodString;
}, "strip", z.ZodTypeAny, {
path: string;
key: string;
slug: string;
reason: string;
projectId: string;
projectName: string;
workspaceId: string;
workspaceName: string;
existingSkillId: string;
existingSkillKey: string;
existingSourceLocator: string | null;
}, {
path: string;
key: string;
slug: string;
reason: string;
projectId: string;
projectName: string;
workspaceId: string;
workspaceName: string;
existingSkillId: string;
existingSkillKey: string;
existingSourceLocator: string | null;
}>, "many">;
warnings: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
skipped: {
path: string | null;
reason: string;
projectId: string;
projectName: string;
workspaceId: string | null;
workspaceName: string | null;
}[];
updated: {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
fileInventory: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[];
metadata: Record<string, unknown> | null;
}[];
scannedProjects: number;
scannedWorkspaces: number;
discovered: number;
imported: {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
fileInventory: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[];
metadata: Record<string, unknown> | null;
}[];
conflicts: {
path: string;
key: string;
slug: string;
reason: string;
projectId: string;
projectName: string;
workspaceId: string;
workspaceName: string;
existingSkillId: string;
existingSkillKey: string;
existingSourceLocator: string | null;
}[];
warnings: string[];
}, {
skipped: {
path: string | null;
reason: string;
projectId: string;
projectName: string;
workspaceId: string | null;
workspaceName: string | null;
}[];
updated: {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
metadata: Record<string, unknown> | null;
fileInventory?: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[] | undefined;
}[];
scannedProjects: number;
scannedWorkspaces: number;
discovered: number;
imported: {
updatedAt: Date;
markdown: string;
id: string;
companyId: string;
createdAt: Date;
name: string;
description: string | null;
key: string;
slug: string;
sourceType: "local_path" | "github" | "url" | "catalog" | "skills_sh";
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: "markdown_only" | "assets" | "scripts_executables";
compatibility: "unknown" | "compatible" | "invalid";
metadata: Record<string, unknown> | null;
fileInventory?: {
path: string;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
}[] | undefined;
}[];
conflicts: {
path: string;
key: string;
slug: string;
reason: string;
projectId: string;
projectName: string;
workspaceId: string;
workspaceName: string;
existingSkillId: string;
existingSkillKey: string;
existingSourceLocator: string | null;
}[];
warnings: string[];
}>;
export declare const companySkillCreateSchema: z.ZodObject<{
name: z.ZodString;
slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
markdown: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
name: string;
markdown?: string | null | undefined;
description?: string | null | undefined;
slug?: string | null | undefined;
}, {
name: string;
markdown?: string | null | undefined;
description?: string | null | undefined;
slug?: string | null | undefined;
}>;
export declare const companySkillFileDetailSchema: z.ZodObject<{
skillId: z.ZodString;
path: z.ZodString;
kind: z.ZodEnum<["skill", "markdown", "reference", "script", "asset", "other"]>;
content: z.ZodString;
language: z.ZodNullable<z.ZodString>;
markdown: z.ZodBoolean;
editable: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
path: string;
markdown: boolean;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
editable: boolean;
skillId: string;
content: string;
language: string | null;
}, {
path: string;
markdown: boolean;
kind: "skill" | "markdown" | "reference" | "script" | "asset" | "other";
editable: boolean;
skillId: string;
content: string;
language: string | null;
}>;
export declare const companySkillFileUpdateSchema: z.ZodObject<{
path: z.ZodString;
content: z.ZodString;
}, "strip", z.ZodTypeAny, {
path: string;
content: string;
}, {
path: string;
content: string;
}>;
export type CompanySkillImport = z.infer<typeof companySkillImportSchema>;
export type CompanySkillProjectScan = z.infer<typeof companySkillProjectScanRequestSchema>;
export type CompanySkillCreate = z.infer<typeof companySkillCreateSchema>;
export type CompanySkillFileUpdate = z.infer<typeof companySkillFileUpdateSchema>;
//# sourceMappingURL=company-skill.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"company-skill.d.ts","sourceRoot":"","sources":["../../src/validators/company-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,4BAA4B,oEAAkE,CAAC;AAC5G,eAAO,MAAM,4BAA4B,+DAA6D,CAAC;AACvG,eAAO,MAAM,+BAA+B,iDAA+C,CAAC;AAC5F,eAAO,MAAM,6BAA6B,4EAA0E,CAAC;AAErH,eAAO,MAAM,oCAAoC;;;;;;;;;EAG/C,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB7B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;EAOvC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;EAOzC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;EAG/C,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;EAO/C,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhD,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9C,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAKnC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;EAQvC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;EAGvC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAC3F,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}

View File

@@ -0,0 +1,116 @@
import { z } from "zod";
export const companySkillSourceTypeSchema = z.enum(["local_path", "github", "url", "catalog", "skills_sh"]);
export const companySkillTrustLevelSchema = z.enum(["markdown_only", "assets", "scripts_executables"]);
export const companySkillCompatibilitySchema = z.enum(["compatible", "unknown", "invalid"]);
export const companySkillSourceBadgeSchema = z.enum(["paperclip", "github", "local", "url", "catalog", "skills_sh"]);
export const companySkillFileInventoryEntrySchema = z.object({
path: z.string().min(1),
kind: z.enum(["skill", "markdown", "reference", "script", "asset", "other"]),
});
export const companySkillSchema = z.object({
id: z.string().uuid(),
companyId: z.string().uuid(),
key: z.string().min(1),
slug: z.string().min(1),
name: z.string().min(1),
description: z.string().nullable(),
markdown: z.string(),
sourceType: companySkillSourceTypeSchema,
sourceLocator: z.string().nullable(),
sourceRef: z.string().nullable(),
trustLevel: companySkillTrustLevelSchema,
compatibility: companySkillCompatibilitySchema,
fileInventory: z.array(companySkillFileInventoryEntrySchema).default([]),
metadata: z.record(z.unknown()).nullable(),
createdAt: z.coerce.date(),
updatedAt: z.coerce.date(),
});
export const companySkillListItemSchema = companySkillSchema.extend({
attachedAgentCount: z.number().int().nonnegative(),
editable: z.boolean(),
editableReason: z.string().nullable(),
sourceLabel: z.string().nullable(),
sourceBadge: companySkillSourceBadgeSchema,
});
export const companySkillUsageAgentSchema = z.object({
id: z.string().uuid(),
name: z.string().min(1),
urlKey: z.string().min(1),
adapterType: z.string().min(1),
desired: z.boolean(),
actualState: z.string().nullable(),
});
export const companySkillDetailSchema = companySkillSchema.extend({
attachedAgentCount: z.number().int().nonnegative(),
usedByAgents: z.array(companySkillUsageAgentSchema).default([]),
editable: z.boolean(),
editableReason: z.string().nullable(),
sourceLabel: z.string().nullable(),
sourceBadge: companySkillSourceBadgeSchema,
});
export const companySkillUpdateStatusSchema = z.object({
supported: z.boolean(),
reason: z.string().nullable(),
trackingRef: z.string().nullable(),
currentRef: z.string().nullable(),
latestRef: z.string().nullable(),
hasUpdate: z.boolean(),
});
export const companySkillImportSchema = z.object({
source: z.string().min(1),
});
export const companySkillProjectScanRequestSchema = z.object({
projectIds: z.array(z.string().uuid()).optional(),
workspaceIds: z.array(z.string().uuid()).optional(),
});
export const companySkillProjectScanSkippedSchema = z.object({
projectId: z.string().uuid(),
projectName: z.string().min(1),
workspaceId: z.string().uuid().nullable(),
workspaceName: z.string().nullable(),
path: z.string().nullable(),
reason: z.string().min(1),
});
export const companySkillProjectScanConflictSchema = z.object({
slug: z.string().min(1),
key: z.string().min(1),
projectId: z.string().uuid(),
projectName: z.string().min(1),
workspaceId: z.string().uuid(),
workspaceName: z.string().min(1),
path: z.string().min(1),
existingSkillId: z.string().uuid(),
existingSkillKey: z.string().min(1),
existingSourceLocator: z.string().nullable(),
reason: z.string().min(1),
});
export const companySkillProjectScanResultSchema = z.object({
scannedProjects: z.number().int().nonnegative(),
scannedWorkspaces: z.number().int().nonnegative(),
discovered: z.number().int().nonnegative(),
imported: z.array(companySkillSchema),
updated: z.array(companySkillSchema),
skipped: z.array(companySkillProjectScanSkippedSchema),
conflicts: z.array(companySkillProjectScanConflictSchema),
warnings: z.array(z.string()),
});
export const companySkillCreateSchema = z.object({
name: z.string().min(1),
slug: z.string().min(1).nullable().optional(),
description: z.string().nullable().optional(),
markdown: z.string().nullable().optional(),
});
export const companySkillFileDetailSchema = z.object({
skillId: z.string().uuid(),
path: z.string().min(1),
kind: z.enum(["skill", "markdown", "reference", "script", "asset", "other"]),
content: z.string(),
language: z.string().nullable(),
markdown: z.boolean(),
editable: z.boolean(),
});
export const companySkillFileUpdateSchema = z.object({
path: z.string().min(1),
content: z.string(),
});
//# sourceMappingURL=company-skill.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,73 @@
import { z } from "zod";
export declare const createCompanySchema: z.ZodObject<{
name: z.ZodString;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
budgetMonthlyCents: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
name: string;
budgetMonthlyCents: number;
description?: string | null | undefined;
}, {
name: string;
description?: string | null | undefined;
budgetMonthlyCents?: number | undefined;
}>;
export type CreateCompany = z.infer<typeof createCompanySchema>;
export declare const updateCompanySchema: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
budgetMonthlyCents: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodNumber>>>;
} & {
status: z.ZodOptional<z.ZodEnum<["active", "paused", "archived"]>>;
spentMonthlyCents: z.ZodOptional<z.ZodNumber>;
requireBoardApprovalForNewAgents: z.ZodOptional<z.ZodBoolean>;
brandColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
logoAssetId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
status?: "active" | "paused" | "archived" | undefined;
name?: string | undefined;
description?: string | null | undefined;
budgetMonthlyCents?: number | undefined;
spentMonthlyCents?: number | undefined;
requireBoardApprovalForNewAgents?: boolean | undefined;
brandColor?: string | null | undefined;
logoAssetId?: string | null | undefined;
}, {
status?: "active" | "paused" | "archived" | undefined;
name?: string | undefined;
description?: string | null | undefined;
budgetMonthlyCents?: number | undefined;
spentMonthlyCents?: number | undefined;
requireBoardApprovalForNewAgents?: boolean | undefined;
brandColor?: string | null | undefined;
logoAssetId?: string | null | undefined;
}>;
export type UpdateCompany = z.infer<typeof updateCompanySchema>;
export declare const updateCompanyBrandingSchema: z.ZodEffects<z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
brandColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
logoAssetId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
name?: string | undefined;
description?: string | null | undefined;
brandColor?: string | null | undefined;
logoAssetId?: string | null | undefined;
}, {
name?: string | undefined;
description?: string | null | undefined;
brandColor?: string | null | undefined;
logoAssetId?: string | null | undefined;
}>, {
name?: string | undefined;
description?: string | null | undefined;
brandColor?: string | null | undefined;
logoAssetId?: string | null | undefined;
}, {
name?: string | undefined;
description?: string | null | undefined;
brandColor?: string | null | undefined;
logoAssetId?: string | null | undefined;
}>;
export type UpdateCompanyBranding = z.infer<typeof updateCompanyBrandingSchema>;
//# sourceMappingURL=company.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"company.d.ts","sourceRoot":"","sources":["../../src/validators/company.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAC;AAEL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;EAerC,CAAC;AAEJ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}

View File

@@ -0,0 +1,31 @@
import { z } from "zod";
import { COMPANY_STATUSES } from "../constants.js";
const logoAssetIdSchema = z.string().uuid().nullable().optional();
const brandColorSchema = z.string().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional();
export const createCompanySchema = z.object({
name: z.string().min(1),
description: z.string().optional().nullable(),
budgetMonthlyCents: z.number().int().nonnegative().optional().default(0),
});
export const updateCompanySchema = createCompanySchema
.partial()
.extend({
status: z.enum(COMPANY_STATUSES).optional(),
spentMonthlyCents: z.number().int().nonnegative().optional(),
requireBoardApprovalForNewAgents: z.boolean().optional(),
brandColor: brandColorSchema,
logoAssetId: logoAssetIdSchema,
});
export const updateCompanyBrandingSchema = z
.object({
name: z.string().min(1).optional(),
description: z.string().nullable().optional(),
brandColor: brandColorSchema,
logoAssetId: logoAssetIdSchema,
})
.strict()
.refine((value) => value.name !== undefined
|| value.description !== undefined
|| value.brandColor !== undefined
|| value.logoAssetId !== undefined, "At least one branding field must be provided");
//# sourceMappingURL=company.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"company.js","sourceRoot":"","sources":["../../src/validators/company.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;AAClE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;AAErF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CACzE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB;KACnD,OAAO,EAAE;KACT,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC3C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC5D,gCAAgC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxD,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;CAC/B,CAAC,CAAC;AAIL,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;CAC/B,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,SAAS;OACrB,KAAK,CAAC,WAAW,KAAK,SAAS;OAC/B,KAAK,CAAC,UAAU,KAAK,SAAS;OAC9B,KAAK,CAAC,WAAW,KAAK,SAAS,EACpC,8CAA8C,CAC/C,CAAC"}

View File

@@ -0,0 +1,92 @@
import { z } from "zod";
export declare const createCostEventSchema: z.ZodEffects<z.ZodObject<{
agentId: z.ZodString;
issueId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
projectId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
goalId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
heartbeatRunId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
billingCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
provider: z.ZodString;
biller: z.ZodOptional<z.ZodString>;
billingType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["metered_api", "subscription_included", "subscription_overage", "credits", "fixed", "unknown"]>>>;
model: z.ZodString;
inputTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
cachedInputTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
outputTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
costCents: z.ZodNumber;
occurredAt: z.ZodString;
}, "strip", z.ZodTypeAny, {
provider: string;
agentId: string;
billingType: "metered_api" | "subscription_included" | "subscription_overage" | "credits" | "fixed" | "unknown";
model: string;
inputTokens: number;
cachedInputTokens: number;
outputTokens: number;
costCents: number;
occurredAt: string;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
biller?: string | undefined;
}, {
provider: string;
agentId: string;
model: string;
costCents: number;
occurredAt: string;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
biller?: string | undefined;
billingType?: "metered_api" | "subscription_included" | "subscription_overage" | "credits" | "fixed" | "unknown" | undefined;
inputTokens?: number | undefined;
cachedInputTokens?: number | undefined;
outputTokens?: number | undefined;
}>, {
biller: string;
provider: string;
agentId: string;
billingType: "metered_api" | "subscription_included" | "subscription_overage" | "credits" | "fixed" | "unknown";
model: string;
inputTokens: number;
cachedInputTokens: number;
outputTokens: number;
costCents: number;
occurredAt: string;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
}, {
provider: string;
agentId: string;
model: string;
costCents: number;
occurredAt: string;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
biller?: string | undefined;
billingType?: "metered_api" | "subscription_included" | "subscription_overage" | "credits" | "fixed" | "unknown" | undefined;
inputTokens?: number | undefined;
cachedInputTokens?: number | undefined;
outputTokens?: number | undefined;
}>;
export type CreateCostEvent = z.infer<typeof createCostEventSchema>;
export declare const updateBudgetSchema: z.ZodObject<{
budgetMonthlyCents: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
budgetMonthlyCents: number;
}, {
budgetMonthlyCents: number;
}>;
export type UpdateBudget = z.infer<typeof updateBudgetSchema>;
//# sourceMappingURL=cost.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/validators/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB/B,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}

View File

@@ -0,0 +1,26 @@
import { z } from "zod";
import { BILLING_TYPES } from "../constants.js";
export const createCostEventSchema = z.object({
agentId: z.string().uuid(),
issueId: z.string().uuid().optional().nullable(),
projectId: z.string().uuid().optional().nullable(),
goalId: z.string().uuid().optional().nullable(),
heartbeatRunId: z.string().uuid().optional().nullable(),
billingCode: z.string().optional().nullable(),
provider: z.string().min(1),
biller: z.string().min(1).optional(),
billingType: z.enum(BILLING_TYPES).optional().default("unknown"),
model: z.string().min(1),
inputTokens: z.number().int().nonnegative().optional().default(0),
cachedInputTokens: z.number().int().nonnegative().optional().default(0),
outputTokens: z.number().int().nonnegative().optional().default(0),
costCents: z.number().int().nonnegative(),
occurredAt: z.string().datetime(),
}).transform((value) => ({
...value,
biller: value.biller ?? value.provider,
}));
export const updateBudgetSchema = z.object({
budgetMonthlyCents: z.number().int().nonnegative(),
});
//# sourceMappingURL=cost.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/validators/cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,GAAG,KAAK;IACR,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ;CACvC,CAAC,CAAC,CAAC;AAIJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACnD,CAAC,CAAC"}

View File

@@ -0,0 +1,20 @@
import { z } from "zod";
export declare const executionWorkspaceStatusSchema: z.ZodEnum<["active", "idle", "in_review", "archived", "cleanup_failed"]>;
export declare const updateExecutionWorkspaceSchema: z.ZodObject<{
status: z.ZodOptional<z.ZodEnum<["active", "idle", "in_review", "archived", "cleanup_failed"]>>;
cleanupEligibleAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
cleanupReason: z.ZodNullable<z.ZodOptional<z.ZodString>>;
metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strict", z.ZodTypeAny, {
status?: "active" | "archived" | "idle" | "in_review" | "cleanup_failed" | undefined;
metadata?: Record<string, unknown> | null | undefined;
cleanupEligibleAt?: string | null | undefined;
cleanupReason?: string | null | undefined;
}, {
status?: "active" | "archived" | "idle" | "in_review" | "cleanup_failed" | undefined;
metadata?: Record<string, unknown> | null | undefined;
cleanupEligibleAt?: string | null | undefined;
cleanupReason?: string | null | undefined;
}>;
export type UpdateExecutionWorkspace = z.infer<typeof updateExecutionWorkspaceSchema>;
//# sourceMappingURL=execution-workspace.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"execution-workspace.d.ts","sourceRoot":"","sources":["../../src/validators/execution-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,8BAA8B,0EAMzC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;EAKhC,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}

View File

@@ -0,0 +1,15 @@
import { z } from "zod";
export const executionWorkspaceStatusSchema = z.enum([
"active",
"idle",
"in_review",
"archived",
"cleanup_failed",
]);
export const updateExecutionWorkspaceSchema = z.object({
status: executionWorkspaceStatusSchema.optional(),
cleanupEligibleAt: z.string().datetime().optional().nullable(),
cleanupReason: z.string().optional().nullable(),
metadata: z.record(z.unknown()).optional().nullable(),
}).strict();
//# sourceMappingURL=execution-workspace.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"execution-workspace.js","sourceRoot":"","sources":["../../src/validators/execution-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IACnD,QAAQ;IACR,MAAM;IACN,WAAW;IACX,UAAU;IACV,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,8BAA8B,CAAC,QAAQ,EAAE;IACjD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC,MAAM,EAAE,CAAC"}

View File

@@ -0,0 +1,129 @@
import { z } from "zod";
export declare const createFinanceEventSchema: z.ZodEffects<z.ZodObject<{
agentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
issueId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
projectId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
goalId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
heartbeatRunId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
costEventId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
billingCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
eventKind: z.ZodEnum<["inference_charge", "platform_fee", "credit_purchase", "credit_refund", "credit_expiry", "byok_fee", "gateway_overhead", "log_storage_charge", "logpush_charge", "provisioned_capacity_charge", "training_charge", "custom_model_import_charge", "custom_model_storage_charge", "manual_adjustment"]>;
direction: z.ZodDefault<z.ZodOptional<z.ZodEnum<["debit", "credit"]>>>;
biller: z.ZodString;
provider: z.ZodNullable<z.ZodOptional<z.ZodString>>;
executionAdapterType: z.ZodNullable<z.ZodOptional<z.ZodEnum<["process", "http", "claude_local", "codex_local", "opencode_local", "pi_local", "cursor", "openclaw_gateway", "hermes_local"]>>>;
pricingTier: z.ZodNullable<z.ZodOptional<z.ZodString>>;
region: z.ZodNullable<z.ZodOptional<z.ZodString>>;
model: z.ZodNullable<z.ZodOptional<z.ZodString>>;
quantity: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
unit: z.ZodNullable<z.ZodOptional<z.ZodEnum<["input_token", "output_token", "cached_input_token", "request", "credit_usd", "credit_unit", "model_unit_minute", "model_unit_hour", "gb_month", "train_token", "unknown"]>>>;
amountCents: z.ZodNumber;
currency: z.ZodDefault<z.ZodOptional<z.ZodString>>;
estimated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
externalInvoiceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
metadataJson: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
occurredAt: z.ZodString;
}, "strip", z.ZodTypeAny, {
biller: string;
occurredAt: string;
eventKind: "inference_charge" | "platform_fee" | "credit_purchase" | "credit_refund" | "credit_expiry" | "byok_fee" | "gateway_overhead" | "log_storage_charge" | "logpush_charge" | "provisioned_capacity_charge" | "training_charge" | "custom_model_import_charge" | "custom_model_storage_charge" | "manual_adjustment";
direction: "debit" | "credit";
amountCents: number;
currency: string;
estimated: boolean;
provider?: string | null | undefined;
region?: string | null | undefined;
description?: string | null | undefined;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
agentId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
model?: string | null | undefined;
costEventId?: string | null | undefined;
executionAdapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | null | undefined;
pricingTier?: string | null | undefined;
quantity?: number | null | undefined;
unit?: "unknown" | "input_token" | "output_token" | "cached_input_token" | "request" | "credit_usd" | "credit_unit" | "model_unit_minute" | "model_unit_hour" | "gb_month" | "train_token" | null | undefined;
externalInvoiceId?: string | null | undefined;
metadataJson?: Record<string, unknown> | null | undefined;
}, {
biller: string;
occurredAt: string;
eventKind: "inference_charge" | "platform_fee" | "credit_purchase" | "credit_refund" | "credit_expiry" | "byok_fee" | "gateway_overhead" | "log_storage_charge" | "logpush_charge" | "provisioned_capacity_charge" | "training_charge" | "custom_model_import_charge" | "custom_model_storage_charge" | "manual_adjustment";
amountCents: number;
provider?: string | null | undefined;
region?: string | null | undefined;
description?: string | null | undefined;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
agentId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
model?: string | null | undefined;
costEventId?: string | null | undefined;
direction?: "debit" | "credit" | undefined;
executionAdapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | null | undefined;
pricingTier?: string | null | undefined;
quantity?: number | null | undefined;
unit?: "unknown" | "input_token" | "output_token" | "cached_input_token" | "request" | "credit_usd" | "credit_unit" | "model_unit_minute" | "model_unit_hour" | "gb_month" | "train_token" | null | undefined;
currency?: string | undefined;
estimated?: boolean | undefined;
externalInvoiceId?: string | null | undefined;
metadataJson?: Record<string, unknown> | null | undefined;
}>, {
currency: string;
biller: string;
occurredAt: string;
eventKind: "inference_charge" | "platform_fee" | "credit_purchase" | "credit_refund" | "credit_expiry" | "byok_fee" | "gateway_overhead" | "log_storage_charge" | "logpush_charge" | "provisioned_capacity_charge" | "training_charge" | "custom_model_import_charge" | "custom_model_storage_charge" | "manual_adjustment";
direction: "debit" | "credit";
amountCents: number;
estimated: boolean;
provider?: string | null | undefined;
region?: string | null | undefined;
description?: string | null | undefined;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
agentId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
model?: string | null | undefined;
costEventId?: string | null | undefined;
executionAdapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | null | undefined;
pricingTier?: string | null | undefined;
quantity?: number | null | undefined;
unit?: "unknown" | "input_token" | "output_token" | "cached_input_token" | "request" | "credit_usd" | "credit_unit" | "model_unit_minute" | "model_unit_hour" | "gb_month" | "train_token" | null | undefined;
externalInvoiceId?: string | null | undefined;
metadataJson?: Record<string, unknown> | null | undefined;
}, {
biller: string;
occurredAt: string;
eventKind: "inference_charge" | "platform_fee" | "credit_purchase" | "credit_refund" | "credit_expiry" | "byok_fee" | "gateway_overhead" | "log_storage_charge" | "logpush_charge" | "provisioned_capacity_charge" | "training_charge" | "custom_model_import_charge" | "custom_model_storage_charge" | "manual_adjustment";
amountCents: number;
provider?: string | null | undefined;
region?: string | null | undefined;
description?: string | null | undefined;
projectId?: string | null | undefined;
billingCode?: string | null | undefined;
goalId?: string | null | undefined;
agentId?: string | null | undefined;
issueId?: string | null | undefined;
heartbeatRunId?: string | null | undefined;
model?: string | null | undefined;
costEventId?: string | null | undefined;
direction?: "debit" | "credit" | undefined;
executionAdapterType?: "process" | "http" | "claude_local" | "codex_local" | "opencode_local" | "pi_local" | "cursor" | "openclaw_gateway" | "hermes_local" | null | undefined;
pricingTier?: string | null | undefined;
quantity?: number | null | undefined;
unit?: "unknown" | "input_token" | "output_token" | "cached_input_token" | "request" | "credit_usd" | "credit_unit" | "model_unit_minute" | "model_unit_hour" | "gb_month" | "train_token" | null | undefined;
currency?: string | undefined;
estimated?: boolean | undefined;
externalInvoiceId?: string | null | undefined;
metadataJson?: Record<string, unknown> | null | undefined;
}>;
export type CreateFinanceEvent = z.infer<typeof createFinanceEventSchema>;
//# sourceMappingURL=finance.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"finance.d.ts","sourceRoot":"","sources":["../../src/validators/finance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BlC,CAAC;AAEJ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}

View File

@@ -0,0 +1,32 @@
import { z } from "zod";
import { AGENT_ADAPTER_TYPES, FINANCE_DIRECTIONS, FINANCE_EVENT_KINDS, FINANCE_UNITS } from "../constants.js";
export const createFinanceEventSchema = z.object({
agentId: z.string().uuid().optional().nullable(),
issueId: z.string().uuid().optional().nullable(),
projectId: z.string().uuid().optional().nullable(),
goalId: z.string().uuid().optional().nullable(),
heartbeatRunId: z.string().uuid().optional().nullable(),
costEventId: z.string().uuid().optional().nullable(),
billingCode: z.string().optional().nullable(),
description: z.string().max(500).optional().nullable(),
eventKind: z.enum(FINANCE_EVENT_KINDS),
direction: z.enum(FINANCE_DIRECTIONS).optional().default("debit"),
biller: z.string().min(1),
provider: z.string().min(1).optional().nullable(),
executionAdapterType: z.enum(AGENT_ADAPTER_TYPES).optional().nullable(),
pricingTier: z.string().min(1).optional().nullable(),
region: z.string().min(1).optional().nullable(),
model: z.string().min(1).optional().nullable(),
quantity: z.number().int().nonnegative().optional().nullable(),
unit: z.enum(FINANCE_UNITS).optional().nullable(),
amountCents: z.number().int().nonnegative(),
currency: z.string().length(3).optional().default("USD"),
estimated: z.boolean().optional().default(false),
externalInvoiceId: z.string().optional().nullable(),
metadataJson: z.record(z.string(), z.unknown()).optional().nullable(),
occurredAt: z.string().datetime(),
}).transform((value) => ({
...value,
currency: value.currency.toUpperCase(),
}));
//# sourceMappingURL=finance.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"finance.js","sourceRoot":"","sources":["../../src/validators/finance.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,48 @@
import { z } from "zod";
export declare const createGoalSchema: z.ZodObject<{
title: z.ZodString;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
level: z.ZodDefault<z.ZodOptional<z.ZodEnum<["company", "team", "agent", "task"]>>>;
status: z.ZodDefault<z.ZodOptional<z.ZodEnum<["planned", "active", "achieved", "cancelled"]>>>;
parentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
ownerAgentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
status: "active" | "cancelled" | "planned" | "achieved";
title: string;
level: "agent" | "company" | "team" | "task";
description?: string | null | undefined;
parentId?: string | null | undefined;
ownerAgentId?: string | null | undefined;
}, {
title: string;
status?: "active" | "cancelled" | "planned" | "achieved" | undefined;
description?: string | null | undefined;
parentId?: string | null | undefined;
level?: "agent" | "company" | "team" | "task" | undefined;
ownerAgentId?: string | null | undefined;
}>;
export type CreateGoal = z.infer<typeof createGoalSchema>;
export declare const updateGoalSchema: z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
level: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["company", "team", "agent", "task"]>>>>;
status: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["planned", "active", "achieved", "cancelled"]>>>>;
parentId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
ownerAgentId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
}, "strip", z.ZodTypeAny, {
status?: "active" | "cancelled" | "planned" | "achieved" | undefined;
description?: string | null | undefined;
title?: string | undefined;
parentId?: string | null | undefined;
level?: "agent" | "company" | "team" | "task" | undefined;
ownerAgentId?: string | null | undefined;
}, {
status?: "active" | "cancelled" | "planned" | "achieved" | undefined;
description?: string | null | undefined;
title?: string | undefined;
parentId?: string | null | undefined;
level?: "agent" | "company" | "team" | "task" | undefined;
ownerAgentId?: string | null | undefined;
}>;
export type UpdateGoal = z.infer<typeof updateGoalSchema>;
//# sourceMappingURL=goal.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"goal.d.ts","sourceRoot":"","sources":["../../src/validators/goal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}

View File

@@ -0,0 +1,12 @@
import { z } from "zod";
import { GOAL_LEVELS, GOAL_STATUSES } from "../constants.js";
export const createGoalSchema = z.object({
title: z.string().min(1),
description: z.string().optional().nullable(),
level: z.enum(GOAL_LEVELS).optional().default("task"),
status: z.enum(GOAL_STATUSES).optional().default("planned"),
parentId: z.string().uuid().optional().nullable(),
ownerAgentId: z.string().uuid().optional().nullable(),
});
export const updateGoalSchema = createGoalSchema.partial();
//# sourceMappingURL=goal.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"goal.js","sourceRoot":"","sources":["../../src/validators/goal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC"}

View File

@@ -0,0 +1,21 @@
export { instanceGeneralSettingsSchema, patchInstanceGeneralSettingsSchema, type InstanceGeneralSettings, type PatchInstanceGeneralSettings, instanceExperimentalSettingsSchema, patchInstanceExperimentalSettingsSchema, type InstanceExperimentalSettings, type PatchInstanceExperimentalSettings, } from "./instance.js";
export { upsertBudgetPolicySchema, resolveBudgetIncidentSchema, type UpsertBudgetPolicy, type ResolveBudgetIncident, } from "./budget.js";
export { createCompanySchema, updateCompanySchema, updateCompanyBrandingSchema, type CreateCompany, type UpdateCompany, type UpdateCompanyBranding, } from "./company.js";
export { companySkillSourceTypeSchema, companySkillTrustLevelSchema, companySkillCompatibilitySchema, companySkillSourceBadgeSchema, companySkillFileInventoryEntrySchema, companySkillSchema, companySkillListItemSchema, companySkillUsageAgentSchema, companySkillDetailSchema, companySkillUpdateStatusSchema, companySkillImportSchema, companySkillProjectScanRequestSchema, companySkillProjectScanSkippedSchema, companySkillProjectScanConflictSchema, companySkillProjectScanResultSchema, companySkillCreateSchema, companySkillFileDetailSchema, companySkillFileUpdateSchema, type CompanySkillImport, type CompanySkillProjectScan, type CompanySkillCreate, type CompanySkillFileUpdate, } from "./company-skill.js";
export { agentSkillStateSchema, agentSkillSyncModeSchema, agentSkillEntrySchema, agentSkillSnapshotSchema, agentSkillSyncSchema, type AgentSkillSync, } from "./adapter-skills.js";
export { portabilityIncludeSchema, portabilityEnvInputSchema, portabilityCompanyManifestEntrySchema, portabilitySidebarOrderSchema, portabilityAgentManifestEntrySchema, portabilitySkillManifestEntrySchema, portabilityManifestSchema, portabilitySourceSchema, portabilityTargetSchema, portabilityAgentSelectionSchema, portabilityCollisionStrategySchema, companyPortabilityExportSchema, companyPortabilityPreviewSchema, companyPortabilityImportSchema, type CompanyPortabilityExport, type CompanyPortabilityPreview, type CompanyPortabilityImport, } from "./company-portability.js";
export { createAgentSchema, createAgentHireSchema, updateAgentSchema, agentInstructionsBundleModeSchema, updateAgentInstructionsBundleSchema, upsertAgentInstructionsFileSchema, updateAgentInstructionsPathSchema, createAgentKeySchema, wakeAgentSchema, resetAgentSessionSchema, testAdapterEnvironmentSchema, agentPermissionsSchema, updateAgentPermissionsSchema, type CreateAgent, type CreateAgentHire, type UpdateAgent, type UpdateAgentInstructionsBundle, type UpsertAgentInstructionsFile, type UpdateAgentInstructionsPath, type CreateAgentKey, type WakeAgent, type ResetAgentSession, type TestAdapterEnvironment, type UpdateAgentPermissions, } from "./agent.js";
export { createProjectSchema, updateProjectSchema, createProjectWorkspaceSchema, updateProjectWorkspaceSchema, projectExecutionWorkspacePolicySchema, type CreateProject, type UpdateProject, type CreateProjectWorkspace, type UpdateProjectWorkspace, type ProjectExecutionWorkspacePolicy, } from "./project.js";
export { createIssueSchema, createIssueLabelSchema, updateIssueSchema, issueExecutionWorkspaceSettingsSchema, checkoutIssueSchema, addIssueCommentSchema, linkIssueApprovalSchema, createIssueAttachmentMetadataSchema, issueDocumentFormatSchema, issueDocumentKeySchema, upsertIssueDocumentSchema, type CreateIssue, type CreateIssueLabel, type UpdateIssue, type IssueExecutionWorkspaceSettings, type CheckoutIssue, type AddIssueComment, type LinkIssueApproval, type CreateIssueAttachmentMetadata, type IssueDocumentFormat, type UpsertIssueDocument, } from "./issue.js";
export { createIssueWorkProductSchema, updateIssueWorkProductSchema, issueWorkProductTypeSchema, issueWorkProductStatusSchema, issueWorkProductReviewStateSchema, type CreateIssueWorkProduct, type UpdateIssueWorkProduct, } from "./work-product.js";
export { updateExecutionWorkspaceSchema, executionWorkspaceStatusSchema, type UpdateExecutionWorkspace, } from "./execution-workspace.js";
export { createGoalSchema, updateGoalSchema, type CreateGoal, type UpdateGoal, } from "./goal.js";
export { createApprovalSchema, resolveApprovalSchema, requestApprovalRevisionSchema, resubmitApprovalSchema, addApprovalCommentSchema, type CreateApproval, type ResolveApproval, type RequestApprovalRevision, type ResubmitApproval, type AddApprovalComment, } from "./approval.js";
export { envBindingPlainSchema, envBindingSecretRefSchema, envBindingSchema, envConfigSchema, createSecretSchema, rotateSecretSchema, updateSecretSchema, type CreateSecret, type RotateSecret, type UpdateSecret, } from "./secret.js";
export { createRoutineSchema, updateRoutineSchema, createRoutineTriggerSchema, updateRoutineTriggerSchema, runRoutineSchema, rotateRoutineTriggerSecretSchema, type CreateRoutine, type UpdateRoutine, type CreateRoutineTrigger, type UpdateRoutineTrigger, type RunRoutine, type RotateRoutineTriggerSecret, } from "./routine.js";
export { createCostEventSchema, updateBudgetSchema, type CreateCostEvent, type UpdateBudget, } from "./cost.js";
export { createFinanceEventSchema, type CreateFinanceEvent, } from "./finance.js";
export { createAssetImageMetadataSchema, type CreateAssetImageMetadata, } from "./asset.js";
export { createCompanyInviteSchema, createOpenClawInvitePromptSchema, acceptInviteSchema, listJoinRequestsQuerySchema, claimJoinRequestApiKeySchema, boardCliAuthAccessLevelSchema, createCliAuthChallengeSchema, resolveCliAuthChallengeSchema, updateMemberPermissionsSchema, updateUserCompanyAccessSchema, type CreateCompanyInvite, type CreateOpenClawInvitePrompt, type AcceptInvite, type ListJoinRequestsQuery, type ClaimJoinRequestApiKey, type BoardCliAuthAccessLevel, type CreateCliAuthChallenge, type ResolveCliAuthChallenge, type UpdateMemberPermissions, type UpdateUserCompanyAccess, } from "./access.js";
export { jsonSchemaSchema, pluginJobDeclarationSchema, pluginWebhookDeclarationSchema, pluginToolDeclarationSchema, pluginUiSlotDeclarationSchema, pluginLauncherActionDeclarationSchema, pluginLauncherRenderDeclarationSchema, pluginLauncherDeclarationSchema, pluginManifestV1Schema, installPluginSchema, upsertPluginConfigSchema, patchPluginConfigSchema, updatePluginStatusSchema, uninstallPluginSchema, pluginStateScopeKeySchema, setPluginStateSchema, listPluginStateSchema, type PluginJobDeclarationInput, type PluginWebhookDeclarationInput, type PluginToolDeclarationInput, type PluginUiSlotDeclarationInput, type PluginLauncherActionDeclarationInput, type PluginLauncherRenderDeclarationInput, type PluginLauncherDeclarationInput, type PluginManifestV1Input, type InstallPlugin, type UpsertPluginConfig, type PatchPluginConfig, type UpdatePluginStatus, type UninstallPlugin, type PluginStateScopeKey, type SetPluginState, type ListPluginState, } from "./plugin.js";
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,21 @@
export { instanceGeneralSettingsSchema, patchInstanceGeneralSettingsSchema, instanceExperimentalSettingsSchema, patchInstanceExperimentalSettingsSchema, } from "./instance.js";
export { upsertBudgetPolicySchema, resolveBudgetIncidentSchema, } from "./budget.js";
export { createCompanySchema, updateCompanySchema, updateCompanyBrandingSchema, } from "./company.js";
export { companySkillSourceTypeSchema, companySkillTrustLevelSchema, companySkillCompatibilitySchema, companySkillSourceBadgeSchema, companySkillFileInventoryEntrySchema, companySkillSchema, companySkillListItemSchema, companySkillUsageAgentSchema, companySkillDetailSchema, companySkillUpdateStatusSchema, companySkillImportSchema, companySkillProjectScanRequestSchema, companySkillProjectScanSkippedSchema, companySkillProjectScanConflictSchema, companySkillProjectScanResultSchema, companySkillCreateSchema, companySkillFileDetailSchema, companySkillFileUpdateSchema, } from "./company-skill.js";
export { agentSkillStateSchema, agentSkillSyncModeSchema, agentSkillEntrySchema, agentSkillSnapshotSchema, agentSkillSyncSchema, } from "./adapter-skills.js";
export { portabilityIncludeSchema, portabilityEnvInputSchema, portabilityCompanyManifestEntrySchema, portabilitySidebarOrderSchema, portabilityAgentManifestEntrySchema, portabilitySkillManifestEntrySchema, portabilityManifestSchema, portabilitySourceSchema, portabilityTargetSchema, portabilityAgentSelectionSchema, portabilityCollisionStrategySchema, companyPortabilityExportSchema, companyPortabilityPreviewSchema, companyPortabilityImportSchema, } from "./company-portability.js";
export { createAgentSchema, createAgentHireSchema, updateAgentSchema, agentInstructionsBundleModeSchema, updateAgentInstructionsBundleSchema, upsertAgentInstructionsFileSchema, updateAgentInstructionsPathSchema, createAgentKeySchema, wakeAgentSchema, resetAgentSessionSchema, testAdapterEnvironmentSchema, agentPermissionsSchema, updateAgentPermissionsSchema, } from "./agent.js";
export { createProjectSchema, updateProjectSchema, createProjectWorkspaceSchema, updateProjectWorkspaceSchema, projectExecutionWorkspacePolicySchema, } from "./project.js";
export { createIssueSchema, createIssueLabelSchema, updateIssueSchema, issueExecutionWorkspaceSettingsSchema, checkoutIssueSchema, addIssueCommentSchema, linkIssueApprovalSchema, createIssueAttachmentMetadataSchema, issueDocumentFormatSchema, issueDocumentKeySchema, upsertIssueDocumentSchema, } from "./issue.js";
export { createIssueWorkProductSchema, updateIssueWorkProductSchema, issueWorkProductTypeSchema, issueWorkProductStatusSchema, issueWorkProductReviewStateSchema, } from "./work-product.js";
export { updateExecutionWorkspaceSchema, executionWorkspaceStatusSchema, } from "./execution-workspace.js";
export { createGoalSchema, updateGoalSchema, } from "./goal.js";
export { createApprovalSchema, resolveApprovalSchema, requestApprovalRevisionSchema, resubmitApprovalSchema, addApprovalCommentSchema, } from "./approval.js";
export { envBindingPlainSchema, envBindingSecretRefSchema, envBindingSchema, envConfigSchema, createSecretSchema, rotateSecretSchema, updateSecretSchema, } from "./secret.js";
export { createRoutineSchema, updateRoutineSchema, createRoutineTriggerSchema, updateRoutineTriggerSchema, runRoutineSchema, rotateRoutineTriggerSecretSchema, } from "./routine.js";
export { createCostEventSchema, updateBudgetSchema, } from "./cost.js";
export { createFinanceEventSchema, } from "./finance.js";
export { createAssetImageMetadataSchema, } from "./asset.js";
export { createCompanyInviteSchema, createOpenClawInvitePromptSchema, acceptInviteSchema, listJoinRequestsQuerySchema, claimJoinRequestApiKeySchema, boardCliAuthAccessLevelSchema, createCliAuthChallengeSchema, resolveCliAuthChallengeSchema, updateMemberPermissionsSchema, updateUserCompanyAccessSchema, } from "./access.js";
export { jsonSchemaSchema, pluginJobDeclarationSchema, pluginWebhookDeclarationSchema, pluginToolDeclarationSchema, pluginUiSlotDeclarationSchema, pluginLauncherActionDeclarationSchema, pluginLauncherRenderDeclarationSchema, pluginLauncherDeclarationSchema, pluginManifestV1Schema, installPluginSchema, upsertPluginConfigSchema, patchPluginConfigSchema, updatePluginStatusSchema, uninstallPluginSchema, pluginStateScopeKeySchema, setPluginStateSchema, listPluginStateSchema, } from "./plugin.js";
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAGlC,kCAAkC,EAClC,uCAAuC,GAGxC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAG5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,2BAA2B,GAI5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,6BAA6B,EAC7B,oCAAoC,EACpC,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,oCAAoC,EACpC,oCAAoC,EACpC,qCAAqC,EACrC,mCAAmC,EACnC,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,GAK7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qCAAqC,EACrC,6BAA6B,EAC7B,mCAAmC,EACnC,mCAAmC,EACnC,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,kCAAkC,EAClC,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,GAI/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EACjC,iCAAiC,EACjC,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,GAY7B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,4BAA4B,EAC5B,qCAAqC,GAMtC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,qCAAqC,EACrC,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,mCAAmC,EACnC,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAW1B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,iCAAiC,GAGlC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,GAMzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAInB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,EAChB,gCAAgC,GAOjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAGnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,8BAA8B,GAE/B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,GAW9B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,qCAAqC,EACrC,qCAAqC,EACrC,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,GAiBtB,MAAM,aAAa,CAAC"}

View File

@@ -0,0 +1,40 @@
import { z } from "zod";
export declare const instanceGeneralSettingsSchema: z.ZodObject<{
censorUsernameInLogs: z.ZodDefault<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
censorUsernameInLogs: boolean;
}, {
censorUsernameInLogs?: boolean | undefined;
}>;
export declare const patchInstanceGeneralSettingsSchema: z.ZodObject<{
censorUsernameInLogs: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, "strict", z.ZodTypeAny, {
censorUsernameInLogs?: boolean | undefined;
}, {
censorUsernameInLogs?: boolean | undefined;
}>;
export declare const instanceExperimentalSettingsSchema: z.ZodObject<{
enableIsolatedWorkspaces: z.ZodDefault<z.ZodBoolean>;
autoRestartDevServerWhenIdle: z.ZodDefault<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
enableIsolatedWorkspaces: boolean;
autoRestartDevServerWhenIdle: boolean;
}, {
enableIsolatedWorkspaces?: boolean | undefined;
autoRestartDevServerWhenIdle?: boolean | undefined;
}>;
export declare const patchInstanceExperimentalSettingsSchema: z.ZodObject<{
enableIsolatedWorkspaces: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
autoRestartDevServerWhenIdle: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, "strict", z.ZodTypeAny, {
enableIsolatedWorkspaces?: boolean | undefined;
autoRestartDevServerWhenIdle?: boolean | undefined;
}, {
enableIsolatedWorkspaces?: boolean | undefined;
autoRestartDevServerWhenIdle?: boolean | undefined;
}>;
export type InstanceGeneralSettings = z.infer<typeof instanceGeneralSettingsSchema>;
export type PatchInstanceGeneralSettings = z.infer<typeof patchInstanceGeneralSettingsSchema>;
export type InstanceExperimentalSettings = z.infer<typeof instanceExperimentalSettingsSchema>;
export type PatchInstanceExperimentalSettings = z.infer<typeof patchInstanceExperimentalSettingsSchema>;
//# sourceMappingURL=instance.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../src/validators/instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,6BAA6B;;;;;;EAE/B,CAAC;AAEZ,eAAO,MAAM,kCAAkC;;;;;;EAA0C,CAAC;AAE1F,eAAO,MAAM,kCAAkC;;;;;;;;;EAGpC,CAAC;AAEZ,eAAO,MAAM,uCAAuC;;;;;;;;;EAA+C,CAAC;AAEpG,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC"}

View File

@@ -0,0 +1,11 @@
import { z } from "zod";
export const instanceGeneralSettingsSchema = z.object({
censorUsernameInLogs: z.boolean().default(false),
}).strict();
export const patchInstanceGeneralSettingsSchema = instanceGeneralSettingsSchema.partial();
export const instanceExperimentalSettingsSchema = z.object({
enableIsolatedWorkspaces: z.boolean().default(false),
autoRestartDevServerWhenIdle: z.boolean().default(false),
}).strict();
export const patchInstanceExperimentalSettingsSchema = instanceExperimentalSettingsSchema.partial();
//# sourceMappingURL=instance.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../src/validators/instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACjD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kCAAkC,GAAG,6BAA6B,CAAC,OAAO,EAAE,CAAC;AAE1F,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpD,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACzD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uCAAuC,GAAG,kCAAkC,CAAC,OAAO,EAAE,CAAC"}

View File

@@ -0,0 +1,427 @@
import { z } from "zod";
export declare const issueExecutionWorkspaceSettingsSchema: z.ZodObject<{
mode: z.ZodOptional<z.ZodEnum<["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]>>;
workspaceStrategy: z.ZodNullable<z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]>>;
baseRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
branchTemplate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
worktreeParentDir: z.ZodNullable<z.ZodOptional<z.ZodString>>;
provisionCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
teardownCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}>>>;
workspaceRuntime: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strict", z.ZodTypeAny, {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
}, {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
}>;
export declare const issueAssigneeAdapterOverridesSchema: z.ZodObject<{
adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
useProjectWorkspace: z.ZodOptional<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
}, {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
}>;
export declare const createIssueSchema: z.ZodObject<{
projectId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
projectWorkspaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
goalId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
parentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
title: z.ZodString;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
status: z.ZodDefault<z.ZodOptional<z.ZodEnum<["backlog", "todo", "in_progress", "in_review", "done", "blocked", "cancelled"]>>>;
priority: z.ZodDefault<z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>>;
assigneeAgentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
assigneeUserId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
requestDepth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
billingCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
assigneeAdapterOverrides: z.ZodNullable<z.ZodOptional<z.ZodObject<{
adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
useProjectWorkspace: z.ZodOptional<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
}, {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
}>>>;
executionWorkspaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
executionWorkspacePreference: z.ZodNullable<z.ZodOptional<z.ZodEnum<["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]>>>;
executionWorkspaceSettings: z.ZodNullable<z.ZodOptional<z.ZodObject<{
mode: z.ZodOptional<z.ZodEnum<["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]>>;
workspaceStrategy: z.ZodNullable<z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]>>;
baseRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
branchTemplate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
worktreeParentDir: z.ZodNullable<z.ZodOptional<z.ZodString>>;
provisionCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
teardownCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}>>>;
workspaceRuntime: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strict", z.ZodTypeAny, {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
}, {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
}>>>;
labelIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
status: "backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled";
title: string;
priority: "critical" | "high" | "medium" | "low";
requestDepth: number;
description?: string | null | undefined;
projectId?: string | null | undefined;
labelIds?: string[] | undefined;
billingCode?: string | null | undefined;
executionWorkspaceSettings?: {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
} | null | undefined;
assigneeAdapterOverrides?: {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
} | null | undefined;
goalId?: string | null | undefined;
projectWorkspaceId?: string | null | undefined;
parentId?: string | null | undefined;
assigneeAgentId?: string | null | undefined;
assigneeUserId?: string | null | undefined;
executionWorkspaceId?: string | null | undefined;
executionWorkspacePreference?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | null | undefined;
}, {
title: string;
status?: "backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled" | undefined;
description?: string | null | undefined;
projectId?: string | null | undefined;
priority?: "critical" | "high" | "medium" | "low" | undefined;
labelIds?: string[] | undefined;
billingCode?: string | null | undefined;
executionWorkspaceSettings?: {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
} | null | undefined;
assigneeAdapterOverrides?: {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
} | null | undefined;
goalId?: string | null | undefined;
projectWorkspaceId?: string | null | undefined;
parentId?: string | null | undefined;
assigneeAgentId?: string | null | undefined;
assigneeUserId?: string | null | undefined;
requestDepth?: number | undefined;
executionWorkspaceId?: string | null | undefined;
executionWorkspacePreference?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | null | undefined;
}>;
export type CreateIssue = z.infer<typeof createIssueSchema>;
export declare const createIssueLabelSchema: z.ZodObject<{
name: z.ZodString;
color: z.ZodString;
}, "strip", z.ZodTypeAny, {
name: string;
color: string;
}, {
name: string;
color: string;
}>;
export type CreateIssueLabel = z.infer<typeof createIssueLabelSchema>;
export declare const updateIssueSchema: z.ZodObject<{
projectId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
projectWorkspaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
goalId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
parentId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
title: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
status: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["backlog", "todo", "in_progress", "in_review", "done", "blocked", "cancelled"]>>>>;
priority: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>>>;
assigneeAgentId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
assigneeUserId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
requestDepth: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodNumber>>>;
billingCode: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
assigneeAdapterOverrides: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodObject<{
adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
useProjectWorkspace: z.ZodOptional<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
}, {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
}>>>>;
executionWorkspaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
executionWorkspacePreference: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodEnum<["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]>>>>;
executionWorkspaceSettings: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodObject<{
mode: z.ZodOptional<z.ZodEnum<["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]>>;
workspaceStrategy: z.ZodNullable<z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]>>;
baseRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
branchTemplate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
worktreeParentDir: z.ZodNullable<z.ZodOptional<z.ZodString>>;
provisionCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
teardownCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}>>>;
workspaceRuntime: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strict", z.ZodTypeAny, {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
}, {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
}>>>>;
labelIds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
} & {
comment: z.ZodOptional<z.ZodString>;
reopen: z.ZodOptional<z.ZodBoolean>;
hiddenAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
comment?: string | undefined;
status?: "backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled" | undefined;
description?: string | null | undefined;
projectId?: string | null | undefined;
title?: string | undefined;
priority?: "critical" | "high" | "medium" | "low" | undefined;
labelIds?: string[] | undefined;
billingCode?: string | null | undefined;
executionWorkspaceSettings?: {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
} | null | undefined;
assigneeAdapterOverrides?: {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
} | null | undefined;
goalId?: string | null | undefined;
projectWorkspaceId?: string | null | undefined;
parentId?: string | null | undefined;
assigneeAgentId?: string | null | undefined;
assigneeUserId?: string | null | undefined;
requestDepth?: number | undefined;
executionWorkspaceId?: string | null | undefined;
executionWorkspacePreference?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | null | undefined;
reopen?: boolean | undefined;
hiddenAt?: string | null | undefined;
}, {
comment?: string | undefined;
status?: "backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled" | undefined;
description?: string | null | undefined;
projectId?: string | null | undefined;
title?: string | undefined;
priority?: "critical" | "high" | "medium" | "low" | undefined;
labelIds?: string[] | undefined;
billingCode?: string | null | undefined;
executionWorkspaceSettings?: {
mode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
} | null | undefined;
assigneeAdapterOverrides?: {
adapterConfig?: Record<string, unknown> | undefined;
useProjectWorkspace?: boolean | undefined;
} | null | undefined;
goalId?: string | null | undefined;
projectWorkspaceId?: string | null | undefined;
parentId?: string | null | undefined;
assigneeAgentId?: string | null | undefined;
assigneeUserId?: string | null | undefined;
requestDepth?: number | undefined;
executionWorkspaceId?: string | null | undefined;
executionWorkspacePreference?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "inherit" | "reuse_existing" | "agent_default" | null | undefined;
reopen?: boolean | undefined;
hiddenAt?: string | null | undefined;
}>;
export type UpdateIssue = z.infer<typeof updateIssueSchema>;
export type IssueExecutionWorkspaceSettings = z.infer<typeof issueExecutionWorkspaceSettingsSchema>;
export declare const checkoutIssueSchema: z.ZodObject<{
agentId: z.ZodString;
expectedStatuses: z.ZodArray<z.ZodEnum<["backlog", "todo", "in_progress", "in_review", "done", "blocked", "cancelled"]>, "atleastone">;
}, "strip", z.ZodTypeAny, {
agentId: string;
expectedStatuses: ["backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled", ...("backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled")[]];
}, {
agentId: string;
expectedStatuses: ["backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled", ...("backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled")[]];
}>;
export type CheckoutIssue = z.infer<typeof checkoutIssueSchema>;
export declare const addIssueCommentSchema: z.ZodObject<{
body: z.ZodString;
reopen: z.ZodOptional<z.ZodBoolean>;
interrupt: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
body: string;
reopen?: boolean | undefined;
interrupt?: boolean | undefined;
}, {
body: string;
reopen?: boolean | undefined;
interrupt?: boolean | undefined;
}>;
export type AddIssueComment = z.infer<typeof addIssueCommentSchema>;
export declare const linkIssueApprovalSchema: z.ZodObject<{
approvalId: z.ZodString;
}, "strip", z.ZodTypeAny, {
approvalId: string;
}, {
approvalId: string;
}>;
export type LinkIssueApproval = z.infer<typeof linkIssueApprovalSchema>;
export declare const createIssueAttachmentMetadataSchema: z.ZodObject<{
issueCommentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
issueCommentId?: string | null | undefined;
}, {
issueCommentId?: string | null | undefined;
}>;
export type CreateIssueAttachmentMetadata = z.infer<typeof createIssueAttachmentMetadataSchema>;
export declare const ISSUE_DOCUMENT_FORMATS: readonly ["markdown"];
export declare const issueDocumentFormatSchema: z.ZodEnum<["markdown"]>;
export declare const issueDocumentKeySchema: z.ZodString;
export declare const upsertIssueDocumentSchema: z.ZodObject<{
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
format: z.ZodEnum<["markdown"]>;
body: z.ZodString;
changeSummary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
baseRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
body: string;
format: "markdown";
title?: string | null | undefined;
changeSummary?: string | null | undefined;
baseRevisionId?: string | null | undefined;
}, {
body: string;
format: "markdown";
title?: string | null | undefined;
changeSummary?: string | null | undefined;
baseRevisionId?: string | null | undefined;
}>;
export type IssueDocumentFormat = z.infer<typeof issueDocumentFormatSchema>;
export type UpsertIssueDocument = z.infer<typeof upsertIssueDocumentSchema>;
//# sourceMappingURL=issue.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/validators/issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMvC,CAAC;AAEZ,eAAO,MAAM,mCAAmC;;;;;;;;;EAKrC,CAAC;AAEZ,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,mCAAmC;;;;;;EAE9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,sBAAsB,uBAAwB,CAAC;AAE5D,eAAO,MAAM,yBAAyB,yBAAiC,CAAC;AAExE,eAAO,MAAM,sBAAsB,aAKyD,CAAC;AAE7F,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAMpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}

View File

@@ -0,0 +1,91 @@
import { z } from "zod";
import { ISSUE_PRIORITIES, ISSUE_STATUSES } from "../constants.js";
const executionWorkspaceStrategySchema = z
.object({
type: z.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
baseRef: z.string().optional().nullable(),
branchTemplate: z.string().optional().nullable(),
worktreeParentDir: z.string().optional().nullable(),
provisionCommand: z.string().optional().nullable(),
teardownCommand: z.string().optional().nullable(),
})
.strict();
export const issueExecutionWorkspaceSettingsSchema = z
.object({
mode: z.enum(["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]).optional(),
workspaceStrategy: executionWorkspaceStrategySchema.optional().nullable(),
workspaceRuntime: z.record(z.unknown()).optional().nullable(),
})
.strict();
export const issueAssigneeAdapterOverridesSchema = z
.object({
adapterConfig: z.record(z.unknown()).optional(),
useProjectWorkspace: z.boolean().optional(),
})
.strict();
export const createIssueSchema = z.object({
projectId: z.string().uuid().optional().nullable(),
projectWorkspaceId: z.string().uuid().optional().nullable(),
goalId: z.string().uuid().optional().nullable(),
parentId: z.string().uuid().optional().nullable(),
title: z.string().min(1),
description: z.string().optional().nullable(),
status: z.enum(ISSUE_STATUSES).optional().default("backlog"),
priority: z.enum(ISSUE_PRIORITIES).optional().default("medium"),
assigneeAgentId: z.string().uuid().optional().nullable(),
assigneeUserId: z.string().optional().nullable(),
requestDepth: z.number().int().nonnegative().optional().default(0),
billingCode: z.string().optional().nullable(),
assigneeAdapterOverrides: issueAssigneeAdapterOverridesSchema.optional().nullable(),
executionWorkspaceId: z.string().uuid().optional().nullable(),
executionWorkspacePreference: z.enum([
"inherit",
"shared_workspace",
"isolated_workspace",
"operator_branch",
"reuse_existing",
"agent_default",
]).optional().nullable(),
executionWorkspaceSettings: issueExecutionWorkspaceSettingsSchema.optional().nullable(),
labelIds: z.array(z.string().uuid()).optional(),
});
export const createIssueLabelSchema = z.object({
name: z.string().trim().min(1).max(48),
color: z.string().regex(/^#(?:[0-9a-fA-F]{6})$/, "Color must be a 6-digit hex value"),
});
export const updateIssueSchema = createIssueSchema.partial().extend({
comment: z.string().min(1).optional(),
reopen: z.boolean().optional(),
hiddenAt: z.string().datetime().nullable().optional(),
});
export const checkoutIssueSchema = z.object({
agentId: z.string().uuid(),
expectedStatuses: z.array(z.enum(ISSUE_STATUSES)).nonempty(),
});
export const addIssueCommentSchema = z.object({
body: z.string().min(1),
reopen: z.boolean().optional(),
interrupt: z.boolean().optional(),
});
export const linkIssueApprovalSchema = z.object({
approvalId: z.string().uuid(),
});
export const createIssueAttachmentMetadataSchema = z.object({
issueCommentId: z.string().uuid().optional().nullable(),
});
export const ISSUE_DOCUMENT_FORMATS = ["markdown"];
export const issueDocumentFormatSchema = z.enum(ISSUE_DOCUMENT_FORMATS);
export const issueDocumentKeySchema = z
.string()
.trim()
.min(1)
.max(64)
.regex(/^[a-z0-9][a-z0-9_-]*$/, "Document key must be lowercase letters, numbers, _ or -");
export const upsertIssueDocumentSchema = z.object({
title: z.string().trim().max(200).nullable().optional(),
format: issueDocumentFormatSchema,
body: z.string().max(524288),
changeSummary: z.string().trim().max(500).nullable().optional(),
baseRevisionId: z.string().uuid().nullable().optional(),
});
//# sourceMappingURL=issue.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/validators/issue.ts"],"names":[],"mappings":"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"}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/validators/plugin.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,547 @@
import { z } from "zod";
import { PLUGIN_STATUSES, PLUGIN_CATEGORIES, PLUGIN_CAPABILITIES, PLUGIN_UI_SLOT_TYPES, PLUGIN_UI_SLOT_ENTITY_TYPES, PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS, PLUGIN_LAUNCHER_PLACEMENT_ZONES, PLUGIN_LAUNCHER_ACTIONS, PLUGIN_LAUNCHER_BOUNDS, PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS, PLUGIN_STATE_SCOPE_KINDS, } from "../constants.js";
// ---------------------------------------------------------------------------
// JSON Schema placeholder a permissive validator for JSON Schema objects
// ---------------------------------------------------------------------------
/**
* Permissive validator for JSON Schema objects. Accepts any `Record<string, unknown>`
* that contains at least a `type`, `$ref`, or composition keyword (`oneOf`/`anyOf`/`allOf`).
* Empty objects are also accepted.
*
* Used to validate `instanceConfigSchema` and `parametersSchema` fields in the
* plugin manifest without fully parsing JSON Schema.
*
* @see PLUGIN_SPEC.md §10.1 — Manifest shape
*/
export const jsonSchemaSchema = z.record(z.unknown()).refine((val) => {
// Must have a "type" field if non-empty, or be a valid JSON Schema object
if (Object.keys(val).length === 0)
return true;
return typeof val.type === "string" || val.$ref !== undefined || val.oneOf !== undefined || val.anyOf !== undefined || val.allOf !== undefined;
}, { message: "Must be a valid JSON Schema object (requires at least a 'type', '$ref', or composition keyword)" });
// ---------------------------------------------------------------------------
// Manifest sub-type schemas
// ---------------------------------------------------------------------------
/**
* Validates a {@link PluginJobDeclaration} — a scheduled job declared in the
* plugin manifest. Requires `jobKey` and `displayName`; `description` and
* `schedule` (cron expression) are optional.
*
* @see PLUGIN_SPEC.md §17 — Scheduled Jobs
*/
/**
* Validates a cron expression has exactly 5 whitespace-separated fields,
* each containing only valid cron characters (digits, *, /, -, ,).
*
* Valid tokens per field: *, N, N-M, N/S, * /S, N-M/S, and comma-separated lists.
*/
const CRON_FIELD_PATTERN = /^(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?)(?:,(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?))*$/;
function isValidCronExpression(expression) {
const trimmed = expression.trim();
if (!trimmed)
return false;
const fields = trimmed.split(/\s+/);
if (fields.length !== 5)
return false;
return fields.every((f) => CRON_FIELD_PATTERN.test(f));
}
export const pluginJobDeclarationSchema = z.object({
jobKey: z.string().min(1),
displayName: z.string().min(1),
description: z.string().optional(),
schedule: z.string().refine((val) => isValidCronExpression(val), { message: "schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')" }).optional(),
});
/**
* Validates a {@link PluginWebhookDeclaration} — a webhook endpoint declared
* in the plugin manifest. Requires `endpointKey` and `displayName`.
*
* @see PLUGIN_SPEC.md §18 — Webhooks
*/
export const pluginWebhookDeclarationSchema = z.object({
endpointKey: z.string().min(1),
displayName: z.string().min(1),
description: z.string().optional(),
});
/**
* Validates a {@link PluginToolDeclaration} — an agent tool contributed by the
* plugin. Requires `name`, `displayName`, `description`, and a valid
* `parametersSchema`. Requires the `agent.tools.register` capability.
*
* @see PLUGIN_SPEC.md §11 — Agent Tools
*/
export const pluginToolDeclarationSchema = z.object({
name: z.string().min(1),
displayName: z.string().min(1),
description: z.string().min(1),
parametersSchema: jsonSchemaSchema,
});
/**
* Validates a {@link PluginUiSlotDeclaration} — a UI extension slot the plugin
* fills with a React component. Includes `superRefine` checks for slot-specific
* requirements such as `entityTypes` for context-sensitive slots.
*
* @see PLUGIN_SPEC.md §19 — UI Extension Model
*/
export const pluginUiSlotDeclarationSchema = z.object({
type: z.enum(PLUGIN_UI_SLOT_TYPES),
id: z.string().min(1),
displayName: z.string().min(1),
exportName: z.string().min(1),
entityTypes: z.array(z.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
routePath: z.string().regex(/^[a-z0-9][a-z0-9-]*$/, {
message: "routePath must be a lowercase single-segment slug (letters, numbers, hyphens)",
}).optional(),
order: z.number().int().optional(),
}).superRefine((value, ctx) => {
// context-sensitive slots require explicit entity targeting.
const entityScopedTypes = ["detailTab", "taskDetailView", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "projectSidebarItem"];
if (entityScopedTypes.includes(value.type)
&& (!value.entityTypes || value.entityTypes.length === 0)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `${value.type} slots require at least one entityType`,
path: ["entityTypes"],
});
}
// projectSidebarItem only makes sense for entityType "project".
if (value.type === "projectSidebarItem" && value.entityTypes && !value.entityTypes.includes("project")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "projectSidebarItem slots require entityTypes to include \"project\"",
path: ["entityTypes"],
});
}
// commentAnnotation only makes sense for entityType "comment".
if (value.type === "commentAnnotation" && value.entityTypes && !value.entityTypes.includes("comment")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "commentAnnotation slots require entityTypes to include \"comment\"",
path: ["entityTypes"],
});
}
// commentContextMenuItem only makes sense for entityType "comment".
if (value.type === "commentContextMenuItem" && value.entityTypes && !value.entityTypes.includes("comment")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "commentContextMenuItem slots require entityTypes to include \"comment\"",
path: ["entityTypes"],
});
}
if (value.routePath && value.type !== "page") {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "routePath is only supported for page slots",
path: ["routePath"],
});
}
if (value.routePath && PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS.includes(value.routePath)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `routePath "${value.routePath}" is reserved by the host`,
path: ["routePath"],
});
}
});
const entityScopedLauncherPlacementZones = [
"detailTab",
"taskDetailView",
"contextMenuItem",
"commentAnnotation",
"commentContextMenuItem",
"projectSidebarItem",
];
const launcherBoundsByEnvironment = {
hostInline: ["inline", "compact", "default"],
hostOverlay: ["compact", "default", "wide", "full"],
hostRoute: ["default", "wide", "full"],
external: [],
iframe: ["compact", "default", "wide", "full"],
};
/**
* Validates the action payload for a declarative plugin launcher.
*/
export const pluginLauncherActionDeclarationSchema = z.object({
type: z.enum(PLUGIN_LAUNCHER_ACTIONS),
target: z.string().min(1),
params: z.record(z.unknown()).optional(),
}).superRefine((value, ctx) => {
if (value.type === "performAction" && value.target.includes("/")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "performAction launchers must target an action key, not a route or URL",
path: ["target"],
});
}
if (value.type === "navigate" && /^https?:\/\//.test(value.target)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "navigate launchers must target a host route, not an absolute URL",
path: ["target"],
});
}
});
/**
* Validates optional render hints for a plugin launcher destination.
*/
export const pluginLauncherRenderDeclarationSchema = z.object({
environment: z.enum(PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS),
bounds: z.enum(PLUGIN_LAUNCHER_BOUNDS).optional(),
}).superRefine((value, ctx) => {
if (!value.bounds) {
return;
}
const supportedBounds = launcherBoundsByEnvironment[value.environment];
if (!supportedBounds.includes(value.bounds)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `bounds "${value.bounds}" is not supported for render environment "${value.environment}"`,
path: ["bounds"],
});
}
});
/**
* Validates declarative launcher metadata in a plugin manifest.
*/
export const pluginLauncherDeclarationSchema = z.object({
id: z.string().min(1),
displayName: z.string().min(1),
description: z.string().optional(),
placementZone: z.enum(PLUGIN_LAUNCHER_PLACEMENT_ZONES),
exportName: z.string().min(1).optional(),
entityTypes: z.array(z.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
order: z.number().int().optional(),
action: pluginLauncherActionDeclarationSchema,
render: pluginLauncherRenderDeclarationSchema.optional(),
}).superRefine((value, ctx) => {
if (entityScopedLauncherPlacementZones.some((zone) => zone === value.placementZone)
&& (!value.entityTypes || value.entityTypes.length === 0)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `${value.placementZone} launchers require at least one entityType`,
path: ["entityTypes"],
});
}
if (value.placementZone === "projectSidebarItem"
&& value.entityTypes
&& !value.entityTypes.includes("project")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "projectSidebarItem launchers require entityTypes to include \"project\"",
path: ["entityTypes"],
});
}
if (value.action.type === "performAction" && value.render) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "performAction launchers cannot declare render hints",
path: ["render"],
});
}
if (["openModal", "openDrawer", "openPopover"].includes(value.action.type)
&& !value.render) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `${value.action.type} launchers require render metadata`,
path: ["render"],
});
}
if (value.action.type === "openModal" && value.render?.environment === "hostInline") {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "openModal launchers cannot use the hostInline render environment",
path: ["render", "environment"],
});
}
if (value.action.type === "openDrawer"
&& value.render
&& !["hostOverlay", "iframe"].includes(value.render.environment)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "openDrawer launchers must use hostOverlay or iframe render environments",
path: ["render", "environment"],
});
}
if (value.action.type === "openPopover" && value.render?.environment === "hostRoute") {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "openPopover launchers cannot use the hostRoute render environment",
path: ["render", "environment"],
});
}
});
// ---------------------------------------------------------------------------
// Plugin Manifest V1 schema
// ---------------------------------------------------------------------------
/**
* Zod schema for {@link PaperclipPluginManifestV1} — the complete runtime
* validator for plugin manifests read at install time.
*
* Field-level constraints (see PLUGIN_SPEC.md §10.1 for the normative rules):
*
* | Field | Type | Constraints |
* |--------------------------|------------|----------------------------------------------|
* | `id` | string | `^[a-z0-9][a-z0-9._-]*$` |
* | `apiVersion` | literal 1 | must equal `PLUGIN_API_VERSION` |
* | `version` | string | semver (`\d+\.\d+\.\d+`) |
* | `displayName` | string | 1100 chars |
* | `description` | string | 1500 chars |
* | `author` | string | 1200 chars |
* | `categories` | enum[] | at least one; values from PLUGIN_CATEGORIES |
* | `minimumHostVersion` | string? | semver lower bound if present, no leading `v`|
* | `minimumPaperclipVersion`| string? | legacy alias of `minimumHostVersion` |
* | `capabilities` | enum[] | at least one; values from PLUGIN_CAPABILITIES|
* | `entrypoints.worker` | string | min 1 char |
* | `entrypoints.ui` | string? | required when `ui.slots` is declared |
*
* Cross-field rules enforced via `superRefine`:
* - `entrypoints.ui` required when `ui.slots` declared
* - `agent.tools.register` capability required when `tools` declared
* - `jobs.schedule` capability required when `jobs` declared
* - `webhooks.receive` capability required when `webhooks` declared
* - duplicate `jobs[].jobKey` values are rejected
* - duplicate `webhooks[].endpointKey` values are rejected
* - duplicate `tools[].name` values are rejected
* - duplicate `ui.slots[].id` values are rejected
*
* @see PLUGIN_SPEC.md §10.1 — Manifest shape
* @see {@link PaperclipPluginManifestV1} — the inferred TypeScript type
*/
export const pluginManifestV1Schema = z.object({
id: z.string().min(1).regex(/^[a-z0-9][a-z0-9._-]*$/, "Plugin id must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"),
apiVersion: z.literal(1),
version: z.string().min(1).regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "Version must follow semver (e.g. 1.0.0 or 1.0.0-beta.1)"),
displayName: z.string().min(1).max(100),
description: z.string().min(1).max(500),
author: z.string().min(1).max(200),
categories: z.array(z.enum(PLUGIN_CATEGORIES)).min(1),
minimumHostVersion: z.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "minimumHostVersion must follow semver (e.g. 1.0.0)").optional(),
minimumPaperclipVersion: z.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "minimumPaperclipVersion must follow semver (e.g. 1.0.0)").optional(),
capabilities: z.array(z.enum(PLUGIN_CAPABILITIES)).min(1),
entrypoints: z.object({
worker: z.string().min(1),
ui: z.string().min(1).optional(),
}),
instanceConfigSchema: jsonSchemaSchema.optional(),
jobs: z.array(pluginJobDeclarationSchema).optional(),
webhooks: z.array(pluginWebhookDeclarationSchema).optional(),
tools: z.array(pluginToolDeclarationSchema).optional(),
launchers: z.array(pluginLauncherDeclarationSchema).optional(),
ui: z.object({
slots: z.array(pluginUiSlotDeclarationSchema).min(1).optional(),
launchers: z.array(pluginLauncherDeclarationSchema).optional(),
}).optional(),
}).superRefine((manifest, ctx) => {
// ── Entrypoint ↔ UI slot consistency ──────────────────────────────────
// Plugins that declare UI slots must also declare a UI entrypoint so the
// host knows where to load the bundle from (PLUGIN_SPEC.md §10.1).
const hasUiSlots = (manifest.ui?.slots?.length ?? 0) > 0;
const hasUiLaunchers = (manifest.ui?.launchers?.length ?? 0) > 0;
if ((hasUiSlots || hasUiLaunchers) && !manifest.entrypoints.ui) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "entrypoints.ui is required when ui.slots or ui.launchers are declared",
path: ["entrypoints", "ui"],
});
}
if (manifest.minimumHostVersion
&& manifest.minimumPaperclipVersion
&& manifest.minimumHostVersion !== manifest.minimumPaperclipVersion) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "minimumHostVersion and minimumPaperclipVersion must match when both are declared",
path: ["minimumHostVersion"],
});
}
// ── Capability ↔ feature declaration consistency ───────────────────────
// The host enforces capabilities at install and runtime. A plugin must
// declare every capability it needs up-front; silently having more features
// than capabilities would cause runtime rejections.
// tools require agent.tools.register (PLUGIN_SPEC.md §11)
if (manifest.tools && manifest.tools.length > 0) {
if (!manifest.capabilities.includes("agent.tools.register")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "Capability 'agent.tools.register' is required when tools are declared",
path: ["capabilities"],
});
}
}
// jobs require jobs.schedule (PLUGIN_SPEC.md §17)
if (manifest.jobs && manifest.jobs.length > 0) {
if (!manifest.capabilities.includes("jobs.schedule")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "Capability 'jobs.schedule' is required when jobs are declared",
path: ["capabilities"],
});
}
}
// webhooks require webhooks.receive (PLUGIN_SPEC.md §18)
if (manifest.webhooks && manifest.webhooks.length > 0) {
if (!manifest.capabilities.includes("webhooks.receive")) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "Capability 'webhooks.receive' is required when webhooks are declared",
path: ["capabilities"],
});
}
}
// ── Uniqueness checks ──────────────────────────────────────────────────
// Duplicate keys within a plugin's own manifest are always a bug. The host
// would not know which declaration takes precedence, so we reject early.
// job keys must be unique within the plugin (used as identifiers in the DB)
if (manifest.jobs) {
const jobKeys = manifest.jobs.map((j) => j.jobKey);
const duplicates = jobKeys.filter((key, i) => jobKeys.indexOf(key) !== i);
if (duplicates.length > 0) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `Duplicate job keys: ${[...new Set(duplicates)].join(", ")}`,
path: ["jobs"],
});
}
}
// webhook endpoint keys must be unique within the plugin (used in routes)
if (manifest.webhooks) {
const endpointKeys = manifest.webhooks.map((w) => w.endpointKey);
const duplicates = endpointKeys.filter((key, i) => endpointKeys.indexOf(key) !== i);
if (duplicates.length > 0) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `Duplicate webhook endpoint keys: ${[...new Set(duplicates)].join(", ")}`,
path: ["webhooks"],
});
}
}
// tool names must be unique within the plugin (namespaced at runtime)
if (manifest.tools) {
const toolNames = manifest.tools.map((t) => t.name);
const duplicates = toolNames.filter((name, i) => toolNames.indexOf(name) !== i);
if (duplicates.length > 0) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `Duplicate tool names: ${[...new Set(duplicates)].join(", ")}`,
path: ["tools"],
});
}
}
// UI slot ids must be unique within the plugin (namespaced at runtime)
if (manifest.ui) {
if (manifest.ui.slots) {
const slotIds = manifest.ui.slots.map((s) => s.id);
const duplicates = slotIds.filter((id, i) => slotIds.indexOf(id) !== i);
if (duplicates.length > 0) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `Duplicate UI slot ids: ${[...new Set(duplicates)].join(", ")}`,
path: ["ui", "slots"],
});
}
}
}
// launcher ids must be unique within the plugin
const allLaunchers = [
...(manifest.launchers ?? []),
...(manifest.ui?.launchers ?? []),
];
if (allLaunchers.length > 0) {
const launcherIds = allLaunchers.map((launcher) => launcher.id);
const duplicates = launcherIds.filter((id, i) => launcherIds.indexOf(id) !== i);
if (duplicates.length > 0) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: `Duplicate launcher ids: ${[...new Set(duplicates)].join(", ")}`,
path: manifest.ui?.launchers ? ["ui", "launchers"] : ["launchers"],
});
}
}
});
// ---------------------------------------------------------------------------
// Plugin installation / registration request
// ---------------------------------------------------------------------------
/**
* Schema for installing (registering) a plugin.
* The server receives the packageName and resolves the manifest from the
* installed package.
*/
export const installPluginSchema = z.object({
packageName: z.string().min(1),
version: z.string().min(1).optional(),
/** Set by loader for local-path installs so the worker can be resolved. */
packagePath: z.string().min(1).optional(),
});
// ---------------------------------------------------------------------------
// Plugin config (instance configuration) schemas
// ---------------------------------------------------------------------------
/**
* Schema for creating or updating a plugin's instance configuration.
* configJson is validated permissively here; runtime validation against
* the plugin's instanceConfigSchema is done at the service layer.
*/
export const upsertPluginConfigSchema = z.object({
configJson: z.record(z.unknown()),
});
/**
* Schema for partially updating a plugin's instance configuration.
* Allows a partial merge of config values.
*/
export const patchPluginConfigSchema = z.object({
configJson: z.record(z.unknown()),
});
// ---------------------------------------------------------------------------
// Plugin status update
// ---------------------------------------------------------------------------
/**
* Schema for updating a plugin's lifecycle status. Used by the lifecycle
* manager to persist state transitions.
*
* @see {@link PLUGIN_STATUSES} for the valid status values
*/
export const updatePluginStatusSchema = z.object({
status: z.enum(PLUGIN_STATUSES),
lastError: z.string().nullable().optional(),
});
// ---------------------------------------------------------------------------
// Plugin uninstall
// ---------------------------------------------------------------------------
/** Schema for the uninstall request. `removeData` controls hard vs soft delete. */
export const uninstallPluginSchema = z.object({
removeData: z.boolean().optional().default(false),
});
// ---------------------------------------------------------------------------
// Plugin state (key-value storage) schemas
// ---------------------------------------------------------------------------
/**
* Schema for a plugin state scope key — identifies the exact location where
* state is stored. Used by the `ctx.state.get()`, `ctx.state.set()`, and
* `ctx.state.delete()` SDK methods.
*
* @see PLUGIN_SPEC.md §21.3 `plugin_state`
*/
export const pluginStateScopeKeySchema = z.object({
scopeKind: z.enum(PLUGIN_STATE_SCOPE_KINDS),
scopeId: z.string().min(1).optional(),
namespace: z.string().min(1).optional(),
stateKey: z.string().min(1),
});
/**
* Schema for setting a plugin state value.
*/
export const setPluginStateSchema = z.object({
scopeKind: z.enum(PLUGIN_STATE_SCOPE_KINDS),
scopeId: z.string().min(1).optional(),
namespace: z.string().min(1).optional(),
stateKey: z.string().min(1),
/** JSON-serializable value to store. */
value: z.unknown(),
});
/**
* Schema for querying plugin state entries. All fields are optional to allow
* flexible list queries (e.g. all state for a plugin within a scope).
*/
export const listPluginStateSchema = z.object({
scopeKind: z.enum(PLUGIN_STATE_SCOPE_KINDS).optional(),
scopeId: z.string().min(1).optional(),
namespace: z.string().min(1).optional(),
});
//# sourceMappingURL=plugin.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,583 @@
import { z } from "zod";
export declare const projectExecutionWorkspacePolicySchema: z.ZodObject<{
enabled: z.ZodBoolean;
defaultMode: z.ZodOptional<z.ZodEnum<["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]>>;
allowIssueOverride: z.ZodOptional<z.ZodBoolean>;
defaultProjectWorkspaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
workspaceStrategy: z.ZodNullable<z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]>>;
baseRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
branchTemplate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
worktreeParentDir: z.ZodNullable<z.ZodOptional<z.ZodString>>;
provisionCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
teardownCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}>>>;
workspaceRuntime: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
branchPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
pullRequestPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
runtimePolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
cleanupPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strict", z.ZodTypeAny, {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
}, {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
}>;
export declare const createProjectWorkspaceSchema: z.ZodEffects<z.ZodObject<{
isPrimary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
name: z.ZodOptional<z.ZodString>;
sourceType: z.ZodOptional<z.ZodEnum<["local_path", "git_repo", "remote_managed", "non_git_path"]>>;
cwd: z.ZodNullable<z.ZodOptional<z.ZodString>>;
repoUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
repoRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
defaultRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
visibility: z.ZodOptional<z.ZodEnum<["default", "advanced"]>>;
setupCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
cleanupCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
remoteProvider: z.ZodNullable<z.ZodOptional<z.ZodString>>;
remoteWorkspaceRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
sharedWorkspaceKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strip", z.ZodTypeAny, {
isPrimary: boolean;
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}, {
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
isPrimary?: boolean | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}>, {
isPrimary: boolean;
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}, {
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
isPrimary?: boolean | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}>;
export type CreateProjectWorkspace = z.infer<typeof createProjectWorkspaceSchema>;
export declare const updateProjectWorkspaceSchema: z.ZodObject<{
isPrimary: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
sourceType: z.ZodOptional<z.ZodOptional<z.ZodEnum<["local_path", "git_repo", "remote_managed", "non_git_path"]>>>;
cwd: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
repoUrl: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
repoRef: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
defaultRef: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
visibility: z.ZodOptional<z.ZodOptional<z.ZodEnum<["default", "advanced"]>>>;
setupCommand: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
cleanupCommand: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
remoteProvider: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
remoteWorkspaceRef: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
sharedWorkspaceKey: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
metadata: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
}, "strip", z.ZodTypeAny, {
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
isPrimary?: boolean | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}, {
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
isPrimary?: boolean | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}>;
export type UpdateProjectWorkspace = z.infer<typeof updateProjectWorkspaceSchema>;
export declare const createProjectSchema: z.ZodObject<{
workspace: z.ZodOptional<z.ZodEffects<z.ZodObject<{
isPrimary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
name: z.ZodOptional<z.ZodString>;
sourceType: z.ZodOptional<z.ZodEnum<["local_path", "git_repo", "remote_managed", "non_git_path"]>>;
cwd: z.ZodNullable<z.ZodOptional<z.ZodString>>;
repoUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
repoRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
defaultRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
visibility: z.ZodOptional<z.ZodEnum<["default", "advanced"]>>;
setupCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
cleanupCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
remoteProvider: z.ZodNullable<z.ZodOptional<z.ZodString>>;
remoteWorkspaceRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
sharedWorkspaceKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strip", z.ZodTypeAny, {
isPrimary: boolean;
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}, {
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
isPrimary?: boolean | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}>, {
isPrimary: boolean;
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}, {
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
isPrimary?: boolean | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
}>>;
/** @deprecated Use goalIds instead */
goalId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
goalIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
name: z.ZodString;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
status: z.ZodDefault<z.ZodOptional<z.ZodEnum<["backlog", "planned", "in_progress", "completed", "cancelled"]>>>;
leadAgentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
targetDate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
color: z.ZodNullable<z.ZodOptional<z.ZodString>>;
executionWorkspacePolicy: z.ZodNullable<z.ZodOptional<z.ZodObject<{
enabled: z.ZodBoolean;
defaultMode: z.ZodOptional<z.ZodEnum<["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]>>;
allowIssueOverride: z.ZodOptional<z.ZodBoolean>;
defaultProjectWorkspaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
workspaceStrategy: z.ZodNullable<z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]>>;
baseRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
branchTemplate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
worktreeParentDir: z.ZodNullable<z.ZodOptional<z.ZodString>>;
provisionCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
teardownCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}>>>;
workspaceRuntime: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
branchPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
pullRequestPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
runtimePolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
cleanupPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strict", z.ZodTypeAny, {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
}, {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
}>>>;
archivedAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
status: "backlog" | "in_progress" | "cancelled" | "planned" | "completed";
name: string;
workspace?: {
isPrimary: boolean;
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
} | undefined;
description?: string | null | undefined;
targetDate?: string | null | undefined;
color?: string | null | undefined;
executionWorkspacePolicy?: {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
} | null | undefined;
goalId?: string | null | undefined;
goalIds?: string[] | undefined;
leadAgentId?: string | null | undefined;
archivedAt?: string | null | undefined;
}, {
name: string;
workspace?: {
name?: string | undefined;
sourceType?: "local_path" | "git_repo" | "remote_managed" | "non_git_path" | undefined;
metadata?: Record<string, unknown> | null | undefined;
repoUrl?: string | null | undefined;
repoRef?: string | null | undefined;
defaultRef?: string | null | undefined;
visibility?: "default" | "advanced" | undefined;
setupCommand?: string | null | undefined;
cleanupCommand?: string | null | undefined;
isPrimary?: boolean | undefined;
cwd?: string | null | undefined;
remoteWorkspaceRef?: string | null | undefined;
remoteProvider?: string | null | undefined;
sharedWorkspaceKey?: string | null | undefined;
} | undefined;
status?: "backlog" | "in_progress" | "cancelled" | "planned" | "completed" | undefined;
description?: string | null | undefined;
targetDate?: string | null | undefined;
color?: string | null | undefined;
executionWorkspacePolicy?: {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
} | null | undefined;
goalId?: string | null | undefined;
goalIds?: string[] | undefined;
leadAgentId?: string | null | undefined;
archivedAt?: string | null | undefined;
}>;
export type CreateProject = z.infer<typeof createProjectSchema>;
export declare const updateProjectSchema: z.ZodObject<{
goalId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
goalIds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
name: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
status: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["backlog", "planned", "in_progress", "completed", "cancelled"]>>>>;
leadAgentId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
targetDate: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
color: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
executionWorkspacePolicy: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodObject<{
enabled: z.ZodBoolean;
defaultMode: z.ZodOptional<z.ZodEnum<["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]>>;
allowIssueOverride: z.ZodOptional<z.ZodBoolean>;
defaultProjectWorkspaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
workspaceStrategy: z.ZodNullable<z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]>>;
baseRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
branchTemplate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
worktreeParentDir: z.ZodNullable<z.ZodOptional<z.ZodString>>;
provisionCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
teardownCommand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strict", z.ZodTypeAny, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}, {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
}>>>;
workspaceRuntime: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
branchPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
pullRequestPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
runtimePolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
cleanupPolicy: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, "strict", z.ZodTypeAny, {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
}, {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
}>>>>;
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
}, "strip", z.ZodTypeAny, {
status?: "backlog" | "in_progress" | "cancelled" | "planned" | "completed" | undefined;
name?: string | undefined;
description?: string | null | undefined;
targetDate?: string | null | undefined;
color?: string | null | undefined;
executionWorkspacePolicy?: {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
} | null | undefined;
goalId?: string | null | undefined;
goalIds?: string[] | undefined;
leadAgentId?: string | null | undefined;
archivedAt?: string | null | undefined;
}, {
status?: "backlog" | "in_progress" | "cancelled" | "planned" | "completed" | undefined;
name?: string | undefined;
description?: string | null | undefined;
targetDate?: string | null | undefined;
color?: string | null | undefined;
executionWorkspacePolicy?: {
enabled: boolean;
defaultMode?: "shared_workspace" | "isolated_workspace" | "operator_branch" | "adapter_default" | undefined;
allowIssueOverride?: boolean | undefined;
defaultProjectWorkspaceId?: string | null | undefined;
workspaceStrategy?: {
type?: "project_primary" | "git_worktree" | "adapter_managed" | "cloud_sandbox" | undefined;
baseRef?: string | null | undefined;
branchTemplate?: string | null | undefined;
worktreeParentDir?: string | null | undefined;
provisionCommand?: string | null | undefined;
teardownCommand?: string | null | undefined;
} | null | undefined;
workspaceRuntime?: Record<string, unknown> | null | undefined;
branchPolicy?: Record<string, unknown> | null | undefined;
pullRequestPolicy?: Record<string, unknown> | null | undefined;
runtimePolicy?: Record<string, unknown> | null | undefined;
cleanupPolicy?: Record<string, unknown> | null | undefined;
} | null | undefined;
goalId?: string | null | undefined;
goalIds?: string[] | undefined;
leadAgentId?: string | null | undefined;
archivedAt?: string | null | undefined;
}>;
export type UpdateProject = z.infer<typeof updateProjectSchema>;
export type ProjectExecutionWorkspacePolicy = z.infer<typeof projectExecutionWorkspacePolicySchema>;
//# sourceMappingURL=project.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/validators/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAavC,CAAC;AA+CZ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGD,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEb,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAgBlF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAb9B,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBtC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoC,CAAC;AAErE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC"}

View File

@@ -0,0 +1,93 @@
import { z } from "zod";
import { PROJECT_STATUSES } from "../constants.js";
const executionWorkspaceStrategySchema = z
.object({
type: z.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
baseRef: z.string().optional().nullable(),
branchTemplate: z.string().optional().nullable(),
worktreeParentDir: z.string().optional().nullable(),
provisionCommand: z.string().optional().nullable(),
teardownCommand: z.string().optional().nullable(),
})
.strict();
export const projectExecutionWorkspacePolicySchema = z
.object({
enabled: z.boolean(),
defaultMode: z.enum(["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]).optional(),
allowIssueOverride: z.boolean().optional(),
defaultProjectWorkspaceId: z.string().uuid().optional().nullable(),
workspaceStrategy: executionWorkspaceStrategySchema.optional().nullable(),
workspaceRuntime: z.record(z.unknown()).optional().nullable(),
branchPolicy: z.record(z.unknown()).optional().nullable(),
pullRequestPolicy: z.record(z.unknown()).optional().nullable(),
runtimePolicy: z.record(z.unknown()).optional().nullable(),
cleanupPolicy: z.record(z.unknown()).optional().nullable(),
})
.strict();
const projectWorkspaceSourceTypeSchema = z.enum(["local_path", "git_repo", "remote_managed", "non_git_path"]);
const projectWorkspaceVisibilitySchema = z.enum(["default", "advanced"]);
const projectWorkspaceFields = {
name: z.string().min(1).optional(),
sourceType: projectWorkspaceSourceTypeSchema.optional(),
cwd: z.string().min(1).optional().nullable(),
repoUrl: z.string().url().optional().nullable(),
repoRef: z.string().optional().nullable(),
defaultRef: z.string().optional().nullable(),
visibility: projectWorkspaceVisibilitySchema.optional(),
setupCommand: z.string().optional().nullable(),
cleanupCommand: z.string().optional().nullable(),
remoteProvider: z.string().optional().nullable(),
remoteWorkspaceRef: z.string().optional().nullable(),
sharedWorkspaceKey: z.string().optional().nullable(),
metadata: z.record(z.unknown()).optional().nullable(),
};
function validateProjectWorkspace(value, ctx) {
const sourceType = value.sourceType ?? "local_path";
const hasCwd = typeof value.cwd === "string" && value.cwd.trim().length > 0;
const hasRepo = typeof value.repoUrl === "string" && value.repoUrl.trim().length > 0;
const hasRemoteRef = typeof value.remoteWorkspaceRef === "string" && value.remoteWorkspaceRef.trim().length > 0;
if (sourceType === "remote_managed") {
if (!hasRemoteRef && !hasRepo) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "Remote-managed workspace requires remoteWorkspaceRef or repoUrl.",
path: ["remoteWorkspaceRef"],
});
}
return;
}
if (!hasCwd && !hasRepo) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "Workspace requires at least one of cwd or repoUrl.",
path: ["cwd"],
});
}
}
export const createProjectWorkspaceSchema = z.object({
...projectWorkspaceFields,
isPrimary: z.boolean().optional().default(false),
}).superRefine(validateProjectWorkspace);
export const updateProjectWorkspaceSchema = z.object({
...projectWorkspaceFields,
isPrimary: z.boolean().optional(),
}).partial();
const projectFields = {
/** @deprecated Use goalIds instead */
goalId: z.string().uuid().optional().nullable(),
goalIds: z.array(z.string().uuid()).optional(),
name: z.string().min(1),
description: z.string().optional().nullable(),
status: z.enum(PROJECT_STATUSES).optional().default("backlog"),
leadAgentId: z.string().uuid().optional().nullable(),
targetDate: z.string().optional().nullable(),
color: z.string().optional().nullable(),
executionWorkspacePolicy: projectExecutionWorkspacePolicySchema.optional().nullable(),
archivedAt: z.string().datetime().optional().nullable(),
};
export const createProjectSchema = z.object({
...projectFields,
workspace: createProjectWorkspaceSchema.optional(),
});
export const updateProjectSchema = z.object(projectFields).partial();
//# sourceMappingURL=project.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/validators/project.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,167 @@
import { z } from "zod";
export declare const createRoutineSchema: z.ZodObject<{
projectId: z.ZodString;
goalId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
parentIssueId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
title: z.ZodString;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
assigneeAgentId: z.ZodString;
priority: z.ZodDefault<z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>>;
status: z.ZodDefault<z.ZodOptional<z.ZodEnum<["active", "paused", "archived"]>>>;
concurrencyPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["coalesce_if_active", "always_enqueue", "skip_if_active"]>>>;
catchUpPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["skip_missed", "enqueue_missed_with_cap"]>>>;
}, "strip", z.ZodTypeAny, {
status: "active" | "paused" | "archived";
projectId: string;
title: string;
concurrencyPolicy: "coalesce_if_active" | "always_enqueue" | "skip_if_active";
catchUpPolicy: "skip_missed" | "enqueue_missed_with_cap";
priority: "critical" | "high" | "medium" | "low";
assigneeAgentId: string;
description?: string | null | undefined;
goalId?: string | null | undefined;
parentIssueId?: string | null | undefined;
}, {
projectId: string;
title: string;
assigneeAgentId: string;
status?: "active" | "paused" | "archived" | undefined;
description?: string | null | undefined;
concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
priority?: "critical" | "high" | "medium" | "low" | undefined;
goalId?: string | null | undefined;
parentIssueId?: string | null | undefined;
}>;
export type CreateRoutine = z.infer<typeof createRoutineSchema>;
export declare const updateRoutineSchema: z.ZodObject<{
projectId: z.ZodOptional<z.ZodString>;
goalId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
parentIssueId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
title: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
assigneeAgentId: z.ZodOptional<z.ZodString>;
priority: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>>>;
status: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["active", "paused", "archived"]>>>>;
concurrencyPolicy: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["coalesce_if_active", "always_enqueue", "skip_if_active"]>>>>;
catchUpPolicy: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["skip_missed", "enqueue_missed_with_cap"]>>>>;
}, "strip", z.ZodTypeAny, {
status?: "active" | "paused" | "archived" | undefined;
description?: string | null | undefined;
projectId?: string | undefined;
title?: string | undefined;
concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
priority?: "critical" | "high" | "medium" | "low" | undefined;
goalId?: string | null | undefined;
assigneeAgentId?: string | undefined;
parentIssueId?: string | null | undefined;
}, {
status?: "active" | "paused" | "archived" | undefined;
description?: string | null | undefined;
projectId?: string | undefined;
title?: string | undefined;
concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
priority?: "critical" | "high" | "medium" | "low" | undefined;
goalId?: string | null | undefined;
assigneeAgentId?: string | undefined;
parentIssueId?: string | null | undefined;
}>;
export type UpdateRoutine = z.infer<typeof updateRoutineSchema>;
export declare const createRoutineTriggerSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
label: z.ZodNullable<z.ZodOptional<z.ZodString>>;
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
} & {
kind: z.ZodLiteral<"schedule">;
cronExpression: z.ZodString;
timezone: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
kind: "schedule";
cronExpression: string;
timezone: string;
label?: string | null | undefined;
}, {
kind: "schedule";
cronExpression: string;
enabled?: boolean | undefined;
label?: string | null | undefined;
timezone?: string | undefined;
}>, z.ZodObject<{
label: z.ZodNullable<z.ZodOptional<z.ZodString>>;
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
} & {
kind: z.ZodLiteral<"webhook">;
signingMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["bearer", "hmac_sha256"]>>>;
replayWindowSec: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
kind: "webhook";
signingMode: "bearer" | "hmac_sha256";
replayWindowSec: number;
label?: string | null | undefined;
}, {
kind: "webhook";
enabled?: boolean | undefined;
label?: string | null | undefined;
signingMode?: "bearer" | "hmac_sha256" | undefined;
replayWindowSec?: number | undefined;
}>, z.ZodObject<{
label: z.ZodNullable<z.ZodOptional<z.ZodString>>;
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
} & {
kind: z.ZodLiteral<"api">;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
kind: "api";
label?: string | null | undefined;
}, {
kind: "api";
enabled?: boolean | undefined;
label?: string | null | undefined;
}>]>;
export type CreateRoutineTrigger = z.infer<typeof createRoutineTriggerSchema>;
export declare const updateRoutineTriggerSchema: z.ZodObject<{
label: z.ZodNullable<z.ZodOptional<z.ZodString>>;
enabled: z.ZodOptional<z.ZodBoolean>;
cronExpression: z.ZodNullable<z.ZodOptional<z.ZodString>>;
timezone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
signingMode: z.ZodNullable<z.ZodOptional<z.ZodEnum<["bearer", "hmac_sha256"]>>>;
replayWindowSec: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
enabled?: boolean | undefined;
label?: string | null | undefined;
cronExpression?: string | null | undefined;
timezone?: string | null | undefined;
signingMode?: "bearer" | "hmac_sha256" | null | undefined;
replayWindowSec?: number | null | undefined;
}, {
enabled?: boolean | undefined;
label?: string | null | undefined;
cronExpression?: string | null | undefined;
timezone?: string | null | undefined;
signingMode?: "bearer" | "hmac_sha256" | null | undefined;
replayWindowSec?: number | null | undefined;
}>;
export type UpdateRoutineTrigger = z.infer<typeof updateRoutineTriggerSchema>;
export declare const runRoutineSchema: z.ZodObject<{
triggerId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
payload: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
idempotencyKey: z.ZodNullable<z.ZodOptional<z.ZodString>>;
source: z.ZodDefault<z.ZodOptional<z.ZodEnum<["manual", "api"]>>>;
}, "strip", z.ZodTypeAny, {
source: "manual" | "api";
payload?: Record<string, unknown> | null | undefined;
idempotencyKey?: string | null | undefined;
triggerId?: string | null | undefined;
}, {
source?: "manual" | "api" | undefined;
payload?: Record<string, unknown> | null | undefined;
idempotencyKey?: string | null | undefined;
triggerId?: string | null | undefined;
}>;
export type RunRoutine = z.infer<typeof runRoutineSchema>;
export declare const rotateRoutineTriggerSecretSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
export type RotateRoutineTriggerSecret = z.infer<typeof rotateRoutineTriggerSecretSchema>;
//# sourceMappingURL=routine.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"routine.d.ts","sourceRoot":"","sources":["../../src/validators/routine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAOhE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EAOrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,gCAAgC,gDAAe,CAAC;AAC7D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}

View File

@@ -0,0 +1,50 @@
import { z } from "zod";
import { ISSUE_PRIORITIES, ROUTINE_CATCH_UP_POLICIES, ROUTINE_CONCURRENCY_POLICIES, ROUTINE_STATUSES, ROUTINE_TRIGGER_SIGNING_MODES, } from "../constants.js";
export const createRoutineSchema = z.object({
projectId: z.string().uuid(),
goalId: z.string().uuid().optional().nullable(),
parentIssueId: z.string().uuid().optional().nullable(),
title: z.string().trim().min(1).max(200),
description: z.string().optional().nullable(),
assigneeAgentId: z.string().uuid(),
priority: z.enum(ISSUE_PRIORITIES).optional().default("medium"),
status: z.enum(ROUTINE_STATUSES).optional().default("active"),
concurrencyPolicy: z.enum(ROUTINE_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
catchUpPolicy: z.enum(ROUTINE_CATCH_UP_POLICIES).optional().default("skip_missed"),
});
export const updateRoutineSchema = createRoutineSchema.partial();
const baseTriggerSchema = z.object({
label: z.string().trim().max(120).optional().nullable(),
enabled: z.boolean().optional().default(true),
});
export const createRoutineTriggerSchema = z.discriminatedUnion("kind", [
baseTriggerSchema.extend({
kind: z.literal("schedule"),
cronExpression: z.string().trim().min(1),
timezone: z.string().trim().min(1).default("UTC"),
}),
baseTriggerSchema.extend({
kind: z.literal("webhook"),
signingMode: z.enum(ROUTINE_TRIGGER_SIGNING_MODES).optional().default("bearer"),
replayWindowSec: z.number().int().min(30).max(86_400).optional().default(300),
}),
baseTriggerSchema.extend({
kind: z.literal("api"),
}),
]);
export const updateRoutineTriggerSchema = z.object({
label: z.string().trim().max(120).optional().nullable(),
enabled: z.boolean().optional(),
cronExpression: z.string().trim().min(1).optional().nullable(),
timezone: z.string().trim().min(1).optional().nullable(),
signingMode: z.enum(ROUTINE_TRIGGER_SIGNING_MODES).optional().nullable(),
replayWindowSec: z.number().int().min(30).max(86_400).optional().nullable(),
});
export const runRoutineSchema = z.object({
triggerId: z.string().uuid().optional().nullable(),
payload: z.record(z.unknown()).optional().nullable(),
idempotencyKey: z.string().trim().max(255).optional().nullable(),
source: z.enum(["manual", "api"]).optional().default("manual"),
});
export const rotateRoutineTriggerSecretSchema = z.object({});
//# sourceMappingURL=routine.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"routine.js","sourceRoot":"","sources":["../../src/validators/routine.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,114 @@
import { z } from "zod";
export declare const envBindingPlainSchema: z.ZodObject<{
type: z.ZodLiteral<"plain">;
value: z.ZodString;
}, "strip", z.ZodTypeAny, {
value: string;
type: "plain";
}, {
value: string;
type: "plain";
}>;
export declare const envBindingSecretRefSchema: z.ZodObject<{
type: z.ZodLiteral<"secret_ref">;
secretId: z.ZodString;
version: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodNumber]>>;
}, "strip", z.ZodTypeAny, {
type: "secret_ref";
secretId: string;
version?: number | "latest" | undefined;
}, {
type: "secret_ref";
secretId: string;
version?: number | "latest" | undefined;
}>;
export declare const envBindingSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
type: z.ZodLiteral<"plain">;
value: z.ZodString;
}, "strip", z.ZodTypeAny, {
value: string;
type: "plain";
}, {
value: string;
type: "plain";
}>, z.ZodObject<{
type: z.ZodLiteral<"secret_ref">;
secretId: z.ZodString;
version: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodNumber]>>;
}, "strip", z.ZodTypeAny, {
type: "secret_ref";
secretId: string;
version?: number | "latest" | undefined;
}, {
type: "secret_ref";
secretId: string;
version?: number | "latest" | undefined;
}>]>;
export declare const envConfigSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
type: z.ZodLiteral<"plain">;
value: z.ZodString;
}, "strip", z.ZodTypeAny, {
value: string;
type: "plain";
}, {
value: string;
type: "plain";
}>, z.ZodObject<{
type: z.ZodLiteral<"secret_ref">;
secretId: z.ZodString;
version: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodNumber]>>;
}, "strip", z.ZodTypeAny, {
type: "secret_ref";
secretId: string;
version?: number | "latest" | undefined;
}, {
type: "secret_ref";
secretId: string;
version?: number | "latest" | undefined;
}>]>>;
export declare const createSecretSchema: z.ZodObject<{
name: z.ZodString;
provider: z.ZodOptional<z.ZodEnum<["local_encrypted", "aws_secrets_manager", "gcp_secret_manager", "vault"]>>;
value: z.ZodString;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
externalRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
value: string;
name: string;
provider?: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault" | undefined;
description?: string | null | undefined;
externalRef?: string | null | undefined;
}, {
value: string;
name: string;
provider?: "local_encrypted" | "aws_secrets_manager" | "gcp_secret_manager" | "vault" | undefined;
description?: string | null | undefined;
externalRef?: string | null | undefined;
}>;
export type CreateSecret = z.infer<typeof createSecretSchema>;
export declare const rotateSecretSchema: z.ZodObject<{
value: z.ZodString;
externalRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
value: string;
externalRef?: string | null | undefined;
}, {
value: string;
externalRef?: string | null | undefined;
}>;
export type RotateSecret = z.infer<typeof rotateSecretSchema>;
export declare const updateSecretSchema: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
externalRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
name?: string | undefined;
description?: string | null | undefined;
externalRef?: string | null | undefined;
}, {
name?: string | undefined;
description?: string | null | undefined;
externalRef?: string | null | undefined;
}>;
export type UpdateSecret = z.infer<typeof updateSecretSchema>;
//# sourceMappingURL=secret.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/validators/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;IAI3B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;KAA6B,CAAC;AAE1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}

View File

@@ -0,0 +1,35 @@
import { z } from "zod";
import { SECRET_PROVIDERS } from "../constants.js";
export const envBindingPlainSchema = z.object({
type: z.literal("plain"),
value: z.string(),
});
export const envBindingSecretRefSchema = z.object({
type: z.literal("secret_ref"),
secretId: z.string().uuid(),
version: z.union([z.literal("latest"), z.number().int().positive()]).optional(),
});
// Backward-compatible union that accepts legacy inline values.
export const envBindingSchema = z.union([
z.string(),
envBindingPlainSchema,
envBindingSecretRefSchema,
]);
export const envConfigSchema = z.record(envBindingSchema);
export const createSecretSchema = z.object({
name: z.string().min(1),
provider: z.enum(SECRET_PROVIDERS).optional(),
value: z.string().min(1),
description: z.string().optional().nullable(),
externalRef: z.string().optional().nullable(),
});
export const rotateSecretSchema = z.object({
value: z.string().min(1),
externalRef: z.string().optional().nullable(),
});
export const updateSecretSchema = z.object({
name: z.string().min(1).optional(),
description: z.string().optional().nullable(),
externalRef: z.string().optional().nullable(),
});
//# sourceMappingURL=secret.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/validators/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChF,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;IACtC,CAAC,CAAC,MAAM,EAAE;IACV,qBAAqB;IACrB,yBAAyB;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC"}

View File

@@ -0,0 +1,105 @@
import { z } from "zod";
export declare const issueWorkProductTypeSchema: z.ZodEnum<["preview_url", "runtime_service", "pull_request", "branch", "commit", "artifact", "document"]>;
export declare const issueWorkProductStatusSchema: z.ZodEnum<["active", "ready_for_review", "approved", "changes_requested", "merged", "closed", "failed", "archived", "draft"]>;
export declare const issueWorkProductReviewStateSchema: z.ZodEnum<["none", "needs_board_review", "approved", "changes_requested"]>;
export declare const createIssueWorkProductSchema: z.ZodObject<{
projectId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
executionWorkspaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
runtimeServiceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
type: z.ZodEnum<["preview_url", "runtime_service", "pull_request", "branch", "commit", "artifact", "document"]>;
provider: z.ZodString;
externalId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
title: z.ZodString;
url: z.ZodNullable<z.ZodOptional<z.ZodString>>;
status: z.ZodDefault<z.ZodEnum<["active", "ready_for_review", "approved", "changes_requested", "merged", "closed", "failed", "archived", "draft"]>>;
reviewState: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "needs_board_review", "approved", "changes_requested"]>>>;
isPrimary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
healthStatus: z.ZodDefault<z.ZodOptional<z.ZodEnum<["unknown", "healthy", "unhealthy"]>>>;
summary: z.ZodNullable<z.ZodOptional<z.ZodString>>;
metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
createdByRunId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
status: "active" | "archived" | "failed" | "approved" | "ready_for_review" | "changes_requested" | "merged" | "closed" | "draft";
type: "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact" | "document";
provider: string;
title: string;
isPrimary: boolean;
reviewState: "approved" | "none" | "changes_requested" | "needs_board_review";
healthStatus: "unknown" | "healthy" | "unhealthy";
url?: string | null | undefined;
metadata?: Record<string, unknown> | null | undefined;
projectId?: string | null | undefined;
executionWorkspaceId?: string | null | undefined;
runtimeServiceId?: string | null | undefined;
externalId?: string | null | undefined;
summary?: string | null | undefined;
createdByRunId?: string | null | undefined;
}, {
type: "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact" | "document";
provider: string;
title: string;
status?: "active" | "archived" | "failed" | "approved" | "ready_for_review" | "changes_requested" | "merged" | "closed" | "draft" | undefined;
url?: string | null | undefined;
metadata?: Record<string, unknown> | null | undefined;
projectId?: string | null | undefined;
isPrimary?: boolean | undefined;
executionWorkspaceId?: string | null | undefined;
runtimeServiceId?: string | null | undefined;
externalId?: string | null | undefined;
reviewState?: "approved" | "none" | "changes_requested" | "needs_board_review" | undefined;
healthStatus?: "unknown" | "healthy" | "unhealthy" | undefined;
summary?: string | null | undefined;
createdByRunId?: string | null | undefined;
}>;
export type CreateIssueWorkProduct = z.infer<typeof createIssueWorkProductSchema>;
export declare const updateIssueWorkProductSchema: z.ZodObject<{
projectId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
executionWorkspaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
runtimeServiceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
type: z.ZodOptional<z.ZodEnum<["preview_url", "runtime_service", "pull_request", "branch", "commit", "artifact", "document"]>>;
provider: z.ZodOptional<z.ZodString>;
externalId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
title: z.ZodOptional<z.ZodString>;
url: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
status: z.ZodOptional<z.ZodDefault<z.ZodEnum<["active", "ready_for_review", "approved", "changes_requested", "merged", "closed", "failed", "archived", "draft"]>>>;
reviewState: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "needs_board_review", "approved", "changes_requested"]>>>>;
isPrimary: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
healthStatus: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["unknown", "healthy", "unhealthy"]>>>>;
summary: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
metadata: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
createdByRunId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
}, "strip", z.ZodTypeAny, {
status?: "active" | "archived" | "failed" | "approved" | "ready_for_review" | "changes_requested" | "merged" | "closed" | "draft" | undefined;
type?: "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact" | "document" | undefined;
provider?: string | undefined;
url?: string | null | undefined;
metadata?: Record<string, unknown> | null | undefined;
projectId?: string | null | undefined;
title?: string | undefined;
isPrimary?: boolean | undefined;
executionWorkspaceId?: string | null | undefined;
runtimeServiceId?: string | null | undefined;
externalId?: string | null | undefined;
reviewState?: "approved" | "none" | "changes_requested" | "needs_board_review" | undefined;
healthStatus?: "unknown" | "healthy" | "unhealthy" | undefined;
summary?: string | null | undefined;
createdByRunId?: string | null | undefined;
}, {
status?: "active" | "archived" | "failed" | "approved" | "ready_for_review" | "changes_requested" | "merged" | "closed" | "draft" | undefined;
type?: "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact" | "document" | undefined;
provider?: string | undefined;
url?: string | null | undefined;
metadata?: Record<string, unknown> | null | undefined;
projectId?: string | null | undefined;
title?: string | undefined;
isPrimary?: boolean | undefined;
executionWorkspaceId?: string | null | undefined;
runtimeServiceId?: string | null | undefined;
externalId?: string | null | undefined;
reviewState?: "approved" | "none" | "changes_requested" | "needs_board_review" | undefined;
healthStatus?: "unknown" | "healthy" | "unhealthy" | undefined;
summary?: string | null | undefined;
createdByRunId?: string | null | undefined;
}>;
export type UpdateIssueWorkProduct = z.infer<typeof updateIssueWorkProductSchema>;
//# sourceMappingURL=work-product.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"work-product.d.ts","sourceRoot":"","sources":["../../src/validators/work-product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,0BAA0B,2GAQrC,CAAC;AAEH,eAAO,MAAM,4BAA4B,+HAUvC,CAAC;AAEH,eAAO,MAAM,iCAAiC,4EAK5C,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyC,CAAC;AAEnF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}

View File

@@ -0,0 +1,46 @@
import { z } from "zod";
export const issueWorkProductTypeSchema = z.enum([
"preview_url",
"runtime_service",
"pull_request",
"branch",
"commit",
"artifact",
"document",
]);
export const issueWorkProductStatusSchema = z.enum([
"active",
"ready_for_review",
"approved",
"changes_requested",
"merged",
"closed",
"failed",
"archived",
"draft",
]);
export const issueWorkProductReviewStateSchema = z.enum([
"none",
"needs_board_review",
"approved",
"changes_requested",
]);
export const createIssueWorkProductSchema = z.object({
projectId: z.string().uuid().optional().nullable(),
executionWorkspaceId: z.string().uuid().optional().nullable(),
runtimeServiceId: z.string().uuid().optional().nullable(),
type: issueWorkProductTypeSchema,
provider: z.string().min(1),
externalId: z.string().optional().nullable(),
title: z.string().min(1),
url: z.string().url().optional().nullable(),
status: issueWorkProductStatusSchema.default("active"),
reviewState: issueWorkProductReviewStateSchema.optional().default("none"),
isPrimary: z.boolean().optional().default(false),
healthStatus: z.enum(["unknown", "healthy", "unhealthy"]).optional().default("unknown"),
summary: z.string().optional().nullable(),
metadata: z.record(z.unknown()).optional().nullable(),
createdByRunId: z.string().uuid().optional().nullable(),
});
export const updateIssueWorkProductSchema = createIssueWorkProductSchema.partial();
//# sourceMappingURL=work-product.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"work-product.js","sourceRoot":"","sources":["../../src/validators/work-product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC;IACjD,QAAQ;IACR,kBAAkB;IAClB,UAAU;IACV,mBAAmB;IACnB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,IAAI,CAAC;IACtD,MAAM;IACN,oBAAoB;IACpB,UAAU;IACV,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7D,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzD,IAAI,EAAE,0BAA0B;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,MAAM,EAAE,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtD,WAAW,EAAE,iCAAiC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACzE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACvF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,4BAA4B,CAAC,OAAO,EAAE,CAAC"}