import { type ExistingManifestContextOptions } from "./existing-manifest-context.js"; import type { ManifestScope } from "./manifest-builder.js"; import type { CustomSkill } from "./custom-skill.js"; export type AgentIdentityMode = 'runner' | 'user'; export interface AgentSourceFile { path: string; content: string; kind: string; } /** * Initialization properties for {@link Agent}. */ export interface AgentProps { /** Stable system name for this agent. */ apiName: string; /** Display name shown in Rippling. */ name: string; /** Human-readable description of the agent. */ description?: string; /** Identity used when the agent runs. Defaults to `runner`. */ identityMode?: AgentIdentityMode; /** Role used when `identityMode` is `user`. */ identityRoleId?: string; /** Source files for the agent's latest revision. */ files: AgentSourceFile[]; /** Path of the source file that starts the agent. */ entrypoint: string; /** Existing Custom Skills included in the agent's latest revision. */ skills?: CustomSkill[]; } /** * Defines an agent and its latest source revision in a single manifest component. * * Reinstalling a component with the same `apiName` updates the agent metadata and * creates a new source revision when its source or skills change. */ export declare class Agent { static readonly componentType: "AGENT"; private readonly _apiName; private _name; private _description; private _identityMode; private _identityRoleId; private _files; private _entrypoint; private _skills; constructor(scope: ManifestScope, props: AgentProps); /** Loads this agent from the active existing-manifest JSON context. */ static loadFromExisting(apiName: string, options?: ExistingManifestContextOptions): Agent; /** @internal Hydrates an agent from existing manifest wire JSON. */ static _fromExistingComponent(scope: ManifestScope, component: Record, resolveSkill: (sourceSkillId: string) => CustomSkill): Agent; getApiName(): string; setName(name: string): this; setDescription(description: string): this; setIdentity(identityMode: AgentIdentityMode, identityRoleId?: string): this; setSource(files: AgentSourceFile[], entrypoint: string): this; setSkills(skills: CustomSkill[]): this; toDict(): Record; } //# sourceMappingURL=agent.d.ts.map