/** * Photon identity strings — single source of truth. * * Compound identifiers appear in several wire and registry formats: * * composite key photon | photon:hash8 daemon registries * (built by daemon/registry-keys.ts) * ps target : CLI ps disable/pause * channel : event broker, Beam subscriptions * circuit key :: circuit breaker state * cache key :: loader module cache * * The rule that kills the recurring bug class: method and topic segments * are simple names that never contain colons, while the photon part MAY * be colon-qualified (instance hash). Therefore method-suffixed ids parse * from the LAST colon and channels parse from the FIRST colon. Splitting * on the wrong end is exactly how `ps disable photon:hash:method` became * a silent no-op. * * Never hand-roll split(':') on a photon identity — add a helper here. */ export interface PsTarget { photon: string; method: string; } /** * Parse a ps enrollment target `:`. * Splits on the LAST colon: method names are JS identifiers (no colons), * but the photon id may be instance-qualified (`photon:hash`). */ export declare function parsePsTarget(target: string): PsTarget; export interface ChannelId { photon: string; topic: string; } /** * Parse a namespaced channel `:`. First colon: photon * names never contain colons, topics may (`photon:item:123`, `photon:*`). * Returns null for unqualified names. */ export declare function parseChannel(channel: string): ChannelId | null; /** Namespace an unqualified channel with the photon; qualified pass through. */ export declare function qualifyChannel(photonName: string, channel: string): string; /** Circuit-breaker state key for one tool on one instance. */ export declare function circuitKey(photon: string, instance: string, tool: string): string; /** Loader module-cache key; `::` keeps instance names with colons unambiguous. */ export declare function instanceCacheKey(resolvedPath: string, instanceName?: string): string; /** Cache key for preloaded (compiled-binary) photon modules. */ export declare function preloadedCacheKey(name: string, instanceName?: string): string; //# sourceMappingURL=identity.d.ts.map